摘 要:针对垃圾的计量统计问题,设计了一种便携式信息采集系统。该系统以?滋C/OS-II 和STM32F103ZET处理器作为软、硬件平台,并在此硬件平台上扩展了GPS定位、射频识别和液晶显示等功能模块。利用GPS模块和RFID模块采集非接触式IC卡的位置信息和编号信息,进而实现非接触式IC卡的定位,通过“非接触式IC卡-垃圾桶-垃圾来源”这一途径,获取垃圾的收集来源。
关键词:GPS; RFID; STM32
随着社会经济的发展和人们生活质量的提高,城市生活垃圾的产出量越来越大。2011年2月25 日,北京市人大常委会、市政府起草完成了《关于全面推进生活垃圾处理工作的意见》,草案第二十五条提出:“本市产生生活垃圾的单位和个人,应当按照有关规定交纳生活垃圾处理费”。按照文件指示,生活垃圾的计量统计问题尤为重要。本文设计的便携式信息采集系统运用了GPS技术、RFID技术和ARM嵌入式技术[1],能够实现非接触式IC卡的定位。该系统运用在环卫行业,先将IC卡贴在垃圾桶上,通过采集垃圾桶的位置,进而实现垃圾来源的获取。
1 系统的整体方案
该便携式信息采集系统包括电源管理部分、GPS模块部分、RFID模块部分、液晶显示模块部分、存储模块和微处理器部分。总体框图如图1所示。
系统的工作原理为:系统启动后,GPS模块自动定位,模块采集到的时间信息经过解析处理后更新为系统当前时间,模块采集到的经纬度数据经过解析处理后显示在液晶屏上;按下“读卡”按键后,RFID模块通过天线自动搜索RFID标签,如果检测到有标签存在,则模块直接读取出该标签的编号并显示在液晶屏上;该标签的编号结合当前的定位信息重新组合成一组新的编码写入Flash中,系统可以通过USB接口实现数据的离线上传。
2 系统硬件电路设计
2.1 主处理器
该系统选用STM32F103ZET芯片作为主控处理器。一是因为该处理器功耗低、价格低,且具有丰富的外设接口(如FSMC、多达5个USART和1个USB 2.0等[2]),能够很好地满足系统的需要;二是因为ST公司为STM32F103ZET芯片提供了可升级的固件库,大大缩短了系统的开发周期。
本系统中,处理器通过FSMC接口与外扩SRAM、Flash以及LCD实现通信,通过2个USART接口分别与GPS模块和RFID模块实现数据采集,通过USB接口与PC端完成数据交换。
2.2 电源管理单元
系统各模块所需的工作电压为:STM32处理器为2.0 V~3.6 V,GPS模块SR-92为3.3 V~3.5 V, RFID模块JMY-504L为2.7 V~5.0 V,电池BAT为3.7 V,LCD背光电压和工作电压均为2.3 V~3.5 V。因此,选择3.3 V输出即可。本系统电源管理采用二级降压的方式,即AC或USB提供的5 V电压先通过BQ24032芯片转为4.4 V,再通过4片SP6201芯片得到各模块的供电电压VGPS、VRFID、VLCD以及VCC。其中BQ24032是一块可编程的电源管理芯片,能够实现锂电池的充放电管理以及AC、USB和锂电池的自动切换[3]。
实验测得:采用USB单独供电时,BQ24032芯片的输出端电压能达到4.4 V,通过SP6201后测得3.48 V;而单独由电池(充满电)供电时,输出端能够得到3.7 V电压,经SP6201后得到3.5 V电压,满足系统需求。
2.3 GPS模块
SR-92模块内含SIRF III代芯片,具有定位快、灵敏度高和体积小等特点。串口按“波特率4 800 b/s,8个数据位,1个停止位,没有奇偶校验”配置后,模块通过TX引脚不断输出NMEA0183标准格式的定位数据,其中“GPRMC”语句的数据中包含有定位标志、时间、日期和经纬度等信息。
SR-92模块与STM32的UART4完成数据传输,具体连接方式为:SR-92的TX引脚连接处理器的PC10,PWR_CTRL引脚直接接地。处理器通过控制SP6201芯片的使能端来提供VGPS。
2.4 RFID模块
JMY-504L是一块以RC522芯片为处理器的低功耗模块式电路,它支持ISO14443A标准,工作频率为13.56 MHz,可以读/写Mifare 1 K/4K、FM11RF08、Ultra Light等。用户能够通过I2C或 UART接口(由SPS引脚的高、低电平决定,高电平为UART传输,低电平则是I2C传输)向模块发送命令,进而实现对非接触IC卡的读、写等操作。TX-502射频天线配合JMY-504L模块可支持读卡距离6 cm。天线与模块JMY-504L采用分体设计,直接用4线连接[4]。
JMY-504L与STM32的UART5完成数据传输,具体连接方式为:JMY-504模块的TXD和RXD分别与处理器的PC12和PD2连接;片选引脚CE与处理器的PG8相连, ICC引脚与处理器的PG15相连,以检测有无非接触式IC卡。串口通信协议为:波特率19 200 b/s,8个数据位,1个停止位,没有奇偶校验。
3 系统软件设计
3.1 GPS数据处理
GPS模块主要负责时间、日期和经纬度的采集。在室外(或者靠近室外)环境下,GPS模块自动定位并将采集到的NMEA0183标准格式的定位数据通过串口4发送到处理器。如果GPS数据有效,则处理器将当前经纬度与存储器中已存储的参考点经纬度(该经纬度已经有地名编号)相比较,若在范围内则匹配该参考点的地名编号,否则不能匹配地名编号,需要手动输入一个地名编号。处理器把处理过的当前时间、经纬度以及地名编号信息存储在数据结构中,显示屏上会显示“已定位标志”、“北京时间”、“日期”和“当前经纬度”;在室内,GPS模块定位失败时,显示屏上将显示RTC时钟提供的“时间”、“日期”和“上一次有效的经纬度”。图2是GPS数据处理流程图。
3.2 RFID数据处理
RFID模块主要负责读写非接触式IC卡的数据。按下“读卡”按键,RFID模块通过天线向IC卡发送读数据块命令,将IC卡返回的数据发送到处理器,处理器再从数据块中提取编号信息并进行检验,若符合规范(特定编号)就将该编号存储在数据结构中并显示出该编号,不符合则需手动输入该卡的编号。图3是RFID数据处理流程图。
3.3 数据通信格式
GPS采集到的有效时间、日期、经纬度信息和RFID卡采集到的卡编号以新编码的形式存储在数据包Dat[]中,表1是系统与上位机通信的数据结构,表2是数据包的结构。
3.4 μC/OS-II在STM32上移植
本系统的软件设计基于实时嵌入式系统μC/OS-II,软件设计任务分为不同层,包括设备驱动层(Flash、SRAM、RFID、GPS、LCD和KEY等)、组件层μC/GUI以及用户程序层[5]。如图4所示。
μC/OS-II移植到STM32处理器的步骤如下:首先修改系统文件os_cpu.h、 os_cpu_c.c 、os_cpu_a.asm和os_dbg.c;其次修改系统启动文件startup_stm32f10x_hd.s和系统配置文件os_cfg.h;最后编写硬件支持包文件BSP以及应用程序。
μC/OS-II启动的过程为:首先禁止BSP所有中断,执行BSP初始化;完成初始化μC/OS-II后,执行开始任务,启动多任务调度[6]。该系统中,开始任务下建立有按键任务、液晶显示任务、数据存储任务和数据交换任务。任务之间的通信通过按键邮箱、定位邮箱、读卡邮箱、写卡邮箱和数据交换邮箱来实现。
本文设计了基于STM32的便携式数据采集系统,通过利用RFID和GPS技术,能够实现非接触式IC卡的定位。系统可以用作GPS经纬度采集仪,并且能够最多存储50条数据;还能读/写Mifare 1 K/4 K的非接触式IC卡。将该系统应用在环卫行业,即将写好编号的非接触式IC卡固定在垃圾桶上,环卫工人可利用该系统对生活区的垃圾桶进行原地读卡定位,进而得到垃圾桶的收集位置;通过“非接触式IC卡—垃圾桶—垃圾来源”这一途径,间接地实现了“将垃圾来源地精确到小区”的目标。
参考文献
[1] 田明,徐平,黄国辉, 等. 基于STM32和μC/OS-II的 USB数 据采集系统[J].机电工程,2012,4(29):
482-485.
[2] 何华芝.基于STM32的车载监控设备的硬件设计[J].电子测量技术, 2008,31(12):139-146.
[3] 梁伟,王建华,卢刚.基于BQ24032的锂电池充电管理电路设计[J].兵工自动化,2010,6(29):37-40.
[4] 北京金木雨电子有限公司. 说明书JMY504A[Z].(2012-05-02)[2012-08-23].http://www.jinmuyu.com.cn/download/JMY504A_CN.pdf.
[5] 刘波文.ARM Cortex-M3应用开发实例详解[M].北京:电子工业出版社,2011.
[6] 任哲. 嵌入式实时操作系统μC/OS-II原理及应用[M]. 北京:北京航空航天大学出版社, 2009.