数据采集监测模块(精选7篇)
数据采集监测模块 篇1
目前, 石油、化工、制药、冶金等企业有大量的凉水塔风机、引速风机及特种风机在使用, 有些风机无监测仪表 (尤其是凉水塔风机) 或者有一些简单的就地监测仪表。长期以来, 由于运行环境恶劣、监测和维护手段不完善, 风机不断地出现减速器断齿、轴承烧毁、传动轴弯曲、联轴器膜片损坏、甚至叶片断裂等故障。而风机的运行对于这种企业来说十分重要, 因此必须加强监测、诊断、管理, 研制新一代的集本地监测、远程监测、远程诊断与分析为一体的监测诊断系统非常有必要, 市场需求量大。
其中, 基于MAX1320的风机监测仪就是此监测诊断系统很重要的一部分, 其关键部件是模/数转换芯片。MAXl320是Maxim公司推出的并行14位8通道同步采集的A/D转换芯片, 非常适合应用于风机的转速、加速度、位移、工艺量等的数据采集。这里介绍了一种基于ARM7风机监测仪的数据采集接口方案, A/D芯片就是采用MAX1320, 该监测仪的处理器采用Philips公司的LPC2290。
1 MAX1320概述
MAX1320是一种8输入通道、14位高速模/数转换器, 具有独立的采样/保持 (T/H) 电路为每一通道提供了同时采样。该器件具有先进/先出 (FIFO) 功能可减少接口开销, 并可在转换结束或转换之间读取转换结果。
1.1 引脚及其特征
引脚及其特征如下:
CH0~CH7:为8路模拟量输入口。
D0~D13:为14位并行数字输出, 其中D0~D7为双向数据线。
CONVST:转换启动信号。CONVST低电平时跟踪获取模拟信号, 上升沿时启动转换。
ALLON:通道使能输入。该引脚接高电平使能开通所有的输入通道 (CH0~CH7) , 接低电平则只有被选中的通道才进行A/D转换。
SHDN:掉电输入引脚。SHDN=0选择正常模式, SHDN=1选择掉电模式。
1.2 MAX1320工作过程
MAX1320共有8个模拟输入通道, 可通过寄存器的设置选择使用。当ALLON设为低电平时, 设置寄存器选择打开通道, 同时拉低
2 MAX1320在风机监测仪数据采集中的应用
该风机监测仪是基于ARM7处理器的, 处理器采用Philips公司的LPC2290。其数据采集部分硬件框图如图2所示。
实际的风机监测仪根据不同时段不同要求可选择性地同时测量多路的信号输入, 所以这里置引脚ALLON要接地, 根据要求写配置寄存器, 开启需要开通的通道, 不用的通道就关闭, 使其降低功耗。因为考虑到此监测仪所使用的环境比较恶劣, 如果使用外部时钟, 则输入的时钟信号容易被干扰, 从而导致整个数据采集模块不稳定, 所以使引脚
3 MAX1320外围模拟电路的设计
3.1 模拟输入电路
工业风机监测仪监测最常见的测量信号参数就是风机轴振动加速度、速度、位移。此监测仪可连接加速度传感器、速度传感器、位移传感器, 具体模拟部分电路方框图见图3。图3中接入的就是ICP加速度传感器, 且只是一组ICP模拟输入, 它分为ICP_V (垂直方向) 和ICP_H (水平方向) 的两路输入, A_V, A_H, V_V, V_H, S_V, S_H分别为加速度、速度、位移的垂直方向和水平方向输出。如果使用速度传感器, 则第一级输出的是速度, 第二级输出的位移, 第三级电路没意义。如果用位移传感器, 则第一级输出的是位移, 第二, 三级电路没意义。低通滤波电路和积分电路所使用的运算放大器都是用集成芯片MAX4164, 它集成了4个低功耗运算放大器。低通滤波电路是采用二阶低通滤波, 对于普通的一阶低通滤波电路, 增加了RC环节, 加大衰减斜率, 使滤波效果更好。积分电路是最典型的积分运算电路, 在输入端加一个1 μF的电容是为了滤掉直流分量, 在积分电容上并联一个电阻是防止低频信号增益过大和积分漂移所造成的饱和或截止现象, 大小一般大于等于输入电阻的10倍以上。可编程放大器采用LTC6911-2, 它是一种两匹配可编程放大器集成芯片, 可通过对3位可编程接口G1, G2, G3写值从而得到0, 1, 2, 4, 8, 16, 32, 64输出放大倍数。
3.2 多路选择电路
用于工业现场的风机监测器的模拟信号输入一般都多于8路, 所以可以在MAX1320的8通道输入外加上多路选择电路, 该监测仪用CD74HC4052来组成多路选择电路。CD74HC4052是一个双电源输入, 四组通道选择芯片, 通过选择S0, S1, 可以使输出四组中的任意一组, 最大模拟输入范围在±5 V。
4 实验调试
4.1 程序设计
MAX1320的底层驱动程序是在集成开发环境ADS1.2开发的, 其中A/D转换软件流程如图4所示。
在实际应用中为了能控制 ADC 的采样频率, 该设计使用定时器对A/D 整个采样、读取数据的过程进行行定时操作, 从而使监测仪能根据现场的各种要求改变采样频率。这其中对于A/D转换的软件设计, 就有所改变:当要使用比较低的采样频率时 (100 Hz~5 kHz) , 定时的时间就比较长, 因为本监测仪的软件设计是基于μC/OS-Ⅱ嵌入式系统下, 所以使用定时器中断方式, 这样就会避免在采样这个任务里一直等待定时的到来, 降低多任务操作系统的运行效率。把采样, 读取数据整个过程放在中断服务程序, 当定时时间到时, 就立刻跳到中断服务程序里执行采样读取操作, 然后再跳出中断程序, 继续执行主程序后面的操作;当要使用比较高的采样频率时 (5~40 kHz) , 因为定时时间很短, 所以可以用查询方式, 一直查询定时器中断标志位, 当中断标志位置位时, 就执行采样读取操作。
4.2 实验测试
采用内部时钟, 并使8通道都开通, 通道0~7都输入1 kHz的正弦波 (峰峰值为2 V) , 把MAX1320的D0~D13与的LPC2290的D0~D13接起, 其他的对应的引脚根据图3连接起来, 启动A/D转换, 因为8个通道的数据都一样, 所以只读取通道0转换后的数值, 结果如表1所示。
以上测试结果数据是采样1 kHz正弦波1个周期的采样点数值, 一共采样38个点, 其中正值部分采样点有19个值, 负值部分采样点也有19个值, 表1只列出其中一部分具有代表性的值。把这些采样点在坐标上标出, 就可以还原出输入的正弦波。通过示波器可以看到实际跟踪捕获信号和采样信号所用的时间和理论值基本相同。但是, 等待
(1) 可以把
(2) 可以提高CPU时钟周期或减少读写操作所占用的CPU周期数。
5 结 语
一般通用类ICP传感器的输出信号频率在0.5 Hz~6 kHz之间, 经过低通滤波后把一些高频噪声滤掉。通过上面的实验测试结果以及示波器测出的采样时间 (0.3 μs左右) 和转换时间 (3.7 μs) 可知, 8个通道同时工作时, 采样转换总时间是4 μs左右, 所以可以算出每个通道的吞吐量大概是250 kS/s, 这样完全能满足现场风机监测仪数据采集的要求。
摘要:提出工业风机监测仪数据采集模块设计的一种新方案, 主要由Maxim公司最新推出的一种14位8通道同步采样ADC-MAX1320和Philips公司推出的ARM7处理器LPC2290构成。其中介绍了MAX1320的主要性能特点及其在工业风机监测仪数据采集中的应用;MAX1320的8通道外多测点选择电路, 模拟部分电路, 分析它与LPC2290的接口。通过试验已验证其具有很好的可靠性和稳定性, 具有很强的实用价值。
关键词:MAX1320,LPC2290,同步采样,传感器
参考文献
[1]周立功, 张华.深入浅出ARM7-LPC213x/214x (上册) [M].北京:北京航空航天大学出版社, 2005.
[2]孔五阳, 徐群.MAX1320在同步向量测量中的应用[J].微计算机信息, 2007 (2) :290-291.
[3]潘小波, 吴彩林.MAX1320及其在电能质量监测仪数据采集中的应用[J].应用天地, 2007 (9) :62-64.
[4]Anon.MAX1320 Data Sheet[Z].2004.
[5]Anon.LPC2290_en[Z].2004.
[6]童诗白, 华成英.模拟电子技术基础[M].3版.北京:高等教育出版社, 2001.
[7]李佳.ARM系列处理器应用技术完全手册[M].北京:人民邮电出版社, 2006.
数据采集监测模块 篇2
近年来,ZigBee技术被广泛应用于无线环境监测[2]。但是针对冷链运输监测的集中监管、局域分布、整体流动的特点,需要开发比ZigBee方案功耗更低、更能适用于冷链运输环境的系统方案。为此,笔者设计了冷链运输监测系统,系统基于ARM芯片,采用GPRS和无线自组网技术,自定无线网络协议,对冷链运输过程进行远程监控。
1 系统总况
冷链运输具有分散和流动的特点,冷链车厢内温度低、基础设施少并且运行路程长。系统需要具备长时间的连续监测功能;在人力资源缺少的情况下,能自主地进行各测试点的绑定与监测;需要足够完善的数据库,并由服务器集中进行监控和报警。
笔者设计的冷链运输监测系统(图1)由数据采集模块、数据汇转模块和服务器组成。数据采集模块负责采集温度和湿度,与数据汇转模块进行无线组网,周期地上报温、湿度信息;数据汇转模块是系统的信息中转站,上行与服务器通信,下行与数据采集模块通信,收集各采集点的温/湿度数据,对数据进行存储、处理并上报,同时监视运输车辆的路线,每辆运输车安置一个数据汇转模块;服务器负责发送命令,接收并存储数据,发送报警信息,用户可以通过客户端访问服务器上的操作界面。
2 数据汇转模块
2.1 硬件
数据汇转模块主要由主控制器、无线传输模块、GPRS模块和GPS模块组成,其硬件设计如图2所示。
2.1.1 主控制器
主控制器采用32位的ARM低功耗微处理器STM32F103RCT6,具有256KByte Flash、48KByte RAM,工作频率可达72MHz,能够满足冷链运输过程中温度和湿度监测与数据处理的需求。该处理器具有5个异步串行接口[3,4],能够同时连接GPRS模块、无线传输模块和GPS模块,还可以扩展TF卡用于存储数据,适用于冷链运输监控系统多串口应用的需求。
2.1.2 无线传输模块
车厢与驾驶座隔离,而且车厢内数据采集模块的数量和位置可能临时变动,因而笔者在设计过程中选用基于SX1212芯片的超低功耗的无线传输模块,其工作电压在2.1~3.6V,接收电流3mA,发射电流35mA,待机电流1.5μA。与ZigBee方案相比(如CC2530),基于SX1212芯片的无线传输方案功耗更低。在冷链冷藏车厢屏蔽的情况下,通信距离可以达到50m。无线传输模块的硬件电路如图3如示。
2.1.3 GPRS模块
GPRS通信覆盖范围广、传输效率高,TCP/IP协议数据传输可靠性高,使用方便、灵活。冷链运输监控系统设计中选用了SIM900A模块,该模块功耗低、尺寸小,而且技术资料也较为透明,使用方便。休眠模式下,SIM900A模块的电流最低能达到1.5mA,工作时则为十几到几十毫安[5,6]。设计过程中充分利用SIM900A模块的休眠模式,对降低功耗有很大帮助。冷链运输监测系统GPRS模块的硬件电路如图4所示。
2.1.4 GPS模块
设计采用Goeget ST-200模块采集车辆的位置信息。该模块能快速定位追踪20颗卫星,内置陶瓷天线,并可置外接天线于无屏蔽无遮挡处改善信号。
2.2 数据汇转模块软件
数据汇转模块的主流程如图5所示,主要分为两部分:上报自身编号并申请指令;完成指令后根据组网状态上报数据或下次唤醒。在程序执行过程中,通过GPRS传来的唤醒短信触发中断,使程序回到最初,开始新一轮流程。
3 系统网络
冷链运输监测系统设计采用二级网络形式,上级走GPRS通道,连接服务器与数据汇转模块;下级走无线通信通道,各数据汇转模块分别与数据采集模块进行组网。
3.1 二级网络
3.1.1 GPRS网络
数据汇转模块经由SIM900A模块与服务器进行远程连接后,采取主动模式请求服务器下达指令;根据客户的需求,每隔一个周期就上报一组监测数据。如此,构成GPRS网络通道。
3.1.2 无线星型网络
数据汇转模块和数据采集模块之间通过基于SX1212芯片的无线传输模块连接,构成星型网络。组网过程结束后,二者进行点对点通信。数据汇传模块作为主节点管理网络。
3.2 无线自组网的实现
设计采用适合冷链运输环境的自主网络协议,以数据汇转模块作为中心节点,数据采集模块作为一般节点,可以随时加入监测系统[7]。
无线自组网络物理层的频率在430~437MHz,以100kHz的带宽分为64个信道。默认信道0~31为公共信道,与冷链企业关联,避免同时、同地、不同企业出现绑定错误。模块组网后转为专有信道32~63,降低两辆冷链车辆发生碰撞的概率。为提高信道的抗干扰性,信道采用高效的循环交织纠检错编码[8],编码增益接近3dBm,保证冷链运输能够在强干扰的工业环境中具有良好的传输效果。
数据链路层采用数据帧进行数据传输[9]。数据帧的格式见表1,前导码为32位二进制数,为1010交替进行,其目的是使接收机与发射机同步。同步码为16位二进制数。帧选项包括命令字及帧类型等信息,占用1Byte,对应不同的指令内容。结束标志表示一个传输帧的结束。
组网时,每个数据采集模块上报自己的ID,设计采用防碰撞算法。现有的二叉树算法逐次读取数据采集模块的ID,可以有效地避免冲突,但效率较低;帧时隙ALOHA算法(Framed Slotted ALOHA)效率较高,但当模块数量较多时会有严重的冲突[10]。结合实际应用,与标签不同,数据采集模块作为行业应用,相邻ID的模块一般集中在一家冷链企业之中。因此,设计采用二叉树与帧时隙ALOHA的融合算法,即初期按编号二叉树算法进行分类,然后以帧时隙算法读取数据采集模块的ID。
设计中二叉树算法分类的二进制数由温、湿度采集模块的编号决定,比如在20位的编号范围内搜索进行组网时,数据汇转模块从19位开始按1、0分为两个区段命令,数据采集模块上报自身ID,系统利用SX1212芯片的场强检测功能,判断是否发生冲突,可知是否有19位为0或1的模块需要组网;同理,判断其他位。最终可知哪些区段中有数据采集模块存在。
得知分布区间后,按照帧时隙ALOHA方法,让数据采集模块按本身编号的最低8位数产生固定的延时时隙,分区间上报ID。如此,就运用帧时隙ALOHA方法避免了冲突[11,12,13]。
在实际使用中,分配到冷链单位的模块数量有限,编号连续,组网的模块一般分配在1~2个区间,当通信速度为10kb/s时,50条指令传输的时间加上两次时隙延时的时间即可完成组网。
4 测试
系统行车测试过程中,将汇转模块Etest置于副驾驶座,将GPS外接天线置于车顶;3个采集模块TW001、TW005和TW006置于车厢内的分散放置点。服务器发出自动组网命令,得到返回信息表示组网成功后,开始模拟冷链运输过程。服务器设置的参数有:自动组网,温、湿度上报周期60s,上报组数两组,温度上、下限0~15℃,湿度上、下限0%~99%,电池电量上报周期1h。
发车2min后,测试人员通过观察服务器的用户界面,得到上传的温、湿度数据。此后每隔2min收到两组数据,数据列表如图6所示。
发车1h后,服务器界面开始收到数据采集模块的电量数据。此后每隔1h收到一组,结果如图7所示。
由GPS采集到的经、纬度信息,每2min收到两组,由服务器将这些坐标点录入百度地图,并且描点制作出行车路线,如图8所示。
通过测试得出,数据采集模块采集温/湿度的准确性和一致性都很好;数据汇转模块能够迅速又稳定地处理温/湿度数据,实时性好,经/纬度定位准确;两级无线网络通信稳定。系统能够很好地满足冷链运输过程的各项监测要求。
5 结束语
数据采集监测模块 篇3
1 系统技术指标
主要技术指标:(1)缺口图像分辨率0.01 mm。(2)缺口偏移检测精度0.1 mm。(3)信号传输距离≤2.5 km(1.0 mm线径)。(4)动态图像传输码流100~250 kbit·s-1
2 图像采集模块设计原理
图像采集使用微型摄像头,图像分辨率是指图像中每单位长度所包含的像素或点的数目,常以像素/英寸(ppi)为单位来表示。对电动转辙机(S700K、ZD6)正面缺口在4~6 mm,用普通的30万像素摄像头,精度可达6/640=0.01 mm。图像数据量大小=图像中的像素总数×图像深度÷1 024(单位为kB)。30万像素摄像头捕捉到640×480的画面,二值图像深度为1,灰度图像深度为8或者彩色图像深度为24,普通灰度图像大小为2 400 kB。
JPEG是由ISO 和 CCITT1986年成立了“联合图片专家组”(Joint Photographic Experts Group)所制定的静止灰度或彩色图像的压缩标准。JPEG标准定义了3种编码系统:(1)基于DCT的有损编码基本系统,可以适合大多数压缩场合。(2)基于分层递增模式的扩展、增强编码系统,用于高压缩比、高精度或渐进重建应用场合。(3)基于预测编码中DPCM方法的无损系统,用于无失真应用的场合。
图像应用系统要与JPEG兼容,必须支持JPEG基本系统,可以通过修改其文件格式、图像分辨率或彩色空间模型应用于不同场合。在不降低图像视觉质量的基础上JPEG标准可以将图像压缩到1/10~1/50,这样一帧图像的大小就可以压缩到48 kB,根据需要还可以压缩为6 kB的二值图像,满足缺口检测的要求。
在基本系统中,输入和输出数据的精度为8 bit,量化DTC值的精度为11 bit。压缩过程由3个步骤组成:(1)DCT计算。(2)量化。(3)用熵编码器进行变长码赋值。具体过程如下:先把图像分割成一系列8×8的子块,然后按从左向右从上到下的次序处理。基本系统的编码器如图2所示。
Video4Linux(V4L)是Linux的影像串流系统与嵌入式影像系统的基础。Video4Linux是Linux Kernel里支持影像设备的一组APIs,配合适当的视频采集卡与驱动程序,Video4Linux可以实现影像图像采集,它支持图像的JPEG压缩。Video4Linux分为2层式架构,上层为Video4Linux驱动程序本身,下层架构则是影像设备的驱动程序。实验中使用了V4L的上层驱动程序,即V4L所提供给程序开发人员的APIs。通过使用Video4Linux的API函数从视频设备中读取图像数据,然后将这些数据写入Frame Buffer,使摄像头采集到的图像在液晶屏中显示出来。
3 图像采集硬件设计
在ARM9系统中通过USB接口连接USB摄像头对图像进行采集,实现转辙机缺口监测的图像采集。ARM9核心板:处理器采用ARM920T处理器的 S3C2410A, 工作频率203 MHz;SDRAM是64 MB;NANDFlash:64 MB;NORFlash:2 MB;USB接口:AU9254A21支持USB1.1协议。
USB采集电路的原理框图如图3所示。
USB主机芯片采用AU9254A21,它是单片的四端口USB控制芯片,这里扩展了4个USB接口。它的上端接USB控制系统,下端可接USB设备。
4 图像采集软件实现
在Linux系统中,通过使用Video4Linux的API函数,从视频设备中读取图像数据,然后将这些数据写入系统临时文件为后续的功能实现奠定基础。
采集程序实现过程:一个嵌入式Linux系统从软件的角度看通常分为4个层次:Bootloader、Linux内核、文件系统和用户应用程序,如图4所示。
4.1 移植Bootloader
USB摄像头的采集应用程序是建立在Linux系统上,首先配置适合系统的Bootloader,Linux内核在RAM中运行,这就需要Linux的Bootloader将整个内核复制到RAM中。系统中Bootloader是运行在NORFlash中,它的主要作用是:将Linux内核文件、根文件系统文件、Linux启动参数文件复制到SDRAM中,并跳至RAM中Linux内核的首地址,运行Linux。各文件在RAM中存放的空间示意图,如图5所示。
4.2 编译下载内核
将Linux源代码包放置在工作目录下解压,用命令:#tar xjvf linux-2.4.18.tar.bz2。编译内核,在终端输入命令:#make menuconfig 命令,选择“load an alternate configuration file”,装载arch/arm目录下的2410配置文件如图6所示。建立依赖关系,在终端运行命令:#make dep。编译内核,在终端输入命令:#make zImage。编译完成后在arch/arm/boot目录下会生产ARM Linux内核映像文件zImage,用FlashFXP软件的FTP下载。
4.3 图像采集应用程序
在图像采集设备驱动安装后,只需再编写一个视频流采集应用程序,即可采集视频图像。
前面提到Linux系统中把设备看成设备文件,在用户空间可以通过标准的I/O系统调用函数操作设备文件,从而达到与设备通信交互的目的。视频设备在Linux系统下为一个字符型设备,分配给视频设备使用的主设备号固定为81,次设备号为0~31。在Linux系统中通常使用设备名为video0~ video31,使用以下命令在设备文件夹/dev/下创建1名称为video0的节点:# mknod/dev/video0 c 81 0配置Video4Linux内核:在终端使用make menuconfig命令打开S3C2410Linux内核编译的Main Menu窗口,并进入“Multimedia
利用V4L API获取视频图像的应用程序流程,如图8所示。
下面简要介绍其实现:
(1)打开视频设备,这里用int v4l_open(char *,v4l_device *)实现。
(2)获得设备信息的任务,这里用extern int v4l_get_capability(v4l_device *)实现。函数有vd->capability和vd->picture两个结构体。capability主要包括设备名称、支持的最大最小分辨率、信号源信息等。picture结构包括了亮度,对比度,色深。及两个函数中最主要的语句ioctl。对于ioctl的行为,它是由驱动程序提供和定义的,在这里是由v4l所定义,其中宏VIDIOCGCAP和VIDIOCGPICT的分别表示获得视频设备的capability和picture。
运用int v4l_get_mbuf(v4l_device *vd)函数。通过这个结函数可以获得摄像头可映射的设备存储图像的内存大小、摄像头可同时存储的帧数、每一帧图像的偏移量。
(3)按需要更改设备的相应设置,通过int v4l_set_picture函数实现。其核心是v4l为提供的ioctl相关调用,通过这个函数可以修改如亮度,对比度等相关的值。
(4)获得采集到的图像数据,通过extern int v4l_grab_picture实现。先使用ioct1(fd,VIDIOCGMBUF,&grab_vm)函数获得摄像头存储缓冲区的帧信息,之后修改voideo_mmap中的设置,例如重新设置图像帧的垂直及水平分辨率、彩色显示格式。其中vd->map所指向的数据就是图像数据。
采集其中的第一帧,使用ioctl(fd,VIDIOCMCAPTURE,&grab_buf)函数,若调用成功,则激活设备真正开始一帧图像的截取,是非阻塞的。接着使用ioct1(fd,VIDIOCSYNC,&frame)函数判断该帧图像是否截取完毕,成功返回表示截取完毕,之后就可把图像数据写入到Frame Buffer。
然后利用grab_fd.frames值确定采集完毕摄像头帧缓冲区帧数据进行循环的次数。在循环语句中,也是使用VIDIOCMCCAPTURE?ioct1和VIDIOCSYNC?ioctl函数完成每帧截取,但要给采集到的每帧图像赋地址,利用语句buf=grab_data+grab_vm.offsets [frame],然后保存文件的形式。若要继续采集可再加一个外循环,在外循环语句只要给原来的内循环再赋frame=0即可。通过显示屏把采集到的视频图像显示出来。
(5)关闭设备,int v4l_close(v4l_device *),主要是关闭设备,取消映射。
5 图像采集效果
将摄像头插入到USB主机下行口,这时在终端上将打印以下信息:
ov511.c:USB OV511+camera found
ov511.c:Camera type (108) not recognized
ov511.c:Please notify mmcclell@bigfoot.com of the name,
ov511.c:manufacturer,model,and this number of your camera.
ov511.c:Also include the output of the detection process.
ov511.c:Sensor is an OV7620
ov511.c:Device registered on minor 0
进入到本实验程序所在文件夹,运行本实验程序,观察液晶屏的图像效果:
#./videodemo
6 结束语
在ARM-Linux平台上,通过使用Video4Linux的API函数从视频设备中读取图像数据,并对图进行了JPEG格式压缩,再将数据进行显示处理,为后续的转辙机缺口检测的上传功能实现奠定了基础。系统若配合使用可靠的传输技术与先进的上位机图像处理系统,将使转辙机缺口监测系统得以实现。
摘要:转辙机是铁路上负责道岔的转换、锁闭、监督功能的电气设备,它的监测对维护列车安全运行具有重要意义。现有道岔转换设备缺口监测系统存在检测方式落后、不直观、高误警等情况。针对上述情况文中提出了一种在线视频监控自动处理系统,其中转辙机内监控系统能对缺口图像的动态实时情况进行拍照和上传;工作室终端电脑能对道岔转辙机内表示杆缺口偏移量的图像进行识别、自动监测和超值报警,并介绍了图像采集模块的设计与实现。
关键词:转辙机,缺口监测,Linux ARM9
参考文献
[1]张少夫,张辉程,李乌江,等.DCQK B型转辙机表示缺口监测报警系统[J].铁路通信信号,2005,41(5):34-35.
[2]CORBET J.Linux设备驱动程序[M].3版.魏永明,耿岳,钟书毅,译.北京:中国电力出版社,2006.
[3]克罗赫曼.Linux内核技术手册[M].马骏,译.北京:中国电力出版社,2010.
[4]Samsung Electronics.S3C2410datasheet[EB/OL].(2004-07-21)[2011-11-11]heep://www.waveshare.net.
数据采集监测模块 篇4
1 系统结构
1.1 ZigBee技术
ZigBee技术是一种短距离、低复杂度、低功耗、低数据速率、低成本的双向无线网络技术,是一组基于IEEE 802.15.4无线标准研制开发的有关组网、安全和应用软件方面的通信技术。本系统采用2.4 GHz的传输频带,信道带宽为5 MHz,共有16信道可用。由于在2.4 GHz的频段只有250 KB/S的传输速率,所以适用于传感和控制领域[8,9]。
1.2 ZigBee的网络拓扑图
ZigBee网络具有3种网络形态节点:中心协调器,路由器,终端节点。本设计的监测系统由一个ZigBee协调器和若干个外接传感器的终端节点组成,连接温度、pH值传感器的终端节点置于网箱设备附近,依据程序设定时间定时采集,数据采集结束后发送数据到协调器,协调器将接收到的数据通过串口以约定格式打包并通过GSM模块传输到客户管理PC机(图1)。控制中心主机是整个系统的中央监控设备,负责结点的数据通讯、数据分析处理和调节设备,通过界面实现人机交互。控制中心主机通过RS-232接口有线连接中心结点,中心节点通过CC2530芯片集成的无线收发模块与结构相近的路由节点进行无线收发通讯,每个路由节点可以根据需要与一定数量的终端结点组成无线或有线检测群[8]。
2 系统设计
2.1 硬件设计
整个硬件电路系统由9 V大容量蓄电池经稳压电路供电,配太阳能、风能双辅助电源。DS18B20单线式温度传感器可直接采集到温度数据经单片机运算处理。pH传感器是单线电压式传感器,采集到的数据为小电压值,经pH值采集功放电路放大为AD转换芯片TLC549能够转换的电压值[9],然后经过AD转换电路转换成数字信号,送单片机处理转化成pH数值[9,10]。最后通过串口连接到ZigBee模块,将数据发送到终端ZigBee模块,该模块内置的单片机最小系统把数据传送到GSM模块上,由GSM模块最终发送到终点PC机上或用户手机上(图2)。
2.2 系统软件设计
系统基于ZigBee协议栈进行开发,根据海洋网箱监测需求,建立树型网络。协调器负责管理网络、汇聚数据和提供与计算机管理软件的接口,终端设备用来在协调器控制下完成传感器数据的采集和其它特定功能。树型网以网络协调器为中心,所有设备只能与网络协调器进行通信,树型网络中的终端设备如果需要通信,先把各自的数据包发送给网络协调器,然后由网络协调器转发给对方[11]。节点软件流程图如图3所示。
2.3 数据传输
DRF系列的ZigBee模块数据传输主要有数据透明传输方式和点对点数据传输方式。本次设计采用点对点的数据传输方式:数据传送指令(0xFD)+数据长度(0x0A)+目标地址+0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x10(数据共0x0A 比特)。通过发送数据指令+目标地址的方式,实现任意节点间的数据传输。若协调器(Coordinator)从串口接收到数据,会自动发送给所有节点;某个节点从串口接收到数据,也会自动发送到协调器;若数据是协调器发送至终端设备(End Device),则发送数据等于接收数据;若数据是终端设备发送给协调器,则接收数据等于TI Sensor Monitor(组网监控软件)数据加上发送数据。若数据在终端设备之间传送,则发送数据等于接收数据。
2.4 GSM软件设计
GSM模块通过短信的方式把数据发送给用户,使用户实时了解网箱的情况。通过单片机系统和电脑界面,对GSM模块进行调试,完成接收数据和传送数据的功能。在调试GSM模块过程中,需用到以下指令,确保GSM模块能正常使用[12,13,14]。
(1)应答呼叫指令。
指令格式:ATA回车。指令说明:GSM模块返回“OK”,表示工作正常,用于应答来电。
(2)发起呼叫指令。
指令格式:ATD
(3)短信的输入模式指令。
指令格式:AT+CMGF=
(4)读取短信指令。
指令格式:AT+CMGR=
(5)发送短信指令。
指令格式:文本模式(AT+CMGF=1)。AT+CMGS=
(6)删除短信指令。
指令格式:AT+CMGD=
3 系统调试
(1)GSM传输调试。
借助PC机及串口调试助手进行调试,验证信号与PC机终端的传输正确有效性。
(2)Zigbee网络调试。
用仿真器分别对中心协调器和各个路由器节点进行分段调试,保证zigbee网络的正常组网。
(3)数据的采集。
通过单片机编程进行调试,确保能够正确采集到数据。
(4)PC机终端VB界面。
采用VB编程在PC终端机观察采集到的数据。
(5)整个系统调试。
在PC机终端点击开始采集,观察采集的数据。
4 试验结果与分析
为了验证监测系统运行的可靠性,项目组多次在福建省惠安县斗尾港海域的深水网箱养殖现场进行监测。现场的网箱为圆柱形浮式深水网箱,周长40 m,高8 m,水深25 m,布设在离陆地2 km的岛屿周围。应用本监测系统分别对养殖现场6口网箱进行监测。监测仪器包括:DS18B20单线式温度传感器;pH传感器(上海科蓝电化学仪器科技有限公司),表面玻璃探头加装304不锈钢网罩保护;WQ401溶解氧传感器(美国Global Water公司)。从实时网箱监测数据上看,监测系统的工作正常,界面显示数据表明6口网箱传感器工作正常,通信信号都到达监测的终端系统,采集到网箱的数据可信,网箱pH 7.2~7.9,温度18.2~18.9 ℃,与现场实际测量值较为吻合。结果表明,本设计的监测系统软硬件可以匹配,系统可以正常开展现场养殖环境参数监测。
单路电机运转状态监测模块设计 篇5
铸造厂电气传动设备以步进电机、单相交流电机及三相交流电机为主, 对于非变频或伺服应用, 检测电机实际运转状态或参数的常规方法为接近开关、旋转变压器、光电编码器[1]。接近开关以脉冲输出形式检测中低速运转与否及运转速度, 但对一转之内的状态检测无能为力, 若要细分则会增加接近开关个数与机械安装难度;旋转变压器多以0~10V电压输出形式;增量式光电编码器以脉冲输出形式检测电机速度, 绝对式光电编码器以通信方式检测电机转数, 复合式光电编码器结合了增量式与绝对式光电编码器的功能。旋转变压器与光电编码器价格高且机械安装难度大, 尤其是安装空间狭隘处。所有常规检测办法少见直观显示转速对应数据, 不利于现场巡检及排故。
1 功能需求
检测机构能够方便地安装于电机上, 单路电机运转状态监测模块能输出电机转速所对应的模拟量0~10V电压、4~20m A电流、0~1KHz脉冲、电机运转与否开关量, 以方便地与PLC或DCS系统进行集成;现场能以LED形式显示当前转速占额定转速的百分比, 以利于现场巡检及排故。
2 总体设计
单路电机运转状态监测模块主要由喉箍型光电码盘、凹槽型光耦与信号调理PCB板组成。信号调理PCB板接受外部宽压电源输入 (18~36VDC) , 及光耦输出的脉冲信号;对外提供经过信号调理过的模拟量0~10V电压输出、4~20m A电流输出、0~1k Hz脉冲输出、电机运转与否开关量输出及电机转速间接百分比LED指示。各信号调理功能模块可根据现场需要进行裁减。系统结构如图1所示。
在功能元器件及结构件的选型上, 尽可能地选用宽温宽压型的工业级型号, 在结构设计上充分考虑散热及抗震因素, 提高对恶劣环境的适应能力。同时, 依据工程经验及各三防措施性价比对比, 采用三防漆进行涂覆, 对接插件部位以硅胶灌封, 以实现防潮湿、防盐雾、防霉菌的三防设计[2]。
3 功能实现
3.1 电源转换
电源转换如图2所示。采用ZY2424WRBCS-3W电源模块进行24VDC稳压输出转换, 宽压输入范围18~36VDC, 转换效率89%, 工作温度-40~85℃, 最大负载125m A, 具有输出可控制、短路保护等功能, 可持续短路、自恢复。采用三端稳压器LM7812将24VDC电源转换为差分电压比较器所需的12VDC电源。
3.2 信号采集
将喉箍型光电码盘紧固于电机轴或联轴结上, 码盘镂空与实体边缘部分置于光耦EE-SX97凹槽之间, 通过设置码盘镂空个数 (镂空大小及间隔不得小于图3所示尺寸) , 使电机在额定转速下脉冲输出频率不大于1k Hz (脉冲频率正比于电机转速) 。如:电机额定转速3600r/min (折算为60r/s) , 则喉箍型光电码盘镂空个数取为16 (1000/60=16.7) , 对应输出脉冲频率为960Hz。凹槽型光耦具备7种不同安装形式, 方便现场根据安装空间与角度进行固定。信号采集电路如图4所示。
3.3 信号调理
3.3.1 0~10V电压输出
采用LM2917集成式频率/电压转换器, 内置稳压管以提高电源的稳定性。芯片中包含了比较器、充电泵、高增益运算放大器, 将0~1k Hz频率信号转换为直流0~10V电压信号, 电路如图5所示。
3.3.2 4~20m A电流输出
采用非隔离系列信号调理模块ZCM4566S, 将0~10V电压信号转换为4~20m A电流信号输出, 通过可调电阻R7进行输出增益调节, 电路如图6所示。
3.3.3 电机运转与否开关量输出
电机转动与否比较判断输出电路如图7所示。将所调理的0~10V电压, 作为差分电压比较器LM111JG的正相端, 调整可调电阻R6, 分压可得电机转动与否的判断门限阈值SP0_REF, 作为比较器的反相端输入, 比较的结果驱动LED指示灯, 并对外提供开关量输出。
3.4 电机转速间接百分比LED指示
综合性价比因素, 利用三段式数字显示直流电压表, 间接指示当前速度与额定转速的比值, 电路如图8所示。
4 结语
监测模块设计结构简练, 利用喉箍型光电码盘及凹槽型光耦提供一种安装简便、性价比高的单路电机运转状态监测解决方案, 模块具有脉冲、电压、电流、LED指示等多种信号输出方式, 各功能部分可根据系统集成需求进行裁减, 并可方便地与工业PLC、DCS等系统进行无缝集成, 具有良好的应用推广价值。
限于性价比及可维护性因素, 电机转速与额定转速间的实际百分比值, 需由现场直流电压表显示值扩大10倍而得。后续应用将利用单片机技术克服这一不足之处, 并将电机温度纳入监测范围。
参考文献
[1]Meng King, 李幼涵.运动控制技术与应用[M].北京:机械工业出版社, 2012
汽车胎压监测系统发射模块设计 篇6
汽车胎压监测系统 (TPMS) 是一种能对汽车轮胎气压、温度进行自动检测, 并对轮胎异常情况进行报警的预警系统。TPMS系统可分为间接式和直接式两种。间接式是通过汽车ABS系统的轮速传感器来比较车轮之间的转速差别, 以达到监视胎压的目的。直接式利用安装在每一轮胎里的压力传感器来直接测量轮胎的气压, 并通过无线调制发射到安装在驾驶台的接收器上[1]。
目前直接式TPMS发射模块较多采用以下两种方案:一种是电池+单片机+传感器+射频芯片, 另一种是电池+内部集成MCU (微控制器) 的传感器+射频芯片。前一种方案由于集成度低、体积和功耗大而被市场逐渐淘汰, 后一种方案是当前市场上主流的产品设计形式。由于幅移键控 (ASK) 信号调制模式具有功耗低、灵敏度高以及低成本的优点, 本文选用基于ASK模式的MAX7044作为发射芯片, 英飞凌公司的SP30作为传感器设计完成了一种新型胎压发射模块。
发射模块硬件设计
发射模块硬件主要由传感器SP30、MAX7044、电池和天线组成, 如图1所示。内部集成MCU的传感器SP30通过串行通信接口把数据送给MAX7044发射出去, 电池为二者供电。本设计中所选用的器件工作温度均为汽车级 (-40~+125℃) , 以满足轮胎内发射模块复杂恶劣环境下可靠工作的要求。该方案遵循欧洲标准, 无线信号调制中心频率为433.92MHz。
SP30应用设计
S P 3 0是英飞凌公司推出的胎压检测专用传感器芯片, 内部不但有压力、温度、加速度和电池电压传感器, 而且集成了一个8位哈佛结构的R ISC单片机, 工作电压范围1.8~3.6V, 压力测量范围0~3.5Bar, 温度测量范围-40~+125℃, 应用电路如图2所示[2]。SP30外围器件很少, 只需要接一个3V的电池和滤波电容即可。
S P 3 0可在四种模式下工作, 即低功耗模式、空闲模式、运行模式和热关断模式。其中, 低功耗模式功耗最小, 所以SP30应尽可能处于该工作模式, 以保证电池有较长的使用寿命。P14和P15为串行通信口, P14为串行数据, P15为MAX7044提供的外部时钟, 时钟频率为847.5k Hz, P17无用接地。XP1为调试接口。
MAX7044射频应用设计
无线发射芯片是发射模块可靠工作的关键。由于发射模块安装在轮毂上, 采用能量有限的锂电池供电, 因此发射芯片的选型需具有以下两个特点:
●功耗低, 支持ASK调制, 有多种工作模式, 便于根据具体工作状态进行功耗管理, 以尽可能延长电池的使用寿命;
●芯片最小可工作电压低, 且具有足够大的发射功率。
根据以上特点, 并经过分析比较, 我们最终选用了MAX7044这款性价比高的发射芯片。
M A X 7 0 4 4是Ma x i m公司生产的300MHz~450MHz频率范围内ASK调制芯片, 最大输出功率+13d Bm (50Ω负载) , 供电电压最低2.1V工作, 低功耗模式电流只有几十纳安, 内部集成了功率放大器、晶体振荡器、锁相环等电路, 采用8引脚SOT23小封装设计[3]。应用电路如图3所示, 主要包括电源去耦电路、晶振电路和天线匹配电路三部分。由于RF (射频) 芯片对电源的噪音非常敏感, 恰当有效的电源去耦电路能很好的抑制噪音, 提高可靠性, 因而靠近3V电源引脚配置了去耦电容C5。MAX7044常用调制频率有315MHz和433.92MHz两种, 不同调制频率所选用的晶振也不同。调制频率fR F和所选晶振频率fX TA L的关系是:fXTAL=fRF/32。本设计调制频率为433.92MHz, 那么外部晶振频率G 1应为13.56MHz, 输出频率CLK-OUT为晶振频率16分频即847.5k Hz。输出频率CLK-OUT用于给压力温度传感器SP30内部的微控制器提供操作时序。MAX7044功率放大器 (PA) 的输出阻抗为125Ω, 为与特定阻抗的天线相匹配必须配置阻抗变换电路, 以减小发射功率损耗, 提高天线效能。本设计采用气门嘴作为天线, C10用于抵消大部分天线感抗, C1、C2和L1组成了低通滤波器, 可以抑制PA输出的高次谐波。L2用来抑制来自电源的射频干扰, C3为隔直电容[4]。通过软件仿真和反复测试验证, 最佳匹配电路如图3所示。
发射模块软件设计
因为受轮胎内空间和重量的限制, 发射模块只能采用容量有限的微型电池供电, 因此要保证单一发射模块2年以上的寿命必须考虑如何节能。此外, 一辆轿车上不算备胎至少要配置四个发射模块, 由于接收器不能同时接收多路无线信号, 若有发射模块同时发射数据给接收器, 则必然发生数据冲突, 导致接收失败和功耗增加, 所以如何避免发送冲突是软件算法要解决的又一关键问题。
本设计采用的数据帧格式如表1所示, 前导码和停止位用于标识一帧数据的开始和结束。设备ID是轮胎发射模块的全球唯一标识, 以区别不同的轮胎。状态信息包含了电池供电情况 (SP30有低电压检测) 和传感器测量故障情况, 校验和用于检测数据发送的正确性。
(2) 如何避免发送冲突
设计中我们采用了一种基于素数的动态时延算法。当检测到有效加速度信号后, 四个轮胎发射模块被唤醒并启动压力和温度检测程序。数据检测完成后分别按素数进行动态延时, 延时时间一到再把数据发送出去, 发送完毕自动关闭发送器, 开始新一轮数据检测。各轮胎延时参数配置如下:左前轮胎发射模块延时按250ms×N1 (N1=2, 1 9) 周期变化, 右前轮胎发射模块延时按250ms×N2 (N2=3, 1 7) 周期变化, 左后轮胎发射模块延时按250ms×N3 (N3=5, 1 3) 周期变化, 右后轮胎发射模块延时按250ms×N4 (N4=7, 11) 周期变化, N1、N2、N3、N4分别取不同的素数[5]。这种基于素数动态延时的算法既能有效避免各发射模块发送冲突, 又能降低能耗, 延长电池寿命。
(3) 如何节能
由于发射模块采集数据和发射数据帧时耗电最大, 因此在保证数据传输正确的前提下应尽可能减少发射频率和每次发射的数据帧数, 发射模块软件流程如图4所示。SP30内部集成有加速度传感器, 当检测到车子静止时间超过1小时就自动进入低功耗休眠模式 (电流为微安级) , 此时不再进行数据检测和发射。当车子运动后加速度信号将发射模块唤醒, 数据采集完成后启动基于素数的动态时延算法, 即按250ms×N (N为小于20的随机素数) 延时后再将数据发送出去。实际测试表明, 通过工作模式的灵活转换和减小发射频率能够有效控制发射模块的使用寿命。
性能测试
本设计方案已在产品设计中得到应用, 经反复测试具体性能指标如下:
●可监测胎压范围为0~3.5Bar, 分辨率25m Bar, 通常轿车的轮胎气压在2.2Bar~2.8Bar之间;
●可监测温度范围:-40~125℃, 分辨率2℃, 轿车的轮胎温度一般在75℃左右;
●轮胎压力传感器发射功率用频谱分析仪测得在-45d Bm左右;
●采用500m Ah的电池, 若每天正常行车12小时, 发射模块可正常工作5年以上。
结语
本文设计并实现了一种直接式轮胎压力监测系统发射模块。基于SP30传感器和MAX7044发射器的发射模块集成度高, 体积小, 能同时监测汽车行驶时轮胎气压、温度和电池电压三个关键参数。当轮胎出现漏气、过压以及温度过高等异常情况时, 能自动及时报警, 保障行车安全。
参考文献
[1]温瑞.汽车胎压监测系统发射模块设计[J].自动化技术与应用, 2008, 28 (7) :80-81
[2]Infineon.Tyre Pressure Monitoring Sensor SP30user manual[EB/OL].http://www.infineon.com/cms/en/product/findproductTypeByName.html?q=sp30
[3]Maxim.300MHz to450MHz High-Efficiency, CrystalBased+13dBm ASK Transmitter MAX7044datasheet[EB/OL].http://datasheets.maxim-ic.com/en/ds/MAX7044.pdf
[4]Maxim.MAX7044Evaluation Kit[EB/OL].http://datasheets.maxim-ic.com/en/ds/MAX7044EVKIT.pdf
基于GPRS的远程数据采集模块 篇7
数据采集与工业生产和国民生活息息相关,大到电力部门各变电站的远程监控、矿业生产单位的安全生产,小到社区居民的电表、水表抄表系统,因此数据采集与通信系统直接关系到人们生活质量的提高。传统的电表、水表的数据采集多采取人工抄表的方式,不仅浪费了大量的人力物力,抄表精度也不高;当前的卡式预付费表由于要将付费额与消费量存入IC卡中,作为电表、水表与监控中心的通信媒介,安全性有待提高[1];工业生产中多采用Internet网络通信或是RS 485总线来实现各监测点与监控中心的数据通信,对于采集点分布集中时尚可实现,但是像电力系统变电站等多分布在郊区且节点多的系统来说不仅通信线路的铺设是一笔巨大的费用,受自然环境的影响也特别大,可靠性得不到保障。
GPRS无线上网技术的快速发展给数据采集技术的发展带来了新的活力。GPRS(General Packet Radio Service)是当前GSM网络通信向3G标准的过渡阶段,即2.5G标准。GPRS在现有的GSM网络的基础上引入分组交换的功能,支持TCP/IP协议,可以与Internet直接相通,因此已在消费电子中得到了广泛的应用。GPRS理论最高通信速率可达到171.2 Kb/s,且国内外各大通信公司均推出了各自的GPRS通信模块,稳定性好,完全能够满足各种数据采集系统的需要,因此,GPRS无线通信技术的应用必将给数据采集系统的发展带来巨大的变化[2]。
1 GPRS通信原理及数据采集模块的整体结构
1.1 GPRS无线通信原理
基于GPRS的无线网络通信系统结构如图1所示,主要由三部分构成:位于数据采集现场的GPRS数据采集模块、网络运营商提供GPRS网络与远程服务器。
数据采集模块位于各个数据采集现场,由于移动公司的通信范围已覆盖我国的绝大部分地区,各数据采集模块可分散地安装在各种复杂的地理环境中而不必考虑线路铺设等复杂的问题。GPRS网络是现场数据采集系统与远程监控中心数据交换的桥梁。数据采集模块与测量仪表进行数据通信,将测量仪表产生的检测数据通过移动基站实时发送到GPRS网络服务商所提供的GGSN(Gateway GPRS Support Node)服务器,GGSN分配给GPRS数据采集终端相应的IP地址,从而实现了数据采集终端与Internet的连接,再通过Internet网络将采集的数据发送到位于监控中心的数据采集服务器。GPRS模块可以是始终在线的,因此位于监控中心的工作人员可以实时了解到终端设备的工作情况并做出相应的工作指示。
1.2 数据采集模块的结构
数据采集模块负责检测仪器与远程监测终端的无线数据传输,如图2所示,模块以Winbond的高性能单片机W77E58为控制核心,通过将串口采集到的数据经初步处理后传送给GPRS模块实现无线网络通信。
W77E58是Winbond公司推出的一款快速8051兼容微控制器,它的内核经过重新设计,整体运行速度要比标准的8051快2.5倍。W77E58具有1 KB的片上外部数据存储器和32 KB的FLASH EPROM,省去了外扩SRAM所需的I/O引脚,从而用来扩展键盘与液晶显示屏。
W77E58较为突出的特性是它具有两个增强型全双工串行口,在数据采集模块中可将一个串口采用RS 232协议与GPRS模块进行数据通信,另外一个串口则采用RS 485协议接收检测仪器发送的数据。RS 485是在工业检测现场应用非常广泛的现场总线,总线上一台主机可以与多达32台从机进行通信。在实际应用中可将一台GPRS数据采集模块与多台检测设备通过RS 485总线相连,提高通信模块的利用率,这在电表、水表等低成本的检测仪表无线通信应用中十分重要。
GPRS无线通信模块负责整个系统的数据收发,GPRS无线网络通信需要TCP/IP/PPP协议支持,当前常见的GPRS模块可分为自带TCP/IP协议栈与不带协议栈的两大类,自带协议栈的模块有Simcom的SIM100,使用方便,用户只需通过AT指令来控制数据传输就能实现无线通信,当然价格相对较高;而不带协议栈的模块还需用户自己在单片机中实现嵌入式TCP/IP/PPP协议栈来实现数据传输。考虑到模块的成本与W77E58高性能,这里选用了西门子的MC35i通信模块。MC35i稳定性及性价比都比较高,接口简单,AT指令完善,支持GPRS CLASS 10[3]。使用时只需自行设计外围电路,包括电源供电、RS 232通信、SIM卡接口电路以及通信天线。该模块不带TCP/IP/PPP协议,需要自己编写,在单片机中实现。
2 TCP/IP/PPP协议的实现
通常的Internet网络通信只需实现TCP/IP协议簇,但是对于无线网络的接入还需实现PPP协议。TCP/IP/PPP协议其实是一系列网络通信协议的集合,为了能在资源有限的单片机中实现网络数据传输,只能根据特定的功能来实现相应的协议,这包括PPP,IP,ICMP,UDP,TCP等协议,并在此基础上构建应用程序的API接口。
网络协议采用分层结构,在GPRS无线通信模块中采用了5层结构。如图3所示,位于最底层的是网络硬件驱动程序,也就是GPRS模块的驱动,MC35i与GPRS网络的连接、断开以及数据通信都是通过一系列的AT指令来实现。
接下来是数据链路层,数据链路层控制互联网上主机之间数据链路的建立,该层实现了精简的PPP(Point-to-Point Protocol)点到点协议。GPRS模块在拨号后首先要与GPRS网关进行通信链路的协商,即协商点到点的各种链路参数配置。协商过程遵守LCP(Link Control Protocol),PAP(Password Authentication Protocol)和IPCP(Internet Protocol Control Protocol)等协议。其中LCP协议用于建立、构造、测试链路连接;PAP协议用于处理密码验证部分;IPCP协议用于设置网络协议环境,并分配IP地址。一旦协商完成,链路已经创建,IP地址已经分配就可以按照协商的标准进行IP报文的传输了。数据传输完成之后,单片机会向GGSN发送LCP的断开连接报文,以终止网络连接。
GPRS模块与网络服务器连接成功后便可以进行数据通信。网际层实现了ICMP协议与IP协议。ICMP协议是网际控制报文协议,负责传递网络状况信息。IP协议为TCP/IP协议中最为核心的协议,它负责数据报路由的选择,以及将上层协议传输的数据包加上IP报头后传送给下层协议,并将下层协议接收到的IP数据包剥离包头检验信息后接收或是丢弃。
传输层实现了TCP和UDP协议。UDP是面向数据报的传输协议,不能保证可靠的数据交付,但开销较小发送数据的时延也相对少。如果对可靠性要求高,可以选择TCP协议,TCP为不可靠的IP连接提供可靠的、具有流量控制的、端到端的数据传输,但对系统资源的要求相应增加。实际应用时可根据传输数据的内容来选取传输协议。
为了方便上层程序调用相关的协议进行通信,可以建立一个数据结构,将本地和远程的IP地址、端口号以及通信状态封装起来构成一个Socket,并提供相应的API函数供应用程序调用,这就是应用层接口[4]。
3 MC35i驱动及AT指令的编写
3.1 MC35i的开关机及初始化
MC35i的开关机需要在模块的ON/OFF引脚上加上脉宽1 s以上的低电平。当模块处于关机状态检测到ON/OFF引脚的下降沿并持续1 s以上的低电平时启动整个模块,同理,当模块启动后检测到持续1 s以上的低电平,则延时8 s关机。所有的AT指令操作都必须在开机状态下才能执行。
开机后还要对MC35i进行初始化来实现单片机对模块的控制:首先要测试模块串口的连接状况,通过发送AT指令,等待模块的回复,返回OK则连接成功,没有响应则表示模块连接存在问题;接着还要向模块发送ATEO指令来关闭回显。回显功能主要用于串口调试,具体应用时应关闭该功能,防止回显字符和返回参数混合。
3.2 MC35i的AT控制指令
MC35i模块是采用AT指令集进行控制的,采用AT指令集可以实现模块参数的设置,数据的发送与接收。AT指令集是调制解调器通信接口的工业标准,指令由ASCII字符组成,除“A/”、“+++”指令外,所有指令都是以”AT”开头,以<回车><换行>结束,绝大多数指令被执行后都有返回参数。
常见的AT指令有:
设置通信波特率:使用AT+IPR=19200命令,把波特率设为19 200 b/s;
设置接入网关:通过AT+CGD CONT=1,“IP”,“CMNET”命令设置GPRS接入网关为移动梦网;
设置移动终端的类别:通过AT+CGCLASS=“B”设置移动终端的类别为B类,即同时监控多种业务,但只能运行一种业务,即在同一时间只能使用GPRS上网,或者使用GSM的语音通信;
测试GPRS服务是否开通:使用AT+CGACT=1,1命令激活GPRS功能。如果返回OK,则GPRS连接成功;如果返回ERROR,则意味着GPRS失败。
中国移动在GPRS与Internet网中间建立了许多的网关支持节点(GGSN),以连接GPRS网与外部的Internet网络。GPRS模块可以通过拨“*99***1#”登录到GGSN上,并通过PPP协议获取动态分配到Internet网的IP地址[5]。
4 使用需注意的问题
由于GPRS网络通信是以GSM网络为基础,GSM网络的语音通信优先级较高,当GPRS长时间在线但不产生流量时,数据业务的优先级会自动降低,GGSN服务器则会为了节省线路带宽断开其网络连接,此时对于GPRS模块来说,虽说IP地址还在,但已无法进行数据传输。为了防止这种情况导致网络的中断,可在系统中设定“心跳”功能,通过单片机的定时器来实现,每隔一段时间向服务器发送一个TCP数据包,以保证系统的网络连接不断线。“心跳”频率应根据实际情况来设定,频率不宜过高,以免产生过高的额外流量。
由于GPRS无线网络受天气环境影响较大,当出现雷雨等恶劣天气或是信息拥塞时可能会发生数据包丢失、掉线等现象。为了防止丢包的现象发生,可以根据数据的重要性与否采取TCP或是UDP协议,TCP协议具有延时重发功能,对于UDP方式,则必须自行设计校验和纠错规则。对于受干扰掉线的问题则可定时测试网络连通状况,向远程数据终端发送ICMP回显请求(即ping命令),根据终端的应答情况来判断网络状况。当多次请求未回应时即启动GPRS模块重新连接[6]。
当数据采集模块处于电磁干扰特别强烈的电力变压器、电力整流器、电力开关产生的火花等环境中时,GPRS模块和SIM卡运行时间长了偶尔会出现死机的现象,因此要对GPRS模块和SIM卡实时监测。
对GPRS模块的监测:每隔一定的时间对模块进行AT指令测试,如果模块有返回数据则说明模块运行正常,没有死机;如果没有返回,则模块出现问题,此时用单片机控制关闭模块电源,几秒钟后再打开电源,重新启动模块。
对SIM卡的监测:在模块测试完毕后接着发送关于SIM卡的AT指令,如果返回OK则SIM卡工作正常,如果返回ERROR则SIM卡复位或者死机,此时可用AT指令重新启动模块。
5 结 语
本套数据采集模块采用GPRS方式接入Internet网络,不受地点与空间的限制,克服了传统的电力系统设备监控布线困难或是抄表系统效率低,可靠性差的缺点,可广泛应用于电力工矿等生产行业设备运行监控,居民生活区远程抄表系统,甚至于各种远程家居电器控制系统等小流量高实时性的通信系统中。随着3G网络通信技术的成熟与应用,无线网络通信的速度与可靠性将有变革性的提高,相信随着新一代通信技术的发展,基于无线网络的数据采集系统将有着更为广阔的应用前景。
参考文献
[1]杨瑞霞.基于GPRS电力无线抄表系统的设计与实现[J].电测与仪表,2007,44(12):30-32.
[2]黄承安,张跃,云怀中.基于GPRS的远程仪表监控系统[J].电测与仪表,2003,40(8):42-45.
[3]杨永立,张保平.嵌入式系统中GPRS模块的应用方法[J].计算机技术与自动化,2006,25(4):193-196.
[4]秦大兴,刘建,郑喜凤.基于GPRS模块MC35i的监测系统设计[J].仪表技术与传感器,2007(2):20-22.
[5]杜垚,李波.内置TCP/IP协议的GPRS模块的应用[J].单片机与嵌入式系统,2006(10):41-43.
[6]鲁涵,齐文新,孙庆虎.GPRS模块设计和应用中的若干问题[J].计算机与数字工程,2006(8):26-28.