《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于CAN_BUS的控制器調試系統的設計

基于CAN_BUS的控制器調試系統的設計

2008-08-12
作者:王洪坡 李 杰 常文森

??? 摘 要: 調節多點控制器的控制參數" title="控制參數">控制參數是一項復雜的工作,以CAN_BUS通信協議" title="通信協議">通信協議為基礎,設計了一種連接多個CAN端點的調試系統" title="調試系統">調試系統,通過創建通信協議,實現了上位機" title="上位機">上位機與控制器的CAN端點的實時數據交流。闡述了控制器與上位機的通信流程。
????關鍵詞: CAN_BUS? 調試系統? 通信協議

?

??? 磁懸浮轉向架的懸浮由四組電磁鐵實現,每組電磁鐵都有獨立的懸浮控制器,控制該點的懸浮與下落。為了獲得最優的控制參數,需要在整個轉向架的懸浮過程中通過上位機監視軌道與電磁鐵之間的間隙、電磁鐵工作電流等狀態參數以及懸浮控制器的控制參數,動態地修改控制參數以觀察控制效果。
??? 懸浮控制器之間是相互獨立的,上位機無法同時監控多個懸浮控制器,因此需要找到合理的通信方式使上位機同時與所有的控制器連接,使它們之間能夠實時傳遞數據。CAN總線是一種有效支持分布式控制和實時控制的多主的異步串行通信網絡。由于CAN總線具有較強的糾錯能力,支持差分收發,適合高噪聲環境,具有較遠的傳輸距離,在各個領域中得到了廣泛應用。CAN通信協議規定通信波特率、每個位周期的取樣位置和個數都可以自行設定,這保證了用戶在使用過程中的靈活性。選用CAN總線,無論是在抗電磁干擾方面還是在實時性方面都能夠滿足實驗要求。
1 調試系統硬件端口的設計
??? 懸浮控制器使用SJA1000作為CAN總線協議轉換芯片。SJA1000是一種獨立控制器,用于移動目標和一般工業環境中的區域網絡控制。它內建BASIC CAN協議,并提供對CAN2.0B協議的支持。通過對片內寄存器的讀、寫操作,懸浮控制器的核心處理器能夠設置CAN總線通信模式,實現數據的發送與接收。它的傳輸速度很快,位速率可達1Mbit/s,可滿足高速大流量實時傳輸要求。
??? SJA1000在邏輯上實現了傳輸數據的編碼和解碼,若要與物理線路連接,必須借助總線驅動器。PCA82C250是協議控制器與物理鏈路之間的接口,可以用高達1Mbit/s的位速率在兩條有差動電壓的總線電纜上傳" title="上傳">上傳輸數據,它與SJA1000結合才能實現CAN總線通信。
??? 圖1為CAN總線接口電路原理圖。圖中,SJA1000用16MHz的晶振作為基準時鐘,數據線AD0~AD7與核心控制器的低八位數據線相連,在的控制下可實現芯片寄存器的讀寫。RX0和TX0與PCA82C250數據輸入引腳相連,作為串行數據線。RX1與PCA82C250的參考電壓引腳5相連,向PCA82C250輸出參考電壓。PCA82C250的兩根輸出數據線之間加上120?贅的終端電阻,用以匹配線路。

?


??? 上位機通過專用的USBTOCAN轉換器實現PC機與CAN總線的連接,市場上有很多這類產品,這里不再詳細說明。上位機主要提供人機交互界面,顯示狀態和控制器參數,并完成參數與程序的下載。
2 通信協議構建
??? DSP控制器上的CAN總線端口要完成兩項工作:(1)上傳控制器的控制常量和電流、間隙等狀態參數,送給檢測系統;(2)讀取上位機下傳的待修改的控制參數,實現參數的在線修改,接收下傳的程序文件,實現DSP主程序的在線寫入。
??? 在調試過程中,實現多DSP系統的在線聯調是很有效的調試手段。這樣,上位PC機不但能夠采集各控制器的狀態參數,還能夠對采集的數據進行整理與顯示,并能實時調整不同控制器的控制參數,最終實現控制器運行程序的遠程下載。
??? 為實現CAN總線的數據傳送,需要定義參數包、程序包、命令包三種傳送數據包,并分別由0x11、0x22、0x33標示出來。根據數據傳送方向的不同,數據包的格式略有差異。考慮到CAN總線上的節點較多,為避免數據傳送過程中出現混亂的情況,定義數據發送的基本數據包大小為8個字節,即CAN總線一次傳送的最大字節數為8。
2.1 下傳數據協議
??? 下傳數據包括程序、參數、命令三種數據類型。
2.1.1 參數數據包格式
??? 上位機需要下傳的數據包括控制參數C1、C2、C3及給定間隙與電流,根據修改需要,每個參數都是單獨下傳的。下傳數據包的大小與CAN的最大有效傳送字節數一致,為8個字節。第一個字節指出數據包的類型(用0x11標示),第二個字節指出參數類型(用0xx7標示),第三字節至第八字節指出傳送的有效數據,對應上面給定參數的參數標示依次為0x17、0x27、0x37、0x47、0x57。圖2所示為數據包的一般格式。

