今天主要讲常用的串口通信RS422也称“平衡电压数字接口电路的电气特性”。它是一种为改进早期RS-232标准缺点而设计的串行通信接口通过差分信号和全双工通信实现了更远距离、更高速度和更强的抗干扰能力。是用一对名为A和B的双绞线之间的电压差来代表逻辑“1”或“0”。逻辑“1”A线电压高于B线电压差在2V至6V之间。逻辑“0”A线电压低于B线电压差在-2V至-6V之间。接收灵敏度高接收器可以识别低至±200mV的差分电压抗干扰能力极强全双工通信四线制RS-422的发送和接收通道是物理上独立的分别使用两对双绞线TXD/- 和 RXD/-。这意味着数据可以同时进行发送和接收像打电话一样双向交流。传输距离与速率传输距离和速率成反比可以根据实际需求灵活取舍。最大传输距离约1200米4000英尺此时速率通常为100 kbps。最大传输速率10 Mbps但只能在很短的距离如10米内实现。网络拓扑与节点数RS-422支持点对多的通信架构。在一个RS-422网络中只有一个设备可以作为主发送器但它可以同时驱动多达10个接收设备。配置一个串行通信端口需要注意以下5个核心参数1. 波特率 (Baud Rate)这是最重要的参数表示每秒传输的符号码元个数。对于串口来说通常就等于每秒传输的比特数bps。它决定了通信的速度。常见值9600、19200、38400、115200最常用。关键点通信双方的波特率必须设置完全一致。如果一方是9600另一方是115200收到的数据全是乱码。2. 数据位 (Data Bits)这是指每个数据帧中实际包含的数据字节长度即发送一个字节Byte用多少位来表示。常见值7位或8位。关键点现在绝大多数应用都使用8位因为一个字节正好是8位能完整表示0-255的ASCII码和二进制数据。7位主要用于早期的纯文本通信如ASCII现在已很少见。3. 停止位 (Stop Bits)这是指每个数据帧发送完毕后插入的间隔位用来告知接收设备“这一帧数据结束了”。常见值1位、1.5位、2位。关键点现在绝大多数应用都使用1位停止位。更长的停止位如2位相当于增加了间隔时间常用于速度较慢的老式设备给接收端更多时间准备处理下一帧数据。4. 校验位 (Parity Bit)这是指在数据位后面增加的一个用于简单检错的冗余位用来判断传输的数据是否发生了错误。常见类型无校验 (None)最常用。不添加校验位效率最高错误检测交给上层协议处理。奇校验 (Odd)保证这1位加上数据位中“1”的总个数为奇数。偶校验 (Even)保证这1位加上数据位中“1”的总个数为偶数。标记位 (Mark) / 空格位 (Space)校验位固定为1或0几乎不用。关键点通信双方的校验方式必须一致。现代的嵌入式设备和电脑通信绝大多数都设为“无校验”。5. 流控制 (Flow Control)这是指用于协调发送和接收双方速度的机制防止接收方因处理不过来而丢失数据。常见类型无流控制 (None)最常用。双方默认都能及时处理数据不进行额外的手握。硬件流控制 (RTS/CTS)通过额外的物理信号线请求发送/允许发送来控制。接收方准备好了才给对方发信号让对方发送。软件流控制 (XON/XOFF)通过发送特定的控制字符如Ctrl-S暂停Ctrl-Q继续来控制数据流。这会在数据中引入特殊字符可能干扰二进制文件传输因此不常用。关键点绝大多数情况都设为“无流控制”。如果硬件支持且连接了对应线缆可开启硬件流控以获得更可靠的传输但配置也更复杂。常见的配置波特率 115200数据位 8停止位 1校验位 奇校验流控制 无