摘 要: 介绍了CDMA 1X网络在自动气象信息远程无线数据采集系统中的应用,描述了系统架构和无线DTU的配置,给出了下位机通信和上位机接收数据管理的软件编程。该系统在江苏省自动雨量监测系统与高速公路自动气象站中得到广泛的应用,具有较大的实用价值和经济价值。
关键词: CDMA 1X;数据采集;无线DTU(数据终端单元)
1 引言
在气象信息采集过程中,大范围多点、快速、准确、可靠地采集气象信息是提高气象预报准确率的重要工作。在站点与站点之间、站点与监测中心之间相距较远的大范围自动气象监测系统中,数据采集站点分布广泛,且多数站点分布于野外、环境较为恶劣,若采用有线网络传输数据,在通信距离、地域条件、组网维护、通信可靠性等方面均存在较多限制。采用无线通信网络实现数据通信是一种切实可行的方案。
CDMA 1X,是在现有CDMA IS-95系统上发展出来的一种新的承载业务,支持TCP/IP、X.25协议。网络“一次连接,长期在线”,并只有在传输数据占用信道时才计费,保持时不计费,这样监测点不用频繁的建立连接,也不必支付传输间隙时的费用。理论带宽可达300Kb/s,目前的实际应用带宽大约在100Kb/s左右(双向对称传输)。可以基于CDMA 1X数据传输业务来组建监测网络。
2 系统构建与工作原理
自动雨量监测系统拓扑结构原理如图一所示,本系统通过自动雨量传感器将检测到的雨量数据通过通过调理电路送给采集板上MCU处理,经处理后的数据以串行通信模式输出到CDMA DTU (Data Terminal Unit,数据终端单元)。DTU由CDMA 1X无线网络经Internet公网连接至用户数据中心,或者由移动运营商的网关(PDSN)经数据专线连接至用户的数据中心。

图一 自动雨量监测系统拓扑结构图
DTU对上建立CDMA无线通信链路,对下提供RS-232/485用户数据接口。对于上位机而言,下位机包括传感器、采集板等可以作为一个无线终端进行操作管理;而对于下位机,DTU则为其建立透明的数据链路。采集板的MCU将采集到的气象数据以RS-232串行模式传送给CDMA DTU,接线示意如图二:

