<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于DSP和CAN的電機同步控制系統(tǒng)與通信

          基于DSP和CAN的電機同步控制系統(tǒng)與通信

          作者: 時間:2009-11-02 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/163507.htm

          2.3軟件實現(xiàn)
          本系統(tǒng)程序主要分為三部分:PC機人機交互程序、DS89C420作為與PC機之間介的程序、作為網(wǎng)絡(luò)節(jié)點和控制功能的程序。PC機人機交互軟件它以可視化界面顯示網(wǎng)絡(luò)上各節(jié)點ID、控制命令、發(fā)送優(yōu)先級等。DS89C420的作用是將從CAN網(wǎng)絡(luò)上采集的數(shù)據(jù)傳送到PC機,并把PC機傳過來得數(shù)據(jù)發(fā)送到CAN網(wǎng)絡(luò)上,它實現(xiàn)的功能類似于協(xié)議轉(zhuǎn)換。完成的功能包括:根據(jù)PC機發(fā)送過來的指令控制正轉(zhuǎn)、反轉(zhuǎn)和停止,以及將的相電流、運行速度等信息分別通過LF2407A的片上A/D轉(zhuǎn)換器、正交脈沖編碼電路等得到;對電機的控制通過LF2407A的事件管理器模塊EVA、EVB輸出具有適當占空比的PWM脈沖給大功率IGBT管來實現(xiàn)。
          2.3.1主主
          本設(shè)計為CAN總線的多主多從網(wǎng)絡(luò)系統(tǒng),主節(jié)點可以是工程師站,也可以是副工程師站或其它操作站,由于控制的需要,主節(jié)點之間需要傳送一些數(shù)據(jù)。主―主通信的軟件設(shè)計關(guān)鍵是掌握好CAN控制器的初始化設(shè)置例如ID的設(shè)置,數(shù)據(jù)的發(fā)送和接收。由于網(wǎng)卡具有接口函數(shù)庫及網(wǎng)卡的驅(qū)動程序,可以方便地進行主―主通信。通信軟件已測試成功,通信界面采用VC編寫,如圖4所示。


          2.3.2主從通信
          下面的程序是平臺和上位機的通信,主節(jié)點CAN網(wǎng)卡中的CAN模塊初始化和發(fā)送子程序。調(diào)試過程中需要注意:通信節(jié)點的波特率要求一致;主從通信時要求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;//設(shè)置CCR,改變配置請求;
          While ( (CANGSR 0x0010) == 0 ){} //設(shè)置CCE,更改配置啟用;
          CANBCR2 = 0x027; //設(shè)置波特率50Kbps
          CANBCR1 = 0x005E;
          CANMCR = CANMCR 0xEFFF;//清除CCR位;
          While ( (CANGSR 0x0010) == 1 ){} //清除CCE,禁止對配置寄存器進行操作;
          CANMailBoxInit(); //初始化郵箱
          asm(CLRCINTM );/* 開中斷 */
          CANTCR =0x0080;//發(fā)送5號郵箱內(nèi)容;
          While ( (CANTCR 0x8000) == 0 ){}//發(fā)送成功 }
          3 措施及實現(xiàn)
          在對多電機的控制中,解決電機的實時性問題十分重要。CAN總線具有點對點、一點對多點及全局廣播傳送數(shù)據(jù)的功能。雖然CAN總線的信息存取利用了廣播式的存取工作方式,信息可以在任何時候由任何節(jié)點發(fā)送到空閑的總線上,然后根據(jù)信息標文符決定是否讀取信息包中的數(shù)據(jù)以判斷是否使用這一信息,但是由于各電機的實際情況不同,即使命令同時傳送到節(jié)點,實際命令的實施時間也不能得到保證。筆者認為僅依靠CAN總線的廣播數(shù)據(jù)功能實現(xiàn)控制會產(chǎn)生誤差,可以通過軟件編程實現(xiàn)誤差較小的同步控制。采用兩次命令的方式,首先由主站給需要同步的從站用廣播的方式發(fā)送準備命令和同步速度,主站確認收到準備好命令之后發(fā)送第二次具體的命令即啟動同步命令。這樣可以使誤差相對減少。
          4 結(jié)束語
          本文研究了CAN總線的多電機同步控制網(wǎng)絡(luò)的組成和通信實現(xiàn),設(shè)計有效的將DSP的高速處理能力和CAN(Controller Area Network)總線的高性能、高可靠性結(jié)合起來,具有很高的使用價值和廣闊的應(yīng)用前景。以上代碼全部調(diào)試通過,實驗證明適用于多臺電機串行通信的實際應(yīng)用以及可以根據(jù)實際的系統(tǒng)進行擴展和移植。
          本文作者創(chuàng)新點:電機同步控制措施的提出。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();