RS 232串口多方控制的实现
| RS 232串行通讯是各类工程应用中经常使用的通讯方式之一,但其点对点的通讯方式经常会在使用中带来不便。 一般的RS 232通讯应用,经常由一个控制方控制一台设备,或采用菊花链方式连接,根据通讯地址的不同,由一个控制方控制多台设备。但在工程应用中却经常会遇到2台或2台以上的PC机需要控制同一台设备,即由多个控制方控制一台设备的情况,而为受控设备仅具备1个RS 232串口,这时需要有一台能够实现RS 232串口多方控制的设备,本文针对这种设备的其中一种比较先进的设计方法进行说明。该设备不仅成本低,实现方法简单,而且功能可扩展,在工程中具有较强的适用性,能满足多种复杂控制的需要。 l硬件设计 在控制系统中,控制方和被控设备的通讯协议和控制程序是固定的,在设计中不能改变,只能通过一台中间设备,即串口扩展设备,对控制方的命令进行一定的解析处理,从而实现控制方和被控方之间的协调应答。本文选用AT89S52单片机作为串口扩展设备的核心控制器,系统的硬件原理图如图1所示。
系统中把单片机本身的串口作为主串口,用于连接被控设备,另外4个扩展串口,用于连接4个控制方。当多个控制方同时连续发送较多的命令数据时,为了保证对所有数据的完整接收,需要将没有来得及处理的数据做暂时的存储。AT89S52单片机本身带有256 B内置的RAM,在很多情况下并不能满足使用需要。DALLAS公司的DSl225含8 k×8 b非易失性SRAM,可作为外置的扩展存储器件。该器件的读写速度达到70 ns,完全能够满足对数据的即时读写[3]。 2程序设计 2.1数据存储空间的分配 程序设计时,首先应对数据空间进行规划。在该系统中,根据需要,从AT89S52内部8 k的数据存储器中划分出5块区域,做5个FIFO数据队列,每个FIFO队列l 536 B空间,分别用于存储来自5个端口的数据。剩下的512 B作数据存储的备用空间。 2.2 程序模块 程序采用模块化的设计思想,以方便修改、移植和检错。整个控制程序由主程序、中断、命令处理模块、回送处理模块4部分组成,实现原理如下: (1)中断 串行口中断和外部中断,用于接收来自5个端口的数据,分端口将接收到的数据存入对应的FIFO,这里对数据不做其他的判断或处理,尽量用最少的指令完成,减少中断时间。以避免多个串口同时受到大量数据时,发生数据丢失。 (2)命令处理模块 针对控制方端口FIFO,若控制方FIFO中存在数据,根据协议对数据进行判断,直接清除不符合协议的数据;对符合协议的命令数据,判断完整条命令后,通过受控方端口向受控设备转发整条命令,然后清掉FIFO中此条命令,如此逐步清空FIFO。 (3)回送处理模块 针对受控方端口FIFO,若受控方FIFO中存在数据,与"命令处理模块"类似,根据协议对数据进行判断,清除不符合协议的数据,对符合协议的回送数据,判断完整后,同时通过4个控制方端口向控制设备回送数据,然后清掉FIFO中此条命令,如此逐步清空FIFO。 (4)主程序模块 在主程序中,循环判断5个FIFO中是否有数据。若控制方FIFO存在数据,进入命令处理模块,清空FIFO后返回主程序,继续循环;若受控方FIFO存在数据,进入回送处理模块,清空FIFO后返回主程序,继续循环。这样,每个控制方发送的命令,都会在FIFO中有短暂的缓冲,在多控制方同时发送命令时,本设备可分先后将所有收到的命令逐个发送到受控设备,不会因发生冲突而造成数据丢失。对于受控设备回送的数据,一般包含了工作状态及配置等信息,需要同时回送到各个控制设备,使各个控制设备能够及时做相应的调整。 3功能扩展 按照上述方法设计的该系统不仅适用于多控制方控制一个串口情况,还可根据工程中遇到的各种需求进行功能扩展。 (1)一个控制设备和多个受控设备 虽然,若被控的受控设备提供的通讯协议包含地址,可通过菊花链方式分别控制,但在工程应用中有相当多的设备协议中并不包含地址。如果要实现分别控制,可使用本设备,对每个下位端口分别分配一个虚拟地址,在命令处理模块中加入地址判断,使收到的命令仅向对应地址的下位端口发送。 (2)多个控制设备和多个受控设备 在这种情况下,普通的连接方法不能满足多设备之间协调通讯的需要。若使用本设备,只需在命令处理模块和回送处理模块中,修改相应的端口数目即可。控制方和受控方的功能不变。 (3)在控制设备和受控设备中存在着多种不同的通讯协议。此时,可利用本设备,添加协议转换模块,使之具备多种协议的解析功能,在收和发之间进行对应的协议转换,这种方法,比工程中通常采用更改控制设备的控制程序的方法更简单、方便。 (4)上述几种情况并存。尤其是控制设备与受控设备协议不同,而多个受控设备协议没有地址,且需要分别控制时。本设备也可对每个受控方端口分别分配一个虚拟地址来实现分控,并在收发中间进行通讯协议的转换。 4 结 语 本文设计的串口扩展设备,不但成本低、设计简单,而且可满足工程上串口应用的多种不同需要,具有较高的使用价值,对工程技术人员具有一定的参考意义。 |

