新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于CAN總線的步進(jìn)電機(jī)多機(jī)控制系統(tǒng)的設(shè)計

基于CAN總線的步進(jìn)電機(jī)多機(jī)控制系統(tǒng)的設(shè)計

作者: 時間:2012-08-10 來源:網(wǎng)絡(luò) 收藏

  3.2 can節(jié)點(diǎn)模塊電路的設(shè)計

  can節(jié)點(diǎn)模塊的can接口部分與usb-can接口轉(zhuǎn)換模塊的can接口部分的電路設(shè)計是一樣的,如圖3所示。單片機(jī)把接收到的數(shù)據(jù)處理之后,從p1.0、p1.1表現(xiàn)出來,分別輸出電機(jī)轉(zhuǎn)動方向信號和頻率及個數(shù)一定的pwm脈沖信號提供給電機(jī)驅(qū)動器,實(shí)現(xiàn)電機(jī)的控制。為了提高抗干擾能力,加光電隔離器tlp5621,因為輸出的數(shù)字信號頻率不是很高,tlp5621的轉(zhuǎn)換時間已滿足要求。為了電機(jī)運(yùn)行的安全性,可在電機(jī)負(fù)載周圍合適的位置設(shè)置兩個機(jī)械急停按鈕,負(fù)載發(fā)生故障時按下按鈕,通知單片機(jī)停止pwm輸出,實(shí)現(xiàn)電機(jī)故障急停。

圖3 can節(jié)點(diǎn)模塊電路原理圖


4 軟件設(shè)計方案

  4.1 通信協(xié)議

  pc機(jī)客戶端應(yīng)用軟件發(fā)送相應(yīng)的控制命令后,利用計算機(jī)應(yīng)用層提供的ch372接口協(xié)議,usb端口會依次向下發(fā)送一個或多個雙字節(jié)的數(shù)據(jù)信息,兩個模塊中的單片機(jī)處理各自接收到的數(shù)據(jù),實(shí)現(xiàn)電機(jī)控制。每一個雙字節(jié)數(shù)據(jù)位的定義如下:

  (1)電機(jī)選擇:每一個不同的高字節(jié)數(shù)據(jù)和各個can節(jié)點(diǎn)的sja1000中的驗收代碼寄存器的值一一對應(yīng),可以使低字節(jié)的控制命令準(zhǔn)確的到達(dá)對應(yīng)的電機(jī)驅(qū)動器。

  (2) 電機(jī)啟停選擇:1為啟動,0為停止。

  (3) 電機(jī)正反轉(zhuǎn)選擇:1為正轉(zhuǎn),0為反轉(zhuǎn)。

  (4) 電機(jī)速度選擇:從00到11分別設(shè)有四個檔位的速度。通過改變脈沖周期改變速度。

  (5) 電機(jī)行程選擇:從0000到1111分別代表十六個不同行程的脈沖數(shù)。

  4.2 軟件流程

  pc機(jī)發(fā)送的每一個雙字節(jié)數(shù)據(jù)都是先發(fā)高字節(jié),后發(fā)低字節(jié),usb總線接口芯片ch372選用單向數(shù)據(jù)流通訊方式,接收完數(shù)據(jù)塊后,以外部中斷請求方式通知單片機(jī)接收數(shù)據(jù),單片機(jī)應(yīng)答后進(jìn)入中斷服務(wù)程序,把接收到第一個雙字節(jié)數(shù)據(jù)的高字節(jié)寫入正處在復(fù)位模式的can控制器sja-1000的數(shù)據(jù)發(fā)送緩沖區(qū)的標(biāo)識碼字節(jié)1的地址,低字節(jié)寫入can控制器sja1000的數(shù)據(jù)發(fā)送緩沖區(qū)的tx數(shù)據(jù)1的地址,can控制器sja1000由復(fù)位模式進(jìn)入工作模式,并發(fā)送數(shù)據(jù)到can總線,數(shù)據(jù)發(fā)送完畢并對方收到后,can控制器回到復(fù)位狀態(tài),把接收到的下一雙字節(jié)數(shù)據(jù)的高字節(jié)寫入正處在復(fù)位模式的can控制器sja1000的數(shù)據(jù)發(fā)送緩沖區(qū)的標(biāo)識碼字節(jié)1的地址,低字節(jié)寫入can控制器sja1000的數(shù)據(jù)發(fā)送緩沖區(qū)的tx數(shù)據(jù)1的地址,can控制器sja1000由復(fù)位模式重新進(jìn)入工作模式,并發(fā)送數(shù)據(jù)到can總線……,直到讀到的ch372緩沖區(qū)中所有數(shù)據(jù)發(fā)送完畢,單片機(jī)退出中斷,等待下一次中斷。圖4為轉(zhuǎn)換模塊程序流程。

  在can節(jié)點(diǎn)模塊數(shù)據(jù)接收端,單片機(jī)接收到saj1000緩沖區(qū)的數(shù)據(jù)后,通知對方收到數(shù)據(jù)并清空sja1000接收緩沖區(qū),然后進(jìn)行數(shù)據(jù)處理,通過單片機(jī)i/o口控制電機(jī)動作,數(shù)據(jù)處理完后,準(zhǔn)備下次數(shù)據(jù)接收。圖5為can節(jié)點(diǎn)模塊流程。



評論


相關(guān)推薦

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

關(guān)閉