详细讲解RS-232串口通信原理
详细讲解RS-232串口通信原理
RS232详细介绍:
一、R232用图文简介
RS232串口是我们常用的通讯接口之一,它主要用来进行人机交互,它最常用的接口形式就是这种DB9的接口。
信号定义如下:
TxD(传输引脚):将数据从DTE传输到DCE.
RxD(接收引脚):将数据从DCE发送到DTE。
DTR(数据终端就绪): DTE准备接受请求
DCD(数据载波检测):DCE从位于远程位置的DTE接收载波。
DSR(数据集就绪): DCE准备发送和接收信息。
RI(振铃指示器):检测电话线上的来电铃声。
RTS(发送请求):DCE的DTE调用以发送数据。
RTR(准备接收):DTE已做好准备以接收来自DCE的数据:
CTS(清除发送):DCE处于就绪状态,可以接受来自DTE的数据
我们平常简单的使用时只需要用到2、3、5脚就可以了。
这些信号的电平我们称为RS232电平,具有抗干扰能力强,传输距离较数字信号要远一些,但是传输速率要低一点。RS232电平逻辑1的电压范围为-3至-15V,逻辑0的电压范围为 +3至+15V,它的噪声容限为2V。
我们常用的芯片串口电平大部分是1.8V、3.3V或者5V,要想变成RS232电平接口需要芯片进行电平转换。我们常用的有MAX3232,可以将3.3或5V的电平转成RS232电平。我们简单使用时,只需要用到TX和RX这两个信号就可以了。我们来看下电路图。
二、MAX3232芯片介绍:
MAX3232设备有两路发送器、两路接收器,双电荷泵电路,并带有±15kV ESD保护端子。提供异步通信控制器和串行端口连接器之间的电气接口。该器件高达250kbit/s的数据信令速率,3.3V-5V供电。
1) 芯片极限参数
VCC最大电压不能超过6V,最低电压不能低于-0.3V;电荷泵V+范围-0.3-7V,电荷泵V-范围-7-0.3V,V+与V-电压差不能超过13V,运行时芯片结温不能超过150°C。
2) 正常运行参数
VCC电压3.3V/5V,逻辑高电平要求大于2/2.4V,逻辑电平要求小于0.8V,运行时芯片温度不能超过70°C。MAX3232C为商业上用的,MAX3232I为工业上用的。
3)温升参数
根据温升参数可以估算出芯片的运行温度,公式:芯片温度=环境温度+温升*功率
4)芯片转换特性:
这是芯片的速率和高低电平转换延时时间,输入高,则输出低电平逻辑。
5)TSSOP封装尺寸
三、RS232通讯格式
1)串口通信参数
波特率:数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200、115200波特;
数据位:标准值是5、7和8位;
停止位:用于表示单个包的最后一位
奇偶校验位:检错方式
2)串口通信传输格式
串口通信中,线路空闲时,线路的TTL电平总是高,经过RS232芯片反向电平总是低,一个数据的开始RS232线路为高电平,结束时RS232为低电平,数据总是从低位向高位一位一位的传输。示波器读数时,左边是数据的高位。
例如,对于16进制数据55AAH,采用8位数据位、1位停止位传输时,如图
3)串口通信时接收过程
RS232是异步通信,异步通信即接收器和发送器有各自的时钟,而同步通信的发送器和接收器共用同一个时钟源控制。
a)开始通信时,信号线为空闲(高电平,逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数;
b)当计数到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”,而不是干扰信号;
c)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据,若为逻辑1,作为数据为1,若为逻辑0,作为数据为0
d)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据,直到全部数据位都有输入;
e)如果有校验位,检测校验位P;
f)接收到规定的数据位个数和校验后,通信接口电路希望收到停止位S(逻辑1),对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器,若校验错,在状态寄存器中置奇偶错标志;
g)本帧信息全部接收完,把线路上出现的高电平作为空闲位;
h)当信号再次变低时,开始进入下一帧的检测。
4)波特率和晶振对应关系
单片机常用11.0592M的晶振,波特率为9600BPS,每位位宽t1=1/9600s
晶振周期t2=1/11.0592/1000000s;单片机机器周期t3=12*t2
而t1/t3=96,即对于9600BPS的串口,单片机对其以96倍的速率进行采样,如果单片机晶振用的不正确,会对串口接收产生误码。