RS232 通信程序的设计 本章先介绍串口通信的基础知识,之后将重点介绍一个通过串口配置寄存器的一些代码
RS232 基础 RS232 是一种异步串行通信接口,由于它比较简单,在工业中使用相当广泛
虽然我们常说 RS232 程序设计,但是 RS232 只是一个物理层的标准,只规定了信号物理特性,链路层的协议是 UART,而我们所说的 RS232 接口的逻辑设计主是指这部分的内容
数据位起始位停止位12654378奇偶校验位空闲位 图5-1 UART 的帧格式 图 5-1 给出了 UART 的帧格式
在线路空闲的时候,主设备将发送”1”;在通信时,主设备需要先发一个起始位”0”,以表示通信的开始;然后开始发送有效数据;之后再传送一比特的奇偶校验值;最后发送停止位”1”,以表示当前通信的完成
其中,数据可以事先约定为5 位、6 位、7 位或者 8 位;奇偶校验位根据事先约定由对数据位按位进行异或或者同或而得到,它不是必须的
PC 上的 RS232 接口有多个引脚,如果使用 Modem 的话需要将所有管脚都接起来,但是如果在其它情况下,则可不需要控制信号,只需要将通信两端的收发、电源和地相连即可,如图所示
MODEMMODEM计算机或终端22432172086保护地发送数据接收数据请求发送清除发送DCE就绪载波检测DTE就绪振铃指示信号地保护地发送数据接收数据请求发送清除发送DCE就绪载波检测DTE就绪振铃指示信号地计算机或终端2243217208655 图5-2 使用 Modem 的 RS232 连接图 计算机或终端217保护地发送数据接收数据信号地发送数据接收数据计算机或终端32173 图5-3 不使用 Modem 的 RS232 连接图 另外,在 RS232 中,还有一个波特率的概念
所谓波特率,在这里指单位时间内传送二进制数据的位数,以位/秒为单位,是衡量串