OTA技術(shù)在電梯物聯(lián)網(wǎng)中的應(yīng)用
文:何小虎 唐國明 上海新時達(dá)電氣股份有限公司2019年第一期
【摘要】
電梯物聯(lián)網(wǎng)終端的通常部署電梯控制柜機(jī)房內(nèi),龐大的終端數(shù)量對電梯物聯(lián)網(wǎng)應(yīng)用程序的質(zhì)量提出較高的要求,當(dāng)需更新應(yīng)用軟件時,傳統(tǒng)固件燒錄方式將面臨人力物力財力等諸多挑戰(zhàn),OTA(Over-the-Air)技術(shù)能較好解決電梯物聯(lián)網(wǎng)終端本地應(yīng)用更新帶來的問題,OTA能實現(xiàn)修復(fù)產(chǎn)品缺陷、豐富產(chǎn)品功能、方便產(chǎn)品迭代升級等功能,為電梯物聯(lián)網(wǎng)產(chǎn)品快速切入市場和降低整體開發(fā)成本提供強(qiáng)有力支撐。借助移動網(wǎng)絡(luò)將更新源從服務(wù)端下載到物聯(lián)網(wǎng)終端,并通過檢驗、交互及備份等機(jī)制確保本次更新的正確性和安全性。電梯物聯(lián)網(wǎng)終端按是否帶操作系統(tǒng)可分為前后臺終端和帶系統(tǒng)終端,本文分別介紹兩種不同類型終端的OTA設(shè)計和實現(xiàn)過程。
1.系統(tǒng)設(shè)計
1.1OTA方案選擇
電梯物聯(lián)網(wǎng)OTA方案與傳統(tǒng)消費類智能終端的有相似之處,都包括無線側(cè)和CPU側(cè),無線側(cè)無法從服務(wù)端下載更新文件,CPU側(cè)負(fù)責(zé)將更新文件更新到Flash中執(zhí)行。從無線側(cè)分析,電梯物聯(lián)網(wǎng)終端的OTA無線方式選擇種類相對比較少,考慮到電梯物聯(lián)網(wǎng)終端實際的安裝位置一般都是在樓宇頂層的電梯機(jī)房內(nèi),一般的無線技術(shù),如Wi-Fi、藍(lán)牙及ZigBee等短距離方案均不適合運(yùn)用在電梯物聯(lián)網(wǎng)上,而GPRS、LTE等蜂窩移動通訊技術(shù)則憑借廣域的覆蓋,成為電梯物聯(lián)網(wǎng)OTA無線側(cè)的首選。CPU側(cè)的方案選擇主要依據(jù)CPU是否跑操作系統(tǒng),如單片機(jī)類的,一般選擇IAP(InApplicationPrograming,在應(yīng)用中編程),由用戶自定義引導(dǎo)程序,IAP比ISP(InSystemPrograming,在系統(tǒng)中編程)更加適合OTA方案,因ISP無法用戶自定義遠(yuǎn)程升級,通常用戶需要局部自定義Flash地址的分配,在不同的Flash空間中執(zhí)行多個應(yīng)用程序,因此IAP更加適合;對于帶操作系統(tǒng)的CPU,如Linux,安卓等,CPU側(cè)的OTA相對簡單,用戶只需下載文件并更新到操作系統(tǒng)即可,所有的操作都是以文件形式進(jìn)行。所以,電梯物聯(lián)網(wǎng)OTA方案中,無線側(cè)選擇GPRS或LTE等移動運(yùn)營商網(wǎng)絡(luò),控制器測根據(jù)CPU是否帶系統(tǒng)分別選擇IAP和文件形式更新。
1.2電梯物聯(lián)網(wǎng)系統(tǒng)結(jié)構(gòu)
電梯物聯(lián)網(wǎng)系統(tǒng)中,按系統(tǒng)組成主要分為采集層、傳輸層及應(yīng)用層。采集層負(fù)責(zé)通過通訊協(xié)議,如RS485、CANBus及RS232等或者觸點方式采集電梯控制系統(tǒng)的基本運(yùn)行狀態(tài)數(shù)據(jù)、統(tǒng)計數(shù)據(jù)及故障報警數(shù)據(jù),物聯(lián)網(wǎng)終端作為采集層中的重要角色,擔(dān)負(fù)電梯原始數(shù)據(jù)的收集任務(wù);傳輸層主要由運(yùn)營商網(wǎng)絡(luò)組成,包括基站和移動通信網(wǎng)關(guān),主要負(fù)責(zé)將物聯(lián)網(wǎng)終端的數(shù)據(jù)通過運(yùn)營商網(wǎng)絡(luò)傳輸至用戶應(yīng)用服務(wù)器,同時也負(fù)責(zé)轉(zhuǎn)發(fā)應(yīng)用服務(wù)器數(shù)據(jù)到終端,實現(xiàn)雙向交互,如圖1所示,運(yùn)營商網(wǎng)絡(luò)包括傳統(tǒng)的2G網(wǎng)絡(luò),如GPRS,4G網(wǎng)絡(luò),如TDDLTE,F(xiàn)DDLTE等;應(yīng)用層主要包括應(yīng)用服務(wù)器,根據(jù)業(yè)務(wù)需求,應(yīng)用服務(wù)器可能包括多個子功能服務(wù)器,如電梯監(jiān)控服務(wù)器、電梯廣告服務(wù)器、數(shù)據(jù)庫服務(wù)器及OTA服務(wù)器等。
圖1電梯物聯(lián)網(wǎng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
1.3OTA工作流程
圖2電梯物聯(lián)網(wǎng)OTA主要流程圖
電梯物聯(lián)網(wǎng)終端的軟件更新OTA流程圖如圖2所示,主要是通過交互和確認(rèn)機(jī)制執(zhí)行,最大程度提高OTA的成功率,如前面所述,本文的OTA無線側(cè)是采用運(yùn)行商網(wǎng)絡(luò),眾所周知,運(yùn)營商網(wǎng)絡(luò)的通信質(zhì)量一般而言取決于基站的覆蓋和接入數(shù)量的多少決定,OTA過程中無線通訊質(zhì)量差的情況不可避免,通過交互機(jī)制和驗證機(jī)制,能在很大程度上降低升級的失敗率,防止升級異常導(dǎo)致電梯物聯(lián)網(wǎng)終端運(yùn)行異常。如圖2所示,步驟S1中的消息報文包含本次升級的文件大小、MD5數(shù)據(jù)長度及MD5加密數(shù)據(jù);步驟S2的消息報文包含MD5數(shù)據(jù)長度、MD5加密數(shù)據(jù)及分包大??;步驟S3中的消息報文包含總包數(shù)、包序號及本包升級數(shù)據(jù)內(nèi)容,通過在數(shù)據(jù)包中加入MD5校驗、文件大小校驗確保升級的正確,通過在數(shù)據(jù)包中加入MD5加密數(shù)據(jù),確保數(shù)據(jù)的安全性。
電梯物聯(lián)網(wǎng)終端OTA整個過程包括程序文件下載、程序文件存儲、程序文件校驗、程序更新4個過程。
(1)程序文件下載:獲取下載鏈接并判斷是否需要下載(硬件版本號一致,軟件版本號大于當(dāng)前軟件版本號),進(jìn)行下載,目前不帶操作系統(tǒng)的物聯(lián)網(wǎng)終端不支持?jǐn)帱c續(xù)傳,下載失敗后不再下載,以消息形式通知結(jié)果;帶操作系統(tǒng)的物聯(lián)網(wǎng)終端支持?jǐn)帱c續(xù)傳,由操作系統(tǒng)自帶的協(xié)議完成續(xù)傳。
(2)程序文件存儲:下載過程中進(jìn)行分片存儲到flash中緩存區(qū)域。
(3)程序文件校驗:下載完成后,對程序文件進(jìn)行MD5值校驗,確認(rèn)文件傳輸正確。
(4)程序更新:MD5校驗通過后,執(zhí)行CPU程序更新,考慮到冗余,設(shè)計有主、備兩個區(qū)域,替換進(jìn)行更新,防止當(dāng)更新失敗,程序仍然可以從另一區(qū)域正常啟動,大大降低OTA導(dǎo)致終端異常的風(fēng)險。
2.硬件設(shè)計
2.1終端2G方案設(shè)計
圖3電梯物聯(lián)網(wǎng)終端2G方案結(jié)構(gòu)示意圖
電梯物聯(lián)網(wǎng)終端2G方案主要用于電梯基礎(chǔ)數(shù)據(jù)采集、電梯狀態(tài)監(jiān)控等場合,適用于數(shù)據(jù)量不大,通訊速率要求不高的場合,在選擇相應(yīng)終端控制器時,選擇主流的ARM芯片即能符合要求。CPU與GSM模塊采用UART通訊,通過AT指令實現(xiàn)命令交互,當(dāng)進(jìn)入數(shù)據(jù)模式后,OTA的數(shù)據(jù)經(jīng)GSM模塊透傳到CPU,UART波特率通過AT指令可設(shè)置且能滿足UART通訊速率不低于GPRS通訊速率。CPU同時需控制GSM模塊工作,如開關(guān)機(jī)命令,緊急關(guān)機(jī)命令等。GSM模塊上網(wǎng)需SIM卡支持,通過I2C與SUM卡通訊,如圖3所示。
2.2終端4G方案設(shè)計
圖4電梯物聯(lián)網(wǎng)終端4G方案結(jié)構(gòu)示意圖
電梯物聯(lián)網(wǎng)系統(tǒng)中除了電梯基礎(chǔ)數(shù)據(jù)的監(jiān)控之外,輔助電梯困人報警和安撫的語音和視頻功能對無線通訊的速率有較高要求,傳統(tǒng)的2G網(wǎng)絡(luò)延時較大,無法滿足電梯困人事故下及時的語音視頻安撫對講,另外一些電梯應(yīng)用場合也涉及電梯廣告,也需要圖片和視頻的更新,因此需要設(shè)計基于4G網(wǎng)絡(luò)的物聯(lián)網(wǎng)終端。本方案中CPU采用高性能的ARM9處理器,主頻達(dá)到450MHz,搭載嵌入式操作系統(tǒng)Linux,并配置SIM76004G模塊,通過USB相互通訊,如圖4所示。
2.3SIM卡接口設(shè)計
在SIM卡接口的電路設(shè)計中,為了確保SIM卡的良好的功能性能和不被損壞,在電路設(shè)計中遵循了以下設(shè)計原則:
SIM卡座與模塊距離擺件不能太遠(yuǎn),越近越好,盡量保證SIM卡信號線布線不超過20cm;
SIM卡信號線布線遠(yuǎn)離RF線和VBAT電源線;
SIM卡座靠近模塊擺放,盡量保證SIM卡信號線布線不超過200mm;
SIM卡信號線布線遠(yuǎn)離RF線和VBAT電源線;
SIM卡座的地與模塊的SIM_GND布線要短而粗。SIM_VDD與SIM_GND布線保證不小于0.5mm,且在SIM_VDD與GND之間的旁路電容不超過1uF,并且靠近SIM卡座擺放;
為了防止SIM_CLK信號與SIM_DATA信號相互串?dāng)_,兩者布線不能太靠近,并且在兩條走線之間增加地屏蔽。此外,SIM_RST信號也需要地保護(hù);
為了確保良好的ESD性能,建議SIM卡的引腳增加TVS管。選擇的TVS管寄生電容不大于50pF;
在SIM_DATA,SIM_VDD,SIM_CLK和SIM_RST線上并聯(lián)33pF電容用于濾除的射頻干擾。
3.軟件設(shè)計
3.1撥號上網(wǎng)設(shè)計
由于電梯物聯(lián)網(wǎng)4G方案中終端運(yùn)行嵌入式操作系統(tǒng),能借助操作系統(tǒng)自帶的撥號功能實現(xiàn),相對2G方案更簡單,因此本部分主要研究2G終端的撥號上網(wǎng)實際與實現(xiàn)。電梯物聯(lián)網(wǎng)終端軟件上設(shè)計了智能穩(wěn)定的撥號上網(wǎng)方式,并能在干擾情況下或異常事件觸發(fā)時能自動重連,可通過人機(jī)交互終端診斷出撥號失敗的具體原因,經(jīng)逐步檢查確認(rèn)撥號條件,直至撥號成功;后臺監(jiān)視撥號上網(wǎng)狀態(tài),對異常事件分類處理,保證可靠連接。借助虛擬串口技術(shù),用CPU的一路UART虛擬出3路串口,一路用于與GSM模塊數(shù)據(jù)通訊,一路用于監(jiān)視GSM模塊的工作狀態(tài),若檢測到模塊工作異常,則根據(jù)異常等級分別處理,如斷開重連,重新?lián)芴?,甚至?qiáng)制重啟GSM模塊,另外一路串口用于收發(fā)短信。穩(wěn)定可靠的撥號流程對OTA的成功至關(guān)重要,本方案軟件上采用7步法實現(xiàn)GPRS撥號,如圖5所示。
(1)硬件初始化,打開硬件資源;
(2)檢查通訊通道,確認(rèn)通訊模塊已處于就緒狀態(tài)
(3)開啟監(jiān)視通道,確認(rèn)監(jiān)視通訊模塊通道已經(jīng)開啟
(4)SIM卡狀態(tài)檢測
(5)檢測模塊是否已附著到基站
(6)執(zhí)行撥號上網(wǎng)
(7)連接狀態(tài)監(jiān)視
從圖5可看出,步驟1到步驟7形成閉環(huán),環(huán)環(huán)相扣,按照嚴(yán)格的時序執(zhí)行,為電梯物聯(lián)網(wǎng)終端的OTA提供穩(wěn)定可靠的通訊鏈路。
圖5電梯物聯(lián)網(wǎng)終端GPRS撥號流程圖
3.2引導(dǎo)程序設(shè)計
如前所述,電梯物聯(lián)網(wǎng)4G版終端帶操作操作系統(tǒng),OTA過程相對簡單,相當(dāng)于從服務(wù)端下載一個文件到本地更新、替換及重新執(zhí)行即可,并不用設(shè)計專門的引導(dǎo)程序?qū)崿F(xiàn),因此本部分仍然研究電梯物聯(lián)網(wǎng)2G版終端的OTA引導(dǎo)程序設(shè)計與實現(xiàn)。
2G終端要實現(xiàn)OTA功能,需要有兩段程序,一個是引導(dǎo)程序(也可以稱為BootLoader),另一個是應(yīng)用程序。通過USB、串口、CAN等通訊方式向STM32發(fā)送要升級的程序文件數(shù)據(jù)(數(shù)據(jù)協(xié)議可自定義),引導(dǎo)程序中將接收到的數(shù)據(jù)寫到應(yīng)用程序的地址即實現(xiàn)將終端應(yīng)用程序的升級,具體設(shè)計與實現(xiàn)如下:
(1)STM32復(fù)位后,從0x08000004地址取出復(fù)位中斷向量的地址,并跳轉(zhuǎn)到復(fù)位中斷服務(wù)程序,在運(yùn)行復(fù)位中斷服務(wù)程序之后跳轉(zhuǎn)到引導(dǎo)程序的main函數(shù),若將引導(dǎo)程序看作是一個應(yīng)用程序的話,則此部分和正常起動是一樣的。
(2)在執(zhí)行完引導(dǎo)程序以后(如需要將新的應(yīng)用程序代碼寫入STM32的FLASH或沒有更新直接跳轉(zhuǎn),應(yīng)用程序的復(fù)位中斷向量起始地址為其他設(shè)定的地址),跳轉(zhuǎn)至應(yīng)用程序的復(fù)位向量表;
(3)取出應(yīng)用程序的復(fù)位中斷向量的地址,并跳轉(zhuǎn)執(zhí)行新程序的復(fù)位中斷服務(wù)程序,隨后跳轉(zhuǎn)至應(yīng)用程序的main函數(shù);
(4)同樣main函數(shù)為一個超循環(huán),并且注意到此時STM32的FLASH,在不同位置上,共有兩個中斷向量表。在main函數(shù)執(zhí)行過程中,如果CPU得到一個中斷請求,PC指針仍強(qiáng)制跳轉(zhuǎn)到地址0x08000004中斷向量表處,而不是應(yīng)用程序程序的中斷向量表;
(5)程序再根據(jù)我們設(shè)置的中斷向量表偏移量,跳轉(zhuǎn)到對應(yīng)中斷源的應(yīng)用程序中斷服務(wù)程序中;
(6)在執(zhí)行完中斷服務(wù)程序后,程序返回main函數(shù)繼續(xù)運(yùn)行。值得注意的是,引導(dǎo)程序和應(yīng)用程序跳轉(zhuǎn)過程中,是通過PC指針定位進(jìn)行跳轉(zhuǎn),所有的寄存器都保持原有狀態(tài),跳轉(zhuǎn)過程中并不是做了復(fù)位。
3.3存儲設(shè)計
OTA更新軟件中的另一個關(guān)鍵設(shè)計決策是在OTA更新過程中如何在內(nèi)存中組織收到的應(yīng)用程序。微控制器中兩種典型的存儲器是非易失性存儲器和易失性存儲器,比如閃存屬于非易失性存儲器,而SRAM屬于易失性存儲器。閃存將用于存儲程序代碼和應(yīng)用程序的只讀數(shù)據(jù),以及其他系統(tǒng)級數(shù)據(jù)。SRAM將用于存儲軟件應(yīng)用程序的可修改部分,例如非常量全局變量和堆棧。軟件應(yīng)用程序二進(jìn)制代碼只包含程序在非易失性存儲器中的部分。在啟動期間,應(yīng)用程序?qū)⒊跏蓟瘜儆诳勺儍?nèi)存中的部分。
在OTA更新過程中,每當(dāng)客戶端設(shè)備從服務(wù)器接收到一個包含部分二進(jìn)制的數(shù)據(jù)包時,它將被存儲在易失性存儲區(qū)中。這個數(shù)據(jù)包可以是壓縮的,也可以是未壓縮的。壓縮應(yīng)用程序二進(jìn)制文件的好處是它的體積更小,允許發(fā)送的數(shù)據(jù)包更少,在下載過程中易失性存儲區(qū)中存儲它們所需的空間更少。這種方法的缺點是壓縮和解壓縮會給更新過程增加額外的處理時間,而且必須在OTA更新軟件中捆綁相關(guān)代碼。
由于新的應(yīng)用軟件在升級過程中位于非易失性存儲區(qū)中,但是在升級過程中會進(jìn)入易失性存儲區(qū),所以O(shè)TA的升級軟件在升級過程中需要對非易失性存儲區(qū)進(jìn)行寫操作。在易失性存儲區(qū)中臨時存儲新應(yīng)用程序稱為緩存。本項目OTA更新軟件采用部分緩存方式實現(xiàn),即保留一個易失性存儲區(qū)區(qū)域用于緩存,當(dāng)新數(shù)據(jù)包到達(dá)時將它們存儲在易失性存儲區(qū)的區(qū)域中。當(dāng)區(qū)域填滿時,通過將數(shù)據(jù)寫入快非易失性存儲區(qū)儲器來清空它。如果數(shù)據(jù)包無序到達(dá)或在新的應(yīng)用程序二進(jìn)制文件中存在間隙,這可能會變得很復(fù)雜,因為需要一種將易失性存儲區(qū)地址映射到非易失性存儲區(qū)地址的方法。一種策略是將高速緩存作為閃存的一部分鏡像,非易失性存儲區(qū)分為小區(qū)域的頁面,這是寫操作的最小劃分。本項目采用在易失性存儲區(qū)中緩存一頁閃存,當(dāng)它填滿或者下一個數(shù)據(jù)包屬于不同的頁面時,通過寫該頁面的閃存來刷新緩存。
4.結(jié)束語
本文詳細(xì)介紹了OTA技術(shù)在電梯物聯(lián)網(wǎng)終端軟件更新中的應(yīng)用。從電梯物聯(lián)網(wǎng)系統(tǒng)實際應(yīng)用場景分別設(shè)計了基于2G網(wǎng)絡(luò)和4G網(wǎng)絡(luò)的物聯(lián)網(wǎng)終端,并從軟件角度介紹兩種方案下電梯物聯(lián)網(wǎng)實現(xiàn)OTA的關(guān)鍵技術(shù),從設(shè)計穩(wěn)定可靠的網(wǎng)絡(luò)連接保障OTA數(shù)據(jù)鏈路的通暢,到設(shè)計引導(dǎo)程序,保證OTA能在2G終端中可靠實現(xiàn),再到設(shè)計存儲機(jī)制,保證OTA過程中的數(shù)據(jù)能及時合理存儲。整個研究設(shè)計過程都圍繞確保電梯物聯(lián)網(wǎng)終端OTA的穩(wěn)定可靠進(jìn)行,對其他行業(yè)的OTA應(yīng)用具有一定的參考價值。
中傳動網(wǎng)版權(quán)與免責(zé)聲明:
凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.surachana.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動控制公眾號獲取更多資訊

關(guān)注直驅(qū)與傳動公眾號獲取更多資訊

關(guān)注中國傳動網(wǎng)公眾號獲取更多資訊

掃碼關(guān)注小程序
時刻關(guān)注行業(yè)動態(tài)


填寫郵件地址,訂閱更多資訊:
撥打電話咨詢:13751143319 余女士
郵箱:chuandong@chuandong.cn
- 運(yùn)動控制
- 伺服系統(tǒng)
- 機(jī)器視覺
- 機(jī)械傳動
- 編碼器
- 直驅(qū)系統(tǒng)
- 工業(yè)電源
- 電力電子
- 工業(yè)互聯(lián)
- 高壓變頻器
- 中低壓變頻器
- 傳感器
- 人機(jī)界面
- PLC
- 電氣聯(lián)接
- 工業(yè)機(jī)器人
- 低壓電器
- 機(jī)柜