新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > dsPIC33F單片機的程序升級探討

        dsPIC33F單片機的程序升級探討

        作者: 時間:2011-09-19 來源:網絡 收藏
        3 實際應用中若干問題的探討

          3.1 正確性問題

          上文僅重點說明了的方法,未對的正確性展開討論,但在實際應用中,由于傳輸干擾的存在,接收的新程序數據可能出錯,這時如果沒有相應的應對措施,顯然會影響到產品的正常運行。為了保證程序升級的正確性,常用的應對措施有以下幾種:

          (1)對每幀數據進行嚴格的校驗(如CRC校驗),校驗通過后再更新相應的程序存儲區;更新程序存儲區后,重新讀出程序存儲區數據,并與接收到的數據進行比較。只有當數據比較無誤后才開始接收下一幀數據。

          (2)若不考慮硬件成本,也可外置一個數據存儲器,將所有新程序數據完全接收并校驗通過后才統一更新程序存儲器,最后把整個程序存儲器的數據與接收到的數據逐一比對,若比對無誤則升級結束。

          (3)若應用程序占用空間不大,也可將程序存儲器中應用程序區再分為兩部分。程序升級時輪流覆蓋這兩部分,這種操作方式使程序存儲器同時保存舊版本和新版本兩個應用程序,當新版本程序因某種原因運行不正常時,可由引導程序將應用程序切換到舊版本。

          第(1)種方法最容易實現,但是應用程序只有在整個升級過程完全結束后才可以正常運行,若升級過程因某種原因通信中斷,則應用程序一直無法運行,這是該方法最大的缺陷。

          第(2)種方法也很容易實現,而且由于它是在新程序數據全部接收后才開始升級,因此克服了第(1)種方法的缺陷,但是該方法需增加硬件成本,且要占用單片機更多的硬件資源(用于與外部存儲器之間的交互)。

          第(3)種方法也可以克服第(1)種方法的缺陷,而且不需增加硬件成本,但是該方法的實現顯然比前兩種方法復雜得多。以上3種方法各有優缺點,在實際應用中可根據實際情況選擇。

          3.2 斷點續傳問題

          在實際應用中,可能因某種原因(如斷電復位)而需重新開始程序升級,這時如果還是從第1幀數據開始傳輸,則會造成時間上的浪費,而且對于一些以流量計費的通信網絡(如GPRS)還會造成通信費用的浪費,因此在實際應用中有必要實現“斷點續傳”功能。這可通過模仿FTP斷點續傳原理來實現,即單片機每正確接收并存儲一幀數據則刷新存儲于外部非易失性存儲器(如EEPROM)中的升級信息(含當前幀號),若重新開始程序升級,則將當前升級信息發給服務器,服務器可從“斷點”開始發送數據,從而實現了“斷點續傳”功能。

          4 結語

          基于系列單片機的應用程序升級方法已在開發設計的IPPhone和安防系統等產品中成功應用,且運行穩定可靠。


        上一頁 1 2 3 下一頁

        關鍵詞: dsPIC33F 程序升級

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新田县| 滁州市| 遂宁市| 当涂县| 南雄市| 衡东县| 曲靖市| 江油市| 比如县| 瑞昌市| 伊宁市| 浦江县| 沙河市| 白银市| 西峡县| 天气| 南召县| 通榆县| 浮梁县| 晋宁县| 介休市| 定南县| 宜章县| 宜兰市| 新巴尔虎右旗| 乃东县| 天峻县| 博湖县| 伊宁市| 灌云县| 永泰县| 安义县| 乐清市| 瑞昌市| 拜泉县| 和田县| 湖北省| 文水县| 墨玉县| 富阳市| 且末县|