摘要:针对无线传输容易发生频段冲突,数据丢包等现象,采用主从分布式、双无线收发芯片、跳频技术及随机延时的思想实现点对多点的无线数传系统设计,提高无线数据传输的准确性、实时性和可靠性。该系统由单片机、主无线模块和从无线模块等组成,具有成本低廉,实现简单等优点。
关键词:主从分布式;点对多点;无线数据传输;跳频技术
0 引言
随着嵌入式技术、集成电路、自动化控制及无线通信技术的迅速发展,各种终端设备之间的联系已经从电线与接口的束缚解放了出来。无线通信技术与有线通信技术相比,有成本低、携带方便、不必穿墙钻孔布线、搭建网络简单快捷等优点。特别是在有线网络不通畅或由于现场环境因素的限制不便架设线路的情况下,使用无线通信技术进行数据采集、传输显得更加实用、高效、快捷。
无线设备间的互连操作随处可见,其核心问题是设备间通信。如何实现一个接收端与多个发送端之间的数据传输以及如何更有效的解决无线通信时的防碰撞问题,本文采用主从分布式、双无线收发芯片、跳频技术及随机延时的思想实现点对多点的无线数传系统设计,提高无线数据传输的准确性、实时性和可靠性。
1 系统的基本结构
点对多点无线数传系统的结构框图如图1所示,由一台主无线模块和多个从无线模块构成,可以实现无线数据的双向传输。每个从无线模块都有独立的CPU,与主无线模块的通信互不影响,不会因某个无线模块的故障而使整个系统失去控制,不仅能提高系统的可用性,更便于维护。
主无线数传模块:负责将外围设备或PC的测控(查询和设置)指令发送给从无线数传模块,并对外围设备返回的应答数据(正常数据)或外围设备主动上传的报警数据(异常数据)进行适当处理(校验、拆包、组包等),通过RS 232总线或RS 485总线传给外围设备或PC。
从无线数传模块:负责将主无线数传模块传送来的测控指令通过RS 232总线或RS 485总线传给外围设备,及将外围设备的应答数据或报警数据传送给主无线数传模块传。
2 系统的硬件设计
无线数传系统的硬件框图如图2所示,本系统采用目前比较流行的低功耗、抗干扰能力强、误码低的射频收发芯片CC1100,51单片机处理器,RS 232总线/RS485总线,电源模块,拨码开关等研制无线数传模块。为避免PC机与多外围设备或外围设备之间的数据碰撞,采用一主多从模式,并在主无线模块上接两片射频收发芯片,其中一片用于正常数据的传输,另一片用于异常或报警数据的传输,保证数据传输的准确性与可靠性。而从无线模块上只接一片射频收发芯片,兼顾正常和异常数据的传输。
3 系统的软件设计
3.1 单片机通信程序设计
在点对多点的无线数传系统中,无线通信软件设计特别重要,软件设计的好坏直接关系到数据通信的准确性及实时性、系统的可靠性等。采用KeilC、汇编语言及C语言相结合开发。用汇编语言编写部分与硬件相关的程序代码,最大限度地发挥硬件的功能,能够根据特定的应用,而对代码做优化处理,从而提高程序的运行速度。软件开发的主体部分用C语言编写程序代码,如频率的设置、资源/重要变量的初始化、数据的解析处理等,具有项目开发周期短、可读性强、可移植性好等特点。
为了避免同频干扰的问题,系统采用时分技术将系统主无线数传模块与任一从无线模块之间的通信采用时分的方式分开,每个从无线数传模块都有一个独立的ID(地址),采用带地址码的数据帧发送数据或命令。
无线数传通信框图如图3所示,其中A:正常操作,指令B:报警数据上传。正常通信时,主无线数传模块通过频段1(正常通道)与从无线模块实现数据的交换,从无线模块只有收到地址域与本身ID相匹配的指令才与主无线模块通信,否则总是处于监听状态。报警通信时,从无线数传模块通过频段2(报警通道)与主无线模块实现数据的交换,此时从无线数传模块需要从频段1跳频到频段2,当报警数据传输完成,再从频段2跳频到频段1,保证正常通信的畅通。
由于有报警数据的主动上传,不可避免的会出现频段冲突,采用“随机延时”防碰撞协议,实现点对多点通信。具体做法:当从无线数传模块上传报警数据后,规定时间内未接收到主无线数传模块的应答,则调用随机延时程序,延时一段时间再发送,否则直接跳频,保证正
常数据的通信。
无线数传模块接收串口数据的处理流程如图4所示,为保证系统能正常运行,任一条指令或数据,在规定时间内未应答,可以重发3次,一旦超过了重发次数,就放弃此条指令或数据,进入下一条指令或数据的通信。
3.2 PC机串行通信程序设计
串口自动测试系统基于Access数据库、VB开发,提供一个C/S结构的测试软件。PC机采用VB软件开发,VB提供了串行端口控件MSComm来为应用程序提供串行通信,该控件屏蔽了通信过程中的底层操作,程序员应用时可以设置、监视MSComm控件的属性和事件,结合Timer控件即可完成对串行口的初始化和数据的输入输出工作。测试系统可检查无线模块收、发处理是否正确,软件功能是否正常等,只需观察计算机保存的测试结果,可实现对无线数传系统的智能测试。
点对多点无线数传模块的PC机端程序界面如图5所示,从图中可以看出,系统具有以下功能:参数设置(串口、数据帧格式);数据接收(接收外围设备传来的数据);数据发送(PC向外围设备发送的数据);数据的保存(将外围设备传来的数据保存在Access数据库中);计算系统的正确率;数据的显示等。
4 结语
本文所设计的一点对多点的无线数传系统,具有良好的准确性、实时性、可靠性。通过实验测得:在空旷传输有效距离最远可达1 000 m;当中间有门或者其他障碍物阻隔时,接收距离会下降,最远可达200 m。在有效距离内,系统传输的正确率能达到99.9%,可靠性较好,完全可以应用于相关测控领域。