《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 一種基于CAN總線的程序調試技術研究

一種基于CAN總線的程序調試技術研究

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

??? 摘?? 要: 基于TI公司的DSP TMS320F2812,采用CAN總線,研究了一種多DSP的在線調試" title="在線調試">在線調試技術。計算機終端通過CAN總線下載程序到特定目標機,目標機通過內嵌的Flash燒寫" title="燒寫">燒寫程序實現程序和數據的修改。該技術在磁懸浮列車中得到了應用,大大節省了控制器拆卸安裝工作量,減少了調試時間。?

??? 關鍵詞: CAN總線; 數字信號處理器; TMS320F2812;? Flash

?

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

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

1 硬件平臺?

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

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

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

?

?

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

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

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

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

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

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

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

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

?

?

3 主機端軟件及數據格式?

??? 主機端軟件編寫比較簡單,只要能通過CAN總線發送數據,并根據收到的應答做相應的重發即可。?

??? 子程序執行數據格式,比較麻煩,其步驟如下:?

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

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

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

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

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

4 需要考慮的問題?

??? (1)復位。可以利用TMS320F2812內部的看門狗進行復位,也可以設計專門的硬件監控電路進行復位,還可以斷電復位,總之,根據需要靈活設計。?

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

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

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

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

參考文獻?

[1]?王洪坡,李杰.基于CAN-BUS的控制器調試系統的設計.電子技術應用[J],2004,30(8):30-33.?

[2]?崔迎煒,張曉林.利用DSP實現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.?

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 亚洲高清在线视频 | 国产a∨一区二区三区香蕉小说 | 久草手机视频在线 | 国产青草| 久色tv| 国产一级片观看 | 日本老熟妇激情毛片 | 伊人蜜桃| 91亚洲国产成人久久精品网址 | 白云精品视频国产专区 | 亚洲欧美偷拍自拍 | 精品国产一区二区三区在线 | 亚洲免费人成在线视频观看 | 99国产在线播放 | 久久国产精品99久久久久久牛牛 | 欧美精品hdvideosex4k | 久久巨乳 | 日本s色大片在线观看 | 夜色成人性y | 在线免费看黄色 | 国产精品高清视亚洲精品 | 深夜国产成人福利在线观看女同 | 欧美一区二区三区播放 | 天天看有黄有色大片 | 欧美 亚洲 另类 自拍 在线 | 久久精品国产亚洲网址 | www.av日韩| 99精品视频在线观看免费播放 | 99久女女精品视频在线观看 | 99精品免费视频 | 国产精品大片天天看片 | 在线视频 中文字幕 | 成人影院一区二区三区 | 国产女厕偷窥系列在线视频 | 精品九九视频 | 欧美综合自拍亚洲综合 | 欧美成本人视频 | 一级毛片美国一级j毛片不卡 | 亚洲欧美中文在线观看4 | 欧美一级毛片免费大片 | 日韩美女免费线视频 |