《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 一種基于CAN總線的程序調(diào)試技術(shù)研究

一種基于CAN總線的程序調(diào)試技術(shù)研究

2008-12-08
作者:鄒東升, 佘龍華

??? 摘?? 要: 基于TI公司的DSP TMS320F2812,采用CAN總線,研究了一種多DSP的在線調(diào)試" title="在線調(diào)試">在線調(diào)試技術(shù)。計算機終端通過CAN總線下載程序到特定目標機,目標機通過內(nèi)嵌的Flash燒寫" title="燒寫">燒寫程序?qū)崿F(xiàn)程序和數(shù)據(jù)的修改。該技術(shù)在磁懸浮列車中得到了應(yīng)用,大大節(jié)省了控制器拆卸安裝工作量,減少了調(diào)試時間。?

??? 關(guān)鍵詞: CAN總線; 數(shù)字信號處理器; TMS320F2812;? Flash

?

??? 現(xiàn)代大型機電系統(tǒng)——磁懸浮列車一般需要有多個處理器協(xié)同工作,如果對一個個處理器進行調(diào)試既耗時又費力。在既不能拆卸,空間又狹小或者有毒物質(zhì)等場合下,根本不允許單獨或現(xiàn)場調(diào)試。即使能夠拆卸,也要耗費大量的人力物力。參考文獻[1]提供了一種磁懸浮控制器調(diào)試系統(tǒng)的設(shè)計方法,在實際試驗過程中取得了良好的效果。但若需要修改算法,調(diào)整程序,仍然需要打開控制器,不能進行在線調(diào)試。因此,有必要研究利用現(xiàn)場總線進行集中在線調(diào)試的技術(shù)。?

??? 本文在保留參考文獻[1]的優(yōu)點和固化主程序的同時,利用子程序" title="子程序">子程序定位技術(shù),通過CAN總線,實現(xiàn)了子程序的在線修改。?

1 硬件平臺?

??? TMS320F2812是TI公司推出的主要用于電機控制、32位的DSP,其工作頻率高達150MHz;采用哈佛總線結(jié)構(gòu),同時采用指令流水線技術(shù),能夠保證信號處理和控制的實時性。TMS320F2812片上資源包括:14KB的RAM,128K×16bit的Flash,16通道12位的ADC模塊,16通道的PWM輸出,56個可獨立編程的GPIO, 3個定時器,3個可配置死區(qū)的比較器,4個捕獲單元,同時還有多種串行接口,其中包括CAN總線。?

??? TMS320F2812出廠時固化在芯片內(nèi)的啟動程序可支持六種啟動方式:直接從Flash啟動、利用SPI接口從外部串行EEPROM啟動、利用SCIA啟動、直接跳轉(zhuǎn)到H0、直接跳轉(zhuǎn)到OTP、從GPIOB口并行啟動。實際應(yīng)用中一般都是直接從Flash啟動,其優(yōu)點是不占用外部的資源,掉電仍然可以執(zhí)行,Flash可重復(fù)燒寫。?

??? 多DSP調(diào)試系統(tǒng)硬件結(jié)構(gòu)如圖1所示。圖1(a)包含一個或一個以上的TMS320F2812處理器板,板子連接到CAN總線上,還包括一塊連接到CAN總線上的CAN接口卡,此接口卡和DSP相連。CAN接口卡的主要功能就是把數(shù)據(jù)發(fā)送到總線上,并接收數(shù)據(jù)是否發(fā)送成功的回答。為了簡化設(shè)計,可以直接把CAN接口卡用TMS320F2812處理器板來替換,如圖1(b)所示。

?

?

2 目標板" title="目標板">目標板軟件編程?

??? 目標板軟件編程" title="軟件編程">軟件編程主程序流程如圖2所示,其步驟如下:?

