杨彩云
(国家铁路局规划与标准研究院,北京 100055)
随着社会快速发展,定位系统越来越成熟,使用也越来越广泛,而基于北斗和GPS的定位系统也在诸多领域有着广泛应用,在工业环境恶劣的地理区域内,无线传输系统在GPS和北斗数据的传输中起了至关重要的作用,本文将阐述基于北斗和GPS双重定位的无线网络远程车载监测系统,系统主要用于铁路货运槽罐车内部储液温度、压力和地理位置信息的远程监测;其目的在于保障铁路液体货物运输安全,防止储罐因温度超限、压力加大等可能引发危险,系统起到预警作用,确保铁路储罐运输的安全。本文主要从系统构成、软件实现和无线网络远程数据传输方法的软件实现来介绍。
系统主要由感知层、网络层和应用层组成。感知层主要包括温度传感器、压力传感器、液位计、北斗/GPS定位设备和车载监测单元;网络层主要是指:车载监测单元的GPRS无线网络系统;应用层主要是指:车载监测系统的中心控制平台。如图1所示。
图1 系统框图Fig.1 System diagram
车载监测单元的核心是STM32L152超低功耗32位CORTEX M3 控制器,车载监测单元的总体需求及设备端口资源需求归纳如下。
温度、压力:两路模拟量输入,分别实现油罐车罐体内压力、温度的采样。信号输入类型是4~20 mA模拟电流信号,另外有两路预留。
阀门状态监测:两路数字量输入信号,同时两路预留。
车辆定位:一路GPS定位模块通讯端口,一路北斗定位模块通信端口。
无线传输:一路GPRS模块通讯端口。
供电:采用电池供电,一次充电周期的使用时间为半年。
有3个串口,串口1与GPRS无线发射模块连接,串口2和串口3与GPS和北斗卫星定位模块连接。
通过客户需求的详细分析,制定了车载监测单元的软件设计框图,如图2所示。
图2 监测单元软件模块Fig.2 Software module of monitoring unit
定时中断处理单元主要由采集、电源控制、数据处理和通信等模块组成。
采集模块主要是对温度和压力信息进行采集处理,采集电流量为4~20 mA,采集节点通过电压量转换成的电流量,经过计算公式,A= (25 ×D/ 4 096 - 4 )×(M-N)/ 16 +N,其中D为AD采集数字量,M为量程最大值,N为量程最小值,STM32中AD为12位,因此量化值为4 096。模拟量滤波方法采用的是截尾均值法:采集n组数据,去掉最大值和最小值,n-2组数据再做平均,通过此种方法能有效的控制由硬件电路产生的扰动。
电源控制模块是对电源电量进行智能控制,当电量低时首先进行电量低报警,当电量过低时,自动停止所有运行。
数据处理模块主要处理采集的模拟量、电量和开关量等信息。
通信模块对数据处理模块的输出数据以GPRS无线传输模块传给平台系统。
对于嵌入式系统,在处理器和操作系统被选定后,也就基本确定了系统框架。而在功率消耗上处理器是比重最大的一个部分,对于不带显示屏的嵌入式设备,微处理器的功率消耗几乎是整个系统功耗的一半,甚至更多。因此在选择处理器时,除了要注意其性能的优劣及所提供的接口和功能外,也不能够忽视其功耗特性。
综合考虑各方面因素,系统使用的是STM32L152芯片。在运行模式下芯片功耗低至185 μA/MHz,在休眠待机状态下为0.29 μA/MHz,从休眠待机模式切换到运行模式仅需8 μs。当没有中断时,通过配置控制状态使监测单元将进入低功耗模式。STM32L152有5种低功耗模式:低功耗运行模式、低功耗睡眠模式、睡眠模式、待机模式和停止模式。采用低功耗睡眠模式时,系统内核停止运行、外设保持运行。
1)低功耗睡眠模式的基本设置
设置LPSDSR位,使内部电源变换器在低功耗模式下工作,执行WFI/WFE指令。
设置SLEEP_PD位,使Flash模块进入低功耗模式,保持系统时钟设置在128 kHz以下。
内核供电VCORE配置供电电压为1.5 V。
配置SLEEPONEXIT位,进入低功耗睡眠模式,选择SLEEP NOW/SLEEP ON EXIT。
2)低功耗睡眠模式增强设置
设置寄存器RCC_AHBLPENR和RCC_APBxLPENR,使系统在进入睡眠模式时自动关闭不适用的外设和GPIO口的时钟。
外部中断处理单元主要用于监测阀门状态,有两路数字量输入信号,且有两路预留。系统监测主要是进行阀门监测,罐车阀门的开关状态是非常关键的信息,通过双重保险机制确保采样的准确性,一是通过外部中断产生“沿”的变化来触发中断;然后利用高低电平得出阀门状态;二是通过定时读取引脚的电平值,确定阀门状态,从而达到双重保障。
设备的卫星定位采用了GPS和北斗两种定位模块,实现了恶劣环境下定位信息的互相补充。北斗定位使用的是ublox的NEO-M8芯片;利用已配置好的芯片上传频率,通过串口智能上传数据,通过协议中指定的位置,判断数据是否为有效数据。GPS定位使用的是中兴二合一模块MG2639_V2,首先芯片初始化设置,然后按照配置信息利用串口定时上传数据,利用有效位置来判断数据的有效性,从而进行数据接收。GPS和北斗的定位模块的通用协议如下:
美元符号“$”是语句起始标志;
半角逗号“,”是参数分隔符;
星号“*”是校验码识别符;
其后面的两位数为校验码。
校验码是“$”和“*”之间所有字符进行异或和;
GPRS模块采用的是中兴MG2639_V2二合一模块,MG2639_V2是中兴通讯研制的 GSM850/EGSM900/DCS1800/PCS1900 四频工业模块,支持多种无线网络。
系统利用向控制串口发送一系列“AT指令”实现GPRS模块建立网络连接和数据的远程发送,常用指令包括初始化命令、短信命令、GPRS命令和网络命令。
车载监测单元的开发环境是Keil uVision4,开发语言是C,在系统运行调试时,车载监测单元的运行模式通过手机短消息进行配置,监测单元的主要告警信息以及全部模拟数字量信息的查看,采用专用网络调试工具,具体物理连接如图3所示。
图3 系统物理连接图Fig.3 Physical connection diagram of system
本系统是针对铁路车载监控需求展开研究工作,随着国内北斗卫星定位系统组网规模的逐步扩大,各行各业都在进行相关试验项目,本项目研制的技术方案及形成的成果,能够打造一套北斗卫星定位终端的公共硬件平台,以该技术方案为依托,针对具体行业项目进行个性化优化调整,将能支撑几乎所有行业基本应用需求,有广阔的开发空间和应用前景。