基于DSP和CAN的電機同步控制系統與通信

2.3軟件實(shí)現
本系統程序主要分為三部分:PC機人機交互程序、DS89C420作為CAN與PC機之間通信中介的程序、DSP作為CAN網(wǎng)絡(luò )節點(diǎn)和電機控制功能的程序。PC機人機交互軟件它以可視化界面顯示CAN網(wǎng)絡(luò )上各節點(diǎn)ID、控制命令、發(fā)送優(yōu)先級等。DS89C420的作用是將從CAN網(wǎng)絡(luò )上采集的數據傳送到PC機,并把PC機傳過(guò)來(lái)得數據發(fā)送到CAN網(wǎng)絡(luò )上,它實(shí)現的功能類(lèi)似于協(xié)議轉換。DSP完成的功能包括:根據PC機發(fā)送過(guò)來(lái)的指令控制電機正轉、反轉和停止,以及將電機的相電流、運行速度等信息分別通過(guò)LF2407A的片上A/D轉換器、正交脈沖編碼電路等得到;對電機的控制通過(guò)LF2407A的事件管理器模塊EVA、EVB輸出具有適當占空比的PWM脈沖給大功率IGBT管來(lái)實(shí)現。
2.3.1主主通信
本設計為基于CAN總線(xiàn)的多主多從通信網(wǎng)絡(luò )系統,主節點(diǎn)可以是工程師站,也可以是副工程師站或其它操作站,由于控制的需要,主節點(diǎn)之間需要傳送一些數據。主―主通信的軟件設計關(guān)鍵是掌握好CAN控制器的初始化設置例如ID的設置,數據的發(fā)送和接收。由于網(wǎng)卡具有接口函數庫及網(wǎng)卡的驅動(dòng)程序,可以方便地進(jìn)行主―主通信。通信軟件已測試成功,通信界面采用VC編寫(xiě),如圖4所示。
2.3.2主從通信
下面的程序是DSP平臺和上位機的通信,主節點(diǎn)CAN網(wǎng)卡中的CAN模塊初始化和發(fā)送子程序。調試過(guò)程中需要注意:通信節點(diǎn)的波特率要求一致;主從通信時(shí)要求CANMCR = 0x0480,使通信處于正常發(fā)送狀態(tài);CANH與CANL之間連接終端負載電阻抗干擾。
void CANInit()
{ asm(SETCINTM ); /* 禁止中斷 */
IMR = IMR | 0x011; //使能CAN中斷
CANIMR = 0; //屏蔽所有中斷
CANIFR = 0xFFFF; //清除已掛號中斷
CANMCR = 0x0480; //CAN處于正常工作狀態(tài)
CANMCR = CANMCR | 0x1000;//設置CCR,改變配置請求;
While ( (CANGSR 0x0010) == 0 ){} //設置CCE,更改配置啟用;
CANBCR2 = 0x027; //設置波特率50Kbps
CANBCR1 = 0x005E;
CANMCR = CANMCR 0xEFFF;//清除CCR位;
While ( (CANGSR 0x0010) == 1 ){} //清除CCE,禁止對配置寄存器進(jìn)行操作;
CANMailBoxInit(); //初始化郵箱
asm(CLRCINTM );/* 開(kāi)中斷 */
CANTCR =0x0080;//發(fā)送5號郵箱內容;
While ( (CANTCR 0x8000) == 0 ){}//發(fā)送成功 }
3 同步措施及實(shí)現
在對多電機的同步控制中,解決電機的實(shí)時(shí)性問(wèn)題十分重要。CAN總線(xiàn)具有點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)及全局廣播傳送數據的功能。雖然CAN總線(xiàn)的信息存取利用了廣播式的存取工作方式,信息可以在任何時(shí)候由任何節點(diǎn)發(fā)送到空閑的總線(xiàn)上,然后根據信息標文符決定是否讀取信息包中的數據以判斷是否使用這一信息,但是由于各電機的實(shí)際情況不同,即使命令同時(shí)傳送到節點(diǎn),實(shí)際命令的實(shí)施時(shí)間也不能得到保證。筆者認為僅依靠CAN總線(xiàn)的廣播數據功能實(shí)現同步控制會(huì )產(chǎn)生誤差,可以通過(guò)軟件編程實(shí)現誤差較小的同步控制。采用兩次命令的方式,首先由主站給需要同步的從站用廣播的方式發(fā)送準備命令和同步速度,主站確認收到準備好命令之后發(fā)送第二次具體的命令即啟動(dòng)同步命令。這樣可以使誤差相對減少。
4 結束語(yǔ)
本文研究了基于CAN總線(xiàn)的多電機同步控制網(wǎng)絡(luò )的組成和通信實(shí)現,設計有效的將DSP的高速處理能力和CAN(Controller Area Network)總線(xiàn)的高性能、高可靠性結合起來(lái),具有很高的使用價(jià)值和廣闊的應用前景。以上代碼全部調試通過(guò),實(shí)驗證明適用于多臺電機串行通信的實(shí)際應用以及可以根據實(shí)際的系統進(jìn)行擴展和移植。
本文作者創(chuàng )新點(diǎn):電機同步控制措施的提出。
評論