串口通信:UART、RS232、RS485
基础概念串行通信数据在单条信号线上按位依次传输。优点是引脚少、适合远距离缺点是速度通常低于并行。UART、IIC、SPI都是串行并行通信多个数据位通过多条信号线同时传输。优点是速度快缺点是引脚多、易受干扰、不适合长距离。单工通信数据只能单向传输如广播、红外遥控。双工通信半双工数据可双向传输但不能同时进行如RS485在两线制模式下全双工数据可同时双向独立传输如标准UART使用独立TX/RX线判断半双工和全双工的方法可以从总线条数看出。半双工只有一条总线发送用这根接收也用这根所以发送和接收不能同时进行全双工发送和接收都有一根独立的线互不影响可以同时进行。波特率波特率用于描述UART通信时的通信速度其单位是bps(bit per second)即每秒钟传输的bit数量波特率9600bps代表每秒钟传输bit的数量为9600那么传输1bit数据的时间就是1/9600104us波特率115200bps代表传输1bit数据的时间是8us。UART通信UARTUniversal Asynchronous Receiver Transmitter即通用异步收发器是一种通用的串行、异步通信总线该总线有两条数据线可以实现全双工的发送和接收在嵌入式系统中常用于主机和辅助设备之间的通信。硬件接线UART帧格式其中各位的含义如下起始位发送1位逻辑0低电平开始传输数据。数据位可以是5~8位的数据先发低位再发高位一般常见的就是8位1个字节其他的如7位的ASCII码。校验位数据位加上奇偶校验位1的个数为偶数偶校验高电平1的个数为奇数奇校验低电平。停止位停止位是数据传输结束的标志可以是1/1.5/2位的逻辑1高电平。空闲位空闲时数据线为高电平状态代表无数据传输。如果我们传输数据0X3300110011那么对应的波形就是如下这样因为是LSB在前所以8位数据依次是11001100发送0X33数据帧格式如果再发其他数据再依次循环这个过程即可。UART是异步传输以1个字符为传输单位传输2个字符之间的时间间隔比如传输0X33后再传输0X35这两者时间间隔是未知的。但是同一字符内相邻位间的时间间隔是确定的比如0X33低两位的1和1之间的时间间隔是确定的这涉及到UART传输速率的概念——波特率。RS232通信RS485通信modbus协议https://www.cnblogs.com/resplendent/p/14205080.html