本文资料是对网络上相关知识的小总结
UART与RS232和RS485的关系问题
通讯问题,和交通问题一样,也有高速、低速、拥堵、中断等等各种情况。如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车。汽车跑在路上,要遵守交通规则。如果是市内,一般限速30、40,而高速公路则可以到120。而汽车走什么路,限速多少,就要看协议怎么规定了。常见的串口协议有RS-232、RS-422、RS-485等.
RS232与RS485与TTL特点:
电气特征部分:
RS-232
1、 在RS-232-C中任何一条信号线的电压均为负逻辑关系。
即:逻辑“1”为-3到-15V;逻辑“0”为+3到+15V。
2、 RS-232-C接口连接器一般使用型号为DB-9插头座,通常插头在DCE端,插座在DTE端。PC机的RS-232口为9芯针插座。一些设备与PC机连接的RS-232接口,因为不使用对方的传送控制信号,只需要三条接口线,即“发送数据TXD”、“接收数据RXD”和“信号地GND”。RS-232传输线采用屏蔽双绞线。
RS-485
RS485采用差分信号负逻辑.
逻辑"1"以两线间的电压差为-(2~6)V表示
逻辑"0"以两线间的电压差为+(2~6)V表示。
接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL电路连接。RS-485的数据最高传输速率为10Mbps。
TTL
TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑“1”,0V等价于逻辑“0”,
这被称做TTL(晶体管-晶体管逻辑电平Transistor-Transistor Logic)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。
波形分析部分:
一、串行数据的格式
异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。线路路空闲或者数据传输结束,对于正逻辑的TTL电平,线路总是1(处于停止位)。对于负逻辑(如RS-232电平)则相反。
例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。 (先传第一个字节55,再传第二个字节aa,每个字节都是从低位向高位逐位传输)
图1 TTL电平的串行数据帧格式(55aah) 图2 RS-232电平的串行数据帧格式(55aah)
二、根据波形图计算波特率
如图3是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200us/格。
图3 波特率计算示意图
可以看到,第一个字节的10位(1位起始位,8位数据位和1位停止位)共占约1.05ms,这样可计算出其波特率约为:
10bit / 1.05ms X 1000 ≈ 9600 bit/s
如果上图中的时间轴是100us/格,同样可以计算出波特率应是19200bit/s。当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。
三、根据波形图判断RS-485收发数据的正确与否
RS-485是一种半双工的串行通讯方式(RS-422为全双工),485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。RS-485发送数据时的正确时序如图4所示。
图4 RS-485的正确发送数据时序 图5 RS-485控制信号太短时的时序 图6 RS-485控制信号太短时的时序
在图5中,由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中,由于控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线若有数据过来,则本单元将不能正确接收。
细节对比部分:
RS232、RS485、TTL是指电平标准(电信号)
TTL与RS232为全双工通讯,RS485为半双工通讯
电平标准不同
TTL电平标准是低电平为0,高电平为1(对地,标准数字电路逻辑)。
RS232电平标准是正电平为0,负电平为1(对地,正负6-15V皆可,甚至可以用高阻态)。
RS485与RS232类似,都是负逻辑,但是采用差分信号逻辑
传输方式不同
RS-232采取不平衡传输方式,即所谓单端通讯
RS485则采用平衡传输,即差分传输方式(使用两根线的电压差表示数据)
传输距离不同。
RS-232适合本地设备之间的通信,传输距离一般不超过20m。
RS-485的传输距离为几十米到上千米。
传输速度不同。
RS232传输速率较低,最高波特率为19200bps。
RS485的数据最高传输速率为10Mbps。
实用性不同
RS-232 接口电路只允许一对一通信,信号电平较高,容易损坏接口电路的芯片;与TTL电路的电平也不兼容,影响其通用性;使用三线。
RS-485 接口接口电平低,不易损坏器件,且该平与 TTL 电平兼容,可方便与TTL 电平兼容;RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好;RS-485 接口在总线上是允许连接多达128个收发器。使用两线
|