基于Cortex-M3的车辆通讯监控终端的设计与实现
- 来源:电子产品世界 smarty:if $article.tag?>
- 关键字:Cortex-M3,通讯监控 smarty:/if?>
- 发布时间:2014-03-23 13:47
引言
安装在挖掘机的远程监控终端,将嵌入式、现场总线分布式控制与GPS远程监控系统等技术应用于履带式液压挖掘机。由于履带式液压挖掘机售价额昂贵,在销售过程中主要采取按揭、分期或融资租赁的销售方式,这种销售方式有较多销售风险,厂家缺乏强制手段,不能有效控制还贷风险。采用了嵌入式、GPS和GSM等技术为基础的远程监控系统是利用技术手段来控制这种风险的有效措施之一。
另一方面,终端实时采集车辆数据,以无线通讯形式传输数据,公司售后服务人员可以通过Internet 随时监控每一台挖掘机的工作状态,为技术人员提供了车辆在使用过程中的车辆监控、车辆运行管理 、车辆健康管理(实时报告)、机械维护和服务管理、通知服务、机械融资管理自动化支持等各类功能,提高了企业的信息化管理水平和监督能力。
1 车辆现场监控终端与服务系统的总体结构
1.1 总体结构
工程机械车辆现场监控终端与服务系统的总体结构(如图1 所示),
其控制原理是利用车载硬件终端PL-LRC,实时精确采集车辆各传感器工作数据、GPS 定位数据等,按照设计的通讯协议,通过商业GSM通讯网络,将车辆信息以短信形式发送到生产厂家服务器上,存储在服务器数据库中[1] 。利用数据信息,可以定期形成相关的数据分析报告,管理员或用户也可在任意一台接入因特网的计算机上使用 IE 浏览器,获得大量的车辆位置信息和工作数据,并根据这些数据,对运行中的车辆进行远程控制、诊断和维护。
1.2 PL-LRC车载硬件终端设计
需要开发的PL-LRC车载硬件监控终端包括硬件开发和软件开发,以及测试。硬件系统的工作原理如图2所示。
PL-LRC车载硬件监控终端由微控制器模块、无线通信与定位模块、电源控制模块、CAN总线接口模块等部分组成。本文主要介绍监控终端的开发与实现。
2 硬件设计
车载终端硬件主要由控制模块Cortex-M3 内核处理器、GPS模块、存储模块、CAN收发器、JTAG模块和电源模块等组成[2] ,车载终端硬件设计框图如图3所示。
控制模块采用STM32 系列具有性能高、成本低廉、功耗低的特点,是针对嵌入式应用 ARM Cortex-M3 内核而设计的,本系统设计中采用STM32F103RBT6,其中增强型的是同类中性能最高的,时钟频率达到 72MHz,通信接口有 2个I2C接口、3个UART接口、USB2.0接口、2个SPI接口、CAN接口设计用于手持和通用嵌入式系统,支持基于JTAG的系统调试,完全能满足车载终端的系统需求[3-4] 。
无线通信与定位模块的工作环境严酷,工作要求严苛,工作室震动、冲击强烈,电磁环境恶劣,可靠性要求极高,本设计对这些要求给以特别关注,在设计时采用了Telit公司的GM862-GPS模块。
该模块是Telit产品中最先进的型号,是典型的功能卓越的M2M通信模块。产品采用加固/耐用设计,工业级宽温,内建SIM卡插槽,MMCX RF接口,干扰监测,内嵌TCP/IP(含TCP/IP、UDP、FTP、SMTP协议)协议栈,自动扫描频段(无SIM卡),集成20通道、高灵敏度SiRFstarIII GPS接收器,具有850/ 900/1800/1900 MHz 四波段GSM/GPRS调制解调, SIM卡访问控制(SAP)及内置Python1.5.2+解释。GM862-GPS同时支持IIC和SPI接口,可直接扩展外部部件,如传感器、摄像头、显示器等[5] 。
3 软件设计
车载终端软件包括启动引导程序、操作系统和应用程序三部分。引导程序在设备加电后首先运行,完成关键硬件设备的初始化,建立内存空间映射,并从存储空间加载操作系统和文件系统到运行内存。然后把CPU的控制权交给操作系统,由操作系统启动应用程序的运行[6] 。应用程序完成车载终端应用软件的功能。
本次开发的是典型的嵌入式系统,设计人员需要完成的工作开发的硬件、软件、算法、测试等多个环节,所有环节有效的配合才能保证整个项目的顺利进展,设计中用到的Python脚本语言具有面向对象、跨平台、高效、可移植性强等特点,可快速开发脚本程序,大大简化开发与测试工作。基于此,本次设计用Python的2.7.6版本的开发工具,函数库包括两类:标准库和大量的第三方库[7] 。
通讯与定位功能程序属于应用程序,是本次设计的核心部分,其中包括了通讯协议的设计。二合一通讯模块GM862-GPS流程图设计如图4所示。
程序设计为:W_main 主程序、W_sms短信处理功能程序、W_subf子功能程序和全局变量定义文件。
import GPIO
import MDM
import SER
import MOD
import GPS
import G
def filer(x): #文件读,返回字符串
def filew(x,s): #文件写,返回字符串
def ini_io(): #Telit I/O初始化
def ini_telit(): #Telit初始化
def send_sms(to, text): #SMS 发送功能返回 1/0
def door_sms(str): # SMS 处理; 返回字符串
def info_gps(): #立即获取GPS 信息;返回字符串
def info_gps1(): #1.25 min获取GPS 信息;返回字符串
def handle_status(sta): #获取Telit I/O状态;返回数据
def report_schedule(temps): #定期巡检
def check_self(): #检查GSM, GPS, EEPROM,如正常返回NONE
def alarm(temps): #报警处理
def ag_test(): #老化测试
3.1 SMS短信命令格式定义
无线通信与定位模块(GM862-GPS)与服务器的通讯通过SMS短信完成。通讯协议设计符合如下要求:
● 所有消息以文本格式
● 所有消息由常见的可打印ASCII字符组成,比如:‘ 123abcABC() #& ’。
● 每条消息不超过140字符
● 所有信息、命令和消息反馈包含在同一条消息里,格式如表1所示,命令标识符如表2所示
CAAC标示符:车辆CAN 报警信息工作流程如图5所示。
报警短信处理程序为:
import GPIO
import MDM
import SER
import MOD
import GPS
import G
from w_subf import *
def smsinf_cat(tempinf): #处理来自服务器的sms return NONE
def CB_sms(tempsim,tempinf): #处理CB命令sms; return NONE
def AC_sms(tempsim,tempinf): #处理AC命令sms; return NONE
def handle_sms(tempsm): 处理短信命令; return NONE
def handle_miss():
def service_tool(tempc):
3.2 GM862-GPS与车辆CAN总线的通讯
考虑到效率与稳定性的要求,我们将定位模块Telit-GM862-GPS和控制模块设计为循环工作模式,如图6所示。
监控终端与车辆的数据通讯满足CAN信息格式,SMS短信向车辆发送的命令数据格式按表4定义。车辆返回的数据格式也做了定义,信息格式见表4。
4 系统测试
该系统核心器件由:定位模块GM862、控制模块处理器、电源IC芯片STPS54160/LM1085/LP38690组成。
测试需求设备有:秒表,PL-LRC 终端,手机,电脑等。功能测试依据为产品规格书和相关通讯协议。并对产品进行了抗干扰测试,结果良好。测试项目见表5所示。
5 结束语
常用上述方法,软件与硬件设计大大车辆监控终端系统,自动化程度高,编程简单,硬件电路可靠,具备车辆信息管理 、车辆监控、车辆运行管理 、车辆健康管理(实时报告)、机械维护和服务管理、通知服务、机械融资管理自动化支持等功能,提高了企业的信息化管理水平和监督能力。
参考文献:
[1]林桂花.基于GSM模块的数据传输及实时控制系统[J].计算机与现代化,2006,2:103-104,108.
[2]孙启富,孙运强,姚爱琴.基于STM32的通用智能仪表设计与应用[J].仪表技术与传感器,2010,(10):34-36.
[3]陈丽珍,林小薇.嵌入式ARM微处理器选型指南[J].单片机与嵌入式系统应用,2009(6):75-76.
[4]王永虹,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践[M].北京航空航天大学出版社,2008
[5]Telit. GM862-GPS HW User Guide 1vv0300728 Rev.8 - 20/09/07:9-11.
[6]李岩,韩劲松.基于ARM嵌入式系统接口技术[M].北京:清华大学出版社,2009
[7]罗霄,任勇,山秀明.基于Python 的混合语言编程及实现[J].计算机应用与软件,2004,21(12):17-18
李旭东 上海市大众工业学校(上海201800)