基于CAN總線(xiàn)的多電機消隙天線(xiàn)控制系統
引言
本文引用地址:http://dyxdggzs.com/article/165080.htm由于can總線(xiàn)的系統集成特點(diǎn),基于汽車(chē)車(chē)身控制系統的can總線(xiàn)技術(shù)應用范圍已經(jīng)遠遠超越汽車(chē)控制領(lǐng)域,擴展到了機械工業(yè)、家用電器及傳感器等各種其它測控領(lǐng)域,被國際公認為是重要的的工業(yè)現場(chǎng)總線(xiàn)。作為運動(dòng)控制對象,步進(jìn)電動(dòng)機作為一種將離散的電脈沖信號轉化成角位移的機械執行裝置,具有結構簡(jiǎn)單、成本低、定位精度高和無(wú)誤差累積等優(yōu)點(diǎn),已被廣泛應用于各種自動(dòng)控制系統中。隨著(zhù)微型計算機和微電子技術(shù)的發(fā)展,步進(jìn)電機的這一性能必將得到更為廣泛的應用。因此對于can總線(xiàn)的步進(jìn)電動(dòng)機控制研究具有十分明顯的現實(shí)意義。
2 系統總體設計方案
該系統可由一臺pc機作為命令發(fā)送主機,通過(guò)bus-can接口轉換模塊接入can總線(xiàn),各節點(diǎn)是有單片機控制的具有can總線(xiàn)數據收發(fā)功能的模塊,來(lái)控制步進(jìn)電機驅動(dòng)器及電機終端。在pc機的應用層根據事先規定的格式把數據由usb接口發(fā)送給基于usb總線(xiàn)的通用設備接口芯片ch372的usb-can接口轉換模塊上的單片機,單片機處理之后,再把數據傳送到連接著(zhù)各個(gè)步進(jìn)電機驅動(dòng)器的節點(diǎn)的can總線(xiàn)上,各個(gè)節點(diǎn)的控制模塊根據接收到的數據信息進(jìn)行處理,實(shí)現對步進(jìn)電機的速度、正反轉及行程控制。圖1為本設計的系統方案圖。

圖1 系統總體方案圖
3 硬件設計方案
系統的硬件包括usb-can接口模塊和can節點(diǎn)接收模塊電路的設計。
3.1 usb-can接口模塊電路的設計
bus-can接口模塊主要是由51單片機、ch372、sja1000及82c250組成,主機通過(guò)ch372把數據發(fā)送到單片機,單片機再把數據通過(guò)sja1000發(fā)送到can總線(xiàn)上。圖2中給出了從pc機的usb口到can總線(xiàn)的主要元件及其連接。圖2及圖3中的vdd、vcc均為+5v直流電源,ch372有支持兩種電源,+5v和+3.3v,本設計中使用的是+5v,可以直接從usb口獲得,簡(jiǎn)化了電路設計。與單片機連接的ch372和sja1000通過(guò)片選信號實(shí)現互不干涉的讀寫(xiě)過(guò)程,完成各自的任務(wù)。

圖2 usb-can接口轉換模塊原理圖
can控制要實(shí)現其功能,必須具有外圍擴展接口,構成完整的can通信系統,本設計選用pca82c250器件作為can控制器的sja1000和物理總線(xiàn)間的接口,提供總線(xiàn)的差動(dòng)發(fā)送和接收能力,處理來(lái)自canh和canh線(xiàn)的信號,并將處理后的信號傳至控制單元的can接收區。為了保護芯片并提高抗干擾能力,在控制器sja1000和82c250之間加入高速光電隔離器6n137。can總線(xiàn)網(wǎng)絡(luò )兩端要接120歐姆的匹配電阻,可大大的提高通信的抗干擾性和可靠性。
3.2 can節點(diǎn)模塊電路的設計
can節點(diǎn)模塊的can接口部分與usb-can接口轉換模塊的can接口部分的電路設計是一樣的,如圖3所示。單片機把接收到的數據處理之后,從p1.0、p1.1表現出來(lái),分別輸出電機轉動(dòng)方向信號和頻率及個(gè)數一定的pwm脈沖信號提供給電機驅動(dòng)器,實(shí)現電機的控制。為了提高抗干擾能力,加光電隔離器tlp5621,因為輸出的數字信號頻率不是很高,tlp5621的轉換時(shí)間已滿(mǎn)足要求。為了電機運行的安全性,可在電機負載周?chē)线m的位置設置兩個(gè)機械急停按鈕,負載發(fā)生故障時(shí)按下按鈕,通知單片機停止pwm輸出,實(shí)現電機故障急停。

圖3 can節點(diǎn)模塊電路原理圖
4 軟件設計方案
4.1 通信協(xié)議
pc機客戶(hù)端應用軟件發(fā)送相應的控制命令后,利用計算機應用層提供的ch372接口協(xié)議,usb端口會(huì )依次向下發(fā)送一個(gè)或多個(gè)雙字節的數據信息,兩個(gè)模塊中的單片機處理各自接收到的數據,實(shí)現電機控制。每一個(gè)雙字節數據位的定義如下:

(1)電機選擇:每一個(gè)不同的高字節數據和各個(gè)can節點(diǎn)的sja1000中的驗收代碼寄存器的值一一對應,可以使低字節的控制命令準確的到達對應的電機驅動(dòng)器。
(2) 電機啟停選擇:1為啟動(dòng),0為停止。
(3) 電機正反轉選擇:1為正轉,0為反轉。
(4) 電機速度選擇:從00到11分別設有四個(gè)檔位的速度。通過(guò)改變脈沖周期改變速度。
(5) 電機行程選擇:從0000到1111分別代表十六個(gè)不同行程的脈沖數。
4.2 軟件流程
pc機發(fā)送的每一個(gè)雙字節數據都是先發(fā)高字節,后發(fā)低字節,usb總線(xiàn)接口芯片ch372選用單向數據流通訊方式,接收完數據塊后,以外部中斷請求方式通知單片機接收數據,單片機應答后進(jìn)入中斷服務(wù)程序,把接收到第一個(gè)雙字節數據的高字節寫(xiě)入正處在復位模式的can控制器sja-1000的數據發(fā)送緩沖區的標識碼字節1的地址,低字節寫(xiě)入can控制器sja1000的數據發(fā)送緩沖區的tx數據1的地址,can控制器sja1000由復位模式進(jìn)入工作模式,并發(fā)送數據到can總線(xiàn),數據發(fā)送完畢并對方收到后,can控制器回到復位狀態(tài),把接收到的下一雙字節數據的高字節寫(xiě)入正處在復位模式的can控制器sja1000的數據發(fā)送緩沖區的標識碼字節1的地址,低字節寫(xiě)入can控制器sja1000的數據發(fā)送緩沖區的tx數據1的地址,can控制器sja1000由復位模式重新進(jìn)入工作模式,并發(fā)送數據到can總線(xiàn)……,直到讀到的ch372緩沖區中所有數據發(fā)送完畢,單片機退出中斷,等待下一次中斷。圖4為轉換模塊程序流程。
在can節點(diǎn)模塊數據接收端,單片機接收到saj1000緩沖區的數據后,通知對方收到數據并清空sja1000接收緩沖區,然后進(jìn)行數據處理,通過(guò)單片機i/o口控制電機動(dòng)作,數據處理完后,準備下次數據接收。圖5為can節點(diǎn)模塊流程。
評論