利用VB实现PC机与多单片机远程无线通讯
1 引言
随着现代电子与信息技术的不断发展,计算机与单片机控制系统之间的远程无线通讯技术得到了广泛的应用,而数传电台目前已发展成为远程无线通信的一种重要工具,它使用灵活、性价比高,环境适应能力强,非常适用于大范围、分散控制系统及在恶劣环境中,不适于铺设有线网络的实时监控系统,数传电台已成功应用于电力设备监控、计算机实时监控与数据采集(SCADA)以及实时交易数据遥测遥控等领域。同时VB6.0具有界面友好、编程简便高效、数据处理及驱动底层硬件功能强等优点,成为许多用户开发PC机与单片机串行通信程序的首选工具。
本文以美国MDS OEM EL705数传电台为通讯媒体,利用VB6.0的通讯控件MSComm实现了控制中心PC机与多个远端AT89C51单片机控制系统之间远程无线通讯,实现了控制中心PC机对多个远端单元的实时控制与管理,并应用于工程设计中,通过实际应用,取得了满意的效果。
2 系统的组成及工作原理
2.1系统的组成
系统由控制中心和多个远端单元RTU(Remote Terminal Unit)组成。控制中心主要由上位机PC和数传电台组成,各远端单元由数传电台、AT89C51单片机系统及现场设备组成,各远端单元根据实际需要分布在距控制中心一定距离的范围内,控制中心及远端单元结构分别如图1、图2所示。
2.2工作原理
控制中心作为系统的数据终端设备DTE(Data Terminal Equipment),负责实现对远端单片机系统的实时控制与管理,打印单片机系统工作状态信息、自检信息、记录报表信息及远程单片机系统故障报警信息等,并可通过局域网与其它PC机进行信息传递。
PC机与数传电台通过RS232通讯电缆相连接,电台采用连续相位频移键控(CPFSK)调制方式,数据直接启动电台发射,空中无线传输速率为9600bps,端口数据传输速率可根据系统需要设置为1200bps~19200bps。
各远端单元数传电台通过RS232通讯电缆与单片机系统相连接,单片机系统通过固态继电器以离散量的形式控制现场设备。单片机系统(图2虚线框中部分)采用MAX232芯片实现与数传电台之间信号的电平转换,并通过2片8位移位寄存器74LS164和2片74LS373锁存器,实现串行输入并行输出16位开关量,分别控制16个固态继电器的通断,从而控制16路现场设备。单片机系统还有复位、故障报警及高能蓄电池供电等系统。
图1 控制中心结构示意图
图2 远端单元结构示意图
综上所述,系统是以数传电台为通信媒体,组成点到多点的主从式远程无线通信网络系统。控制中心PC机和远端单元之间通过数传电台以同频异步半双工方式进行数据信息传输,PC机通过串口发送信息到数传电台,数传电台通过高频载波信号将控制信息发送给远端单元,收到正确信息的远端单元向控制中心回送正确接收信息,并执行控制命令控制现场设备的接通与关断,从而实现控制中心对各远端现场设备的实时控制与管理。
为实现最大的传输距离并防止各远端单元之间的相互干扰,系统控制中心的电台使用全向天线,远端单元电台使用定向天线,并保证控制中心电台天线高于各远端电台天线的高度。
3 无线串行通信程序设计
3.1通信协议
1、一帧数据位由1位起始位、8位数据位、0位校验位、1位停止位共10位组成。
2、波特率为9600bps。单片机串行口按方式1工作,波特率用定时器T1控制,为得到准确的波特率,单片机采用振荡频率为11.0592MHz的晶振。PC机串口波特率通过VB通讯控件MSComm的Settings属性设置,为保证数据传送的准确性,两者的波特率必须一致。
3、PC机发送的信息为固定5个字节:第1和第2字节分别为远端单元地址信息标志(以AAH表示)和具体地址号(本系统有8个远端单元,可分别编址为 01H、02H、…08H),第3和第4字节为开关量控制信息(第3字节数据信息控制1到8路继电器,第4字节控制9到16路继电器),第5字节为校验码(CheckSum)数据。
4、远端单片机回送的信息为固定3个字节:第1和第2字节为远端单元地址,第3字节为回送的信息,EEH为接收完毕确认信息,FFH为接收出错重发信息等。
3.2远端AT89C51单片机串行通讯程序设计
远端AT89C51单片机采用中断方式、基于MCS-51汇编语言与上位机进行通讯,中断子程序流程图如图3所示。
控制中心上位机PC每次发送控制信息前必须先发送指定远端单元的地址信息,单片机进入数据接收子程序,如果收到的地址与本机地址相同,置接收数据标志位,连续接收上位机发送过来的控制信息。数据接收完毕,开始对控制信息进行校验码确认操作,校验正确则回送上位机确认信息,并对两字节控制数据进行移位操作等必要处理,最后输出开关量并返回中断入口处;若校验错误,回送上位机重发信息。如果远端单片机收到的地址与本机地址不同,程序也返回中断入口处,继续执行其它操作或等待接收新的信息。这样,就确保上位机把控制信息可靠地传给指定的远端单元,各远端单元回送的信息只能被上位机接收。由于每个数传电台时刻处于待机状态(也可以根据实际需要,使电台进入休眠状态等待),所以只有先对远端单元地址进行确认,才能保证在某一时刻只有一个远端单元完全接收了上位机发出的数据信息,避免了不必要的资源耗费。
- PLC串行通讯应用原理(12-21)
- 串行通讯的一些认识(12-19)
- 串行通讯的速率与传输距离(12-19)
- 串行通讯(单片机)(11-24)
- 单片机学习之十八:串行通讯程序:单片机发送(11-18)
- 单片机学习之十九:串行通讯程序-单片机接收(11-18)