??? (1)把關(guān)鍵控制任務(wù)簡化為一個子程序,分配一段固定的地址,這是實現(xiàn)本文想法的前提。一般的電機控制、通訊等都可以用一個子程序的方式實現(xiàn)。用目標板軟件編程時,如果要修改具體控制算法和通訊流程,則僅需要修改子程序,而并不需要修改整個項目的程序框架。?

??? (2)編寫主程序框架。?

??? (3)編寫Flash燒寫子程序。該程序可以自己編寫[2],也可以直接從TI的網(wǎng)站上下載庫文件加進項目來編寫。該程序可以直接調(diào)用,返回成功與否的標志。?

??? (4)設(shè)計CAN通訊程序,同時調(diào)用Flash燒寫程序。CAN接收數(shù)據(jù)采用中斷方式。?

??? (5)編譯鏈接后燒寫進DSP,目標板軟件開發(fā)任務(wù)完成。?

??? CAN通訊程序流程圖如圖3所示。?

?

?

3 主機端軟件及數(shù)據(jù)格式?

??? 主機端軟件編寫比較簡單,只要能通過CAN總線發(fā)送數(shù)據(jù),并根據(jù)收到的應(yīng)答做相應(yīng)的重發(fā)即可。?

??? 子程序執(zhí)行數(shù)據(jù)格式,比較麻煩,其步驟如下:?

??? (1)修改整個程序(并不修改程序框架),使得所需要修改的子程序達到目標要求。?

??? (2)編譯、鏈接成*.OUT文件。*.OUT文件是COFF格式的文件,但不是一個完完全全的可執(zhí)行代碼,其中包含有一些關(guān)于程序中各個段的起始地址、段的長度等輔助信息。?

??? (3)對*.OUT文件進行提取,從中篩選出對最后裝載有用的代碼和地址信息??梢岳梦募﨏off_both.exe,該文件可以在TI的網(wǎng)站上免費下載,也可以根據(jù)參考文獻[3]自己編寫。?

??? (4)由計算機終端把子程序數(shù)據(jù)發(fā)送出去。當收到目標程序發(fā)送的子程序燒寫完畢的狀態(tài)指示時,即工作完成。?

??? (5)如果需要,復(fù)位目標板。?

4 需要考慮的問題?

??? (1)復(fù)位??梢岳肨MS320F2812內(nèi)部的看門狗進行復(fù)位,也可以設(shè)計專門的硬件監(jiān)控電路進行復(fù)位,還可以斷電復(fù)位,總之,根據(jù)需要靈活設(shè)計。?

??? (2)子程序長度。是在框架程序編寫時限定的,一定要注意不能超過設(shè)定的長度。實際過程中可以考慮給子程序一個足夠的地址空間。?

??? (3)子程序的執(zhí)行。由于子程序燒寫在原來所指定的子程序地址內(nèi),并沒有改變子程序的地址,所以子程序仍會執(zhí)行。若需要改變子程序的地址,只要注意把調(diào)用子程序所使用的跳轉(zhuǎn)指令修改為跳轉(zhuǎn)到新地址即可,但建議不這樣使用,因為會使程序復(fù)雜化。?

??? 本文介紹了一種多DSP在線調(diào)試的方法,通過CAN總線把需要修改的程序下載到目標DSP板中,利用預(yù)先設(shè)計好的Flash燒寫程序修改固定地址的目標程序,實現(xiàn)了DSP關(guān)鍵程序的在線調(diào)試和修改。該方法在產(chǎn)品的研發(fā)階段起到至關(guān)重要的作用,大大縮短了產(chǎn)品研發(fā)的時間,節(jié)省了人力物力。?

??? 本目標機并不僅限于TMS320F2812,通訊總線也不僅限于CAN總線,讀者可以根據(jù)自己的需要稍加修改即可應(yīng)用到其他目標板中,其前提只是目標板能和主機進行雙向通訊。?

參考文獻?

[1]?王洪坡,李杰.基于CAN-BUS的控制器調(diào)試系統(tǒng)的設(shè)計.電子技術(shù)應(yī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.?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。