• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      單片機(jī)IAP在應(yīng)用軟件升級(jí)的方法探究

      2016-12-31 16:08:35周振齊瑞薩電子管理有限公司
      數(shù)碼世界 2016年5期
      關(guān)鍵詞:控制程序固件上位

      周振齊瑞薩電子管理有限公司

      ?

      單片機(jī)IAP在應(yīng)用軟件升級(jí)的方法探究

      周振齊
      瑞薩電子管理有限公司

      摘要:文章基于Renesas公司SH系列單片機(jī),比較了幾種在線編程實(shí)現(xiàn)模式,討論單片機(jī)Flash的讀取、擦除、編程機(jī)制,對(duì)單片機(jī)軟件IAP在應(yīng)用升級(jí)方法進(jìn)行了初步的研究,并在硬件平臺(tái)上開發(fā)了通過CAN總線接口,對(duì)單片機(jī)的軟件實(shí)現(xiàn)在應(yīng)用升級(jí)的方案。

      關(guān)鍵字:在應(yīng)用編程CAN 軟件升級(jí)

      隨著單片機(jī)在嵌入式系統(tǒng)的應(yīng)用越來越廣泛,單片機(jī)軟件的功能越來越復(fù)雜,開發(fā)中可能存在的Bug越來越難以避免;單片機(jī)軟件更新速度也越來越快,有些應(yīng)用還需要在測試和標(biāo)定中,確定和修改一些軟件的運(yùn)行參數(shù)并記錄下來。這就對(duì)單片機(jī)軟件更新的方法提出了更高的要求,希望更新升級(jí)軟件更加便利和可靠。SH系列單片機(jī)是瑞薩公司具有高性價(jià)比、小型化和高性能功耗比特性的嵌入式RISC單片機(jī),廣泛應(yīng)用于汽車導(dǎo)航系統(tǒng)、汽車引擎和動(dòng)力轉(zhuǎn)向系統(tǒng)、空調(diào)、電冰箱和洗衣機(jī)、工業(yè)設(shè)備和機(jī)床等。本文以SH72Aw(SH一2A系列)單片機(jī)為主,以HEw為開發(fā)工具,比較幾種在線編程的方法,探討IAP的原理、Flash的擦除和編程、單片機(jī)系統(tǒng)在正常工作中在線升級(jí)的實(shí)現(xiàn)方案。

      1 幾種在線編程模式比較

      在線編程有ICP、IsP、IAP幾種技術(shù)實(shí)現(xiàn)途徑。ICP(In—Circuit Programming)技術(shù)一般通過在線仿真器對(duì)單片機(jī)進(jìn)行編程,而ISP(In.SystemProgramming)技術(shù)則是通過單片機(jī)內(nèi)置的BootLoader程序引導(dǎo)的編程技術(shù)。無論是ICP技術(shù)還是ISP技術(shù),都需要有機(jī)械性的操作,如連接下載線、設(shè)置系統(tǒng)模式管腳等。若產(chǎn)品的PCB板已經(jīng)密封在外殼中,要對(duì)其進(jìn)行程序更新就很麻煩。但若引入了IAP(In—ApplicationProgramming)技術(shù),則完全可以避免上述的尷尬情況,如果使用遠(yuǎn)距離或無線的數(shù)據(jù)傳輸方案,則還可以實(shí)現(xiàn)遠(yuǎn)程編程和無線編程。這是ICP或ISP技術(shù)所無法做到的。IAP技術(shù),即“在應(yīng)用編程”,它是一種通過單片機(jī)的對(duì)外接口(如UAI盯、IIC、CAN等),對(duì)正在運(yùn)行程序的單片機(jī)進(jìn)行內(nèi)部程序更新的技術(shù),它和ICP或者ISP的主要區(qū)別在于:單片機(jī)在正常工作的同時(shí)更新全部或部分程序。IAP技術(shù)為系統(tǒng)在線升級(jí)和遠(yuǎn)程升級(jí)提供了良好的解決方案,也為數(shù)據(jù)存儲(chǔ)和現(xiàn)場固件的升級(jí)都帶來了極大的靈活性。

      SH72AW芯片具有3種在線編程模式,分別是Serial一Boot Program Mode、User Program Mode幣口user-Boot Program Mode。其中serial.Boot Program Mode是通過固化在單片機(jī)內(nèi)部的Boot程序和指定的串口進(jìn)行下載程序;User_ BootProgramMode是通過用戶自己開發(fā)的Boot程序,使用用戶指定的通訊方式下載程序;這兩種編程模式均需改變特定的硬件管腳,復(fù)位后才能進(jìn)入。而User Program Mode和正常單片機(jī)脫機(jī)工作的UserMode區(qū)別,僅在于軟件中設(shè)定單片機(jī)的寄存器F1ash編程使能位即可進(jìn)入,這就為L奸在應(yīng)用中升級(jí)和更改參數(shù)提供了可能。

      2 L心編程原理

      實(shí)現(xiàn)IAP技術(shù)的核心,是將一段預(yù)先開發(fā)的程序,作為BootLoader燒寫到單片機(jī)的F1ash里面,在單片機(jī)上電復(fù)位后,可以通過指定的通訊接口接收上位機(jī)的命令和數(shù)據(jù),對(duì)整個(gè)Flash或部分區(qū)域進(jìn)行擦除或編程。在完成程序燒寫后,再跳轉(zhuǎn)執(zhí)行新寫入的程序,最終就達(dá)到了程序更新的目的。這一預(yù)先開發(fā)的程序的主要功能包括通訊和Flash操作控制兩部分。

      2.1 通訊部分

      通訊功能,是指和外部的上位機(jī)軟件通過串口UART、SPI、CAN等進(jìn)行通信,接收上位機(jī)的命令(擦除、讀、寫等)、上位機(jī)的數(shù)據(jù)(程序起始地址、程序數(shù)據(jù)或參數(shù)等)和返回F1ash狀態(tài)。因此,上位機(jī)和單片機(jī)之間必須建立一定的通信協(xié)議,用戶可以根據(jù)自己的需求設(shè)定自己的通信協(xié)議,在汽車行業(yè)一般參照CCP(CANCalibration Protoc01)標(biāo)準(zhǔn)協(xié)議,它是一種基于CAN總線的ECU(ElectronicContr01 unit)標(biāo)定協(xié)議,已經(jīng)在許多歐美汽車廠商得到應(yīng)用。

      2.2 F1ash操作控制

      Flash操作控制程序負(fù)責(zé)對(duì)Flash的擦除、編程和狀態(tài)查詢等。在對(duì)F1ash進(jìn)行操作時(shí),需要注意查詢F1ash的狀態(tài)標(biāo)志位。SH系列單片機(jī)內(nèi)部有FCU模塊,負(fù)責(zé)對(duì)F1ash的具體操作,有自己的控制和狀態(tài)寄存器,存放在特定的Flash區(qū)域,F(xiàn)CU還有自己專用的FCU RAM。在使用FCU對(duì)Flash進(jìn)行操作時(shí),需要通過控制寄存器將FCU固件轉(zhuǎn)移到指定RAM。SH72AW單片機(jī)在User Program Mode下,對(duì)F1ash擦除以Block為單位,編程以256Bvtes為單位。SH72AW的User Flash區(qū)域劃分。注意:如果對(duì)現(xiàn)有Boot Loader也需要進(jìn)行更新時(shí),需要將整個(gè)Boot Loader程序拷貝到RAM里面運(yùn)行,確保新Boot Loader編程成功。

      3 IAP編程實(shí)現(xiàn)

      本文通過CAN總線接口,實(shí)現(xiàn)對(duì)單片機(jī)Flash程序的更新,上位機(jī)采用某CAN總線協(xié)議分析儀,按照既定的通信協(xié)議規(guī)范發(fā)送命令和數(shù)據(jù)。軟件總體思路是:單片機(jī)系統(tǒng)上電復(fù)位后,首先查詢是否收到上位機(jī)通過CAN發(fā)送的啟動(dòng)命令;單片機(jī)收到命令后,將控制程序拷貝到洲中,PC跳轉(zhuǎn)到RAM中運(yùn)行,將FCU固件拷貝到FCURAM,F(xiàn)CU復(fù)位,使能Flash編程和擦除位,擦除指定Flash的B10ck,完成后向上位機(jī)發(fā)送數(shù)據(jù)請(qǐng)求;上位機(jī)向單片機(jī)發(fā)送需要編程數(shù)據(jù)區(qū)的地址和數(shù)據(jù)(256字節(jié)為單位),單片機(jī)完成數(shù)據(jù)編程后,向上位機(jī)繼續(xù)請(qǐng)求數(shù)據(jù)。完成所有編程后,PC回到程序其實(shí)地址執(zhí)行。

      軟件中主要步驟描述如下:

      3.1 Boot Loader控制程序從F1ash轉(zhuǎn)移到RAM程序在Flash中執(zhí)行,單片機(jī)收到上位機(jī)通過CAN總線啟動(dòng)命令后,將Boot Loader控制程序轉(zhuǎn)到RAM中執(zhí)行。控制程序在編譯階段必須設(shè)置對(duì)應(yīng)Flash段和RAM段之間的映射,否則Flash中編譯的程序直接拷貝到RAM中運(yùn)行會(huì)有問題。

      3.2 FCU固件轉(zhuǎn)移

      程序在RAM中執(zhí)行,域轉(zhuǎn)移到FCURAM。將FCU固件從RAM指定區(qū)。

      3.3 F1ash擦除

      程序在RAM中執(zhí)行,控制FCU擦除Flash指定的Block區(qū)域(擦除以Block為單位)。

      3.4 數(shù)據(jù)下載

      程序在RAM中執(zhí)行,單片機(jī)完成Block擦除后,向上位機(jī)發(fā)送數(shù)據(jù)請(qǐng)求命令,上位機(jī)發(fā)送數(shù)據(jù)起始地址和數(shù)據(jù),單片機(jī)將接收的數(shù)據(jù)存放在RAM中。

      3.5編程

      程序在RAM中執(zhí)行,單片機(jī)控制FCU將RAM中接收到的數(shù)據(jù)編程到Flash的指定區(qū)域。單片機(jī)完成編程后,向上位機(jī)繼續(xù)請(qǐng)求數(shù)據(jù)。

      注意事項(xiàng):FCU的每次操作都必須檢查Flash寄存器的相應(yīng)狀態(tài)標(biāo)識(shí)位。確保Flash操作的可靠性。本文雖然是基于SH72AW對(duì)IAP在應(yīng)用軟件升級(jí)方法的探究,但其升級(jí)方法和對(duì)Flash的具體操作同樣適用于SH系列其他單片機(jī),其IAP基本實(shí)現(xiàn)框架也適用于其他的芯片,具有一定的參考意義。

      參考文獻(xiàn)

      [1]SH72AWGroup.SH72AY Group User’s Manual:Hardware,Rev.1.10[R].2014,4.

      [2]Super H RISC engine C/C++ Compiler,Assembler,Optimizing Linkage Editor V9.04User’s Manual.1.01[R].2011,7.

      [3]鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M]。北京:北京航空航天大學(xué)出版社,1996.

      猜你喜歡
      控制程序固件上位
      基于PLC的變電站備用電源自動(dòng)投入裝置控制程序的研究
      特斯拉 風(fēng)云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機(jī)的教室智能監(jiān)測管理系統(tǒng)
      基于固件的遠(yuǎn)程身份認(rèn)證
      以新思路促推現(xiàn)代農(nóng)業(yè)上位
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      基于PLC數(shù)值處理模塊的PID控制程序研究
      一種通過USB接口的可靠固件升級(jí)技術(shù)
      紙機(jī)傳動(dòng)控制程序的復(fù)用性研究
      中國造紙(2014年1期)2014-03-01 02:10:04
      晋中市| 岳西县| 吉木萨尔县| 罗田县| 康保县| 墨脱县| 高清| 托里县| 普安县| 鲁甸县| 盐亭县| 绵阳市| 卢氏县| 鸡西市| 伊宁市| 甘德县| 始兴县| 定南县| 治多县| 沛县| 永登县| 古丈县| 垫江县| 镇江市| 新泰市| 泸西县| 吴江市| 会昌县| 三亚市| 内乡县| 隆回县| 集贤县| 饶平县| 石楼县| 邳州市| 蓬莱市| 罗田县| 景洪市| 来凤县| 溆浦县| 茶陵县|