硬件设计基础----通信协议UART
Posted 鲁棒最小二乘支持向量机
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了硬件设计基础----通信协议UART相关的知识,希望对你有一定的参考价值。
1 串行通信与并行通信
1.1 串行通信
串行接口
简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。串行接口,数据一位一位地顺序传送
串行通信(Serial communication)
是计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位的依次传输,每一位数据占一个固定的时间长度。串行通信按照发送时钟源和接收时钟源是否需要保持一致,可分为同步通信和异步通信
串行通信如图所示:
异步串行通信: 数据传输以字符为单位,字符与字符间的传输是完全异步的,位与位之间的传输基本上是同步的
特点:
- 以字符为单位传输信息
- 相邻两字符间的间隔是任意长
- 因为一个字符中的比特位长度有限,所以需要的接收时钟和发送时钟只要相近就可以
- 字符间异步,字符内部各位同步
数据格式:
- 1位起始位,规定为低电平0
- 5~8位数据位,传输的有效信息
- 1位奇偶校验位
- 1~2位停止位,规定为高电平1
数据帧格式如图所示:
同步串行通信: 数据传输是以数据块为单位,字符与字符之间、字符内部的位与位之间都同步
特点:
- 以数据块为单位传输信息
- 在一个数据块(信息帧)内,字符与字符间无间隔
- 因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟
数据格式:
- 2个同步字符作为一个数据块的起始标志
- n个连续传送的数据
- 2个字节循环冗余校验码(CRC)
数据帧格式如图所示:
1.2 并行通信
并行通信(Parallel communication)
是数据的每一位同时在多根数据线上发送或接收,以字节为单位并行传输。并行通信速度快,但通信线多,成本高,不宜进行远距离通信。计算机内部总线是以并行方式传输数据的
并行通信如图所示:
2 UART通信协议
UART(Universal Asynchronous Receiver/Transmitter):
通用异步收发传输器,该总线双向通信,可以实现全双工传输和接收。UART是异步串行通信,通信两方预先约定传输速率,即每秒传输的bit。UART是异步串行通信口的总称,包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,使用UART通信的双方设备都需要遵从UART协议。
电路连接: 双方发送端(TxD)与接收端(RxD)交叉连接,如图所示:
2.1 电平逻辑
TTL(Transistor-Transistor Logic):
是一种电平逻辑。通常使用的二进制表示数据,为了表示二进制,需要用高低电平表示二进制数,3.3V/5V等价于逻辑1,0V等价于逻辑0
标准TTL电平逻辑:
- 输出电路:电压≥2.4V为逻辑1,电压≤0.8V为逻辑0
- 输入电路:电压≥2.0V为逻辑1,电压≤1.2V为逻辑0
CMOS电平逻辑:
- 输出电路:电压≥(0.9Vcc)V为逻辑1,电压≤(0.1Vcc)V为逻辑0
- 输入电路:电压≥(0.7Vcc)V为逻辑1,电压≤(0.3Vcc)V为逻辑0
RS-232电平逻辑:
- 不同于TTL的电平逻辑,最简单的RS232通信由三条数据线组成,即 TxD、RxD 和GND
- -12V代表高电平,即-15V ~ -3V为逻辑1,+12V代表低电平,即+3V ~ +15V为逻辑0
- TTL和RS-232电平互转,常用芯片MX232,如图所示:
RS-485电平逻辑:
- 采用差分信号,即两根线的电平差代表逻辑0和逻辑1
- 两线间的电压差为+2V ~ +6V表示逻辑1,两线间的电压差为-2V ~ -6V表示逻辑0
- TTL和RS-485电平互转,常用芯片MX485,如图所示:
3 UART工作原理
UART数据帧结构,如图所示:
- 波特率: 数据传输是用波特率表示的,即每秒钟传送的二进制位数,单位bps(bit per second)。常见比特率:9600bps、19200bps、38400bps、57600bps、115200bps。9600bps 是1s发送或接收9600bit数据,那么1bit数据的时间宽度是1/9600s
- 起始位: 先发出一个逻辑0的信号,表示传输数据的开始
- 数据位: 通信中实际数据位的参数,标准的数据位可以是5、7、8位,从最低位开始传输
- 奇偶校验位: UART发送时,检查发送数据中1的个数,自动在奇偶校验位上添上1或者0,用于发送数据的校验。可以分为无校验、奇校验(如果数据位中1的数目是偶数,则校验位为1,否则为0)、偶校验(如果数据为中1的数目是偶数,则校验位为0,如果为奇数,否则为1)、1校验(校验位始终为1)、0校验(校验位始终为0)
- 停止位: 数据的结束标志,可以是1位、1.5位、2位的高电平
- 空闲位: 处于逻辑1状态,表示当前线路上无数据传输
- 帧间隔: 传送数据的帧与帧之间的间隔大小,以位或者时间为计量单位
UART允许两个时钟频率不同的设备进行通信,但要求波特率一致
。传输数据之前,UART之间要约定数据的传输速率
(即每位所占时间,其倒数成为波特率)、数据的帧格式
(即配备相同的数据包结构:有多少个数据位、是否使用校验位、是奇校验还是偶校验、有几位停止位)
发送数据的过程: 空闲状态,线路处于高电平;当收到发送指令之后,拉低线路的一个数据位的时间(起始位的时间),接着数据按照低位到高位依次发送,数据发送完毕之后,接着发送奇偶校验位和停止位(停止位高电平),一帧数据发送完成
数据接收过程: 空闲状态,线路处于高电平;当检测到线路的下降沿时说明线路有数据传输,按照约定的波特率从低位到高位接收数据,数据接收完毕后,接着接收并比较奇偶校验位是否正确,如果正确则通知后续设备接收数据或存入缓冲
4 UART接口
4.1 RS-232接口
RS-232是美国电子工业联盟制定的串行数据通信接口标准:
- 接口的信号电平值较高,易损坏接口电路芯片,-15V ~ -3V为逻辑1,+3V ~ +15V为逻辑0,与TTL电平不兼容,需要使用电平转换电路与TTL电路连接
- 传输速率较低,在异步传输时,波特率为20Kbps
- 接口使用一根信号线和一根信号返回线而构成共地的传输形式,共地传输容易产生共模干扰,所以抗噪声干扰性弱
- 传输距离有限,最大传输距离标准值为50 米,实际15 米左右
- 只能点对点通信
典型应用电路图,如图所示:
4.2 RS-485接口
RS-485接口克服RS-232接口的不足:
- +2V ~ +6V为逻辑1,-6V ~ -2V为逻辑0,接口信号电平比RS-232降低,不容易损坏接口电路芯片,且该电平与TTL电平兼容,方便与TTL电路连接
- 数据最高传输速率为10Mbps
- 采用平衡驱动器和差分接收器的组合,抗共模干扰能力强,所以抗噪声干扰性强
- 最大传输距离实际可达3000米
- 在总线上允许连接多达128个收发器,具有多站能力
- 总线起止端分别加上约120Ω的终端匹配电阻,以保证R-S485总线的稳定性
典型应用电路图,如图所示:
4.3 RS-422接口
RS-422是平衡电压数字接口电路的电气特性,电气性能与RS-485相同:
- 与RS-485电路原理基本相同,都是以差动方式发送和接收,不需要数字地线
- 有四根信号线,两根发送,两根接收,可实现全双工通信
- 数据最高传输速率为10Mbps,最大传输距离为1200米
UART接口对比:
UART | 电平逻辑 | 传输速率 | 传输距离 | 抗噪声干扰性 | 工作方式 | 信号线 | 从机数量 |
---|---|---|---|---|---|---|---|
RS-232 | -15V ~ -3V为逻辑1,+3V ~ +15V为逻辑0 | 20Kbps | 15m | 弱 | 全双工 | 2根 | 1个 |
RS-422 | +2V ~ +6V为逻辑1,-6V ~ -2V为逻辑0 | 10Mbps | 1200m | 强 | 全双工 | 2根 | 128个 |
RS-485 | +2V ~ +6V为逻辑1,-6V ~ -2V为逻辑0 | 10Mbps | 3000m | 强 | 半双工 | 4根 | 128个 |
5 UART特点
优点:
- 只使用两根线通信,线路简单
- 不需要时钟信号
- 双方设置后,可以改变数据包的结构
- 通信距离远
缺点:
- 数据帧的大小限制为最多9位
- 不支持多个主系统
- 每个UART的波特率必须在10%之内
- 通信速率慢
希望本文对大家有帮助,上文若有不妥之处,欢迎指正
分享决定高度,学习拉开差距
以上是关于硬件设计基础----通信协议UART的主要内容,如果未能解决你的问题,请参考以下文章