图二 DTU RS-232接线示意图
无线DTU使用前,需对其进行初始化配置,选择适宜的模式。配制可以通过PC机的COM口用Windows超级终端来进行。主要有四个方面:
1、为每一个DTU设定唯一对应的SIM卡卡号,这个卡号可以作为下位机的ID为数据中心所识别、管理。当然也可以自定义ID加入上传数据流中,同样起到识别的作用;
2、根据所需设定通信波特率,根据气象检测实际需要本系统选用1200bit/s;
3、设定上位机数据中心的IP地址,给予数据流指向,这个IP地址必须为静态的;
4、数据中心的通信端口,根据用户自己定义选择开放的端口。
为了最大限度的发挥无线通讯的优势,采用了太阳能电池板+蓄电池的形式为无线DTU和采集板供电。实地试验表明,40W的太阳能电池板夏季一天的光照量可将12V65Ah蓄电池充至额定电压,可供整个下位机系统连续运行12~14天。
3 系统软件设计
3.1下位机软件设计
下位机串口通信编程中,串口初始化时串口设置需与无线模块的配置相同:
void serial_initial(void)
{TMOD = 0x21; //定时器1工作方式2
PCON = 0x00; //数据传输速率选择
SCON = 0x50;
//串口工作方式1,8位UART,可变速率
ES = 1; //允许串口中断
PS = 1; //串口中断优先级
TH1 = 0xE8; //fosc=11.0592MHz
TL1 = 0xE8; //对应于1200bit/s
TR1 = 1; //开定时器1
EA = 1; } //开中断允许
void send_data(unsigned char m_sendDataBuff) //串口向CDMA发送数据函数
{EA = 0;
SBUF = m_sendDataBuff; //从发送数据缓冲区取数并发送
…
do{ }while(!TI);
TI = 0;
EA = 1;}
void readSIO()interrupt 4 //串口响应上位机请求中断服务程序
{ ES = 0;
if(RI)
{ REN = 0;
RI = 0;
m_comData = SBUF;
if(m_comData ==’P’)
…}} //置标志位,响应上位机指令
3.2上位机软件设计
监控中心的数据接收程序基于DTU提供的动态库,可以在VC环境下实现,该动态库包括和DTU通讯所需要的全部API函数,包括服务的启动、数据发送、数据接收、关闭服务等。接收程序需要完成如下几个基本功能:
1、调用API启动服务和停止服务;
2、调用API接收数据和向DTU发送数据,并且对数据作进一步处理;
3、调用API轮询DTU用户列表,如果需要可作进一步处理,包括用户认证等;
其余各项功能均以此为基础进行扩充,如数据入库、下位机数据空间初始化、时钟校验等。
在Windows中可直接调用API函数LoadLibrary装载动态库:
#define MYMESS WM_USER+0x23 //定义用户消息
char mess[512];
HMODULE hDllMudule; //指向动态库的句柄
Int(*start_cdma_server)(HWND,int,int,char *); //定义一个指向函数的地址的指针
hDllModule=LoadLibrary(“cdma_dll.dll”);
If (hDllModule!=NULL) //判断调用是否成功
{ start_cdma_server=
GetProcAddress(hDllModule,”start_cdma_server”); //从动态库取函数地址
if (start!=NULL) //判断是否取到该函数地址
{if((*start_cdma_server)(this->m_hWnd,MYMESS,5002,mess)==0)
MessageBox(“启动成功”);
Else MessageBox(“启动失败”);
}}
程序运行完毕后,要释放动态库,调用函数FreeLibrary可释放动态库:
FreeLibrary(hDllModule); //TRUE-success FALSE-failed
装载动态库后,从动态库中取到要调用的函数地址,取到地址后,就可以执行该函数。如启动服务、停止服务、接收数据、发送数据等。以启动CDMA服务为例:
Int (* start_cdma_server)(HWND,int,int,char *,int itv=0,int trv=30); //定义一个指向函数的地址的指针
start_cdma_server=(int(*)(HWND,int,int,char*))GetProcAddress(hDllModule,”start_cdma_server”);
if (start_cdma_server!=NULL)
{(*start_cdma_server)( 窗口,消息值,服务端口,返回信息);}
气象信息数据选用Microsoft SQL Sever 2000数据库进行管理,还可以选择开放源码的MySQL数据库。依托数据库可实现各种数据分析统计、历史资料查询、灾情预警等功能,具有高度的扩展性。
根据需求,可以建立WEB应用服务器,提供基于浏览器的信息发布,既有图形化界面形象直观,也有动态网页提供用户管理、数据下载、信息互动。可以对地方各级气象机构和公众设定权限,以达到充分利用信息资源的效果。
4 系统安全性、可靠性
系统下位机设置初始化密码,防止未授权的读写、利用。对于数据中心的接入,可以在PDSN与数据中心之间建立L2TP隧道、GRE隧道、VPN虚拟专用通道以增强系统安全性与可靠性。
系统测试期间,因采集点所在地CDMA网络故障,导致通信中断;网络恢复时,无线模块状态没有及时刷新;经现场人工复位后,通信恢复正常,断传的数据也通过上位机指令从采集板存储器中补调回来。针对这种情况,在系统内增添通信状态检测子模块。由上位机定时返回通信状态至采集板,当通信链路出现故障时,上位机告警,采集板在规定期限内没有收到通信状态返回,则以一定周期复位无线模块,通信恢复后上位机自动请求补调缺传的数据。在此基础上又增添了电池电量在线检测等功能。使系统具备了一定的自主修复维护能力,保障了系统运行可靠性。
5 结语
基于CDMA 1X网络的自动雨量监测系统已经在苏北五个地区布置了75个站点,运行了一年时间。同样网络架构的高速公路低能见度预警系统也已使用。
本文作者创新点:利用现行移动通信的网络基础与技术特征,基于CDMA 1X网络构建的无线数据采集系统解决了采集点多、乱、远的数据采集问题,并能够很好的支持高频度、少量突发型数据业务,该系统通信可靠,实时性好,数据采集准确。且运营费用低,系统使用安全、稳定、可靠,具有很好的应用前景。
参考文献:
[1]邹媛媛,赵明扬,曲艳丽等。基于CDMA技术的无线监控系统的研究与应用。北京:微计算机信息,2006年第4-1期,P133-135
[2]杨金岩,郑应强,张振仁。8051单片机数据传输接口扩展技术与应用实例。北京: 人民邮电出版社,2005
[3]谭思亮,邹超群。Visual C++串口通信工程开发实例。北京:人民邮电出版社,2003
[4]H761x HANDBOOK。深圳:深圳市宏电技术开发有限公司。2003
|