现代世界是一个信息世界,信息的获取传输也逐步从有线过渡到无线。随着无线通信事业的发展,无线传输这一技术越来越多的为人们所熟悉,相应的产品也渗透到社会生活的各个领域,而这一技术的作用便是优化数据传输系统的效率。
无线数传也就是我们讲的无线数据传输,又可称为无线数传终端、无线数传模块,他可以用现在我们都知道的GPRS,CDMA这样的通信网络来进行,也可以用专门的无线数传模块来操作,比如ZigBee、微波、WiFi等。现在我们经常见到有关无线的通信方式,归根结底就是传输一个数字信号,传输效果受外界干扰大。无线数传是以无线网络为通信平台,提供标准的RS-232/485/TTL接口,按照工业标准设计,可直接与RTU、PLC、智能仪表、单片机控制器等各种工业现场的下位机设备连接。可以让工业用的RS232/RS485串口设备的串口通信立即转换为GPRS无线网络通信的双向转换数据传输设备。
无线数传为用户提供高速,稳定可靠,数据终端永远在线,多种协议转换的虚拟专用网络。产品支持语音,短信,数据触发上线以及超时自动断线的功能。同时也支持双数据中心备份,以及多数据中心同步接收数据等功能。无线数传可实现用户设备到数据中心远程透明数据通信;提供工业级产品接口,与用户设备即插即用,安装简单、使用方便。
一、远程环境监控系统组成
1、远程环境监控系统概述
图1 远程环境监测系统框图
远程环境监测系统主要是对酸雨,水质,烟雾浓度等环境参数进行集中测量,它是一种由中心站PC机、无线数传模块与子站PC机、无线数传模块、数据采集器、环境测定仪所组成的主从式系统。系统结构如图1所示。
环境监测系统采用模块化设计,可以灵活、经济地实现CO、SO2、氮氧化物等多种参数的测量。模块化设计是将产品的某些要素组合在一起,构成一个具有特定功能的子系统,然后再将这个子系统作为通用性的模块与其他产品进行多种组合,构成新的系统,产生多种不同功能或相同功能、不同性能的系列产品。即模块化先进行系统的分解,再进行组合。采用这种模块化设计思想,用户可以根据实际情况,选用合理的资源配置,实现较高的性价比。
中心站主要位于城市或地区的环境监测总站,子站则在城市或地区的周边。环境测定仪有碳氢化合物测定仪MODEL-745、大气测定仪AFC-125、酸雨测定仪AR-107SNA、COD测定仪VS-3951等,他们收集的各种环境参数通过数据采集器送入子站PC机中,进行数据处理、参数显示和保存,并随时准备接受中心站的查询和定时发送。每一子站与中心站之间的远程通信是采用北京池润达公司的W21DM无线数传全双工通信模块来实现的。
2、 无线数传模块工作过程
图2无线数传模块结构图
图2是无线数传模块结构框图。无线数传模块的工作方式有全双工和半双工两种,为了能充分测试系统传输数据的可靠性,本系统采用全双工模式。同时注意在设置通信时,必须保证通过串行口将无线数传模块的收发频率设置相同。
2.1模块发送过程
当模块收到PC机的串行口数据后,模块先通过DTR线判断收到的数据是命令还是发送数据,若是命令则执行相应的命令,若是发送数据则先将要发送的数据送到发送缓冲区EERAM中,并同时将模块的状态由接收状态转换成发射状态,状态转换完成后启动发送打包程序,并将这个数据包的数据送到模块中的数据调制口以FSK的方式调制成模拟信号, 与锁相环中的振荡信号一起送混频器,升频后的射频信号再经发射放大器、功率放大器放大后通过天线发送出去。
2.2模块的接收过程
在接收状态下,通过天线接收进来的射频信号经射频发大器后,与锁相环中的振荡信号一起送到混频器,降频后的中频信号,通过中频滤波器、中频放大器放大后送到调制解调器,以FSK解调后的数字信号按照协议将有效数据送到存储器中,再经串行口送到计算机。
二、设计系统时需要考虑的一些问题
1、传输协议
因为无线通信模块要对接收进来的数据进行处理,就必须能够鉴别数据的真伪,所以要求传输数据的双方建立一种有效协议使得能够识别噪声和有效数椐。因为噪声是以随机字节出现的,没有明显的结合方式,噪声源可能产生任意字节的组合。
采用了以下的数据传输协议格式:
Radom 任意内容的字节
Data 位数据包字节
Length 为数据包包含的Header字节之后的所有字节的长度
Checksum 校验和字节
经过测试和试验,发现0xFF 后跟0XAA,0x55 在噪声中不容易发生,所以设置传输协议在数据包前加开始字节0xFF后跟0xAA,0x55发送。因为个字节的数椐在发送时容易丢失,所以在协议的开始加一个任意内容的字节,然后是0xFF后跟一个0xAA,0x55;接收协议规定只接收以0xFF 后跟0xAA,0x55 开始的包。
2、传输频率
在无线通信系统中传输频率也是至关重要的,在为划分和合理使用频率,国际电信联盟(ITU)将世界分为三个区,中国属于第三区。这里设定的频段为227.00~223.00MHz,此为国家业余频段,当然如果希望长期专用,则需要申请频谱许可证,专用该频段。
系统中数据的远距离传输是根据接受双方的频率来判断是否接受的。所以需要编写一定的程序完成频率设置。如写频时,把DTR置低,指令格式为:D7H:FFH:AAH:AAH:AAH:BBH:BBH:BBH,AAH:AAH:AAH表示发射频率,如229.100MHz表示为22H:91H:00H三字节,同理BBH:BBH:BBH表示接收频率。而传送数据时,DTR置高或悬空。
3、串行数据的传送方式
由于设计采用的是无线传输,所以当通过串行口将数据送到无线数传模块的时候需要考虑数据的传输格式。一般来说,通常我们发送的是字符或者数字,这时我们就需要在软件中根据ASCII码的规则将他们转化为十六进制数形式,以字节方式传送。
三、串行口通信的软件设计
串口叫做串行接口,现在的PC 机一般有两个串行口COM 1 和COM 2 。串行口不同于并行口之处在于它的数据和控制信息是一位接一位地传送出去的。虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。通常COM 1 使用的是9 针D 形连接器,也称之为RS-232接口,而COM 2 有的使用的是老式的DB25 针连接器,也称之为RS-422接口,不过目前已经很少使用。串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。 RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接外挂程式、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。
结合本设计所采用的硬件的特点,以及实际的运行环境,终选择第三种方式完成串行口通信。
程序流程图如下:
图3 程序流程图
在程序中利用类CserialPort实现负责串口的配置,数据传输的延迟处理以及读写。结构如下:
class CSerialPort : public CWnd
{
public:
CSerialPort();//初始化
void ClosePort();
BOOL ReadByte(char* buff);//读串口
BOOL WriteByte(BYTE bybyte[100],int length);
//写串口
BOOL OpenPort(CString portname);
BOOL SetCommunicationTimeouts();
//设置通信延时
BOOL ConfigurePort(DWORD BaudRate,
BYTE ByteSize,DWORD fParity,
BYTE Parity, BYTE StopBits);
HANDLE hComm;// 用来标识串行口句柄
DCB m_dcb;
COMMTIMEOUTS m_CommTimeouts;
BOOL m_bPortReady;// 串口是否准备好
BOOL bWriteRC;
BOOL bReadRC;
DWORD iBytesWritten;
DWORD iBytesRead;
virtual ~CSerialPort();//释放资源
BOOL OpenPort(CString portname);
BOOL ConfigurePort()
}
其中配置串行口采用DCB结构,BOOL ReadByte(char* buff) 和BOOL
WriteByte(BYTE,int)函数为读写串行口,为了识别操作是否正确,利用BOOL bWriteRC, bReadRC设置成功标志。同时设定DWORD iBytesWritten,iBytesRead确定字节的个数。在收发数据时需要监测串行口是不是准备好,这时就可以检测m_bPortReady的状态。
四、总结
环境监测系统具有采样数据量大,传输距离远,以及环境条件差别大的特点,长期以来数据传输部分一直是人们关注的焦点。以往系统主要采用MODEM和电话机实现远程通信,但由于电话线具有通信速度慢,质量差的缺点,已不能满足现代环境监测的要求。这里应用无线数传模块完成远程数据通信,不仅克服了这些缺点,而且大大改善了该系统的数据传输性能。经终测试该系统不仅可以在条件恶劣干扰大的环境下进行远距离传输,而且数据准确率高,传输速度快。可根据不同需要应用于电力、水利、石油、林业、勘探等领域。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。