關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基子CAN_BUS的控制器調(diào)試系統(tǒng)的設(shè)計(jì)

基子CAN_BUS的控制器調(diào)試系統(tǒng)的設(shè)計(jì)

作者: 時(shí)間:2011-07-20 來(lái)源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://butianyuan.cn/article/161789.htm

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

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

上傳數(shù)據(jù)包的大小也為8個(gè)字節(jié),數(shù)據(jù)包類型分為參數(shù)反饋、命令反饋兩種,參數(shù)反饋用于上傳DSP的實(shí)際運(yùn)行控制參數(shù)及間隙、電流等狀態(tài)信息,命令反饋用于對(duì)PC機(jī)使能、寫(xiě)入、參數(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í)接收多個(gè)上傳的數(shù)據(jù),所以為了正確區(qū)分這些參數(shù),需要給上傳的數(shù)據(jù)包加入端口標(biāo)示,指出數(shù)據(jù)包來(lái)自哪個(gè)總線端口。上傳的數(shù)據(jù)包在前面格式的基礎(chǔ)上還要加入對(duì)應(yīng)于各的CAN總線端口號(hào)。

上傳命令是對(duì)總線通信出現(xiàn)異常情況的應(yīng)答,因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/控制器">控制器隨時(shí)將控制參數(shù)上傳,且參數(shù)字節(jié)數(shù)較少,出錯(cuò)的可能性較低,不需配備應(yīng)答命令;而上傳程序的數(shù)據(jù)量較大,容易出現(xiàn)錯(cuò)誤,必須配備應(yīng)答命令,指示程序?qū)懭脒^(guò)程。

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

圖5

3 通信程序流程

3.1 控制器通信流程

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

圖5是控制器的通信流程。控制器上電后,程序從FLASH的參數(shù)存儲(chǔ)區(qū)(最后256個(gè)字節(jié))讀取控制參數(shù)值,存人控制參數(shù)緩存中,作為參數(shù)初值。同時(shí),控制器通過(guò)CAN總線接收上位機(jī)下傳的控制參數(shù),校驗(yàn)后存入控制參數(shù)緩存中。一旦接收到參數(shù)使能命令,則將緩存中的數(shù)據(jù)復(fù)制給C1、C2、C3等變量,作為實(shí)際的工作參數(shù);調(diào)試完畢后,在接收到參數(shù)寫(xiě)入命令后,將參數(shù)寫(xiě)入FLASH的參數(shù)存儲(chǔ)區(qū),作為永久工作參數(shù)。接收到程序數(shù)據(jù)包后,控制器首先檢驗(yàn)數(shù)據(jù)的次序,保證接收到的數(shù)據(jù)按次序排列;接著代入校驗(yàn)算法,將計(jì)算得到的校驗(yàn)值和接收的校驗(yàn)值作比較,不一致則給上位機(jī)反饋校驗(yàn)值錯(cuò)誤命令,要求上位機(jī)重發(fā)該段程序,否則將數(shù)據(jù)寫(xiě)入FLASH。圖中監(jiān)控信息的發(fā)送周期可根據(jù)情況確定。

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

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

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

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


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