在日常使用中,我们往往接触的较多的是UART(Universal Asynchronous Receiver Transmitter:通用异步收发器),即日常说的串口,该总线有两条数据线:发送数据TXD(Transmit Data)和接收数据RXD(Received Data),在使用中,我们线路连接图如下:
注意:信号的传输建立在一个公共的基准上,而这个基准往往是GND,所以在通信时需要共地,这个常识往往被忽略。
1、UART帧格式
起始位:为低电平时,表示数据帧开始。
数据位:可由5~8位组成,通常传输8位也就是一个字节,传输规律是:先传输低位后传输高位。
奇偶校验位:用于判断数据传输是否正确,1表示偶校验,0表示奇校验。如果不需要则数据帧全是有效数据,如果需要则数据帧最后一位是奇偶校验位。
奇校验:若数据位中,1的个数为奇数,则校验位为0,反之为1。
偶校验:若数据位中,1的个数为偶数,则校验位为0,反之为1。
停止位:可以是1位、1.5位、2位,通常都为高电平表示数据传输停止。
波特率:用于衡量串口传输速率的大小,表示每秒钟传输的位数。
例如:假设波特率为115200,则1s传输的数据量为115200个bit。
每个bit传输的时间:1s/115200 ≈ 8.68us,也就是串口波特率为115200时,每个bit传输间隔为8.68us。
2、数据传输和原理解析
关于数据传输和原理解析,我们举个例子,假设传输的数据为以下八位:
计算得出这八位二进制代表的十进制数:2+16+64 = 82
通过查询ASCII码表可以发现,十进制 82 表示 字符 R
通过以上的例子分析,我们可以加深对串口传输的方式的理解。
3、串口通信常见注意事项
一般MCU使用的是TTL电平进行数据发送和接收,而外部设备比如笔记本采用的是USB等电平。
因此想要MUC和笔记本通信,则需要电平转换芯片将TTL电平转换为USB电平,常见的TTL转USB模块:CH340等
TTL电平标准:高电平通常被定义为+2.4 V至5 V的电压范围,而低电平则为0 V至0.4 V。
4、串口通信的优缺点
缺点:
1、通信速度较低:因为每次只能传输一位数据,所以传输速度比较低。与以太网相比,串口通信的速度存在明显差距,一般只适合低速率和小数据量的通信
2、只能进行短距离传输:串口通信只能在短距离内传输数据,且只能用于传输点对点的数据,这限制了其在某些应用场景的使用
3、不可靠性:由于UART是异步通信,可能会受到噪声和干扰的影响,导致数据传输不可靠
优点:节省传输线,这是显而易见的。尤其是在远程通信时,此特点尤为重要。这也是串行通信的主要优点。
5、UART和USART
USART:(universal synchronous asynchronous receiver and transmitter)通用同步异步收发器。
区别:
1、一般而言名为UART的接口只能进行异步串行通讯,而USART既能进行同步串行通讯,也能用于异步串行通讯,这意味着USART可以像SPI一样工作,适用于需要同步通信的场景。
2、USART的数据传输速度通常比UART更快,因为它可以使用更高的波特率进行数据传输,并且不需要起始位和停止位。
3、USART比UART更复杂,因为它需要更多的控制选项,如硬件流控制和双向通信。
4、UART的硬件连接相对简单,通常使用三根线:TX(发送端)、RX(接收端)和地线(GND)。USART则需要额外的时钟信号线(XCK),并且在某些情况下还需要方向信号线(XDIR)。