56F8013程序Flash的在線(xiàn)可編程特性及應用
摘要: 基于數字信號控制器56F8013內部程序Flash在線(xiàn)可編程特點(diǎn)編寫(xiě)具有在應用可編程(In-Application Programm)功能的程序可以方便嵌入式軟件開(kāi)發(fā)。本文在介紹56F8013的Flash編程方法的基礎之上,描述一種它的自舉程序(Bootloader)實(shí)現方法。該方法應用在智能汽車(chē)競賽直立車(chē)??刂葡到y開(kāi)發(fā)過(guò)程中,加快了車(chē)?,F場(chǎng)調試的過(guò)程。該方法原理同樣適應于飛思卡爾公司數字信號控制器系列其它單片機開(kāi)發(fā)。
本文引用地址:http://dyxdggzs.com/article/134970.htm智能汽車(chē)競賽要求必須采用飛思卡爾公司的微控制器作為控制單元的核心芯片,數字信號控制器(DSC)系列具有運算速度快、功耗低、外圍設備豐富等特點(diǎn),非常適合智能汽車(chē)競賽車(chē)??刂?。在競賽秘書(shū)處提供的直立車(chē)??刂茀⒖挤桨钢芯筒捎昧薉SC56F8013芯片組成控制核心電路[1]。該芯片不僅內部硬件資源可以滿(mǎn)足車(chē)??刂埔?,而且它的軟件開(kāi)發(fā)環(huán)境Codewarrior中的PE(Processor Expert)可以自動(dòng)生成芯片中各硬件模塊的接口代碼,使得開(kāi)發(fā)者只需關(guān)注應用軟件的開(kāi)發(fā),這樣便可以提高軟件的開(kāi)發(fā)效率和準確性。
在DSC56F8013的程序開(kāi)發(fā)和調試中,可以使用專(zhuān)用的JTEG調試工具,這種方式在車(chē)??刂葡到y開(kāi)發(fā)中具有一定缺點(diǎn)。車(chē)?,F場(chǎng)調試中,單片機的代碼和參數需要頻繁的進(jìn)行更新,使用JTEG調試工具,調試接頭的引線(xiàn)很多,插拔接頭不便。特別是無(wú)法在車(chē)模運行時(shí)實(shí)時(shí)監測內部程序控制參數。
近些年來(lái)一種在應用編程(IAP,In Application Program)技術(shù)廣泛應用在嵌入式系統軟件開(kāi)發(fā)中。IAP技術(shù)就是利用單片機系統已有的通信硬件接口,單片機應用軟件通過(guò)這些接口與上位計算機通訊,接受新的單片機程序并重新燒寫(xiě)在單片機的Flash中。通過(guò)這種程序下載和運行監控的方式完成軟件的開(kāi)發(fā)與升級。這種方式無(wú)法達到專(zhuān)業(yè)JTEG開(kāi)發(fā)工具的程序單步跟蹤調試的功能,但可以借助于單片機的通信接口或者其它顯示界面將軟件運行的狀態(tài)進(jìn)行顯示,幫助分析軟件運行的狀態(tài)。特別是在單片機底層硬件模塊的接口軟件都已經(jīng)有PE自動(dòng)生成,應用層軟件都是用C語(yǔ)言開(kāi)發(fā),所以通常不需要進(jìn)行軟件的但不跟蹤調試。因此基于IAP 進(jìn)行軟件開(kāi)發(fā)可以滿(mǎn)足一般嵌入式軟件開(kāi)發(fā)的要求。
利用IAP開(kāi)發(fā)軟件需要滿(mǎn)足兩個(gè)條件:第一個(gè)是單片機內部Flash必須可以通過(guò)自身應用程序進(jìn)行更新;第二個(gè)是在應用軟件中包含一個(gè)專(zhuān)門(mén)的程序自舉模塊(Bootloader)完成程序的下載。Bootloader模塊位于Flash的固定位置,它的程序代碼不需要進(jìn)行更新。單片機應用軟件在特定的觸發(fā)條件下可以進(jìn)入該模塊執行命令,專(zhuān)門(mén)進(jìn)行更新單片機軟件。本文將介紹56F8013單片機的內部Flash的編程功能以及基于此實(shí)現Bootloader的功能,也可利用對Flash編程特點(diǎn)實(shí)現控制軟件參數的存儲和更新功能。
56F8013內部FLASH編程
56F8013是一款32管腳LQFP封裝的DSC芯片[2],內部資源包括有:運行頻率32MHz的DSP和MCU功能統一的內核,16KB可編程Flash,4KBRAM, 串行接口UART,SPI,I2C各一個(gè),此外還包含有PWM,ADC,TIMER以及片上時(shí)鐘電路。這些豐富的資源以及低廉的價(jià)格使得它在工業(yè)、醫消費類(lèi)產(chǎn)品方面得到了廣泛的應用。特別是它內部Flash可以由程序編程,這為它實(shí)現IAP功能提供了基礎。
56F8013內部的程序和數據存儲器地址空間分布如下圖所示:

其中2KB的RAM可以同時(shí)在程序和數據兩個(gè)空間訪(fǎng)問(wèn),程序指令可以通過(guò)數據拷貝傳送到RAM中執行,這一特點(diǎn)對于Flash編程的指令特別重要,因為它們需要在RAM執行。對于56F8013內部Flash編程是通過(guò)三個(gè)Flash模塊寄存器編程來(lái)完成的,它是分別是Flash編程命令寄存器、控制寄存器以及狀態(tài)寄存器。用戶(hù)不必深入了解如何通過(guò)這些寄存器完成對Flash編程的過(guò)程,只要通過(guò)開(kāi)發(fā)集成環(huán)境中的PE可以方便的生成對Flash編程的函數。下圖顯示了使用PE增加CPU內部外設中的Memory中IntFlash組件的界面。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論