>
首页 » 业界动态 » 基于CDMA 1X的嵌入式土壤墒情数据无线采集系统设计

基于CDMA 1X的嵌入式土壤墒情数据无线采集系统设计

作者:  时间:2007-11-17 11:20  来源:

引言

土壤墒情(温度和湿度等)是重要的土壤信息,是农作物和树木生长的重要生态因素,进行森林土壤墒情的测定,掌握土壤墒情变化的规律,对森林生态状况的监测和预报具有重要意义。随着计算机技术的不断进步和智能化测量技术的飞速发展,嵌入式系统已成为各类数据采集系统的优选设计方案,同时,基于CDMA 1X的无线数据传输又使嵌入式数据采集具有了高可靠性和高智能化等优点。

CDMA 1X是在现有CDMA IS-95系统上发展起来的一种新的承载业务,它支持TCP/IP、X.25协议,可在网络上实现“一次连接,长期在线”,而只有在传输数据占用信道时才计费。目前的实际应用带宽大约在100 Kb/s左右(双向对称传输),非常适用于森林土壤监测数据的无线传输。

本文所描述的土壤温湿度采集系统就是一种建立在基于嵌入式32位ARM处理器平台以及CD-MA技术上的森林土壤墒情智能监测系统,通过该系统可以实现远程无线数据采集。

1 系统组成与工作原理

本系统具有森林土壤温湿度数据的查询、存储、定时上报和告警(火灾或水灾)等功能。整个系统由温湿度数据采集和数据接收两部分组成,采集系统由数据采集模块、CDMA模块和电源模块构成;数据接收系统由服务器、显示控制计算机及监测服务器组成。通过系统中的土壤温湿度传感器可对检测到的数据通过CPU进行处理,并以串行通信模式输出到CDMA的DTU (DataTerminal Unit,数据终端系统),再通过DTU由CDMA 1X无线网络经Internet公网连接到数据接收系统。这样,只要有CDMA网络信号的地方就可进行无线数据的采集和传输,因而应用地域非常广泛。对于上位机而言,下位机(包括传感器、嵌入式数据处理器和DTU等)可作为一个无线终端进行操作和管理。嵌入式CPU在初始化CDMA无线模块后,即可使之附着在CDMA网络上,并通过拨号过程(号码、用户名、密码)建立PPP连接,以获得网络运营商ISP动态分配给数传终端的IP地址,并与服务器固定IP之间建立Socket链接。一旦该链接成功,数传终端即可通过RS232串口向采集系统收、发数据或指令。由于该数据采集系统设置在森林里,故采用太阳能电池板+蓄电池的形式来为采集系统供电。

采集系统软件模块主要包括操作系统移植、主体程序设计模块和A/D转换微处理器程序设计模块.接收系统软件主要包括上位机、服务器应用界面和数据库等软件。

2 硬件电路设计

本系统中的数据采集系统结构如图1所示,它主要由采集控制模块、CDMA DTU传输模块、模数转换模块和电源等几个部分组成。

2.1 采集系统控制模块

CPU控制器是整个采集系统的核心。考虑到双串口性能和高速传输需要,系统中的嵌入式CPU选用ATMEL的低功耗32位RISC微处理器AT91SAM9261芯片作为MCU模块的处理器芯片,该处理器具有独立的16 KB指令和16 KB数据cache,以及全功能的MMU虚拟内存管理系统。同时具有DSP扩展功能的指令集和丰富的外部接口,可工作在180 MHz频率下其运算速度可达200MHz,能够满足系统工作要求。AT91SAM9261通过串口1直接与DTU模块相连接,可完成对DTU的模块初始化和基于CDMA的数据收发。SDRAM用于系统运行时暂存操作系统和有关数据,为提高系统的运行速度。设计中选用两片32 M×8位的外扩64 MB的SDRAM存储器MT48LC16M16A2-75B,存储空间分配到AT91SAM9261的NCS1(0x20000000)地址空间。FLASH ROM主要用于存放引导程序、操作系统内核和应用程序代码,本设计中选用两片16 M×8位的外扩32 MB的ROM存储器E28F128,存储空间分配到AT91SAM9261的NCS0 (0x10000000)地址空间。

2.2 CDMA DTU传输模块

系统中的DTU对上可建立CDMA无线通信链路,对下可提供RS-232用户数据接口,CDMA数据传输终端选用CDMA Modem模块MG801A,该模块是中兴通兴公司推出的一款基于高通MSM5105的移动式Modem,它内嵌TCP/IP协议栈,支持最高达153.6 kbit/s的数据吞吐速率。该器件为工业级芯片,具有良好的稳定性,其优点是可直接提供RS 232/422/485接口,能为用户的数据设备提供透明、全双工和对等的数据传输通道,而且开机就能自动附着到CDMA网络上,并与数据接收系统建立通信链路,以便随时收发数据;DTU使用前,需对其进行初始化配置,并选择适宜的模式;其主要配置是为每一个DTU设定唯一对应的SIM卡卡号,这个卡号可以作为下位机的ID来为数据中心所识别和管理;而设定通信波特率则可根据森林土壤温湿度检测的实际需要来进行,本系统选用1200 bit/s;然后应设定上位机数据中心的IP地址,并给予数据流指向。

2.3 模数转换模块