?


2.1.2 程序數據包格式
??? FLASH寫入文件較大,一般有幾十K字節。控制系統采用的FLASH芯片AT29C010以128字節為基本操作單位。為了適應芯片,可將文件分成128字節的數據段,并為每個數據段標定次序。發送時,標出數據段號及該片數據所處段中的位置即可。控制器接收到128字節后,做一次寫入FLASH操作,數據包格式及說明見圖3。

?


2.1.3? 命令數據包格式
??? 命令數據指出對下傳參數的操作,0xx7+0x44表示對某一參數的修改生效,如:0x17+0x44使能C1,0x27+0x44使能C2,0x37+0x44使能C3。如果修改的參數不能滿足控制要求,調試員希望能恢復原來的運行參數,因此定義0x55為修改參數恢復命令,如:0x17+0x55恢復C1,0x27+0x55恢復C2,0x37+0x55恢復C3。0x66+0x66表示將下傳數據寫入最后的FLASH參數存儲區。命令數據包格式如圖4所示。

?


2.2 上傳數據協議
??? 上傳數據包的大小也為8個字節,數據包類型分為參數反饋、命令反饋兩種,參數反饋用于上傳DSP的實際運行控制參數及間隙、電流等狀態信息,命令反饋用于對PC機使能、寫入、參數恢復等命令的應答。
??? 上傳數據依次為控制參數C1、C2、C3、CURRENT1、CURRENT2、CLEARANCE。數據類型標示依次為0x17、0x27、0x37、0x47、0x57、0x67。由于上位機要同時接收多個控制器上傳的數據,所以為了正確區分這些參數,需要給上傳的數據包加入端口標示,指出數據包來自哪個總線端口。上傳的數據包在前面格式的基礎上還要加入對應于各控制器的CAN總線端口號。
??? 上傳命令是對總線通信出現異常情況的應答,因為控制器隨時將控制參數上傳,且參數字節數較少,出錯的可能性較低,不需配備應答命令;而上傳程序的數據量較大,容易出現錯誤,必須配備應答命令,指示程序寫入過程。
??? 因為控制器是周期性地掃描SJA1000的接收緩沖區,當總線連接的節點較多時,數據量較大,難免會發生數據漏收的情況;而且控制器對外部中斷的響應也會影響掃描周期,使接收緩沖區中未來得及讀取的數據被新數據沖掉。當控制器發現應接收的數據位置與已接收到的數據位置不符時,控制器發差錯命令給上位機,指出應接收的數據段號及位置,上位機接收到這一信息后重發相關數據。發送數據包包含CAN端口字節、命令標示、段號、位置號等信息。通信過程中也可能出現發送數據與接收數據不符的情況,因此有必要引入數據校驗算法。控制器將接收到的128字節校驗后得到的校驗值與接收到的校驗值作比較,一致后才將數據寫入FLASH;否則反饋回校驗值錯誤信息,上位機重發該段數據。發送數據包包含CAN端口字節、命令標示、段號、重發標示(0x88)等信息。
3 通信程序設計流程
3.1控制器通信流程

??? 控制器的通信部分主要在主程序循環中完成。每次主程序循環中,控制器都向調試系統發送當前C1、C2、C3、CURRENT1、CURRENT2、CLEARANCE等信息;一旦接收到調試系統下傳的信息,控制器便分析下傳信息的性質,對它們分別進行判別與應答。
??? 圖5是控制器的通信流程。控制器上電后,程序從FLASH的參數存儲區(最后256個字節)讀取控制參數值,存入控制參數緩存中,作為參數初值。同時,控制器通過CAN總線接收上位機下傳的控制參數,校驗后存入控制參數緩存中。一旦接收到參數使能命令,則將緩存中的數據復制給C1、C2、C3等變量,作為實際的工作參數;調試完畢后,在接收到參數寫入命令后,將參數寫入FLASH的參數存儲區,作為永久工作參數。接收到程序數據包后,控制器首先檢驗數據的次序,保證接收到的數據按次序排列;接著代入校驗算法,將計算得到的校驗值和接收的校驗值作比較,不一致則給上位機反饋校驗值錯誤命令,要求上位機重發該段程序,否則將數據寫入FLASH。圖中監控信息的發送周期可根據情況確定。

