2系统的硬件构成

根据系统的总体要求,构建了如图1所示的硬件平台。

整个系统采用RS485总线结构,RS485为差分平衡数字通信方式,具有较强的抗干扰能力,广泛应用于远距离数字通信。RS485和RS422A总线最大的区别是RS485可以单工双向传输,而RS422A只能单向传输数据,在本系统由于存在大量单片机,如果使用RS422A,电缆会增加一倍。另外,由于标准的RS485链路只可以连接32个设备,故每个转换器上要增加驱动器。目前PC机上已经很难找到串口了,故PC机与RS485总线之间采用PL2303芯片进行桥接。PL2303为Prolific公司产品,可以很方便地将USB接口转换成标准RS232电平,用户根本不用关心复杂的USB协议和规范,在PC端的软件编程中,只需像标准com口一样使用USB口,因为Prolific公司提供的驱动中,已经将该USB口模拟成了一个标准的com口了。该芯片最高速度可以达到115200b/s,极大地方便了普通串行通信与PC机的连通。复位监视与读写转换电路也是一个单片机,不过该单片机只完成两个功能。一个是就是接收RS485总线前的PC机TXD(RS232端的TXD)发出信号,一旦出现PC机发出的全局复位串行代码后,立即产生一个全局复位信号,将所有单片机进行复位。该功能就是为了防止某个单片机出现故障,一直意外占用总线,导致整个系统瘫痪。


[!--empirenews.page--]


为了实现RS485的半双工通信,必须有一个方向切换控制信号,如图2所示。在单片机端,这个控制信号很容易获得,引出一个I/O脚,即可在单片机程序中控制该信号的切换;但是PC机端的RS485的切换就相对比较麻烦,这也是复位监视与读写转换电路完成的另外一个重要功能:读写转换。如果PC机要占用RS485总线,则发送一个特定的串行码,该专用单片机接收并响应该串行码,切换RS485控制器,开始占用485总线并发送数据,如果PC机结束发送数据,则要同时发送一个特定的串行码,通知该专用单片机,进行相应的RS485切换。单片机及其附属电路组成了相关的功能电路。



主单片机采用了Silicon公司的8051F020型增强型单片机。该单片机最大的优势是内部集成的模拟电路功能较为强大、单片机运行速度快、程序编写-烧写-仿真较为方便。

3系统的软件构成

软件分为3个部分:PC机上位机程序、单片机通用程序和专用单片机程序。专用单片机的程序运行在复位监视与读写转换电路中,该程序较为简单,就是在上电后,一直按照约定的波特率和数据格式接收PC机送出的串行数据,若得到的数据符合约定的复位格式,则送出复位信号;若接收到的数据符合总线切换的格式,则送出相应的切换信号。PC机上位机程序比较复杂,可以根据用户的实际需要,编写相关的应用程序。在本文中,采用Delphi编写了应用程序,实现了对单片机群的参数设置、状态调整、信息反馈和系统控制。

单片机通用程序分别运行在100多个单片机上,是实现系统功能的基础。图3为单片机程序流程图。



单片机初始化后,接收PC机送来的初始指令,然后开始运行主程序,执行单片机的主功能。同时开放串行接收中断,一旦接收到PC机发来的指令,就进行对比判断,如果是PC机对自己的点名,则响应PC机的回送指令,开始占用总线,向PC机传送数据,结束后向PC机发送结束状态字,结束占用总线,回到主程序,同时等待接收串行数据。