基于VxWorks的油井数据采集远程终端的设计
sysclkC20nnect()将函数ticklO ms()映射到Vx-Works的系统时钟中断。系统定时中断周期设定为10 ms。tickloms()函数中判断各任务软件看门狗是否超时。若超时则程序进入死循环,并打印是哪个任务出错的信息,触发硬件看门狗复位。
CDMAconnectTask()通过向CDMA模块发送AT命令建立PPP连接。
timeTask()完成对CPU实时时钟模块的设置与读取。
CDMATask()进程建立与主站的socket连接。
commTask()进程实现远程终端与监控中心的数据包交换,将待发的数据帧打包发送至主站,将CDMA设备数据读人缓冲区,解析主站命令。
commTask430()进程完成ARM与MSP430的数据交换。
dataTask()进程对从MSP430上传的数据进行处理,包括计算采油机臂转动周期,通过负荷数据提取采油机的示功图。
warnTask()实现系统实时告警,告警的类型有:负荷越界、压力越界、温度越界、三相电压各相的越界、三相电流各相的越界以及红外触发。在检测中若越界次数超过参数设定的数值则认为产生一个告警。
pwrWarnTask()进行掉电和来电的报警处理。
3.3 CDMA模块的网络连接建立
终端通过CDMA模块建立PPP连接访问Inter-net,PPP为在点对点连接上传输多协议数据包提供了一个标准方法。PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议,在TCP-IP协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即SLIP。PPP携带了链路控制协议(LCP)、网络控制协议(NCP)。为了使用VxWorks提供的PPP协议栈,在VxWorks中需加入PPP组件,如图5所示。
VxWorks提供了一个类型为PPP_OPTIONS的结构体来描述PPP参数。可通过填写PPP_OP-TIONS结构体并将结构体地址传递给pppInit()函数来实现对PPP参数的配置。初始化成功后PPP在链路层将自身连接到Vxworks的TCP/IP栈。PPP拨号连接建立成功后,所有的VxWorks IP网络设备就可用了。这时:PPP连接对于用户是透明的。
S3C44BOX用AT命令控制DTGS-800 CDMA模块。AT命令是由Hayes公司发明的控制调制解调器的一套命令集,现已成为事实上的标准并被所有调制解调器制造商采用。每条命令以字母"AT"开头。不同型号的调制解调的AT命令有一定的差别。S3C44BOX发送AT命令来建立通行链路,拨号需要用到的AT命令有:
①发起呼叫ATD
为目标号码,该指令在PPP建立之前进行。若返回CONNECT则数据呼叫建立成功。
②控制回显ATEx
控制字符是否回显,x=O则不回显;x=1则回显。
PPP连接建立步骤如图6所示。CDMA_Init()函数填写PPP_0PTIONS结构体并初始化CDMA模块使用的串口。拨号的号码为"#777"用户名密码都为"CARD"。使用VxWorks提供的pppInit()函数完成PPP的初始化。pppInit()的返回值不能指示PPP连接的状态,它仅仅能返回连接是否被成功初始化。要确认连接建立的成功需用pppInfoGet()。当IPCP(Internet协议控制协议)的状态为"OPENED"时表PPP连接建立成功。
4 结 语
从硬件和软件等方面介绍了基于VxWorks的数据采集远程终端的设计和实现。该远程终端的核心架构不仅适用于石油抽油井的远程数据传输与监控,在其他领域也可以得到很好的应用,例如电力监控、远程抄表、工业控制、气象数据采集、水纹监控、水利监控、地震检测、交通信息发布等领域,具有很强的工程应用价值,尤其适用于M2M(Machine to Machine)领域的应用及应用系统的开发。当要作具体应用时,只需要根据具体情况选择相应的传感器并对软硬件做一定的修改即可完成,因此具有广泛的应用前景。
- CDMA2000基带信号发生器的FPGA+DSP实现(05-29)
- 基于VxWorks的系统故障快速恢复设计(01-12)
- 数字WCDMA系统数字频域干扰抵消器方案设计,硬件架构(06-04)
- 基于S3C2410的CDMA无线数据传输方法(12-05)
- STM32 ADC与DMA多通道处理(12-03)
- STM32的ADC DMA USART综合学习(12-02)