基于CAN總線的步進電機多機控制系統的設計
3.2 can節點模塊電路的設計
can節點模塊的can接口部分與usb-can接口轉換模塊的can接口部分的電路設計是一樣的,如圖3所示。單片機把接收到的數據處理之后,從p1.0、p1.1表現出來,分別輸出電機轉動方向信號和頻率及個數一定的pwm脈沖信號提供給電機驅動器,實現電機的控制。為了提高抗干擾能力,加光電隔離器tlp5621,因為輸出的數字信號頻率不是很高,tlp5621的轉換時間已滿足要求。為了電機運行的安全性,可在電機負載周圍合適的位置設置兩個機械急停按鈕,負載發生故障時按下按鈕,通知單片機停止pwm輸出,實現電機故障急停。
圖3 can節點模塊電路原理圖
4 軟件設計方案
4.1 通信協議
pc機客戶端應用軟件發送相應的控制命令后,利用計算機應用層提供的ch372接口協議,usb端口會依次向下發送一個或多個雙字節的數據信息,兩個模塊中的單片機處理各自接收到的數據,實現電機控制。每一個雙字節數據位的定義如下:
(1)電機選擇:每一個不同的高字節數據和各個can節點的sja1000中的驗收代碼寄存器的值一一對應,可以使低字節的控制命令準確的到達對應的電機驅動器。
(2) 電機啟停選擇:1為啟動,0為停止。
(3) 電機正反轉選擇:1為正轉,0為反轉。
(4) 電機速度選擇:從00到11分別設有四個檔位的速度。通過改變脈沖周期改變速度。
(5) 電機行程選擇:從0000到1111分別代表十六個不同行程的脈沖數。
4.2 軟件流程
pc機發送的每一個雙字節數據都是先發高字節,后發低字節,usb總線接口芯片ch372選用單向數據流通訊方式,接收完數據塊后,以外部中斷請求方式通知單片機接收數據,單片機應答后進入中斷服務程序,把接收到第一個雙字節數據的高字節寫入正處在復位模式的can控制器sja-1000的數據發送緩沖區的標識碼字節1的地址,低字節寫入can控制器sja1000的數據發送緩沖區的tx數據1的地址,can控制器sja1000由復位模式進入工作模式,并發送數據到can總線,數據發送完畢并對方收到后,can控制器回到復位狀態,把接收到的下一雙字節數據的高字節寫入正處在復位模式的can控制器sja1000的數據發送緩沖區的標識碼字節1的地址,低字節寫入can控制器sja1000的數據發送緩沖區的tx數據1的地址,can控制器sja1000由復位模式重新進入工作模式,并發送數據到can總線……,直到讀到的ch372緩沖區中所有數據發送完畢,單片機退出中斷,等待下一次中斷。圖4為轉換模塊程序流程。
在can節點模塊數據接收端,單片機接收到saj1000緩沖區的數據后,通知對方收到數據并清空sja1000接收緩沖區,然后進行數據處理,通過單片機i/o口控制電機動作,數據處理完后,準備下次數據接收。圖5為can節點模塊流程。
評論