基于GPS/GPRS/RFID的车辆监控终端设计
常规货物运输监控系统都以车辆为监控对象,而车内货物信息只能来自于离线的数据库,不具备及时了解货物实际变化的能力。本文以Silicon Laboratories公司的C8051F040单片机为核心,通过扩展GPS、GPRS、RFID等模块,在实现车辆GPS远程监控的基础上,实现了车辆所运输货物信息的实时传输,有助于真正实现物流系统的全程监控。
1 系统硬件结构
要对物流车辆进行全面监控,终端需要实现的功能至少包括:车辆定位、车辆远程控制、货物实时监测、与监控中心进行实时通讯、与驾驶员进行人机交互等。由系统功能需求出发.车辆监控终端包括如下六模块:单片机及外围扩展模块、GPS模块.GPRS模块、RFID模块、LCD显示模块、车辆控制模块等。系统结构如图1所示。
图1 物流车辆监控终端硬件结构框图
本系统以C8051F040单片机为核心。该单片机是一款混合信号高速单片机,片上集成了丰富的模拟外设和数字外设,其中包括2个12位ADC,1个12位DAC,1个8位ADC,64个IO端口,可同时使用的硬件SMBus(IIC)、SPI和2个增强性UART串口,5个通用16位计数器/定时器,专用的看门狗定时器。单片机的指令处理能力最高可达25 MIPS,可以满足监控终端的数据处理要求。
如图1所示,单片机通过UART0和UARTl分别接口iTrax300 GPS模块和WAVECOM GR64 GPRS模块。单片机与模块之间采用TTL串行通讯,波特率4800bps至19200bps可调。单片机的EMIF(外部存储器接口)配置到P4-P7口上,采用数据线/地址线非复用方式。在EMIF上接口TL16C554异步通讯组件可为单片机扩展4路增强型UART,各路UART波特率可达lMbps。这4路UART中。A路经过MAX485芯片做电平转换后连接SuperRFID SPD300 RFID模块。以读取货物上的RFID标签信息及驾驶员工卡信息;B路经过MAX3232芯片做电平转换后提供给用户用于配置监控终端参数;C路、D路串口备用。LCD显示模块LCMl2864ZK也通过EMIF与单片机连接,用于显示车辆、货物及监控中心传来的信息;监控终端开机时需要载入一些参数,如监控中心IP地址,上传信息的定时/定距间隔等,这些都需要存储到非易失性存储器中。本设计采用Ramtron的铁电存储器FM24CLl6A,容量为2Kbits,可直接通过SMBUS(IIC)总线与C8051F040接口,不但使用方便,读写速度和寿命也优于一般EEPROM;单片机通过I/O控制继电器实现车辆断油、断电、报警等功能;系统所需的3.6V(GPRS模块)和3.3V(电路其他部分)电源南2路LM2596提供。MAX706芯片用以实现系统复位和电源管理。
2 系统软件设计
参照图2所示,监控终端软件整体流程是:在监控终端上电后,首先完成各模块的初始化、打开定时器中断,之后GPS开始工作,单片机控制GPRS模块连接到GPRS网络并登录监控中心。登录成功后,程序进入主循环,监控终端实时接收中心的配置命令,在LCD上显示相关信息。由定时器控制RFID读卡器周期性地查询车内RFlD标签、更新车辆定位信息.完成定时/定距上报车辆位置、检测车内货物、车辆远程控制等功能。单片机还可以根据GPRS模块的反馈信息自动监测网络连接情况,并实现断线重连。
软件各部分中,比较霞要的包括GPS导航报文解析、GPRS模块控制、RFID应用以及LCD显示控制等。和众多GPS模块相同,本终端中GPS也输{“NMEA-0183标准导航报文,对该报文的解析方法已经很成熟,在此不再赘述。LCD显尔模块——LCMl2864ZK有串并两种接口方式以及相应的控制方法,接口电路及显示控制例程可参阅参考文献。以下着重分析GPRS模块控制程序设计及RFID应用程序设计。
图2 监控终端软件整体流程图
2.1 GPRS模块控制程序设计
GPES是通用分组无线业务的简称。在应用上具有通讯速度高、永远在线、收费合理等特点,非常适合于车载监控终端使用。要以单片机为核心实现GPRS数据传输,一方面要求所用GPRS模块能够连接到GPRS网络,另一方面要求在单片机或GPRS模块上实现TCWIP传输协议。以实现基于GPRS网络的应用。本设计中GR64模块内嵌了TCP/IP协议栈,所有GPRS模块的相关操作都通过AT命令实现。
AT指令由单片机发出,GPRS模块收到指令后反馈执行结果。根据指令及执行结果的不同。AT指令反馈格式上分为三种:固定反馈、含参反馈及混合反馈,如表1所示。对反馈进行快速稳定解析对提高终端运行速度和稳定性有重要意义。
表1 AT指令反馈分类
对于AT指令反馈如果使用先缓存后解析的方法,一方面缓存数据需要较大的存储空间,另一方面接收出错时无法判断。本终端采用边接收边解析的方法:将反馈信息头(如OK。+CSQ:,+CSCA:)以字符串数组的形式存储到单片机FLASH空间的固定区域。单片机收到第一个字符时,将匹配各信息头的第一个字符,对匹配上的信息头做标记。当收到下一个字符时只匹配上次已匹配上的信息头。这样每次的匹配量越来越少。一旦某个信息头完全匹配上,则根据该信息的类型做进一步处理。如果是固定反馈,则匹配结束。如果是含参反馈,则继续接收参数,对参数段采用先缓存后解析的方法:如果是混合反馈,则先接收参数,解析后进行新一轮匹配以接收第二行反馈信息。如接收过程中未匹配成功,则立即开始新一轮匹配。匹配流程如图3所示。
图3 反馈信息匹配过程
本应用中,通过AT指令控制GR64模块连接GPRS网络并与监控中心进行分组通信的过程如表2所示。该过程也适用于其他GPRS模块。
表2 GPRS网络分组通信控制过程
2.2 RFID应用程序设计
本设计使用上海秀派电子生产的SuperRFID SPD300 RFID读卡器。它是一款2.4G RFID产品,町同时读取200张RFID标签信息,识别距离从0米到80米可调。RFID读卡器开机后将按照每0.5秒一次的频率扫描货箱内的RFID标签,标签信息由信息头(Ox02)和24bits标签编号组成。在应用巾需要解决两方面的问题:一是如何降低RFID功耗的问题。RFID读卡器连续工作时功耗较大。本设计由单片机的I/O控制继电器实现RFID读卡器周期性工作,从而达到降低功耗的目的;二是如何得到可靠的RFID标签扫描结果的问题。当货箱内RFID标签较多的时候一次读卡结果可能不全面,会漏掉某些标签信息。这时需要综合多次扫描结果才能形成全面的扫描结果。本设计中单片机每次采集1.9秒RFID信息(即=三次扫描结果)综合形成本次RFID扫描结果,结果全面可靠。
2.3 RFID应用程序分为两部分,即货物装卸监测与在途监测。
货物装卸监测程序流程可简述为:终端收到中心发来的货单后,开始匹配货场区域,一旦车辆驶入货场区域即提示车辆装货。这时车内RFID读卡器以较短的间隔循环扫描车内RFID标签。装货完成后,一旦GPS检测到车辆驶出货场即开始将车内RFID标签列表与中心下发的货单列表比较,如发现装错货物立即报警,否则转入在途监测程序。当GPS监测到车辆到达货场区域时,监控终端提示卸货。RFID读卡器监测卸货情况。卸货完毕,终端核对货单,检验是否卸错货物,如卸错货物则报警提示。
在途监测程序流程可简述为:单片机通过继电器控制RFID模块每隔一定周期扣描若干次RFID标签。单片机采集其中三次扫描结果形成本次标签扫描结果进行比较。如果发现标签有增减,刚主动通过GPRS向监控中心上报。此外,根据中心设定的时间间隔,终端会定时上报车内现有货物信息。
两部分程序的切换由车辆所处位置及货单执行情况决定。单片机通过GPS实时监控车辆位置,监控中心会设定一些重要监控区域(如货场、禁止驶入譬域、危险区域等),车辆一旦进入这些区域,一方面监测程序做相应切换,另一方面终端会向监控中心报告车辆位置并警告提示。货单则是控制RFID货物监测程序启动、结束、报警、上传数据的重要依据。
3 结论
本文的创新点在于将RFID技术与车辆定位系统集成到了一起,填补了货物在途监测环节的空白。在使用中,终端表现出运行稳定,配置方便等特点。将RFID技术应用于车辆监控终端中,满足了货物在途检测的需求,为实现货物从生产至销售的全程检测提供了有利支持。本文介绍的AT指令解析及控制GPRS模块通讯的方法具有通用性,可直接用于类似的设计中。该设计已在北京市快速公交1号线和北京物资学院物流实验教学系统中得到应用。