一種基于can的運動控制系統(tǒng)建立及其仿真建模方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及CAN通訊系統(tǒng),尤其涉及一種基于CAN的運動控制系統(tǒng)建立及其仿真建 模方法。
【背景技術(shù)】
[0002] CAN(Controller Area Network),即控制器局域網(wǎng)。CAN總線傳輸方式能夠有效解 決傳統(tǒng)數(shù)據(jù)交換方法(即點對點的傳輸方式)無法滿足現(xiàn)代汽車中所使用的大量電子控制 系統(tǒng)和通訊系統(tǒng)的通信要求的問題。
[0003] CANopen是基于CAN總線的應(yīng)用層的網(wǎng)絡(luò)協(xié)議,是由CAL協(xié)議擴(kuò)展而來的。自從發(fā)布 以來就得到廣泛的認(rèn)可。這個協(xié)議的兩種傳輸機(jī)制為CAN傳輸8字節(jié)以上數(shù)據(jù)提供了一套解 決方案。通過CANopen協(xié)議及其設(shè)備子協(xié)議,例如數(shù)字和模擬輸入輸出模塊子協(xié)議,驅(qū)動子 協(xié)議,操作設(shè)備子協(xié)議,控制器,編碼器子協(xié)議等。這使得多家制造商的產(chǎn)品能夠用于任何 CANopen網(wǎng)絡(luò),解決一致性、互用性及互換性問題。最初CANopen主要是用于嵌入式工業(yè)控制 系統(tǒng)中,因為它的協(xié)議精煉、透明、便于理解,又具有較高的實時性和可靠性、數(shù)據(jù)傳輸?shù)乃?率高,組網(wǎng)成本低等優(yōu)點[5],近年來,被應(yīng)用到各個行業(yè)。CAN總線在我國的應(yīng)用已經(jīng)比較 廣泛,但還停留在較低層次的應(yīng)用上,并且都是自己定義的一些簡單的應(yīng)用層的協(xié)議,沒有 和國際標(biāo)準(zhǔn)的CAN總線的高層協(xié)議兼容。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是提供一種基于CAN總線的運動控制系統(tǒng)及基于EDF 動態(tài)優(yōu)先級調(diào)度算法建立CAN總線仿真模型的方法,解決目前運動系統(tǒng)中CAN總線的通信能 力差,吞吐能力低,實時性能差的問題。
[0005] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下,一種基于CAN總線的運動控制系統(tǒng),其 特征在于:包括控制單元,整流單元,逆變單元、執(zhí)行電機(jī)、工控機(jī)、CAN卡、物理層模塊、數(shù)據(jù) 鏈路層模塊、應(yīng)用層模塊及硬件接口模塊;所述物理層模塊包括CAN物理通信介質(zhì)及CAN收 發(fā)器,所述CAN物理通信介質(zhì)用于完成信號傳輸,所述CAN收發(fā)器提供對總線的差動發(fā)送和 接收功能;所述數(shù)據(jù)鏈路層模塊包括CAN核心控制器,所述CAN核心控制器包括發(fā)送模塊、接 收模塊、仲裁模塊及驗收濾波模塊,所述發(fā)送模塊用于將信息幀發(fā)往物理層,所述接收模塊 用于從物理層獲取信息幀,所述仲裁模塊用于對發(fā)送出的與接收到的信息幀進(jìn)行仲裁,所 述驗收濾波模塊從數(shù)據(jù)鏈路層接收幀信息,通過驗收屏蔽碼和驗收碼過濾本節(jié)點需要的數(shù) 據(jù);所述應(yīng)用層模塊包括模擬中心計算機(jī),用于模擬節(jié)點設(shè)備仿真模型,應(yīng)用層協(xié)議采用 CANopen協(xié)議;所述硬件接口模塊用于硬件與物理層之間的通信。
[0006] 進(jìn)一步,所述控制單元采用⑶320-2DP控制單元;所述整流單元采用智能型電源模 塊,所述智能型電源模塊將三相交流電整流成直流電,并將直流電回饋到電網(wǎng),所述智能型 電源模塊和所述控制單元通過Dr ive-CLiQ保持通信;所述逆變單元和控制單元之間通過 Drive-CLiQ接口,進(jìn)行快速數(shù)據(jù)交換;所述逆變單元的編碼器通過Drive-CLiQ電纜連接,將 編碼器的反饋信號反饋給控制單元;所述工控機(jī)包括主機(jī)、顯示器、鼠標(biāo)和鍵盤;所述CAN卡 采用XJA1000CAN控制器作為主控芯片。
[0007] 進(jìn)一步,所述發(fā)送模塊包括組幀模塊、信號發(fā)送模塊和發(fā)送控制器,發(fā)送控制器通 過總線與組幀模塊和信號發(fā)送模塊連接;當(dāng)接收到相應(yīng)信號時,組幀模塊將完整的信息幀 傳輸給信號發(fā)送模塊,信號發(fā)送模塊將當(dāng)前數(shù)據(jù)位發(fā)送給CAN總線。
[0008] 進(jìn)一步,所述應(yīng)用層模塊還包括模擬執(zhí)行設(shè)備。
[0009] 進(jìn)一步,所述應(yīng)用層模塊采用C語言作為開發(fā)工具,通過在Bor land C++2.0編譯環(huán) 境下編譯構(gòu)建。
[0010] 一種基于EDF動態(tài)優(yōu)先級調(diào)度算法建立CAN總線仿真模型的方法,其特征在于:首 先在Stateflow環(huán)境下使用狀態(tài)、迀移和條件建立涉及通信活動部分的節(jié)點模型;所述節(jié)點 模型包括節(jié)點發(fā)送部分、數(shù)據(jù)緩沖部分和數(shù)據(jù)產(chǎn)生部分;將時間基準(zhǔn)、輸入輸出變量、 Statef low環(huán)境下的16個節(jié)點子模塊及總線仲裁子模塊組成仿真模型母模塊。
[0011] 進(jìn)一步,所述總線仲裁子模塊在通信過程中,具有空閑狀態(tài)、忙狀態(tài)和幀間隔狀態(tài) 三種狀態(tài);當(dāng)總線沒有信號傳輸時,總線處于空閑狀態(tài)狀態(tài);當(dāng)有節(jié)點發(fā)送的信號時,經(jīng)過 仲裁函數(shù)的仲裁,仲裁結(jié)束后,總線開始傳輸節(jié)點的信息,總線處于忙狀態(tài);當(dāng)節(jié)點信息傳 送完成后,總線再經(jīng)過一個幀間隔狀態(tài)之后在回到空閑狀態(tài);在仿真過程中,總線的仲裁是 由仲裁函數(shù)實現(xiàn),且各個節(jié)點的優(yōu)先級為節(jié)點1優(yōu)先級高,節(jié)點16最低;所述仲裁函數(shù)通過 判斷節(jié)點號當(dāng)前狀態(tài)是否是1而決定是否仲裁成功,若為1則仲裁成功。
[0012] 進(jìn)一步,所述節(jié)點發(fā)送部分包括無任務(wù)狀態(tài)、等待仲裁狀態(tài)、傳輸狀態(tài)、幀間隔狀 態(tài)和狀態(tài)迀移線;其狀態(tài)轉(zhuǎn)換的流程是節(jié)點首先處于無任務(wù)狀態(tài),等待數(shù)據(jù)進(jìn)入緩沖區(qū),退 出這個狀態(tài)進(jìn)入等待仲裁狀態(tài),這時候開始監(jiān)測總線是否是空閑狀態(tài),如果是則參加總線 的競爭,如果在總線競爭中獲勝,則將采集到的數(shù)據(jù)發(fā)送出去,發(fā)送完成則重新回到無任務(wù) 狀態(tài);所述幀間隔狀態(tài)和部分所述狀態(tài)迀移線完成系統(tǒng)各個任務(wù)優(yōu)先級的分配工作;所述 節(jié)點發(fā)送部分還包括重發(fā)機(jī)制,通過判斷截止期為小于〇的數(shù)來確定總線上的數(shù)據(jù)是否重 發(fā);
[0013] 所述數(shù)據(jù)緩沖部分包括緩沖器空和非空兩個狀態(tài),容量設(shè)置為1,當(dāng)有新數(shù)據(jù)進(jìn)入 緩沖器時舊的數(shù)據(jù)丟失;信息量設(shè)為固定值lOObits,采用bl記錄節(jié)點每次運行完成后向總 線上成功發(fā)送的總幀數(shù);
[0014] 所述數(shù)據(jù)產(chǎn)生部分包括數(shù)據(jù)的產(chǎn)生和組幀兩個狀態(tài),其中數(shù)據(jù)來自所述仿真模型 母模塊的隨機(jī)函數(shù)部分,采用Pi來記錄節(jié)點每次運行產(chǎn)生的幀的個數(shù)。
[0015] 進(jìn)一步,所述節(jié)點子模塊、總線仲裁子模塊都為并行結(jié)構(gòu)。
[0016] 本發(fā)明的有益效果是:本發(fā)明提供硬件接口模塊,將待測節(jié)點的物理設(shè)備直接接 入本發(fā)明,即可實現(xiàn)在無需完整物理系統(tǒng)的環(huán)境下對接入節(jié)點設(shè)備的性能測試;應(yīng)用層模 塊還包括模擬執(zhí)行設(shè)備,模擬執(zhí)行設(shè)備用來代替其他未生產(chǎn)出硬件設(shè)備的節(jié)點,構(gòu)成完整 的CAN通信系統(tǒng),此時CAN通信系統(tǒng)為軟硬件聯(lián)合仿真系統(tǒng);本發(fā)明對CAN通信系統(tǒng)的設(shè)計和 分析提供了有用的工具,可以有效地降低總線節(jié)點的設(shè)計、開發(fā)和測試成本,縮短研發(fā)周 期。EDF動態(tài)優(yōu)先級調(diào)度算法更能改善總線的通信能力,提高總線的吞吐能力,進(jìn)而可以改 善總線系統(tǒng)的實時性能。
【附圖說明】
[0017] 圖1為本發(fā)明智能型電源模塊的結(jié)構(gòu)框圖;
[0018] 圖2為本發(fā)明SD0讀寫對象字典操作流程框圖;
[0019] 圖3是本發(fā)明roo報文的發(fā)送和接收流程框圖;
[0020] 圖4是本發(fā)明CAN總線仿真模型母模塊示意圖;
[0021 ]圖5為本發(fā)明仲裁判斷函數(shù)的結(jié)構(gòu)示意圖;
[0022]圖6為本發(fā)明節(jié)點模塊的結(jié)構(gòu)框圖;
[0023]圖7為發(fā)明采用EDF調(diào)度算法總線仿真模型示意圖;
[0024] 圖8為本發(fā)明采用固定優(yōu)先級算法的實驗仿真結(jié)果圖;
[0025] 圖9為本發(fā)明采用EDF調(diào)度算法的實驗仿真結(jié)果圖;
[0026]圖10為本發(fā)明采用固定優(yōu)先級算法與采用EDF調(diào)度算法的實驗仿真結(jié)果對比圖。
[0027] 圖中1,節(jié)點發(fā)送部分;2,數(shù)據(jù)緩沖部分;3,數(shù)據(jù)產(chǎn)生部分;4,空閑狀態(tài);5,忙狀態(tài); 6,幀間隔狀態(tài)。
【具體實施方式】
[0028] 以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實例只用于解釋本發(fā)明,并 非用于限定本發(fā)明的范圍。
[0029]本發(fā)明的實施例以Sinamics S120系統(tǒng)為例進(jìn)行說明。
[0030] -種基于CAN總線的運動控制系統(tǒng),其特征在于:包括控制單元,整流單元,逆變單 元、執(zhí)行電機(jī)、工控機(jī)、CAN卡、物理層模塊、數(shù)據(jù)鏈路層模塊、應(yīng)用層模塊及硬件接口模塊; 所述物理層模塊包括CAN物理通信介質(zhì)及CAN收發(fā)器,所述CAN物理通信介質(zhì)用于完成信號 傳輸,所述CAN收發(fā)器提供對總線的差動發(fā)送和接收功能;所述數(shù)據(jù)鏈路層模塊包括CAN核 心控制器,所述CAN核心控制器包括發(fā)送模塊、接收模塊、仲裁模塊及驗收濾波模塊,所述發(fā) 送模塊用于將信息幀發(fā)往物理層,所述接收模塊用于從物理層獲取信息幀,所述仲裁模塊 用于對發(fā)送出的與接收到的信息幀進(jìn)行仲裁,所述驗收濾波模塊從數(shù)據(jù)鏈路層接收幀信 息,通過驗收屏蔽碼和驗收碼過濾本節(jié)點需要的數(shù)據(jù);所述應(yīng)用層模塊包括模擬中心計算 機(jī),用于模擬節(jié)點設(shè)備