关于UART的介绍,网上有很多,一般来讲自己上网查一查就有了,我们重点关注的是它的传输格式:
起始位:由1个逻辑 0 的数据位表示
结束位:由 0.5、 1、 1.5 或 2 个逻辑 1 的数据位表示
有效数据:在起始位后紧接着的就是有效数据,有效数据的长度常被约定为 5、 6、 7 或 8、9位长,通常一字节数据先发送低位数据,后发送高位数据。
校验位:可选,为的是数据的抗干扰性。如有奇校验、偶校验、无校验。
奇校验:比如一个 8 位长的有效数据为: 01101001,此时总共有 4 个“ 1”,为达到奇校验效果,校验位为“ 1”,最后传输的数据将是 8 位的有效数据加上 1 位的校验位总共 9 位。
偶校验:比如一个 8 位长的有效数据为: 01101001,此时总共有 4 个“ 1”,为达到偶校验效果,校验位为“ 0”,最后传输的数据将是 8 位的有效数据加上 1 位的校验位总共 9 位。
波特率:50、75、100、150、300、600、1200、2400、4800、9600、19200、38400
RS232的电平,采用负逻辑:
-15v ~ -3v 代表1
+3v ~ +15v 代表0
RS485电平 和RS422电平 由于两者均采用 差分传输(平衡传输)的方式,所以他们的电平方式,一般有两个引脚 A,B
发送端 AB间的电压差
+2 ~ +6v 1
-2 ~ -6v 0
接收端 AB间的电压差
大于 +200mv 1
小于 -200mv 0
定义逻辑1为B>A的状态
定义逻辑0为A>B的状态
AB之间的电压差不小于200mv
RS232 可做到双向传输,全双工通讯 最高传输速率 20kbps
422 只能做到单向传输,半双工通讯,最高传输速率10Mbps
485 双向传输,半双工通讯, 最高传输速率10Mbps
R232:
(1)个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。
(2)最简单的RS232由三个线组成,TXD、RXD、GND
(3)通常计算机和其它终端设备都是使用TTL电平,故计算机与其他终端通过RS232进行通信时,计算机和终端都要一个电平转换芯片,计算
机侧使用USB转RS232转换器。接口的信号电平值较高,易损坏接口电路的芯片
(4)传输速率较低,在异步传输时,波特率为20Kbps;因此在CPLD开发板中,综合程序波特率只能采用19200,也是这个原因。
(5)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
(6)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。
(7)驱动器允许有2500pF的电容负载,通信距离将受此电容限制,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。
(8)在串行通信软件设置中D/P/S是常规的符号表示。8/N/1(非常普遍)表明8bit数据,没有奇偶校验,1bit停止位。数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验位可以使用数据中的比特位,所以8/E/1就表示一共8位数据位,其中一位用来做奇偶校验位。停止位可以是1、1.5或者2位的(1.5是用在波特率为60wpm的电传打字机上的)。
RS422:
(1)RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。实际上还有一根信号地线,共5根线。由于接收器采用高输入阻抗 和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备 (Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电 阻)。
(2)RS-422的电气性能与RS-485完全一样。主要的区别在于:RS-422有4根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422的收与发是分开的所以可以同时收和发(全双工)。RS-485有2根信号线:发送和接收都是A和B。由于RS-485的收与发是共用两根线所以不能够同时收和发(半双工)。
RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS- 485接收器最小输入阻抗为12k,RS-422是4k;RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中 应用。
RS485:
RS-485最大的通信距离约为1219m,最大传输速率为10Mbps,传输速率与传输距离成反比,在10Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。
(1)RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
(2)RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓扑结构,在同一总线上最多可以挂接32个节点。
(3)RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。
(4)RS485连接方式:把TTL转为485,实质是一个集成芯片,其间无任何程序代码,纯粹硬件逻辑。同理,将485电平转为TTL也是如此。现在很多芯片把接收和转换都集成到一块IC,注意,转换器和接收器依旧是没有同时工作的,常见的转换芯片是MAX485。
(5)RS-485的电气特性:采用差分信号正逻辑,逻辑“1”以两线间的电压差为+(26)V表示;逻辑”0“以两线间的电压差为-(26)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
(6)由于RS-485常常要与PC机的RS-232口通信,所以实际上一般最高115.2Kbps。又由于太高的速率会使RS-485传输距离减小,所以往往为9600bps左右或以下
参考资料:
https://blog.csdn.net/kenjianqi1647/article/details/83476724(RS232、RS485、RS422应用总结)
https://blog.csdn.net/qq_37596943/article/details/81006194(RS232、RS485、RS422、串口与握手基础知识详细介绍)
https://blog.csdn.net/qijitao/article/details/51505653(RS232电平 RS485电平 RS422电平 图文详解)
下面这个博客链接中有UART的源码和仿真工程,仅供参考啊
https://www.cnblogs.com/noticeable/p/7233666.html(uart通讯协议)