??? 摘?? 要: 基于TI公司的DSP TMS320F2812,采用CAN總線,研究了一種多DSP的在線調試" title="在線調試">在線調試技術。計算機終端通過CAN總線下載程序到特定目標機,目標機通過內嵌的Flash燒寫" title="燒寫">燒寫程序實現(xiàn)程序和數據的修改。該技術在磁懸浮列車中得到了應用,大大節(jié)省了控制器拆卸安裝工作量,減少了調試時間。?
??? 關鍵詞: CAN總線; 數字信號處理器; TMS320F2812;? Flash
?
??? 現(xiàn)代大型機電系統(tǒng)——磁懸浮列車一般需要有多個處理器協(xié)同工作,如果對一個個處理器進行調試既耗時又費力。在既不能拆卸,空間又狹小或者有毒物質等場合下,根本不允許單獨或現(xiàn)場調試。即使能夠拆卸,也要耗費大量的人力物力。參考文獻[1]提供了一種磁懸浮控制器調試系統(tǒng)的設計方法,在實際試驗過程中取得了良好的效果。但若需要修改算法,調整程序,仍然需要打開控制器,不能進行在線調試。因此,有必要研究利用現(xiàn)場總線進行集中在線調試的技術。?
??? 本文在保留參考文獻[1]的優(yōu)點和固化主程序的同時,利用子程序" title="子程序">子程序定位技術,通過CAN總線,實現(xiàn)了子程序的在線修改。?
1 硬件平臺?
??? TMS320F2812是TI公司推出的主要用于電機控制、32位的DSP,其工作頻率高達150MHz;采用哈佛總線結構,同時采用指令流水線技術,能夠保證信號處理和控制的實時性。TMS320F2812片上資源包括:14KB的RAM,128K×16bit的Flash,16通道12位的ADC模塊,16通道的PWM輸出,56個可獨立編程的GPIO, 3個定時器,3個可配置死區(qū)的比較器,4個捕獲單元,同時還有多種串行接口,其中包括CAN總線。?
??? TMS320F2812出廠時固化在芯片內的啟動程序可支持六種啟動方式:直接從Flash啟動、利用SPI接口從外部串行EEPROM啟動、利用SCIA啟動、直接跳轉到H0、直接跳轉到OTP、從GPIOB口并行啟動。實際應用中一般都是直接從Flash啟動,其優(yōu)點是不占用外部的資源,掉電仍然可以執(zhí)行,Flash可重復燒寫。?
??? 多DSP調試系統(tǒng)硬件結構如圖1所示。圖1(a)包含一個或一個以上的TMS320F2812處理器板,板子連接到CAN總線上,還包括一塊連接到CAN總線上的CAN接口卡,此接口卡和DSP相連。CAN接口卡的主要功能就是把數據發(fā)送到總線上,并接收數據是否發(fā)送成功的回答。為了簡化設計,可以直接把CAN接口卡用TMS320F2812處理器板來替換,如圖1(b)所示。
?
?
2 目標板" title="目標板">目標板軟件編程?
??? 目標板軟件編程" title="軟件編程">軟件編程主程序流程如圖2所示,其步驟如下:?
??? (1)把關鍵控制任務簡化為一個子程序,分配一段固定的地址,這是實現(xiàn)本文想法的前提。一般的電機控制、通訊等都可以用一個子程序的方式實現(xiàn)。用目標板軟件編程時,如果要修改具體控制算法和通訊流程,則僅需要修改子程序,而并不需要修改整個項目的程序框架。?
??? (2)編寫主程序框架。?
??? (3)編寫Flash燒寫子程序。該程序可以自己編寫[2],也可以直接從TI的網站上下載庫文件加進項目來編寫。該程序可以直接調用,返回成功與否的標志。?
??? (4)設計CAN通訊程序,同時調用Flash燒寫程序。CAN接收數據采用中斷方式。?
??? (5)編譯鏈接后燒寫進DSP,目標板軟件開發(fā)任務完成。?
??? CAN通訊程序流程圖如圖3所示。?
?
?
3 主機端軟件及數據格式?
??? 主機端軟件編寫比較簡單,只要能通過CAN總線發(fā)送數據,并根據收到的應答做相應的重發(fā)即可。?
??? 子程序執(zhí)行數據格式,比較麻煩,其步驟如下:?
??? (1)修改整個程序(并不修改程序框架),使得所需要修改的子程序達到目標要求。?
??? (2)編譯、鏈接成*.OUT文件。*.OUT文件是COFF格式的文件,但不是一個完完全全的可執(zhí)行代碼,其中包含有一些關于程序中各個段的起始地址、段的長度等輔助信息。?
??? (3)對*.OUT文件進行提取,從中篩選出對最后裝載有用的代碼和地址信息。可以利用文件Coff_both.exe,該文件可以在TI的網站上免費下載,也可以根據參考文獻[3]自己編寫。?
??? (4)由計算機終端把子程序數據發(fā)送出去。當收到目標程序發(fā)送的子程序燒寫完畢的狀態(tài)指示時,即工作完成。?
??? (5)如果需要,復位目標板。?
4 需要考慮的問題?
??? (1)復位??梢岳肨MS320F2812內部的看門狗進行復位,也可以設計專門的硬件監(jiān)控電路進行復位,還可以斷電復位,總之,根據需要靈活設計。?
??? (2)子程序長度。是在框架程序編寫時限定的,一定要注意不能超過設定的長度。實際過程中可以考慮給子程序一個足夠的地址空間。?
??? (3)子程序的執(zhí)行。由于子程序燒寫在原來所指定的子程序地址內,并沒有改變子程序的地址,所以子程序仍會執(zhí)行。若需要改變子程序的地址,只要注意把調用子程序所使用的跳轉指令修改為跳轉到新地址即可,但建議不這樣使用,因為會使程序復雜化。?
??? 本文介紹了一種多DSP在線調試的方法,通過CAN總線把需要修改的程序下載到目標DSP板中,利用預先設計好的Flash燒寫程序修改固定地址的目標程序,實現(xiàn)了DSP關鍵程序的在線調試和修改。該方法在產品的研發(fā)階段起到至關重要的作用,大大縮短了產品研發(fā)的時間,節(jié)省了人力物力。?
??? 本目標機并不僅限于TMS320F2812,通訊總線也不僅限于CAN總線,讀者可以根據自己的需要稍加修改即可應用到其他目標板中,其前提只是目標板能和主機進行雙向通訊。?
參考文獻?
[1]?王洪坡,李杰.基于CAN-BUS的控制器調試系統(tǒng)的設計.電子技術應用[J],2004,30(8):30-33.?
[2]?崔迎煒,張曉林.利用DSP實現(xiàn)Flash的在線編程.遙測遙控[J],2002,(11):43-46.?
[3]?Extracting equivalent hex values from a COFF file.(literature number SPRA573). www.ti.com, 1999-07.?
[4]?Bootloading the TMS320VC5402 in HPI mode (literature?number SPRA382). www.ti.com. 1999-07.?