摘要: 本文在介紹56F8013的Flash編程方法的基礎之上,描述一種它的自舉程序(Bootloader)實現方法。該方法應用在智能汽車競賽直立車模控制系統開發過程中,加快了車模現場調試的過程。該方法原理同樣適應于飛思卡爾公司數字信號控制器系列其它單片機開發。
關鍵詞:IAP;自舉程序;56F8013
DOI: 10.3969/j.issn.1005-5517.2012.8.018
智能汽車競賽要求必須采用飛思卡爾公司的微控制器作為控制單元的核心芯片,數字信號控制器(DSC)系列具有運算速度快、功耗低、外圍設備豐富等特點,非常適合智能汽車競賽車模控制。在競賽秘書處提供的直立車模控制參考方案中就采用了DSC56F8013芯片組成控制核心電路[1]。該芯片不僅內部硬件資源可以滿足車模控制要求,而且它的軟件開發環境Codewarrior中的PE(Processor Expert)可以自動生成芯片中各硬件模塊的接口代碼,使得開發者只需關注應用軟件的開發,這樣便可以提高軟件的開發效率和準確性。
在DSC56F8013的程序開發和調試中,可以使用專用的JTEG調試工具,這種方式在車模控制系統開發中
根據上述代碼空間劃定,單片機在復位之后,首先執行Bootloader程序,在Bootloader程序中,先檢查在一定時間內(一般設置為100ms左右)是否接受到用戶通過串口發送的0x55數據。如果受到了0x55數據,并在最后由0xaa數據結束,便進入Bootloader命令狀態,接受相應的程序下載指令,進行程序的更新。否則便從0x1AFF讀取用戶程序的起始地址,開始執行用戶程序。具體的啟動過程如圖3所示。
也可以通過設定一定的觸發條件
件格式,或者Motorola的S-Record的格式存儲。安裝這些文件格式標準,下載程序將單片機程序轉化成可以對Flash進行編程的二進制數據。
(2)對于單片機二進制格式的程序前面兩個跳轉指令數據修改成兩條JMP 0x1B00指令數據,并保存原有程序的起始地址;
(3)通過串口完成對單片機的復位,同時發送0x55和0xaa數據,引導單片機進入Bootloader命令狀態。
(4)通過Bootloader的擦除和編程命令完成對單片機Flash的程序下載,并將單片機程序的首地址編程在0x1AFF位置。
(5)通過執行用戶程序命令或者重新復位單片機執行新的用戶下載的程序。
下載程序除了完成上述功能之外,還可以根據用戶程序功能需要,通過串口實現用戶程序狀態的監控。比如下圖顯示的是使用C++Builder開發的直立車模控制的程序下載和監控軟件。該軟件在下載單片機程序的功能基礎之上,增加了車模采集和控制數據的顯示功能和參數設置功能。下位機的數據可以通過有線連接或者無限數據傳輸模塊發送到上位機程序,實時顯示成曲線,方便對車模控制單片機狀態的監控和故障的診斷。同時也可以將控制程序的參數發送到單片機,存儲在