通用分組無(wú)線(xiàn)服務(wù)技術(shù)GPRS(General Packet Radio Service)是一種移動(dòng)數據業(yè)務(wù),該技術(shù)能滿(mǎn)足日常網(wǎng)絡(luò )行為,具有廣域覆蓋、高速傳輸等優(yōu)點(diǎn)。野外作業(yè)的數據采集嵌入式系統工作于偏遠無(wú)人地區,通常這些采集系統基于GPRS無(wú)線(xiàn)網(wǎng)絡(luò )來(lái)傳輸遠程數據,但系統的維護和升級受到距離和環(huán)境的較大限制,不但成本高,而且周期長(cháng)。 為實(shí)現遠程監測和升級野外作業(yè)嵌入式系統,本文提出一種基于GPRS網(wǎng)絡(luò )、以電子郵件為載體的嵌入式系統遠程監控和升級方案,達到遠程修改系統參數、索取系統自檢報告、索取指定數據文件和升級系統主控程序等目的,實(shí)現嵌入式系統的遠程監控與升級。 與目前大多數嵌入式系統遠程監控和升級的途徑相比,這種以電子郵件為載體、系統定時(shí)收發(fā)郵件的方法,實(shí)現了系統的多功能性與靈活性,同時(shí)較好地滿(mǎn)足了野外作業(yè)嵌入式系統低功耗的要求。 1 系統結構及遠程監控與升級 1.1 系統結構 嵌入式系統中的控制部分由ARM芯片(采用基于三星S3C2440-30的ARM9)和DSP芯片(采用TI公司的TMS320VC5509)組成。ARM和GPRS Modem模塊通過(guò)RS232串口進(jìn)行連接,系統通過(guò)ARM利用GPRS Modem模塊上網(wǎng)并訪(fǎng)問(wèn)網(wǎng)絡(luò )郵箱,從而進(jìn)行相應的操作。系統結構如圖1所示。DSP作為主控單元完成數據采集和處理,ARM則負責數據后期處理和網(wǎng)絡(luò )訪(fǎng)問(wèn)。 ARM是DSP的從設備,兩者通過(guò)串口通信。其中,DSP端是多通道緩沖同步串行端口McBSP,而ARM端則是異步串口UART。為了在不增加外部復雜硬件的條件下實(shí)現兩者通信,必須統一兩端傳輸數據的格式。 遠程監控與升級過(guò)程中,為保證DSP和ARM之間數據傳輸的可靠性與穩定性,系統采用CRC8校驗的數據傳輸方式:數據發(fā)送端發(fā)送每組數據時(shí)都附帶發(fā)送此組數據的CRC校驗碼,數據接收端收到數據后重新計算數據的CRC校驗碼,對兩端得到的CRC校驗碼相比較,相等則請求發(fā)送端發(fā)送下一組數據,不相等則請求重發(fā)本組數據。 1.2 系統遠程監控和升級的總體流程 系統遠程監控和升級的示意圖及整體工作流程分別如圖2、圖3所示。系統進(jìn)行遠程監控和升級時(shí),首先登錄指定郵箱,分析后獲取命令列表并記錄各命令郵件的內容,然后對命令列表中的每1個(gè)命令進(jìn)行分析,完成相應的任務(wù),包括:修改系統參數、發(fā)送系統自檢報告、發(fā)送指定數據文件和升級DSP程序。任務(wù)完成后系統自動(dòng)返回報告郵件,告知本次操作的情況。整個(gè)系統基于GPRS網(wǎng)絡(luò ),以電子郵件為載體,通過(guò)系統對郵件的讀取和發(fā)送,達到遠程監控和升級系統的目的。 2 系統的遠程監控 系統的遠程監控,是通過(guò)對系統中裝有嵌入式操作系統WinCE的ARM進(jìn)行網(wǎng)絡(luò )編程,基于GPRS無(wú)線(xiàn)網(wǎng)絡(luò )實(shí)現其對電子郵件的讀取與發(fā)送,其中涉及到了最常用的電子郵件收件協(xié)議POP3(Post Office Protocol 3)和發(fā)件協(xié)議SMTP(Simple Mail Transfer Protocol)。 2.1 系統遠程監控原理 如表1所示,系統接收遠程命令是基于對命令郵件的讀取。命令郵件由兩部分構成:主題命令和郵件內容。主題命令(即郵件的主題)為單個(gè)小寫(xiě)英文字母,不同的字母代表著(zhù)系統將要完成的功能;郵件內容則包括了系統的新參數、需反饋的數據文件名、新的DSP程序等具體數據信息。 系統發(fā)送的郵件包括數據文件和報告文件,都以電子郵件附件的形式傳送。數據文件反映系統采集的物理數據或自身的狀態(tài)信息;報告文件則是對每次遠程監控命令的回執,表明本次操作是否成功。 2.2 遠程監控中郵件的讀取和發(fā)送 系統遠程監控時(shí)檢查郵箱中郵件的流程如圖4所示。所發(fā)送郵件的主題subject即代表了系統需要完成的任務(wù),例如“修改系統參數”、“發(fā)送自檢報告”、“索取指定文件”和“更新DSP程序”的郵件主題分別是單個(gè)小寫(xiě)字母a、b、c、d,而其余類(lèi)型主題的郵件都被系統識別為無(wú)效郵件而濾掉。因此,系統在讀取郵件時(shí),先選出符合系統要求的郵件加入命令列表,再根據其代表的命令實(shí)現相應的功能。其中,最后一步刪除郵件是為下次讀郵件做準備,保證了系統再次讀取的郵件都是最新的,避免了對已讀郵件的重復操作,提高了可靠性。 系統以電子郵件附件的形式發(fā)送數據文件和報告文件。實(shí)驗中發(fā)現,當發(fā)送的郵件小于2 KB時(shí)偶而會(huì )出現發(fā)送“偽成功”的情況,即程序顯示郵件發(fā)送成功,但郵箱中卻沒(méi)有收到郵件。所以,在發(fā)送小于2 KB的郵件時(shí),先用“空格”將其補足2 KB后再發(fā)送。實(shí)驗證明,在進(jìn)行郵件大小補足后,沒(méi)有再出現過(guò)“偽成功”的現象。 3 系統的遠程升級 系統基于GPRS網(wǎng)絡(luò ),完成對郵箱中DSP新程序代碼的讀取,然后利用串口通信和Bootloader技術(shù)實(shí)現DSP程序的遠程升級。系統內部的ARM和DSP采用串口通信,統一了兩端收發(fā)數據的格式并建立了可靠的數據傳輸機制,保證了通信的穩定性。 3.1 遠程升級系統DSP程序原理 系統采用TI公司的TMS320VC5509芯片作為主控單元。TMS320VC5509片內具有128 KB的高速靜態(tài)RAM,片內ROM中固化了引導加載程序Bootloader(簡(jiǎn)稱(chēng)“DSP5509”),其Bootloader設置為外部SPI串行啟動(dòng)模式,外部?jì)Υ婷浇闉?Flash。系統上電后,DSP5509在Bootloader引導下自動(dòng)加載儲存在片外Flash指定地址空間中的程序到片內的高速RAM中運行。 遠程升級系統中,DSP程序是基于DSP5509的Bootloader技術(shù)。將新的DSP5509程序按照一定的格式編碼后發(fā)送到系統指定的郵箱中,系統利用GPRS模塊訪(fǎng)問(wèn)此郵箱并讀取出新程序,然后將新程序通過(guò)串口發(fā)送給DSP5509且保存到片外Flash的指定地址空間中。發(fā)送和保存結束后自動(dòng)復位并重啟DSP5509,在Bootloader的引導下DSP5509從外部Flash中加載并運行新程序,從而完成DSP5509程序的更新升級。 3.2 系統遠程升級時(shí)的流程 在系統進(jìn)行遠程升級時(shí),內部的DSP和ARM之間存在著(zhù)較大數據量的傳送,必須建立可靠的數據傳輸機制才能保證通信的穩定性。因此,系統將待發(fā)送的數據進(jìn)行分割以分組形式傳輸,即將待發(fā)送的M字節數據分割成(x+1)組發(fā)送,前x組每次發(fā)送m=M/x個(gè)(M/x取整)字節,最后一組發(fā)送剩下的s=(M-m×x)個(gè)字節(若M/x為整數,則只需發(fā)送x組數據)。同時(shí),DSP或ARM每次發(fā)送的數據格式均為3in1模式,即:(第1個(gè)字節表示本次發(fā)送數據的字節數+中間部分為m或者s字節的數據+最后1個(gè)字節為數據的CRC校驗碼),如圖5所示。 遠程升級DSP程序時(shí),DSP端程序流程如圖6所示。ARM將從郵箱中讀取新程序代碼傳送給DSP,數據的傳送采用基于CRC8校驗的數據傳輸方式。其中,DSP先將ARM發(fā)送來(lái)的數據保存到Flash中(地址為70000h"7FFFFh的sector7中)。在確保DSP正確無(wú)誤地接收完所有從ARM發(fā)送來(lái)的程序代碼后,才將sector7中的數據轉存到地址為00000h"0FFFFh的sector0中。sector0是DSP指定外部?jì)Υ娉绦虻牡刂房臻g,保證了遠程升級的可靠性。如果傳輸過(guò)程中重傳次數超過(guò)上限N,則說(shuō)明此次傳輸可靠性降低,系統取消本次升級,保證系統的安全與穩定。 實(shí)驗中,系統準確識別和讀取了郵箱中的命令郵件,根據命令完成了相應任務(wù);系統發(fā)送郵件時(shí),成功地將數據文件和報告文件以電子郵件附件的形式發(fā)送到指定郵箱;測試遠程升級功能時(shí),準確無(wú)誤地實(shí)現了系統的主控程序更新。整個(gè)遠程監控和升級的過(guò)程穩定、可靠。 本系統基于GPRS網(wǎng)絡(luò )、SMTP協(xié)議、POP3協(xié)議、串口通信和DSP的Bootloader等技術(shù)實(shí)現了嵌入式系統的遠程監控與升級,既能遠程修改系統的參數,又能獲取系統自檢報告、指定數據文件,并且實(shí)現主控程序的遠程更新升級。整個(gè)系統在網(wǎng)絡(luò )通信和串口通信的過(guò)程中都采用了嚴密的應答機制和數據校驗規則,充分地保證了通信的可靠性和快速性,從而實(shí)現了系統的穩定性。實(shí)驗證明,該系統在保證穩定性和可靠性的同時(shí),降低了設計成本,縮短了維護周期,并且具有良好的擴展性。 |