?


3.2 上位機通信流程
??? 上位機是調試員與控制系統的接口,它顯示控制器的上傳參數,將調試員需要修改的控制參數下傳。為完成上述功能,調試界面應包括參數顯示窗口、參數輸入窗口、命令工具條等,必要的話,還應將狀態參數以曲線的形式顯示出來。調試人員根據狀態曲線調整控制參數。
??? 圖6是上位機的調試流程,單控制器的總線最短發送周期為5ms,隨著總線通信量的增加,監控界面的掃描周期也應相應延長。參數顯示界面顯示的是上位機最新收到的參數,其值總是實時刷新的。發送修改參數時,每次只發送一個參數,上位機需將參數變成不大于4字節的字符型數組才能發送。控制器在收到參數數據包后,也要將數據字節逆序重組,才能得到需要的修改參數。上位機在下載程序的過程中,若在對某段程序多次重復發送后依然收到錯誤反饋,則顯示錯誤狀態,停止數據發送,由調試人員檢查線路,重新給出下載命令。

?


??? 多個控制器控制參數的調試是一個相當繁雜的過程,本文給出了基于CAN總線的調試系統,其設計目的就是簡化調試過程,縮短調試時間。應用這套系統,調試人員可以同時動態地調整多個控制器的控制參數,通過反饋的控制器狀態判斷參數優劣,達到快速尋找最優控制參數的目的,是調試過程中的一條有效輔助手段。
參考文獻
1 USBCAN用戶手冊.三星達公司,2001.5
2 蘇 濤,吳順君,李真芳,宋萬杰.高性能DSP與高速實時信號處理.西安:電子科技大學出版,2002.1
3 SJA1000 Stand-alone CAN Controller Data Sheet.Philips? Semiconductors,2000.4
4 李廣軍,王厚軍.實用接口技術. 成都:電子科技大學出版社,1998.2
5 林瑞仲,吳 越.Visual C++.NET類庫應用實例.北京:電子工業出版社,2003.11

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
尤物在线观看一区| 亚洲女ⅴideoshd黑人| 欧美性做爰毛片| 欧美mv日韩mv国产网站app| 久久国产精品免费一区| 亚洲免费婷婷| 亚洲午夜女主播在线直播| 亚洲乱码国产乱码精品精天堂| 久久狠狠婷婷| 久久精品国产久精国产爱| 欧美在线电影| 欧美在线关看| 欧美在线亚洲综合一区| 欧美在线视频一区| 久久精品国产第一区二区三区| 香蕉乱码成人久久天堂爱免费| 亚洲欧美日韩国产一区二区三区| 亚洲欧美一区二区三区在线 | 国产精品99久久久久久www| 亚洲另类一区二区| 日韩亚洲欧美中文三级| 一本色道久久综合狠狠躁篇的优点 | 欧美伊人影院| 久久久av毛片精品| 久久久久99| 免费看的黄色欧美网站| 欧美成人一区二区三区片免费| 欧美成人免费在线视频| 欧美日韩高清在线播放| 欧美三级网页| 国产精品视频免费在线观看| 国产亚洲毛片在线| 在线观看日韩欧美| 亚洲精品乱码视频| 亚洲午夜精品一区二区三区他趣| 亚洲欧美日韩中文视频| 欧美一区不卡| 亚洲精品免费观看| 亚洲色无码播放| 欧美一区亚洲二区| 欧美va天堂| 欧美日一区二区在线观看| 国产日产亚洲精品系列| 怡红院av一区二区三区| 亚洲人成久久| 亚洲在线成人精品| 久久精品亚洲一区二区| 99精品福利视频| 亚洲欧美美女| 老司机精品久久| 欧美日韩中文在线| 国产一区二区三区四区| 亚洲激情不卡| 亚洲欧美综合精品久久成人| 亚洲国产欧美日韩另类综合| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚洲国产精品第一区二区| 99在线|亚洲一区二区| 亚洲欧美日韩在线不卡| 葵司免费一区二区三区四区五区| 欧美精品一卡| 国产午夜一区二区三区| 亚洲日韩视频| 欧美永久精品| 亚洲视频电影图片偷拍一区| 久久午夜精品一区二区| 欧美日韩免费高清一区色橹橹| 国产亚洲精品7777| 亚洲精品欧洲| 欧美中文字幕第一页| 一区二区三区四区在线| 狂野欧美激情性xxxx欧美| 国产精品裸体一区二区三区| 亚洲国产一区二区三区高清| 亚洲欧美卡通另类91av| 99精品国产高清一区二区| 久久精品一本久久99精品| 欧美视频亚洲视频| 亚洲第一视频网站| 亚洲欧美中文日韩v在线观看| 一本色道久久88精品综合| 久久久之久亚州精品露出| 国产精品白丝jk黑袜喷水| 亚洲福利视频三区| 欧美一区国产在线| 亚洲欧美日韩系列| 欧美日韩国内| 亚洲丰满少妇videoshd| 欧美在线视频免费播放| 亚洲欧美电影在线观看| 欧美日韩国产美女| 亚洲国产一区二区三区a毛片 | 亚洲欧美日韩第一区| 欧美裸体一区二区三区| 精品白丝av| 欧美一区二区三区四区高清| 亚洲免费视频一区二区| 欧美日韩免费观看一区=区三区| 亚洲国产精品一区二区www在线| 亚洲第一福利视频| 久久精品一级爱片| 国产日韩欧美不卡在线| 亚洲图色在线| 亚洲一区在线播放| 欧美日韩视频不卡| 亚洲精品日日夜夜| 亚洲精品综合在线| 欧美11—12娇小xxxx| 国内外成人在线视频| 欧美一区二区私人影院日本| 欧美在线视频免费播放| 国产精品色一区二区三区| 亚洲一区二区四区| 亚洲免费视频网站| 国产精品久久亚洲7777| 夜夜嗨av一区二区三区四季av| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲激情欧美| 亚洲人成人77777线观看| 久久激情一区| 国产日韩欧美一区二区三区四区| 午夜精品视频一区| 欧美在线网址| 国产日韩欧美| 久久国产色av| 久久青青草综合| 伊人蜜桃色噜噜激情综合| 亚洲国产精品精华液网站| 免费不卡在线观看| 91久久久久久国产精品| 99精品视频免费| 欧美另类亚洲| 一本色道久久综合亚洲精品按摩| 亚洲小视频在线| 国产精品区一区二区三| 午夜国产不卡在线观看视频| 久久国产成人| 国语自产精品视频在线看| 亚洲高清av在线| 欧美激情一区二区三区成人| 日韩视频三区| 亚洲欧美在线免费观看| 国产日韩欧美视频| 亚洲电影第三页| 欧美成人精品高清在线播放| 最近中文字幕日韩精品 | 亚洲一区二区在线看| 久久精品成人| 亚洲国产成人久久综合一区| 一区二区三区四区五区视频| 国产精品天天看| 久久成人精品无人区| 欧美国产日本韩| 亚洲手机视频| 久久久久久自在自线| 91久久国产精品91久久性色| 亚洲在线国产日韩欧美| 国产精品永久| 亚洲欧洲另类| 国产精品豆花视频| 久久精品视频在线看| 欧美日韩另类字幕中文| 午夜欧美不卡精品aaaaa| 美女脱光内衣内裤视频久久影院 | 在线视频日本亚洲性| 久久精品视频在线看| 最新成人在线| 欧美一区国产在线| 亚洲国产综合在线| 午夜精品剧场| 亚洲高清影视| 欧美一区二区三区免费看| 亚洲黄色在线| 久久国产加勒比精品无码| 91久久在线| 久久精品一区二区| 99在线观看免费视频精品观看| 久久九九热免费视频| 99爱精品视频| 裸体一区二区三区| 亚洲视频观看| 欧美风情在线观看| 小嫩嫩精品导航| 欧美日韩综合另类| 亚洲欧洲精品一区| 国产欧美精品一区aⅴ影院| 亚洲免费成人| 韩国久久久久| 亚洲欧美日韩直播| 亚洲黄色毛片| 久久久久国产精品一区| 一区二区高清在线| 欧美成年人视频网站| 性伦欧美刺激片在线观看| 欧美日韩国产麻豆| 亚洲国产精品久久久久久女王| 国产精品久久久久久久一区探花| 亚洲国产精品v| 国产日韩一区二区三区| 亚洲欧美综合国产精品一区|