《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 基子CAN_BUS的控制器調(diào)試系統(tǒng)的設(shè)計
基子CAN_BUS的控制器調(diào)試系統(tǒng)的設(shè)計
摘要: 調(diào)節(jié)多點(diǎn)控制器的控制參數(shù)是一項(xiàng)復(fù)雜的工作,以CAN_BUS通信協(xié)議為基礎(chǔ),設(shè)計了一種連接多個CAN端點(diǎn)的調(diào)試系統(tǒng),通過創(chuàng)建通信協(xié)議,實(shí)現(xiàn)了上位機(jī)與控制器的CAN端點(diǎn)的實(shí)時數(shù)據(jù)交流。闡述了控制器與上位機(jī)的通信流程。
Abstract:
Key words :
  調(diào)節(jié)多點(diǎn)控制器的控制參數(shù)是一項(xiàng)復(fù)雜的工作,以CAN_BUS通信協(xié)議為基礎(chǔ),設(shè)計了一種連接多個CAN端點(diǎn)的調(diào)試系統(tǒng),通過創(chuàng)建通信協(xié)議,實(shí)現(xiàn)了上位機(jī)與控制器的CAN端點(diǎn)的實(shí)時數(shù)據(jù)交流。闡述了控制器與上位機(jī)的通信流程。

  磁懸浮轉(zhuǎn)向架的懸浮由四組電磁鐵實(shí)現(xiàn),每組電磁鐵都有獨(dú)立的懸浮控制器,控制該點(diǎn)的懸浮與下落。為了獲得最優(yōu)的控制參數(shù),需要在整個轉(zhuǎn)向架的懸浮過程中通過上位機(jī)監(jiān)視軌道與電磁鐵之間的間隙、電磁鐵工作電流等狀態(tài)參數(shù)以及懸浮控制器的控制參數(shù),動態(tài)地修改控制參數(shù)以觀察控制效果。

  懸浮控制器之間是相互獨(dú)立的,上位機(jī)無法同時監(jiān)控多個懸浮控制器,因此需要找到合理的通信方式使上位機(jī)同時與所有的控制器連接,使它們之間能夠?qū)崟r傳遞數(shù)據(jù)。CAN總線是一種有效支持分布式控制和實(shí)時控制的多主的異步串行通信網(wǎng)絡(luò)。由于CAN總線具有較強(qiáng)的糾錯能力,支持差分收發(fā),適合高噪聲環(huán)境,具有較遠(yuǎn)的傳輸距離,在各個領(lǐng)域中得到了廣泛應(yīng)用。CAN通信協(xié)議規(guī)定通信波特率、每個位周期的取樣位置和個數(shù)都可以自行設(shè)定,這保證了用戶在使用過程中的靈活性。選用CAN總線,無論是在抗電磁干擾方面還是在實(shí)時性方面都能夠滿足實(shí)驗(yàn)要求。

  1 調(diào)試系統(tǒng)硬件端口的設(shè)計

  懸浮控制器使用SJA1000作為CAN總線協(xié)議轉(zhuǎn)換芯片。SJA1000是一種獨(dú)立控制器,用于移動目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它內(nèi)建BASIC CAN協(xié)議,并提供對CAN2.0B協(xié)議的支持。通過對片內(nèi)寄存器的讀、寫操作,懸浮控制器的核心處理器能夠設(shè)置CAN總線通信模式,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收。它的傳輸速度很快,位速率可達(dá)1Mbit/s,可滿足高速大流量實(shí)時傳輸要求。

  SJA1000在邏輯上實(shí)現(xiàn)了傳輸數(shù)據(jù)的編碼和解碼,若要與物理線路連接,必須借助總線驅(qū)動器。PCA82C250是協(xié)議控制器與物理鏈路之間的接口,可以用高達(dá)1Mbit/s的位速率在兩條有差動電壓的總線電纜上傳輸數(shù)據(jù),它與SJA1000結(jié)合才能實(shí)現(xiàn)CAN總線通信。

  圖1為CAN總線接口電路原理圖。圖中,SJA1000用16MHz的晶振作為基準(zhǔn)時鐘,數(shù)據(jù)線AD0~AD7與核心控制器的低八位數(shù)據(jù)線相連,在CS、RD、WR的控制下可實(shí)現(xiàn)芯片寄存器的讀寫。RX0和TX0與PCA82C250數(shù)據(jù)輸入引腳相連,作為串行數(shù)據(jù)線。RX1與PCA82C250的參考電壓引腳5相連,向PCA82C250輸出參考電壓。PCA82C250的兩根輸出數(shù)據(jù)線之間加上120Ω的終端電阻,用以匹配線路。

  上位機(jī)通過專用的USBTOCAN轉(zhuǎn)換器實(shí)現(xiàn)PC機(jī)與CAN總線的連接,市場上有很多這類產(chǎn)品,這里不再詳細(xì)說明。上位機(jī)主要提供人機(jī)交互界面,顯示狀態(tài)和控制器參數(shù),并完成參數(shù)與程序的下載。

  2 通信協(xié)議構(gòu)建

  DSP控制器上的CAN總線端口要完成兩項(xiàng)工作:(1)上傳控制器的控制常量和電流、間隙等狀態(tài)參數(shù),送給檢測系統(tǒng);(2)讀取上位機(jī)下傳的待修改的控制參數(shù),實(shí)現(xiàn)參數(shù)的在線修改,接收下傳的程序文件,實(shí)現(xiàn)DSP主程序的在線寫入。

  在調(diào)試過程中,實(shí)現(xiàn)多DSP系統(tǒng)的在線聯(lián)調(diào)是很有效的調(diào)試手段。這樣,上位PC機(jī)不但能夠采集各控制器的狀態(tài)參數(shù),還能夠?qū)Σ杉臄?shù)據(jù)進(jìn)行整理與顯示,并能實(shí)時調(diào)整不同控制器的控制參數(shù),最終實(shí)現(xiàn)控制器運(yùn)行程序的遠(yuǎn)程下載。

  為實(shí)現(xiàn)CAN總線的數(shù)據(jù)傳送,需要定義參數(shù)包、程序包、命令包三種傳送數(shù)據(jù)包,并分別由0x11、0x22、0x33標(biāo)示出來。根據(jù)數(shù)據(jù)傳送方向的不同,數(shù)據(jù)包的格式略有差異??紤]到CAN總線上的節(jié)點(diǎn)較多,為避免數(shù)據(jù)傳送過程中出現(xiàn)混亂的情況,定義數(shù)據(jù)發(fā)送的基本數(shù)據(jù)包大小為8個字節(jié),即CAN總線一次傳送的最大字節(jié)數(shù)為8?! ?/p>

  2.1 下傳數(shù)據(jù)協(xié)議

  下傳數(shù)據(jù)包括程序、參數(shù)、命令三種數(shù)據(jù)類型。

  2.1.1 參數(shù)數(shù)據(jù)包格式

  上位機(jī)需要下傳的數(shù)據(jù)包括控制參數(shù)C1、C2、C3及給定間隙與電流,根據(jù)修改需要,每個參數(shù)都是單獨(dú)下傳的。下傳數(shù)據(jù)包的大小與CAN的最大有效傳送字節(jié)數(shù)一致,為8個字節(jié)。第一個字節(jié)指出數(shù)據(jù)包的類型(用Oxll標(biāo)示),第二個字節(jié)指出參數(shù)類型(用0xx7標(biāo)示),第三字節(jié)至第八字節(jié)指出傳送的有效數(shù)據(jù),對應(yīng)上面給定參數(shù)的參數(shù)標(biāo)示依次為0x17、0x27、0x37、0x47、0x57。圖2所示為數(shù)據(jù)包的一般格式。

  2.1.2 程序數(shù)據(jù)包格式

  FLASH寫入文件較大,一般有幾十K字節(jié)??刂葡到y(tǒng)采用的FLASH芯片AT29C010以128字節(jié)為基本操作單位。為了適應(yīng)芯片,可將文件分成128字節(jié)的數(shù)據(jù)段,并為每個數(shù)據(jù)段標(biāo)定次序。發(fā)送時,標(biāo)出數(shù)據(jù)段號及該片數(shù)據(jù)所處段中的位置即可??刂破鹘邮盏?28字節(jié)后,做一次寫入FLASH操作,數(shù)據(jù)包格式及說明見圖3。  

  2.1.3 命令數(shù)據(jù)包格式

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

  2.2 上傳數(shù)據(jù)協(xié)議

  上傳數(shù)據(jù)包的大小也為8個字節(jié),數(shù)據(jù)包類型分為參數(shù)反饋、命令反饋兩種,參數(shù)反饋用于上傳DSP的實(shí)際運(yùn)行控制參數(shù)及間隙、電流等狀態(tài)信息,命令反饋用于對PC機(jī)使能、寫入、參數(shù)恢復(fù)等命令的應(yīng)答。

  上傳數(shù)據(jù)依次為控制參數(shù)C1、C2、C3、CURRENTl、CURRENT2、CLEARANCE。數(shù)據(jù)類型標(biāo)示依次為0x17、0x27、0x37、0x47、0x57、0x67。由于上位機(jī)要同時接收多個控制器上傳的數(shù)據(jù),所以為了正確區(qū)分這些參數(shù),需要給上傳的數(shù)據(jù)包加入端口標(biāo)示,指出數(shù)據(jù)包來自哪個總線端口。上傳的數(shù)據(jù)包在前面格式的基礎(chǔ)上還要加入對應(yīng)于各控制器的CAN總線端口號。

  上傳命令是對總線通信出現(xiàn)異常情況的應(yīng)答,因?yàn)榭刂破麟S時將控制參數(shù)上傳,且參數(shù)字節(jié)數(shù)較少,出錯的可能性較低,不需配備應(yīng)答命令;而上傳程序的數(shù)據(jù)量較大,容易出現(xiàn)錯誤,必須配備應(yīng)答命令,指示程序?qū)懭脒^程。

  因?yàn)榭刂破魇侵芷谛缘貟呙鑃JAl000的接收緩沖區(qū),當(dāng)總線連接的節(jié)點(diǎn)較多時,數(shù)據(jù)量較大,難免會發(fā)生數(shù)據(jù)漏收的情況;而且控制器對外部中斷的響應(yīng)也會影響掃描周期,使接收緩沖區(qū)中未來得及讀取的數(shù)據(jù)被新數(shù)據(jù)沖掉。當(dāng)控制器發(fā)現(xiàn)應(yīng)接收的數(shù)據(jù)位置與已接收到的數(shù)據(jù)位置不符時,控制器發(fā)差錯命令給上位機(jī),指出應(yīng)接收的數(shù)據(jù)段號及位置,上位機(jī)接收到這一信息后重發(fā)相關(guān)數(shù)據(jù)。發(fā)送數(shù)據(jù)包包含CAN端口字節(jié)、命令標(biāo)示、段號、位置號等信息。通信過程中也可能出現(xiàn)發(fā)送數(shù)據(jù)與接收數(shù)據(jù)不符的情況,因此有必要引入數(shù)據(jù)校驗(yàn)算法??刂破鲗⒔邮盏降?28字節(jié)校驗(yàn)后得到的校驗(yàn)值與接收到的校驗(yàn)值作比較,一致后才將數(shù)據(jù)寫入FLASH;否則反饋回校驗(yàn)值錯誤信息,上位機(jī)重發(fā)該段數(shù)據(jù)。發(fā)送數(shù)據(jù)包包含CAN端口字節(jié)、命令標(biāo)示、段號、重發(fā)標(biāo)示(0x88)等信息。  

  3 通信程序設(shè)計流程

  3.1 控制器通信流程

  控制器的通信部分主要在主程序循環(huán)中完成。每次主程序循環(huán)中,控制器都向調(diào)試系統(tǒng)發(fā)送當(dāng)前C1、C2、C3、CURRENTl、CURRENT2、CLEARANCE等信息;一旦接收到調(diào)試系統(tǒng)下傳的信息,控制器便分析下傳信息的性質(zhì),對它們分別進(jìn)行判別與應(yīng)答。

  圖5是控制器的通信流程。控制器上電后,程序從FLASH的參數(shù)存儲區(qū)(最后256個字節(jié))讀取控制參數(shù)值,存人控制參數(shù)緩存中,作為參數(shù)初值。同時,控制器通過CAN總線接收上位機(jī)下傳的控制參數(shù),校驗(yàn)后存入控制參數(shù)緩存中。一旦接收到參數(shù)使能命令,則將緩存中的數(shù)據(jù)復(fù)制給C1、C2、C3等變量,作為實(shí)際的工作參數(shù);調(diào)試完畢后,

  在接收到參數(shù)寫入命令后,將參數(shù)寫入FLASH的參數(shù)存儲區(qū),作為永久工作參數(shù)。接收到程序數(shù)據(jù)包后,控制器首先檢驗(yàn)數(shù)據(jù)的次序,保證接收到的數(shù)據(jù)按次序排列;接著代入校驗(yàn)算法,將計算得到的校驗(yàn)值和接收的校驗(yàn)值作比較,不一致則給上位機(jī)反饋校驗(yàn)值錯誤命令,要求上位機(jī)重發(fā)該段程序,否則將數(shù)據(jù)寫入FLASH。圖中監(jiān)控信息的發(fā)送周期可根據(jù)情況確定。

  3.2 上位機(jī)通信流程

  上位機(jī)是調(diào)試員與控制系統(tǒng)的接口,它顯示控制器的上傳參數(shù),將調(diào)試員需要修改的控制參數(shù)下傳。為完成上述功能,調(diào)試界面應(yīng)包括參數(shù)顯示窗口、參數(shù)輸入窗口、命令工具條等,必要的話,還應(yīng)將狀態(tài)參數(shù)以曲線的形式顯示出來。調(diào)試人員根據(jù)狀態(tài)曲線調(diào)整控制參數(shù)。

  圖6是上位機(jī)的調(diào)試流程,單控制器的總線最短發(fā)送周期為5ms,隨著總線通信量的增加,監(jiān)控界面的掃描周期也應(yīng)相應(yīng)延長。參數(shù)顯示界面顯示的是上位機(jī)最新收到的參數(shù),其值總是實(shí)時刷新的。發(fā)送修改參數(shù)時,每次只發(fā)送一個參數(shù),上位機(jī)需將參數(shù)變成不大于4字節(jié)的字符型數(shù)組才能發(fā)送??刂破髟谑盏絽?shù)數(shù)據(jù)包后,也要將數(shù)據(jù)字節(jié)逆序重組,才能得到需要的修改參數(shù)。上位機(jī)在下載程序的過程中,若在對某段程序多次重復(fù)發(fā)送后依然收到錯誤反饋,則顯示錯誤狀態(tài),停止數(shù)據(jù)發(fā)送,由調(diào)試人員檢查線路,重新給出下載命令。

  多個控制器控制參數(shù)的調(diào)試是一個相當(dāng)繁雜的過程,本文給出了基于CAN總線的調(diào)試系統(tǒng),其設(shè)計目的就是簡化調(diào)試過程,縮短調(diào)試時間。應(yīng)用這套系統(tǒng),調(diào)試人員可以同時動態(tài)地調(diào)整多個控制器的控制參數(shù),通過反饋的控制器狀態(tài)判斷參數(shù)優(yōu)劣,達(dá)到快速尋找最優(yōu)控制參數(shù)的目的,是調(diào)試過程中的一條有效輔助手段。



 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
