在上一篇《嵌入式硬件通信接口协议-UART(一)协议基础》中,简单而细致描述了UART的各个配置项以及通信过程的信号时序,此篇将继续介绍UART接口在不一样的电气特性下,所使用的一些接口规范。
一、 简介
实际上UART只是对信号时序进行定义,而未定义其电气特性。在不一样的应用场景下,不同的走线空间,不同程度干扰的恶劣环境,不同的平台和和设备间,要使用UART进行通信,信号管脚的电气特性差异就是个很大的障碍,并且在很多低功耗设备的信号电平一般都较低(小于5V),因此,应对不一样的应用场景和环境,而制定出不一样的电气特性协议。
二、 UART在不同电气规范下的接口
对于不同平台或者使用环境,信号管脚的电气特性依次可以分为
TTL/CMOS、RS232、RS422、RS485。
(一) TTL/CMOS
TTL电平,逻辑“0”等于0V电压,逻辑“1”等于+5V电压。
CMOS电平,逻辑“0”接近0V电压,逻辑“1”接近电源电压(3.3V或其他)。
TTL电路与CMOS电路比较
1)TTL电路是电流控制器件,而CMOS电路是电压控制器件。
2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。
CMOS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。
CMOS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片即越热,这是正常现象。
常见的,在嵌入式开发时,UART的电平信号由MCU芯片决定。
日常的开发过程中,MCU管脚上的UART通信电平就是TTL/CMOS电平信号。
(二) RS-232
RS232完整缩写EIA-RS-232C 标准,其中EIA是Electronic Industry Association代表美国电子工业协会,RS是Recommended Standard 推荐标准,232表示标识号,C表示第三次修改。
它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
由此可见,RS232才是UART的鼻祖!
RS232对电气特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD信号管脚上:
逻辑“1”电压范围-3V~-15V
逻辑“0”电压范围+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)电压范围+3V~+15V
信号无效(断开,OFF状态,负电压)电压范围-3V~-15V
可见RS232的信号管脚特性为负逻辑电平的信号。
具体可以观察如下一张MAX232芯片的数据波形:
上述的示波器截图中,通道1(橙色)是RS232电平,通道2(绿色)是UART电平。
通道2的波形是数据输出的bit流逐一对应的电平。
bit流依次是起始位“0”、数据“0011,1011”(即DigCore的标志0xDC的二进制LSB排列)、奇校验位“0”、停止位“1”,最后引脚处于高电平的空闲态。