国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

C8051F單片機的軟件IAP技術

發布時間:2010-4-6 10:33    發布者:李寬
關鍵詞: IAP , 單片機 , 技術 , 軟件
引言

C8051Fxxx系列高速SoC單片機是由美國Cygnal公司開發的完全集成的混合信號系統級芯片,具有與8051兼容的微處理器內核。C8051Fxxx單片機有大容量的Flash存儲器,用于存儲程序代碼和非易失性數據,可在應用編程。以 C8051F120為例,C8051F120x 和C8051F13x 系列MCU 內部有128 KB(C8051F12x 和C8051F130/1)或64 KB(C8051F132/3)的在應用可編程Flash 存儲器,用于程序代碼和非易失性數據存儲;另外還有256字節的Flash頁,可以用于數據存儲?梢酝ㄟ^JTAG接口對Flash存儲器進行在應用編程,或由應用軟件使用MOVX 指令編程。用C8051F120 MCU做成的產品到了用戶處之后,用軟件通過串口就可以為產品進行Flash程序的更新。筆者通過實驗,在用戶操作界面的PC機及C8051F120的單片機控制系統之間,通過串行口進行C8051F120 單片機控制程序的自動升級及程序加密。用戶只要從互聯網上下載控制程序,即可實現單片機程序的自動升級。該方案解決了升級過程意外中斷、遠程升級傳輸誤碼等關鍵技術問題,避免了傳統固件升級需要更換主機、主板或芯片等問題,節約了人力和資金等資源,已在實際系統中應用并受到用戶好評。以下以64 KB Flash為例,簡要介紹單片機目標程序的準備及自動升級的制作過程。

1  自動升級的實現方法

C8051Fxxx系列單片機將Flash程序區按512字節為一頁(page)來組織。在刪除控制程序區時,首先屏蔽所有中斷,使能程序刪除位 PSEE(PSCTL.1),同時使能PSWE(PSCTL=0x03, 即PSWE = 1, PSEE = 1,頁擦除模式) ,用C51語言的一個指針指向Falsh程序區。如:

  char xdata * data address=0x0000;

每擦除一頁地址指針加512,依此操作可刪除所有的程序頁。刪除部分程序如下:

  while(address<0x0F800) {//0xF800=62KB
    *address = 0x00; //向扇區空寫,啟動擦除操作
    for (i=0;i<10;i++);
    address =address +512;
  }

這樣就把62 KB的Flash的舊程序刪除了。實際上就是應用匯編語言中MOVX指令在每一頁的任一地址寫0FFH,就可以將該頁的所有字節都置為0FFH,從而實現了該頁的刪除。

擦除掉所選的區域后要關掉對Flash的寫操作,否則可因其他環境造成程序的丟失:

  PSCTL &= ~0x03;// PSWE = 0; PSEE = 0
  FLSCL&=~0x01;//關閉Flash寫/擦除

1.1  更新程序的方法

在接收新程序部分,寫入一握手程序塊,以保證程序的可靠性。握手的協議可自己定義,其中包括一些需要知道的信息,如長度、頭部、尾部等。

同樣,“char xdata *data address=0x0000;”指向要寫的區域。

   FLSCL |= 0x01;//使能Flash寫/擦除
  PSCTL |= 0x01; // PSWE = 1

然后通過串口用查詢的方法獲得新的程序代碼。

  while(len--) {
    *address++= Get_COM_Code();
  }
  PSCTL=00; // PSWE = 0; PSEE = 0
  FLSCL =00;

1.2  運行新程序

在更新完程序后,有兩種方法可以重新運行程序;斷電再上電和軟件復位。 C8051F120內部有復位寄存器,通過使能該寄存器,可以實現軟件復位。

   RSTSRC=0x10;//實現軟件復位
  Jmpmain();

對RSTSRC的寫操作均用直接賦值方式完成(如RSTSRC = 0x02),不能用讀/寫指令(如ORL或ANL)來完成。例如,代碼“RSTSRC |= 0x02”就是非法的。為保證完美的復位,在設置了復位寄存器后筆者還添加了匯編復位程序,以做到萬無一失。

  Jmpmain:
  LJMP 0000H
  RET

這樣通過一條長跳轉指令跳到程序區最開始的位置。在C中調用匯編程序的方法請參考其他文檔。

2  引導區的編譯