精品99一区二区三区| 亚洲九九精品| 欧美日本亚洲| 免费成人毛片| 久色婷婷小香蕉久久| 久久亚洲电影| 国产精品v亚洲精品v日韩精品| 最新日韩在线视频| 精品动漫3d一区二区三区免费| 国产午夜精品全部视频在线播放| 国产精品日韩精品欧美精品| 欧美性色综合| 欧美新色视频| 国产精品久久看| 国产免费成人| 国产一区二区久久久| 国内不卡一区二区三区| 在线成人激情| 亚洲人成网站色ww在线| 亚洲六月丁香色婷婷综合久久| 亚洲麻豆av| 亚洲视频精品| 欧美永久精品| 亚洲福利视频一区| 亚洲美洲欧洲综合国产一区| 99国产精品视频免费观看| 一级成人国产| 欧美一级午夜免费电影| 久久国产精品免费一区| 久久婷婷激情| 欧美激情亚洲另类| 欧美在线亚洲| 亚洲人成7777| 亚洲国产精品激情在线观看| 久久精品国内一区二区三区| 亚洲欧美激情一区二区| 亚洲欧美一区二区视频| 欧美一区免费视频| 亚洲激情在线| 一本大道久久a久久精品综合| 亚洲美女黄色| 亚洲尤物视频在线| 久久精品国产96久久久香蕉| 欧美中文字幕精品| 美日韩丰满少妇在线观看| 欧美精品国产一区| 国产精品欧美一区二区三区奶水| 国产一区导航| 亚洲激情专区| 亚洲免费人成在线视频观看| 亚洲二区在线观看| 亚洲一区二区在线免费观看视频| 欧美专区一区二区三区| 欧美成人有码| 国产精品国产三级国产| 国内成人精品2018免费看 | 国产伪娘ts一区| 亚洲大胆人体视频| 亚洲一区尤物| 亚洲精品孕妇| 欧美一级大片在线免费观看| 男人天堂欧美日韩| 国产精品网站一区| 亚洲激情在线| 久久激情综合网| 亚洲综合日韩在线| 欧美va天堂va视频va在线| 国产精品一区在线观看你懂的| 亚洲国产日韩美| 欧美亚洲免费| 亚洲自拍电影| 欧美精品久久99| 狠狠久久亚洲欧美| 宅男精品视频| 亚洲精品孕妇| 久久夜色精品国产欧美乱| 国产精品美女久久久| 亚洲欧洲另类国产综合| 欧美在线播放一区| 亚洲欧美日韩一区| 欧美理论在线| 在线免费观看日韩欧美| 午夜久久影院| 亚洲欧美精品在线观看| 欧美日韩国产精品专区| 在线观看中文字幕亚洲| 久久成人综合网| 欧美一区二区黄| 欧美三级视频在线观看| 亚洲国产成人精品视频| 久久国产日韩欧美| 欧美一级片久久久久久久| 欧美四级伦理在线| 亚洲精品免费看| 亚洲激情精品| 久久一区欧美| 国产一区二区三区在线观看视频| 欧美日韩在线播放三区四区| 性欧美18~19sex高清播放| 欧美激情一级片一区二区| 在线观看日韩www视频免费| 欧美一级成年大片在线观看| 亚洲欧美一区二区在线观看| 欧美日韩一二区| 亚洲精品一区二区在线| 亚洲全部视频| 欧美高清视频在线播放| 黄色av成人| 久久xxxx| 久久夜色精品国产欧美乱极品| 国产日韩一区二区三区| 午夜免费电影一区在线观看| 午夜亚洲福利在线老司机| 欧美性做爰毛片| 一区二区三区鲁丝不卡| 亚洲午夜av在线| 国产精品久久久久高潮| 亚洲少妇自拍| 亚洲欧美日韩国产成人精品影院| 欧美日韩综合不卡| 一区二区三区高清| 亚洲五月六月| 国产精品自拍在线| 欧美亚洲日本国产| 国产精品日本一区二区| 亚洲激情视频在线播放| 亚洲级视频在线观看免费1级| 噜噜噜久久亚洲精品国产品小说| 狠狠色噜噜狠狠色综合久| 久久国产精品黑丝| 久久这里有精品视频| 国产精品久久久久秋霞鲁丝| 99成人在线| 亚洲欧美日韩一区二区在线 | 女女同性精品视频| 亚洲黄网站在线观看| 一本一本久久a久久精品牛牛影视| 欧美日韩国产不卡| 日韩一级在线| 性欧美激情精品| 国产一区二区三区网站| 亚洲国产精品电影在线观看| 欧美黄色网络| 亚洲视频欧美视频| 香蕉久久国产| 黄色成人av网站| 日韩视频在线观看免费| 欧美午夜在线观看| 久久av红桃一区二区小说| 欧美成人69av| 亚洲视频高清| 久久色在线播放| 亚洲高清三级视频| 免费不卡亚洲欧美| 亚洲精品视频免费| 亚洲欧美一级二级三级| 国产欧美91| 91久久亚洲| 欧美午夜精品久久久久久久 | 欧美在线免费观看| 欧美国产亚洲视频| 亚洲午夜在线| 欧美xxxx在线观看| 亚洲系列中文字幕| 欧美波霸影院| 亚洲性视频网站| 美国十次了思思久久精品导航| 一本色道久久综合狠狠躁篇的优点 | 欧美三级视频在线观看| 性色av香蕉一区二区| 欧美激情a∨在线视频播放| 亚洲欧美日韩在线一区| 欧美激情视频给我| 亚洲欧美www| 欧美久久一级| 欧美在线日韩| 国产精品v日韩精品| 亚洲高清视频中文字幕| 欧美午夜剧场| 亚洲国产精品久久久久秋霞蜜臀| 国产精品a级| 最新成人在线| 国产精品羞羞答答| 一区二区三区不卡视频在线观看| 国产亚洲一区在线| 亚洲视频电影图片偷拍一区| 韩国av一区二区| 亚洲免费影视第一页| 在线欧美亚洲| 久久国产免费| 亚洲视频免费| 欧美精品导航| 久久精品国产99国产精品| 国产精品成av人在线视午夜片| 亚洲国产一区二区三区青草影视| 国产精品乱码一区二三区小蝌蚪| 亚洲精品久久久蜜桃| 国产深夜精品| 亚洲欧洲99久久| 亚洲美女性视频|