新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于mPSD32xx系列單片機無線遠程IAP的實現

        基于mPSD32xx系列單片機無線遠程IAP的實現

        作者: 時間:2013-09-11 來源:網絡 收藏


        的實現
          就是啟動程序把新的用戶程序編程到指定的Flash中。對Flash程序存儲器的讀/寫操作是實現的關鍵,下面給予詳細介紹。

          MCU可以像讀ROM器件那樣讀Flash存儲器,但只能使用特殊的擦除和編程指令對Flash存儲器進行編程。

          Flash存儲器在被編程之前必須先被擦除。Flash存儲器的一個字節被擦除為全1(FF h), 通過設置選擇位為0來編程。MCU可一次擦除所有Flash存儲器或一個扇區,不能按字節擦除,而MCU可以按字節編程。一旦MCU 發出Flash存儲器編程/擦除指令,可以通過幾種方法判斷是否編程/擦除完畢,程序中用到了下面兩種判斷方法來對Flash進行編程。

        數據輪詢法
          數據輪詢法的編程由函數unsigned char? flash_boot_write_ with_poll(volatile uchar xdata* addr, uchar dat)完成。當從監控中心接收的命令是要求用數據輪詢法對舊用戶程序更新時,主程序中就會調用此函數,MCU發出一個編程指令,內置的算法就開始運行。出錯標志(DQ5)位為1標志編程周期超時,為0標志沒有出錯。MCU可以讀取被編程扇區任意位置的數據輪詢(DQ7)位和出錯標志位。

        數據跳轉法
          數據跳轉法的編程由函數unsigned char flash_write_with_toggle (volatile uchar xdata* addr, uchar dat)完成。編程周期與數據輪詢法大致相同,區別在于MCU讀的不是DQ7,而是數據跳轉標志(DQ6)位。在編程期間,DQ6位一直跳轉,直到編程周期完成。DQ5位為1標志編程周期超時,為0標志沒有出錯。MCU可以讀取被編程扇區任意位置的DQ6位和DQ5位。

          另外,此芯片還有Flash存儲器扇區保護功能:主Flash和第二Flash存儲器的每個扇區都可以被單獨地保護,防止被編程和擦除。該功能為所有的編程或擦除失效提供了額外的數據安全保障。

          在本設計中,第二Flash的CSBOOT1扇區保存了門控的一些固定卡號,此扇區應被保護。第二Flash的其余幾個扇區都作為備用,保存一些電源或空調參數以及需要添加的門控卡號,這些數據都是可變的,所以不被保護??梢酝ㄟ^JTAG 口或器件編程器設置使Flash存儲扇區被保護或解除保護。MCU可以通過讀扇區保護寄存器(CSIOP塊里)來讀取扇區保護狀態,但不能改變它。

        IAP功能的主程序設計
          系統上電后,程序首先在啟動扇區內運行,等待上位機發來的命令,根據命令執行相應操作(見圖2)。超時或沒有命令發來就自動切換到用戶程序。需要更新用戶程序時,切換回啟動程序。

        異常處理
          系統工作中主要有掉電、通信中斷、誤碼這三種情況會導致程序升級失敗。以下簡單介紹本設計所采取的一些保護措施。

          第一種情況,考慮到環境導致的電源穩定性差和雷電、繼電器等高壓信號的干擾。系統采用了高隔離度DC/DC電源模塊把外界地和系統地隔離開,并且在容易受干擾的串口部分加入了高速光耦進行隔離;第二種情況,系統用到了串口、GPRS/GSM、TCP/IP組合成的復雜通信網絡。由于只要有一個通信故障就會造成上、下位機之間的通信失敗,所以,為了防止因通信失敗而造成系統癱瘓,程序中用Eeprom_Init 函數在通信失敗或掉電情況下對數據進行恢復和修理;第三種情況,在上、下位機通信過程中,盡管通信正常,但由于數據量大,有產生誤碼的可能性。因此,程序中對接收到的每一幀數據都先檢驗幀類型,然后對其作4字節的校驗和判斷。如果校驗有誤,將錯誤信息類型回傳給上位機重發,直到數據完全正確,才將這一幀數據保存到Flash相應地址里。
          
        結語
          本文所介紹的IAP的實現是基于,且已在無線基站動態環境監控系統項目中使用,極大地方便了系統程序的及時更新,可靠性也得到了驗證??梢灾苯討玫礁鞣N電力、水資源和其它無線監控系統中。



        參考文獻:

        [1].GPRSdatasheethttp://www.dzsc.com/datasheet/GPRS_1594650.html.
        [2].DDCdatasheethttp://www.dzsc.com/datasheet/DDC_1870710.html.
        [3].Maximdatasheethttp://www.dzsc.com/datasheet/Maxim_1062568.html.
        [4].MAX202CPEdatasheethttp://www.dzsc.com/datasheet/MAX202CPE.html.
        [5].74LS11datasheethttp://www.dzsc.com/datasheet/74LS11_1493173.html.
        [6].Q2406Bdatasheethttp://www.dzsc.com/datasheet/Q2406B_561524.html.
        [7].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平果县| 江口县| 二手房| 长寿区| 潢川县| 吉隆县| 宝丰县| 玉门市| 舟山市| 德庆县| 股票| 图们市| 韩城市| 林甸县| 仪征市| 建始县| 保康县| 合肥市| 集贤县| 北票市| 马边| 嘉鱼县| 闸北区| 定远县| 临洮县| 方城县| 望奎县| 吉木萨尔县| 大方县| 枣强县| 巧家县| 绥化市| 永靖县| 准格尔旗| 巫山县| 特克斯县| 称多县| 襄垣县| 舒城县| 秭归县| 临武县|