土壤的温湿度模拟数据须经模数转换才能输入到嵌入式CPU进行处理,数据采集处理器必须具有丰富的外设接口资源和足够高的运算速度才能满足系统的紧凑性和实时性要求。本设计选用CYGNAL公司的C8051F020作为数据采集的处理器,C8051F020的ADC0为增益可编程的12位逐次逼近型A/D转换器,且自带8路外部模拟量检测通道。为了满足系统对不同深度土层的湿度测量,本系统外加了4片单16/双8选一模拟开关DG407来与C8051F020的ADC0相连接,以对每路模拟量进行巡回检测。鉴于C8051F020的I/O口资源问题,本设计中选用了4片16位并/串转换器74HC674并采用相级联的方式来完成可能多达64个采集点的采集。C8051F020自带两个增强型串口UART0和UART1,设计中将UART0作为与CDMA模块的接口,UART1作为预留的扩展口。考虑到C8051F020与AT91SAM9261之间的数据交换量较大,本设计选用一片2K×8位的双口RAM芯片CY7C142来作为两者之间的数据交换缓冲区。

2.4 电源模块

本数据采集系统使用12V/40AH的铅酸免维护蓄电池供电。白天,太阳能电池通过充电器对蓄电池充电。太阳能电池的额定功率为34 W,输出电压17 V,输出电流2 A;充电器过压和过流保护点分别设置为17.5 V和2.5 A,超过此值则停止充电,一般夏季七个小时就可充满,蓄电池可连续供电六天以上;系统中的嵌入式CPU有两种工作模式。其一是在正常工作模式时执行定时采集子程序;其余时间,CPU则进入节电的睡眠工作模式,但可随时唤醒以接收采集指令;为了防止雷击,系统在太阳能电池上方设置了避雷针。

3 软件设计

3.1 数据采集系统的软件设计

当采集系统接收无线控制命令后,便可通过I/O模块定时执行数据采集指令并发送采集的数据。本采集系统的软件流程如图2所示。

3.2 设备访问和静态加载

与硬件连接有关的驱动程序arinc.c定义如下:

#define ARINC_PHY_START、0x40000000 ∥AT91SAM9261的NCS3地址空间

#define ARINC_PHY_SIZE SZ_4K ∥ACEXEP1KS0的RAM空间

#define DEVICE_NAME“ARINC”

#define ARINCRAW MINOR 1

#define ARINC_Devfs_path “arinc/0”

static int arincMajor=0;∥使得系统可以随机给ARINC总线接口分配主设备号

定义了驱动程序之后,即可在…/drivers/char目录下的config.in中增加如下代码:

bool′support for arincdrive′CONFIG_AR-INCDRIVE

这样,在运行make menuconfig (或xconfig)后。就可在内核配置的字符设备选项里看到已经添加了‘support for arincdrive’选项,此时,驱动程序arinc.c已经被添加到了Linux内核中。

完成上述步骤之后,即可将arinc.c复制到…/drivers/char下,并在…/drivers/char目录下的mem.中的int chr_dev_init()函数中添加如下代码:

#ifdef CONFIG_ARINCDRIVE

init_arinc ();

#endif

最后,应在…/drivers/char目录下的Makefile中添加如下代码:

3.3 数据接收系统的软件设计

数据接收系统由控制计算机及通信服务器等构成。其数据接收程序可以根据DTU提供的动态库来完成,并可在VC环境下实现。CDMA Server和DTU之间的通讯可使用开发包中的动态库wcomm dll.dll。该文件包括了和DTU通讯所需要的全部API函数,包括服务的启动、数据发送、数据接收和关闭服务等。CDMA Server与IOServer的通讯则基于SOCKET编程,并采用TCP/IP协议进行传输,但需要设置端口和IP地址,以便IOServer通过此端口和IP地址与CDMA Server建立通讯。CDMA Server是整个系统的通讯枢纽,可实现与IOServer和DTU的通讯。OPC Server与DTU的通信设计是基于开发工具包的用户程序接口,即动态链接库cdmagpr s.dll,如:

stop gpr s server:停止服务;

do send user data:向DTU发送数据;

do close one user:关闭一个DTU终端,令其下线;

do read proc:读数据,层服务接收到DTU发送的数据后。会向启动服务函数中指定的DSC的窗口发送消息,该窗口中的消息响应函数应立即调用读数据函数将DTU发送过来的数据读出;

start gpr s server:该函数用于启动底层服务,服务启动后才能和DTU要讯;启动该服务后,主窗口要有响应消息的函数,以和底层服务通讯;

do close all user:关闭所有的在线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 (“启动失败”);

}}

动态库装载后,可从动态库中取出要调用的函数地址;取到地址后,就可以执行该函数以实现启动服务、停止服务、接收数据、发送数据等功能。土壤墒情数据库可选择开放源码的MySQL数据库,也可以选用Microsoft SQL Sever 2000数据库,两种数据库都可扩展,可用于实现数据分析、历史数据查询、火灾和水灾的预警等功能。

4 结束语

本文介绍了一种基于CDMA 1X的嵌入式森林土壤温湿度数据采集方案。该系统具有很高的可靠性和实用性。使用时,用户也可根据实际需要对相关模块进行裁减和组合,因此,基于CDMA1X的嵌入式无线采集系统,作为一个发展方向,具有广阔的应用前景。

相关推荐

Sprint选择u-blox为首选模组供应商以长期支援CDMA网路部署

Sprint  u-blox  CDMA  3G  2013-04-26

高通下注中国市场:放下身段进军低端市场

高通  手机  CDMA  2012-12-26

中兴通讯断臂求生再卖子公司

中兴通讯  CDMA  3G  2012-11-19

中电信收购CDMA网络为降高额租赁费

CDMA  网络  2012-08-24

华为年收入破2000亿直逼龙头爱立信

华为  CDMA  2012-04-26

中国电信携手高通共绘无线未来

高通  3G  CDMA  2012-01-19
在线研讨会
焦点