新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于GPRS的嵌入式系統軟件的遠程在線升級

        基于GPRS的嵌入式系統軟件的遠程在線升級

        作者: 時間:2009-05-11 來源:網絡 收藏

        3 服務器端的設計
        3.1 升級文件傳輸的數據格式
        為了達到快速準確升級的目的,首先對原始的升級代碼(Intel Hex文件)進行打包,然后加人相應的數據包ID號和校驗碼,并定義數據包長度≤256個字節,以適應G:PRS通信方式對數據包長度的要求,避免出現頻繁掉線和發送不出去的問題。具體的數據包格式如下:數據包格式:PacklD+起始地址+長度+數據+校驗碼;PackID:一個完整的數據包為一個記錄,下一個數據包的記錄號自動加1;起始地址:燒寫數據的FLASH首地址。即數據部分中包含的第一條數據的記錄地址+線性擴展地址;長度:該包數據部分的字節數;數據:同一個擴展線性地址記錄內且地址連續的數據記錄的數據域。當讀到一個擴展線性地址記錄號后,將此擴展線性地址記錄號內的數據區域打包成256個字節之內的數據包,超過256個字節或讀到下一個擴展線性記錄號時則另起一個新的數據包;校驗碼:CRC循環冗余校驗碼。
        3.2 服務器端主要程序流程
        服務器端主要程序流程圖如圖4和圖5所示。服務器先把升級文件的路徑配置完畢,并將要升級的目標程序代碼按照第3.1節所示的數據包格式進行打包。并對每個數據包進行編號。

        接著如圖4所示,服務器發送升級指令,并通過網絡透明傳輸到終端。如果當前運行的用戶程序代碼在1區,則將2區升級數據發送給終端,否則將2區升級數據發送給終端。由于地形和環境因素的影響,網絡在遠程通信過程中可能出現阻塞或斷開的情況。
        如果服務器在一定的時間內沒有收到遠程終端的應答信號,則重發,如果三次重發失敗則保存成功接收到的數據塊ID號和數據校驗碼,進入斷點續傳。升級文件傳輸完畢則發送跳轉指令,使遠程終端執行新的程序代碼。
        3.3 服務器端西己置表
        服務器端升級配置表中重要字段的配置如下:
        這些字段將服務器和遠程終端緊密地聯系起來,使得編程思路更加清晰,Update ID標志了用戶程序目前所在存儲區;Update User Zone為升級做好文件配置準備工作,LastOrder為斷點續傳做好準備,保證整個程序的緊密性以及可靠性。

        4 結 語
        該方案采用應答機制、斷點續傳、CRC校驗等技術,充分利用ARM芯片內部FLASH存儲器資源,通過網絡,實現對ARM終端的進行遠程,解決了大型分布式監控遠程終端和維護問題。該方案已經成功地應用在南京航道局的航標自動監測系統中,該系統有600多盞安裝有終端的航標燈,對該系統進行僅耗時20 min,且一次性升級成功。實踐證明,該方案的實施可有效降低工程復雜度,縮短升級時間,節約升級、維護成本,同時具有升級成功率高和升級速度快的特點。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        存儲器相關文章:存儲器原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 原阳县| 读书| 封开县| 淮滨县| 巴马| 平潭县| 神木县| 承德市| 五台县| 乐都县| 长宁县| 通许县| 天长市| 天津市| 广安市| 姜堰市| 云南省| 宜兴市| 澄江县| 林口县| 金沙县| 南通市| 公安县| 平武县| 塔城市| 丰原市| 闻喜县| 涟水县| 都昌县| 德兴市| 安福县| 纳雍县| 隆林| 延庆县| 寻甸| 泾源县| 临高县| 岚皋县| 茌平县| 福安市| 崇文区|