摘 要: 針對垃圾的計量統計問題,設計了一種便攜式信息采集系統。該系統以?滋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.