RS232 通信程序的设计 本章先介绍串口通信的基础知识,之后将重点介绍一个通过串口配置寄存器的一些代码。 1. 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 中,还有一个波特率的概念。所谓波特率,在这里指单位时间内传送二进制数据的位数,以位/秒为单位,是衡量串行数据传输快慢的重要指标。如果某串口的波特率为 115200,指的是该串口以 115200bits/s 的速率在传输数据。 2. 设计需求 在接下来的章节介绍的是一个通过 RS232 接口配置寄存器的设计,它是某项目的其中一部分,这部分电路用于配置 IP 地址等参数。在我们这个演示程序中,为了简单起见,我们只设置了几个寄存器。 设计输入输出信号如表 5-1 表示。 表5-1 端口列表 信号名 方向 功能 clk I 时钟信号 rst_n I 全局复位信号 rs232_din I RS232 串行输入信号 rs232_dou t O RS232 串行输出信号 cpu与外部的信息交换统称为通信。基本的通信方式有两种: (1)并行通信--...