摘 要: 針對(duì)垃圾的計(jì)量統(tǒng)計(jì)問(wèn)題,設(shè)計(jì)了一種便攜式信息采集系統(tǒng)。該系統(tǒng)以?滋C/OS-II 和STM32F103ZET處理器作為軟、硬件平臺(tái),并在此硬件平臺(tái)上擴(kuò)展了GPS定位、射頻識(shí)別和液晶顯示等功能模塊。利用GPS模塊和RFID模塊采集非接觸式IC卡的位置信息和編號(hào)信息,進(jìn)而實(shí)現(xiàn)非接觸式IC卡的定位,通過(guò)“非接觸式IC卡-垃圾桶-垃圾來(lái)源”這一途徑,獲取垃圾的收集來(lái)源。
關(guān)鍵詞: GPS; RFID; STM32
隨著社會(huì)經(jīng)濟(jì)的發(fā)展和人們生活質(zhì)量的提高,城市生活垃圾的產(chǎn)出量越來(lái)越大。2011年2月25 日,北京市人大常委會(huì)、市政府起草完成了《關(guān)于全面推進(jìn)生活垃圾處理工作的意見(jiàn)》,草案第二十五條提出:“本市產(chǎn)生生活垃圾的單位和個(gè)人,應(yīng)當(dāng)按照有關(guān)規(guī)定交納生活垃圾處理費(fèi)”。按照文件指示,生活垃圾的計(jì)量統(tǒng)計(jì)問(wèn)題尤為重要。本文設(shè)計(jì)的便攜式信息采集系統(tǒng)運(yùn)用了GPS技術(shù)、RFID技術(shù)和ARM嵌入式技術(shù)[1],能夠?qū)崿F(xiàn)非接觸式IC卡的定位。該系統(tǒng)運(yùn)用在環(huán)衛(wèi)行業(yè),先將IC卡貼在垃圾桶上,通過(guò)采集垃圾桶的位置,進(jìn)而實(shí)現(xiàn)垃圾來(lái)源的獲取。
1 系統(tǒng)的整體方案
該便攜式信息采集系統(tǒng)包括電源管理部分、GPS模塊部分、RFID模塊部分、液晶顯示模塊部分、存儲(chǔ)模塊和微處理器部分。總體框圖如圖1所示。
系統(tǒng)的工作原理為:系統(tǒng)啟動(dòng)后,GPS模塊自動(dòng)定位,模塊采集到的時(shí)間信息經(jīng)過(guò)解析處理后更新為系統(tǒng)當(dāng)前時(shí)間,模塊采集到的經(jīng)緯度數(shù)據(jù)經(jīng)過(guò)解析處理后顯示在液晶屏上;按下“讀卡”按鍵后,RFID模塊通過(guò)天線自動(dòng)搜索RFID標(biāo)簽,如果檢測(cè)到有標(biāo)簽存在,則模塊直接讀取出該標(biāo)簽的編號(hào)并顯示在液晶屏上;該標(biāo)簽的編號(hào)結(jié)合當(dāng)前的定位信息重新組合成一組新的編碼寫入Flash中,系統(tǒng)可以通過(guò)USB接口實(shí)現(xiàn)數(shù)據(jù)的離線上傳。
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 主處理器
該系統(tǒng)選用STM32F103ZET芯片作為主控處理器。一是因?yàn)樵撎幚砥鞴牡?、價(jià)格低,且具有豐富的外設(shè)接口(如FSMC、多達(dá)5個(gè)USART和1個(gè)USB 2.0等[2]),能夠很好地滿足系統(tǒng)的需要;二是因?yàn)镾T公司為STM32F103ZET芯片提供了可升級(jí)的固件庫(kù),大大縮短了系統(tǒng)的開發(fā)周期。
本系統(tǒng)中,處理器通過(guò)FSMC接口與外擴(kuò)SRAM、Flash以及LCD實(shí)現(xiàn)通信,通過(guò)2個(gè)USART接口分別與GPS模塊和RFID模塊實(shí)現(xiàn)數(shù)據(jù)采集,通過(guò)USB接口與PC端完成數(shù)據(jù)交換。
2.2 電源管理單元
系統(tǒng)各模塊所需的工作電壓為: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輸出即可。本系統(tǒng)電源管理采用二級(jí)降壓的方式,即AC或USB提供的5 V電壓先通過(guò)BQ24032芯片轉(zhuǎn)為4.4 V,再通過(guò)4片SP6201芯片得到各模塊的供電電壓VGPS、VRFID、VLCD以及VCC。其中BQ24032是一塊可編程的電源管理芯片,能夠?qū)崿F(xiàn)鋰電池的充放電管理以及AC、USB和鋰電池的自動(dòng)切換[3]。
實(shí)驗(yàn)測(cè)得:采用USB單獨(dú)供電時(shí),BQ24032芯片的輸出端電壓能達(dá)到4.4 V,通過(guò)SP6201后測(cè)得3.48 V;而單獨(dú)由電池(充滿電)供電時(shí),輸出端能夠得到3.7 V電壓,經(jīng)SP6201后得到3.5 V電壓,滿足系統(tǒng)需求。
2.3 GPS模塊
SR-92模塊內(nèi)含SIRF III代芯片,具有定位快、靈敏度高和體積小等特點(diǎn)。串口按“波特率4 800 b/s,8個(gè)數(shù)據(jù)位,1個(gè)停止位,沒(méi)有奇偶校驗(yàn)”配置后,模塊通過(guò)TX引腳不斷輸出NMEA0183標(biāo)準(zhǔn)格式的定位數(shù)據(jù),其中“GPRMC”語(yǔ)句的數(shù)據(jù)中包含有定位標(biāo)志、時(shí)間、日期和經(jīng)緯度等信息。
SR-92模塊與STM32的UART4完成數(shù)據(jù)傳輸,具體連接方式為:SR-92的TX引腳連接處理器的PC10,PWR_CTRL引腳直接接地。處理器通過(guò)控制SP6201芯片的使能端來(lái)提供VGPS。
2.4 RFID模塊
JMY-504L是一塊以RC522芯片為處理器的低功耗模塊式電路,它支持ISO14443A標(biāo)準(zhǔn),工作頻率為13.56 MHz,可以讀/寫Mifare 1 K/4K、FM11RF08、Ultra Light等。用戶能夠通過(guò)I2C或 UART接口(由SPS引腳的高、低電平?jīng)Q定,高電平為UART傳輸,低電平則是I2C傳輸)向模塊發(fā)送命令,進(jìn)而實(shí)現(xiàn)對(duì)非接觸IC卡的讀、寫等操作。TX-502射頻天線配合JMY-504L模塊可支持讀卡距離6 cm。天線與模塊JMY-504L采用分體設(shè)計(jì),直接用4線連接[4]。
JMY-504L與STM32的UART5完成數(shù)據(jù)傳輸,具體連接方式為:JMY-504模塊的TXD和RXD分別與處理器的PC12和PD2連接;片選引腳CE與處理器的PG8相連, ICC引腳與處理器的PG15相連,以檢測(cè)有無(wú)非接觸式IC卡。串口通信協(xié)議為:波特率19 200 b/s,8個(gè)數(shù)據(jù)位,1個(gè)停止位,沒(méi)有奇偶校驗(yàn)。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 GPS數(shù)據(jù)處理
GPS模塊主要負(fù)責(zé)時(shí)間、日期和經(jīng)緯度的采集。在室外(或者靠近室外)環(huán)境下,GPS模塊自動(dòng)定位并將采集到的NMEA0183標(biāo)準(zhǔn)格式的定位數(shù)據(jù)通過(guò)串口4發(fā)送到處理器。如果GPS數(shù)據(jù)有效,則處理器將當(dāng)前經(jīng)緯度與存儲(chǔ)器中已存儲(chǔ)的參考點(diǎn)經(jīng)緯度(該經(jīng)緯度已經(jīng)有地名編號(hào))相比較,若在范圍內(nèi)則匹配該參考點(diǎn)的地名編號(hào),否則不能匹配地名編號(hào),需要手動(dòng)輸入一個(gè)地名編號(hào)。處理器把處理過(guò)的當(dāng)前時(shí)間、經(jīng)緯度以及地名編號(hào)信息存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中,顯示屏上會(huì)顯示“已定位標(biāo)志”、“北京時(shí)間”、“日期”和“當(dāng)前經(jīng)緯度”;在室內(nèi),GPS模塊定位失敗時(shí),顯示屏上將顯示RTC時(shí)鐘提供的“時(shí)間”、“日期”和“上一次有效的經(jīng)緯度”。圖2是GPS數(shù)據(jù)處理流程圖。
3.2 RFID數(shù)據(jù)處理
RFID模塊主要負(fù)責(zé)讀寫非接觸式IC卡的數(shù)據(jù)。按下“讀卡”按鍵,RFID模塊通過(guò)天線向IC卡發(fā)送讀數(shù)據(jù)塊命令,將IC卡返回的數(shù)據(jù)發(fā)送到處理器,處理器再?gòu)臄?shù)據(jù)塊中提取編號(hào)信息并進(jìn)行檢驗(yàn),若符合規(guī)范(特定編號(hào))就將該編號(hào)存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中并顯示出該編號(hào),不符合則需手動(dòng)輸入該卡的編號(hào)。圖3是RFID數(shù)據(jù)處理流程圖。
3.3 數(shù)據(jù)通信格式
GPS采集到的有效時(shí)間、日期、經(jīng)緯度信息和RFID卡采集到的卡編號(hào)以新編碼的形式存儲(chǔ)在數(shù)據(jù)包Dat[]中,表1是系統(tǒng)與上位機(jī)通信的數(shù)據(jù)結(jié)構(gòu),表2是數(shù)據(jù)包的結(jié)構(gòu)。
3.4 μC/OS-II在STM32上移植
本系統(tǒng)的軟件設(shè)計(jì)基于實(shí)時(shí)嵌入式系統(tǒng)μC/OS-II,軟件設(shè)計(jì)任務(wù)分為不同層,包括設(shè)備驅(qū)動(dòng)層(Flash、SRAM、RFID、GPS、LCD和KEY等)、組件層μC/GUI以及用戶程序?qū)覽5]。如圖4所示。
μC/OS-II移植到STM32處理器的步驟如下:首先修改系統(tǒng)文件os_cpu.h、 os_cpu_c.c 、os_cpu_a.asm和os_dbg.c;其次修改系統(tǒng)啟動(dòng)文件startup_stm32f10x_hd.s和系統(tǒng)配置文件os_cfg.h;最后編寫硬件支持包文件BSP以及應(yīng)用程序。
μC/OS-II啟動(dòng)的過(guò)程為:首先禁止BSP所有中斷,執(zhí)行BSP初始化;完成初始化μC/OS-II后,執(zhí)行開始任務(wù),啟動(dòng)多任務(wù)調(diào)度[6]。該系統(tǒng)中,開始任務(wù)下建立有按鍵任務(wù)、液晶顯示任務(wù)、數(shù)據(jù)存儲(chǔ)任務(wù)和數(shù)據(jù)交換任務(wù)。任務(wù)之間的通信通過(guò)按鍵郵箱、定位郵箱、讀卡郵箱、寫卡郵箱和數(shù)據(jù)交換郵箱來(lái)實(shí)現(xiàn)。
本文設(shè)計(jì)了基于STM32的便攜式數(shù)據(jù)采集系統(tǒng),通過(guò)利用RFID和GPS技術(shù),能夠?qū)崿F(xiàn)非接觸式IC卡的定位。系統(tǒng)可以用作GPS經(jīng)緯度采集儀,并且能夠最多存儲(chǔ)50條數(shù)據(jù);還能讀/寫Mifare 1 K/4 K的非接觸式IC卡。將該系統(tǒng)應(yīng)用在環(huán)衛(wèi)行業(yè),即將寫好編號(hào)的非接觸式IC卡固定在垃圾桶上,環(huán)衛(wèi)工人可利用該系統(tǒng)對(duì)生活區(qū)的垃圾桶進(jìn)行原地讀卡定位,進(jìn)而得到垃圾桶的收集位置;通過(guò)“非接觸式IC卡—垃圾桶—垃圾來(lái)源”這一途徑,間接地實(shí)現(xiàn)了“將垃圾來(lái)源地精確到小區(qū)”的目標(biāo)。
參考文獻(xiàn)
[1] 田明,徐平,黃國(guó)輝, 等. 基于STM32和μC/OS-II的 USB數(shù) 據(jù)采集系統(tǒng)[J].機(jī)電工程,2012,4(29):
482-485.
[2] 何華芝.基于STM32的車載監(jiān)控設(shè)備的硬件設(shè)計(jì)[J].電子測(cè)量技術(shù), 2008,31(12):139-146.
[3] 梁偉,王建華,盧剛.基于BQ24032的鋰電池充電管理電路設(shè)計(jì)[J].兵工自動(dòng)化,2010,6(29):37-40.
[4] 北京金木雨電子有限公司. 說(shuō)明書JMY504A[Z].(2012-05-02)[2012-08-23].http://www.jinmuyu.com.cn/download/JMY504A_CN.pdf.
[5] 劉波文.ARM Cortex-M3應(yīng)用開發(fā)實(shí)例詳解[M].北京:電子工業(yè)出版社,2011.
[6] 任哲. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II原理及應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社, 2009.