作為程序引導區的程序,平時不參與主程序的執行。而主程序主要用于和用戶操作界面PC 機部分進行握手,當接收到PC 機部分要進行軟件升級的命令時,程序跳至引導程序區,執行如下流程:

發送準備升級字節到PC 機→刪除Flash 程序區→發送開始下載命令到PC 機→接收且放到相應地址。


圖1  主程序流程

主程序流程如圖1所示。引導區的程序要固定在一個位置,并單獨編譯,由 JTAG下載到MCU中。引導區的程序不能編譯分配Flash地址。筆者使用的Keil編譯器是一個很簡單、易用的編譯器。在Keil中,定位升級程序位置的實現方法非常簡單,通過修改其Project菜單下的Options for target一項就可以了。

在本程序中,引導區的程序定義在62 KB之后的位置。

編者注: 硬件接口和主從機程序見本刊網站www.mesnet.com.cn。

3  注意的問題

① 使用內部振蕩器,這樣能提高系統時鐘的抗干擾能力。
② 使用Flash時會限制執行寫操作的速度。完成1個字節的操作最長需要40 μs ,所以最好選用9 600的波特率。
③ 減少將PSWE置1的指令操作。理想的情況是只有2個操作會將PSWE置1,即寫1個Flash字節和擦除1個Flash字節。
④ 將Flash寫/擦除指針指向data或idata區。
⑤ 引導區的程序應該以512字節為邊界。
⑥ 升級用的HEX程序必須由PC機上的軟件轉化為BIN文件。
⑦ C8051F120 MCU程序的操作最大特點是:在配置寄存器時能切換到該寄存器所在的頁。
⑧ 引導區的程序在擦除或者寫時,不可以開中斷,且要關掉所有中斷。

結語

本文中的軟硬件模塊已被嵌入到相關的應用系統之中,提高了系統的性價比。該方案解決了升級過程中的一些關鍵技術問題,節約了資源,將會在一些高端控制中得到更為廣泛的應用。軟件IAP 技術不但適用于C8051F單片機,而且對使用其他單片機的產品設計也具有重要的參考價值。

參考文獻

[1] 姜曉梅,李祥和.基于ARM的IAP在線及遠程升級技術[J].計算機應用,2008(2):519521.
[2] 周立功,張華.深入淺出ARM7[M].北京:北京航空航天大學出版社, 2005: 426438.
[3] 劉憶輝,魏銀庫,等.片外Flash存儲器IAP的一種方案[J].單片機與嵌入式系統應用, 2006(2).
[4] 王颯.用C8051F020的SPI接口擴展大容量數據存儲器[J].微計算機信息, 2006(22).
[5] 李光飛,陽富民,樓然苗.基于K9F2808UOC的FAT16文件系統[J].浙江海洋學院學報:自然科學版,2006(6).
[6] K9F2808UOC datasheets[OL]. http: //www. samsung. com /Prod?ucts/datasheets. htm.

作者:廣東技術師范學院 向丹  楊永
來源:單片機與嵌入式系統應用 2009 (3)
本文地址:http://m.qingdxww.cn/thread-10189-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲激情在线视频| 午夜国产高清精品一区免费| 印度12 13free| 欧美男女激情视频| 午夜爽视频| 亚洲图片一区二区| 国产精品成人A蜜柚在线观看 | 无毛片| 婷婷久久激情啪啪| 又大又硬又爽又黄又粗又长| 国产亚洲精品久久精品69| 亚洲国产精品免费观看| 日韩毛片在线播放| 天天射美女| 亚洲精品永久免费| 国产精品久久人妻无码网站一区L| 婷婷精品国产亚洲AV在线观看| 青草青视频在线观看| 欧美特黄a级高清免费看片| 四虎精品| 小早川怜子解禁黑人寄宿 | 中文字幕一区二区在线播放| 麻豆国产精品va在线观看约| 亚洲伊人精品综合在合线| 亚洲欧洲国产成人综合一本| 午夜高清在线观看免费6| 亚洲天堂在线观看完整版| 国产中文字幕在线| 一边喂奶一边做边爱| 日韩在线毛片| 天天干天天碰| 亚洲欧洲国产精品你懂的| 国产亚洲人成在线视频| 无限资源在线观看完整版免费下载| 亚洲深夜视频| 日韩毛片在线视频| 一二三四影视大全免费观看电视剧| 亚洲国产日韩欧美一区二区三区| 999久久久无码国产精蜜柚| 人妻少妇久久久久久97人妻| 日本jizzjizz|