常規貨物運輸監控系統都以車輛為監控對象,而車內貨物信息只能來自于離線的數據庫,不具備及時了解貨物實際變化的能力。本文以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號線和北京物資學院物流實驗教學系統中得到應用。產生經濟效益二十余萬元。 作者:宋鵬飛,張海 來源:《微計算機信息》(嵌入式與SOC)2009年第4-2期 |