引言
数据传输可以有多种方式,既可以用有线方式,如总线传输、串行传输、局域网络传输和广域网络传输等;也可以采用无线方式,如短距离无线传输、无线网络传输等。
FC201是一个微功率无线数据传输模块,载波频率为433 MHz,在ISM频段,使用时无需申请频点。FC201模块提供了3种接口方式,根据用户的要求可分别定义为标准的RS232/TTL/RS485接口。FC201功率无线数据传输模块适用于短距离无线数据传输,无线数据采集,无线抄表,工业遥控、遥测,自动化数据采集系统,以及楼宇自动化、安防、机房设备无线监控、门禁系统等。
1 无线数据传输系统的应用
以智能门禁系统为例,上位机一般采用PC机进行通信和管理,下位机则为单片机控制的智能卡读写器。上位机与下位机之间通过发送与接收机进行无线数据传输。图1是智能门禁系统中无线数据传输系统电路结构原理图。
图1 无线数据传输系统电路结构原理图
2 无线数据传输模块FC201的工作原理
本系统无线数据传输采用FC201/B/E的无线数据传输模块作为网络通信接口。FC201/B/E无线数据传输模块是利用先进的单片机技术、无线射频技术和数字处理技术设计的功率较大、体积较小的模块式半双工数据传输电台,模块的UART连接可实现点对点、点对多点多级组网通信,最多可寻址4 096个用户。上位机与无线数据传输模块连接时,通常采用UART(TTL电平)连接方式,如图2所示。
图2 上位机与无线数据传输
FC201/B/E无线数据传输模块采用双锁相环结构,数据调制采用FFSK方式,工作频率履盖20 MHz,可存储16个收、发信道,用户可根据情况配置使用或由程序控制使用。该模块采用标准RS232接口,可与任何具有RS232接口的设备相连;具有多种通信协议,包容性强;内置软件看门狗,保证电台长期可靠运行。同时,系统中的FC201/B/E采用透明模式通信协议(E协议)。透明模式是为用户完全自定义高层通信过程而设置的一种模式。从用户终端接收的数据不作任何处理发送到空中,从空中接收到的数据不作任何处理转送给用户终端,数据传输模块只起数据传输的作用。FC201/S最适合点对多点的通信方式,这种方式首先要设1个主站,其余为从站,所有站都编一个唯一的地址码(ID码)。通信的协调完全由主站控制,主站采用带地址码的数据帧发送数据或命令,从站全部都接收,并将接收到的地址码与本地地址码比较。若地址码不同则将数据全部丢掉,不作任何响应;若地址码相同,则证明数据是给本地的,从站根据传过来的数据或命令进行不同的响应,将响应的数据发送回去。这些工作都需要上层协议来完成,并可保证在任何一个瞬间通信网中只有一个电台处于发送状态,以免相互干扰。
透明模式下,RS232口的数据流控制是以电台和终端之间的控制信号CTS控制完成的。当CTS信号有效(低电平)时,表示数据发送缓冲区满或此时不能发送数据,用户终端应停止向电台传送数据;当CTS信号无效(高电平)时,表示数据发送缓冲区未满或此时可发送数据,用户终端可向电台传送数据。FC201/B的发送数据缓冲区有效值为72字节,一般情况下,用户终端连续向电台传送72字节数据后,根据CTS信号有效与否判断是否需要暂停发送数据。
E协议是一种全透明的数据传输方式,即无论上层设备采用什么协议,数据结构如何,FC201/E都能正常将数据发送到对方,并且不改变数据的格式,不增加或减少数据位。
3 无线数据传输系统的软件设计
智能门禁系统中,上位机是由系统管理员操作的PC机,下位机是单片机控制的智能卡读写器。
3.1 上位机通信软件设计
图3 PC机通过无线数据传输模块发送/接收数据流程
上位机是以Windows为平台,采用Microsoft公司推出的ActiveX技术实现与无线数据传输模块的串行通信,利用高级语言编程可以很方便地进行调用。这种方法不仅相对较为简单,而且非常实用。
PC机通过无线数据传输模块发送/接收数据的流程如图3所示。上位机通过无线数据传输模块接收来自下位机的数据,主要是智能卡读写器读取的卡号和时间;然后核查该卡号是否被授权,并将核查的结果通过无线数据传输模块传给下位机;同时,将接收到的数据存入相应的数据库中。
根据上述流程,利用高级语言编制上位机无线数据传输软件,操作主界面如图4所示。
主界面的功能包括设置参数、打开/关闭串口、激活/取消无线通信、开始/停止接收和打开其他界面。系统必须在打开串口、激活无线通信、开始接收这3个功能同时启动时才能正常接收数据。
图4 PC机无线数据传输软件操作主界面
启动无线数据传输主界面后,首先要做的工作就是进行参数的设置,也就是设置上位机与下位机进行通信时的端口地址、传输协议、传输速率等参数。设置时单击“设置参数”按钮,系统将弹出参数设置界面。设置完串口通信的基本参数后,按下“确定”按钮将同时启动打开串口、激活无线通信、开始接收功能,系统准备好接收数据。
3.2 下位机通信软件设计
图5 下位机通信接口原理图
下位机是以单片机为核心的智能卡读写器,其任务是将读到的数据通过无线方式传输到上位机,其具体的通信接口原理见如图5所示。下位机采用51系列单片机,单片机与无线数据传输模块之间的串行通信采用汇编语言编程。
图6为单片机与无线数据传输模块的数据发送/接收程序流程。当智能卡读写器读到卡时,即刻将读到的卡号和此刻的时间数据通过无线数据传输模块传输到上位机,由上位机判断该卡号是否有效,并将判断结果回传给下位机,下位机在收到回复结果后根据卡号是否有效采取相应的动作。
图6 单片机与无线数据传输模块的数据发送/接收程序流程
下面介绍单片机与无线传输模块之间的数据发送/接收的汇编子程序部分代码。
(1) 发送子程序
SEND: MOVTMOD,#20H
MOVTL1,#0E6H
MOVTH1,#0E6H
SETBTR1
MOVSCON,#0C0H
MOVPCON,#00H;SMOD=0
CLRTI
MOVR7,#04
MOVR0,#58H
GOUT:MOVA,@R0
MOVSBUF,A
OUT:JBCTI,END1
AJMP OUT
END1:INCR0
DJNZR7,GOUT
RET
发送子程序首先设置定时器1工作在方式2,设置串行口工作在方式3。由于单片机采用的外部晶振频率为11059 2 MHz,所以通过设置定时器的初始值,可以使单片机的串行口以1200 kbps进行传输。其中,R7中存放要传送的字节数,R0中存放要传送数据的首地址。当R7指定的字节数据传输完毕后,单片机自动退出数据的发送,回到主程序。
(2) 接收子程序
与发送子程序基本相同,只是R0中存放的是接收数据存放的首地址。
接收子程序部分代码如下:
RECEIVE: MOVTMOD,#20H;设置定时器1为方式2
MOVTL1,#0E6H ;设预置值1 200/11.059 2 MHz
MOVTH1,#0E6H
SETBTR1;启动定时器1
MOVSCON,#0C0h;设置串行口为方式3
MOVPCON,#00H;SMOD=0
SETBREN
MOVR0,50H
IN:JBCRI,EASD
AJMPIN ;RB8=0,为数据位
EASD:MOVA,SBUF
MOV@R0,A
RET
结语
无线数据传输虽然具备无需连线、机动灵活等优点,但也受到无线数据传输模块的发射功率、障碍物遮挡等因素的影响,传输过程中还会出现误码、乱码等情况。在编程过程中必须考虑到这些因素,提高数据传送/接收的可靠性。本设计以智能门禁系统为例,也可以推广到其他应用系统中。