ARM是DSP的從設備,兩者通過串口通信。其中,DSP端是多通道緩沖同步串行端口McBSP[2],而ARM端則是異步串口UART。為了在不增加外部復雜硬件的條件下實現(xiàn)兩者通信,必須統(tǒng)一兩端傳輸數(shù)據(jù)的格式[3]。
遠程監(jiān)控與升級過程中,為保證DSP和ARM之間數(shù)據(jù)傳輸?shù)目煽啃耘c穩(wěn)定性,系統(tǒng)采用CRC8校驗的數(shù)據(jù)傳輸方式:數(shù)據(jù)發(fā)送端發(fā)送每組數(shù)據(jù)時都附帶發(fā)送此組數(shù)據(jù)的CRC校驗碼,數(shù)據(jù)接收端收到數(shù)據(jù)后重新計算數(shù)據(jù)的CRC校驗碼,對兩端得到的CRC校驗碼相比較,相等則請求發(fā)送端發(fā)送下一組數(shù)據(jù),不相等則請求重發(fā)本組數(shù)據(jù)。
1.2 系統(tǒng)遠程監(jiān)控和升級的總體流程
系統(tǒng)遠程監(jiān)控和升級的示意圖及整體工作流程分別如圖2、圖3所示。系統(tǒng)進行遠程監(jiān)控和升級時,首先登錄指定郵箱,分析后獲取命令列表并記錄各命令郵件的內容,然后對命令列表中的每1個命令進行分析,完成相應的任務,包括:修改系統(tǒng)參數(shù)、發(fā)送系統(tǒng)自檢報告、發(fā)送指定數(shù)據(jù)文件和升級DSP程序。任務完成后系統(tǒng)自動返回報告郵件,告知本次操作的情況。整個系統(tǒng)基于GPRS網(wǎng)絡,以電子郵件為載體,通過系統(tǒng)對郵件的讀取和發(fā)送,達到遠程監(jiān)控和升級系統(tǒng)的目的。
2 系統(tǒng)的遠程監(jiān)控
系統(tǒng)的遠程監(jiān)控,是通過對系統(tǒng)中裝有嵌入式操作系統(tǒng)WinCE[4]的ARM進行網(wǎng)絡編程[5],基于GPRS無線網(wǎng)絡實現(xiàn)其對電子郵件的讀取與發(fā)送,其中涉及到了最常用的電子郵件收件協(xié)議POP3(Post Office Protocol 3)和發(fā)件協(xié)議SMTP[6](Simple Mail Transfer Protocol)。[!--empirenews.page--]
2.1 系統(tǒng)遠程監(jiān)控原理
如表1所示,系統(tǒng)接收遠程命令是基于對命令郵件的讀取。命令郵件由兩部分構成:主題命令和郵件內容。主題命令(即郵件的主題)為單個小寫英文字母,不同的字母代表著系統(tǒng)將要完成的功能;郵件內容則包括了系統(tǒng)的新參數(shù)、需反饋的數(shù)據(jù)文件名、新的DSP程序等具體數(shù)據(jù)信息。
系統(tǒng)發(fā)送的郵件包括數(shù)據(jù)文件和報告文件,都以電子郵件附件的形式傳送。數(shù)據(jù)文件反映系統(tǒng)采集的物理數(shù)據(jù)或自身的狀態(tài)信息;報告文件則是對每次遠程監(jiān)控命令的回執(zhí),表明本次操作是否成功。
2.2 遠程監(jiān)控中郵件的讀取和發(fā)送
系統(tǒng)遠程監(jiān)控時檢查郵箱中郵件的流程如圖4所示。所發(fā)送郵件的主題subject即代表了系統(tǒng)需要完成的任務,例如“修改系統(tǒng)參數(shù)”、“發(fā)送自檢報告”、“索取指定文件”和“更新DSP程序”的郵件主題分別是單個小寫字母a、b、c、d,而其余類型主題的郵件都被系統(tǒng)識別為無效郵件而濾掉。因此,系統(tǒng)在讀取郵件時,先選出符合系統(tǒng)要求的郵件加入命令列表,再根據(jù)其代表的命令實現(xiàn)相應的功能。其中,最后一步刪除郵件是為下次讀郵件做準備,保證了系統(tǒng)再次讀取的郵件都是最新的,避免了對已讀郵件的重復操作,提高了可靠性。
系統(tǒng)以電子郵件附件的形式發(fā)送數(shù)據(jù)文件和報告文件。實驗中發(fā)現(xiàn),當發(fā)送的郵件小于2 KB時偶而會出現(xiàn)發(fā)送“偽成功”的情況,即程序顯示郵件發(fā)送成功,但郵箱中卻沒有收到郵件。所以,在發(fā)送小于2 KB的郵件時,先用“空格”將其補足2 KB后再發(fā)送。實驗證明,在進行郵件大小補足后,沒有再出現(xiàn)過“偽成功”的現(xiàn)象。
3 系統(tǒng)的遠程升級
系統(tǒng)基于GPRS網(wǎng)絡,完成對郵箱中DSP新程序代碼的讀取,然后利用串口通信和Bootloader技術實現(xiàn)DSP程序的遠程升級。系統(tǒng)內部的ARM和DSP采用串口通信,統(tǒng)一了兩端收發(fā)數(shù)據(jù)的格式并建立了可靠的數(shù)據(jù)傳輸機制,保證了通信的穩(wěn)定性。
3.1 遠程升級系統(tǒng)DSP程序原理
系統(tǒng)采用TI公司的TMS320VC5509芯片作為主控單元。TMS320VC5509片內具有128 KB的高速靜態(tài)RAM,片內ROM中固化了引導加載程序Bootloader(簡稱“DSP5509”),其Bootloader設置為外部SPI串行啟動模式,外部儲存媒介為 Flash。系統(tǒng)上電后,DSP5509在Bootloader引導下自動加載儲存在片外Flash指定地址空間中的程序到片內的高速RAM中運行。
遠程升級系統(tǒng)中,DSP程序是基于DSP5509的Bootloader技術[7]。將新的DSP5509程序按照一定的格式編碼后發(fā)送到系統(tǒng)指定的郵箱中,系統(tǒng)利用GPRS模塊訪問此郵箱并讀取出新程序,然后將新程序通過串口發(fā)送給DSP5509且保存到片外Flash的指定地址空間中。發(fā)送和保存結束后自動復位并重啟DSP5509,在Bootloader的引導下DSP5509從外部Flash中加載并運行新程序,從而完成DSP5509程序的更新升級。
3.2 系統(tǒng)遠程升級時的流程
在系統(tǒng)進行遠程升級時,內部的DSP和ARM之間存在著較大數(shù)據(jù)量的傳送,必須建立可靠的數(shù)據(jù)傳輸機制才能保證通信的穩(wěn)定性。因此,系統(tǒng)將待發(fā)送的數(shù)據(jù)進行分割以分組形式傳輸,即將待發(fā)送的M字節(jié)數(shù)據(jù)分割成(x+1)組發(fā)送,前x組每次發(fā)送m=M/x個(M/x取整)字節(jié),最后一組發(fā)送剩下的s=(M-m×x)個字節(jié)(若M/x為整數(shù),則只需發(fā)送x組數(shù)據(jù))。同時,DSP或ARM每次發(fā)送的數(shù)據(jù)格式均為3in1模式,即:(第1個字節(jié)表示本次發(fā)送數(shù)據(jù)的字節(jié)數(shù)+中間部分為m或者s字節(jié)的數(shù)據(jù)+最后1個字節(jié)為數(shù)據(jù)的CRC校驗碼),如圖5所示。
遠程升級DSP程序時,DSP端程序流程如圖6所示。ARM將從郵箱中讀取新程序代碼傳送給DSP,數(shù)據(jù)的傳送采用基于CRC8校驗的數(shù)據(jù)傳輸方式。其中,DSP先將ARM發(fā)送來的數(shù)據(jù)保存到Flash中(地址為70000h~7FFFFh的sector7中)。在確保DSP正確無誤地接收完所有從ARM發(fā)送來的程序代碼后,才將sector7中的數(shù)據(jù)轉存到地址為00000h~0FFFFh的sector0中。sector0是DSP指定外部儲存程序的地址空間,保證了遠程升級的可靠性。如果傳輸過程中重傳次數(shù)超過上限N,則說明此次傳輸可靠性降低,系統(tǒng)取消本次升級,保證系統(tǒng)的安全與穩(wěn)定。[!--empirenews.page--]
實驗中,系統(tǒng)準確識別和讀取了郵箱中的命令郵件,根據(jù)命令完成了相應任務;系統(tǒng)發(fā)送郵件時,成功地將數(shù)據(jù)文件和報告文件以電子郵件附件的形式發(fā)送到指定郵箱;測試遠程升級功能時,準確無誤地實現(xiàn)了系統(tǒng)的主控程序更新。整個遠程監(jiān)控和升級的過程穩(wěn)定、可靠。
本系統(tǒng)基于GPRS網(wǎng)絡、SMTP協(xié)議、POP3協(xié)議、串口通信和DSP的Bootloader等技術實現(xiàn)了嵌入式系統(tǒng)的遠程監(jiān)控與升級,既能遠程修改系統(tǒng)的參數(shù),又能獲取系統(tǒng)自檢報告、指定數(shù)據(jù)文件,并且實現(xiàn)主控程序的遠程更新升級。整個系統(tǒng)在網(wǎng)絡通信和串口通信的過程中都采用了嚴密的應答機制和數(shù)據(jù)校驗規(guī)則,充分地保證了通信的可靠性和快速性,從而實現(xiàn)了系統(tǒng)的穩(wěn)定性。實驗證明,該系統(tǒng)在保證穩(wěn)定性和可靠性的同時,降低了設計成本,縮短了維護周期,并且具有良好的擴展性。
參考文獻
[1] Texas Instruments Incorporated著.TMS320VC55x系列DSP的CPU與外設[M].北京:清華大學出版社,2005.
[2] Texas Instruments, Incorporated. TMS320V5501/5502/5503/5507/5509/5510 DSP(McBSP) reference guide[S]. 2004.
[3] 張坤,張冠勇,王樹勛.McBSP在DSP與PC機通信中的研究與設計[J].電子設計應用,2003,2(7):28-30.
[4] 何宗鍵.Windows CE嵌入式系統(tǒng)[M].北京:北京航空航天大學出版社,2006.
[5] 周立功.ARM&WinCE實驗與實踐——基于S3C2410[M]. 北京:北京航空航天大學出版社,2007.
[6] 付祝財,楊莘元,王陽.電子郵件SMTP/POP3收發(fā)協(xié)議的研究與實現(xiàn)[J].信息技術,2004,28(8):57-59.
[7] 徐勝,管慶.TMS320C5000的Bootloader技術[J].電子產品世界,2003,10(03A):41-44.
Lua RTOS 是一個實時操作系統(tǒng),設計在嵌入式系統(tǒng)上運行,對 FLASH 和 RAM 內存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺,并可以輕松移植到其他32位...
關鍵字: Lua RTOS 操作系統(tǒng) 嵌入式系統(tǒng)通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UATR,是一種串行、異步、全雙工的收發(fā)器。全雙工的UART支持同時雙向通信,是嵌入式系統(tǒng)必不可少的d...
關鍵字: 異步收發(fā) 傳輸器 嵌入式系統(tǒng)Flash Memory 是一種非易失性的存儲器。在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應用和數(shù)據(jù)等。在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。
關鍵字: Flash 存儲器 嵌入式系統(tǒng)摘要:為了實現(xiàn)對不同品牌機器人的實時監(jiān)控以及集中管理,實現(xiàn)機器人的互通互聯(lián),設計了一套基于NC-Link的機器人遠程監(jiān)控系統(tǒng)。NC-Link適配器通過機器人的二次開發(fā)接口對機器人進行數(shù)據(jù)采集,然后將采集到的數(shù)據(jù)通過htt...
關鍵字: 工業(yè)機器人 數(shù)據(jù)采集 遠程監(jiān)控摘要:隨著農業(yè)生產中對水資源利用率重視程度的不斷提升,農業(yè)用水的灌溉效率與灌溉滲漏系數(shù)測定準確化與規(guī)范化越來越重要。為實現(xiàn)渠道水位測量的精確化與自動化,研制開發(fā)出一種基于GPRS的渠道水位監(jiān)測系統(tǒng)。對投入式壓力水位檢測方...
關鍵字: GPRS 水位監(jiān)測 上位機設計近年來,隨著計算機技術及集成電路技術的發(fā)展,嵌入式技術日漸普及,在通訊、網(wǎng)絡、工控、醫(yī)療、電子等領域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)無疑成為當前最熱門最有發(fā)展前途的IT應用領域之一。?嵌入式系統(tǒng)一般由嵌入式微處理器、外...
關鍵字: 嵌入式 嵌入式系統(tǒng) 計算機深圳2022年8月26日 /美通社/ -- 8月17日 – 深圳,AMD Xilinx舉辦為期一天的線下技術日活動,在AMD Xilinx主辦下宜鼎國際作為合作伙伴的身份被邀...
關鍵字: AMD Xilinx AGENT 嵌入式系統(tǒng)單向散列算法,又稱hash哈希函數(shù),Hash函數(shù)(也稱雜湊算法)就是把任意長的輸入消息串變化成固定長的輸出串的一種函數(shù),該過程是不可逆的。Hash函數(shù)可用于數(shù)字簽名、消息的完整性檢測、消息起源的認證檢測等。較為常用的方法...
關鍵字: 嵌入式算法 嵌入式系統(tǒng)作為消費者,在我們考慮購買電池供電設備時,通常首先要檢查的關鍵指標之一是一次充電可以使用多長時間。電池壽命已成為許多可穿戴設備的重要賣點,但對于越來越多的工業(yè)物聯(lián)網(wǎng)傳感器和其他類似應用來說,電池壽命同樣也是一個重要的考慮...
關鍵字: 貿澤電子 嵌入式系統(tǒng)