基于CAN總線(xiàn)的多電機(jī)消隙天線(xiàn)控制系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
由于can總線(xiàn)的系統(tǒng)集成特點(diǎn),基于汽車(chē)車(chē)身控制系統(tǒng)的can總線(xiàn)技術(shù)應(yīng)用范圍已經(jīng)遠(yuǎn)遠(yuǎn)超越汽車(chē)控制領(lǐng)域,擴(kuò)展到了機(jī)械工業(yè)、家用電器及傳感器等各種其它測(cè)控領(lǐng)域,被國(guó)際公認(rèn)為是重要的的工業(yè)現(xiàn)場(chǎng)總線(xiàn)。作為運(yùn)動(dòng)控制對(duì)象,步進(jìn)電動(dòng)機(jī)作為一種將離散的電脈沖信號(hào)轉(zhuǎn)化成角位移的機(jī)械執(zhí)行裝置,具有結(jié)構(gòu)簡(jiǎn)單、成本低、定位精度高和無(wú)誤差累積等優(yōu)點(diǎn),已被廣泛應(yīng)用于各種自動(dòng)控制系統(tǒng)中。隨著微型計(jì)算機(jī)和微電子技術(shù)的發(fā)展,步進(jìn)電機(jī)的這一性能必將得到更為廣泛的應(yīng)用。因此對(duì)于can總線(xiàn)的步進(jìn)電動(dòng)機(jī)控制研究具有十分明顯的現(xiàn)實(shí)意義。
2 系統(tǒng)總體設(shè)計(jì)方案
該系統(tǒng)可由一臺(tái)pc機(jī)作為命令發(fā)送主機(jī),通過(guò)bus-can接口轉(zhuǎn)換模塊接入can總線(xiàn),各節(jié)點(diǎn)是有單片機(jī)控制的具有can總線(xiàn)數(shù)據(jù)收發(fā)功能的模塊,來(lái)控制步進(jìn)電機(jī)驅(qū)動(dòng)器及電機(jī)終端。在pc機(jī)的應(yīng)用層根據(jù)事先規(guī)定的格式把數(shù)據(jù)由usb接口發(fā)送給基于usb總線(xiàn)的通用設(shè)備接口芯片ch372的usb-can接口轉(zhuǎn)換模塊上的單片機(jī),單片機(jī)處理之后,再把數(shù)據(jù)傳送到連接著各個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)器的節(jié)點(diǎn)的can總線(xiàn)上,各個(gè)節(jié)點(diǎn)的控制模塊根據(jù)接收到的數(shù)據(jù)信息進(jìn)行處理,實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的速度、正反轉(zhuǎn)及行程控制。圖1為本設(shè)計(jì)的系統(tǒng)方案圖。
圖1 系統(tǒng)總體方案圖
3 硬件設(shè)計(jì)方案
系統(tǒng)的硬件包括usb-can接口模塊和can節(jié)點(diǎn)接收模塊電路的設(shè)計(jì)。
3.1 usb-can接口模塊電路的設(shè)計(jì)
bus-can接口模塊主要是由51單片機(jī)、ch372、sja1000及82c250組成,主機(jī)通過(guò)ch372把數(shù)據(jù)發(fā)送到單片機(jī),單片機(jī)再把數(shù)據(jù)通過(guò)sja1000發(fā)送到can總線(xiàn)上。圖2中給出了從pc機(jī)的usb口到can總線(xiàn)的主要元件及其連接。圖2及圖3中的vdd、vcc均為+5v直流電源,ch372有支持兩種電源,+5v和+3.3v,本設(shè)計(jì)中使用的是+5v,可以直接從usb口獲得,簡(jiǎn)化了電路設(shè)計(jì)。與單片機(jī)連接的ch372和sja1000通過(guò)片選信號(hào)實(shí)現(xiàn)互不干涉的讀寫(xiě)過(guò)程,完成各自的任務(wù)。
圖2 usb-can接口轉(zhuǎn)換模塊原理圖
can控制要實(shí)現(xiàn)其功能,必須具有外圍擴(kuò)展接口,構(gòu)成完整的can通信系統(tǒng),本設(shè)計(jì)選用pca82c250器件作為can控制器的sja1000和物理總線(xiàn)間的接口,提供總線(xiàn)的差動(dòng)發(fā)送和接收能力,處理來(lái)自canh和canh線(xiàn)的信號(hào),并將處理后的信號(hào)傳至控制單元的can接收區(qū)。為了保護(hù)芯片并提高抗干擾能力,在控制器sja1000和82c250之間加入高速光電隔離器6n137。can總線(xiàn)網(wǎng)絡(luò)兩端要接120歐姆的匹配電阻,可大大的提高通信的抗干擾性和可靠性。
3.2 can節(jié)點(diǎn)模塊電路的設(shè)計(jì)
can節(jié)點(diǎn)模塊的can接口部分與usb-can接口轉(zhuǎn)換模塊的can接口部分的電路設(shè)計(jì)是一樣的,如圖3所示。單片機(jī)把接收到的數(shù)據(jù)處理之后,從p1.0、p1.1表現(xiàn)出來(lái),分別輸出電機(jī)轉(zhuǎn)動(dòng)方向信號(hào)和頻率及個(gè)數(shù)一定的pwm脈沖信號(hào)提供給電機(jī)驅(qū)動(dòng)器,實(shí)現(xiàn)電機(jī)的控制。為了提高抗干擾能力,加光電隔離器tlp5621,因?yàn)檩敵龅臄?shù)字信號(hào)頻率不是很高,tlp5621的轉(zhuǎn)換時(shí)間已滿(mǎn)足要求。為了電機(jī)運(yùn)行的安全性,可在電機(jī)負(fù)載周?chē)线m的位置設(shè)置兩個(gè)機(jī)械急停按鈕,負(fù)載發(fā)生故障時(shí)按下按鈕,通知單片機(jī)停止pwm輸出,實(shí)現(xiàn)電機(jī)故障急停。
圖3 can節(jié)點(diǎn)模塊電路原理圖
4 軟件設(shè)計(jì)方案
4.1 通信協(xié)議
pc機(jī)客戶(hù)端應(yīng)用軟件發(fā)送相應(yīng)的控制命令后,利用計(jì)算機(jī)應(yīng)用層提供的ch372接口協(xié)議,usb端口會(huì)依次向下發(fā)送一個(gè)或多個(gè)雙字節(jié)的數(shù)據(jù)信息,兩個(gè)模塊中的單片機(jī)處理各自接收到的數(shù)據(jù),實(shí)現(xiàn)電機(jī)控制。每一個(gè)雙字節(jié)數(shù)據(jù)位的定義如下:
(1)電機(jī)選擇:每一個(gè)不同的高字節(jié)數(shù)據(jù)和各個(gè)can節(jié)點(diǎn)的sja1000中的驗(yàn)收代碼寄存器的值一一對(duì)應(yīng),可以使低字節(jié)的控制命令準(zhǔn)確的到達(dá)對(duì)應(yīng)的電機(jī)驅(qū)動(dòng)器。
(2) 電機(jī)啟停選擇:1為啟動(dòng),0為停止。
(3) 電機(jī)正反轉(zhuǎn)選擇:1為正轉(zhuǎn),0為反轉(zhuǎn)。
(4) 電機(jī)速度選擇:從00到11分別設(shè)有四個(gè)檔位的速度。通過(guò)改變脈沖周期改變速度。
(5) 電機(jī)行程選擇:從0000到1111分別代表十六個(gè)不同行程的脈沖數(shù)。
4.2 軟件流程
pc機(jī)發(fā)送的每一個(gè)雙字節(jié)數(shù)據(jù)都是先發(fā)高字節(jié),后發(fā)低字節(jié),usb總線(xiàn)接口芯片ch372選用單向數(shù)據(jù)流通訊方式,接收完數(shù)據(jù)塊后,以外部中斷請(qǐng)求方式通知單片機(jī)接收數(shù)據(jù),單片機(jī)應(yīng)答后進(jìn)入中斷服務(wù)程序,把接收到第一個(gè)雙字節(jié)數(shù)據(jù)的高字節(jié)寫(xiě)入正處在復(fù)位模式的can控制器sja-1000的數(shù)據(jù)發(fā)送緩沖區(qū)的標(biāo)識(shí)碼字節(jié)1的地址,低字節(jié)寫(xiě)入can控制器sja1000的數(shù)據(jù)發(fā)送緩沖區(qū)的tx數(shù)據(jù)1的地址,can控制器sja1000由復(fù)位模式進(jìn)入工作模式,并發(fā)送數(shù)據(jù)到can總線(xiàn),數(shù)據(jù)發(fā)送完畢并對(duì)方收到后,can控制器回到復(fù)位狀態(tài),把接收到的下一雙字節(jié)數(shù)據(jù)的高字節(jié)寫(xiě)入正處在復(fù)位模式的can控制器sja1000的數(shù)據(jù)發(fā)送緩沖區(qū)的標(biāo)識(shí)碼字節(jié)1的地址,低字節(jié)寫(xiě)入can控制器sja1000的數(shù)據(jù)發(fā)送緩沖區(qū)的tx數(shù)據(jù)1的地址,can控制器sja1000由復(fù)位模式重新進(jìn)入工作模式,并發(fā)送數(shù)據(jù)到can總線(xiàn)……,直到讀到的ch372緩沖區(qū)中所有數(shù)據(jù)發(fā)送完畢,單片機(jī)退出中斷,等待下一次中斷。圖4為轉(zhuǎn)換模塊程序流程。
在can節(jié)點(diǎn)模塊數(shù)據(jù)接收端,單片機(jī)接收到saj1000緩沖區(qū)的數(shù)據(jù)后,通知對(duì)方收到數(shù)據(jù)并清空sja1000接收緩沖區(qū),然后進(jìn)行數(shù)據(jù)處理,通過(guò)單片機(jī)i/o口控制電機(jī)動(dòng)作,數(shù)據(jù)處理完后,準(zhǔn)備下次數(shù)據(jù)接收。圖5為can節(jié)點(diǎn)模塊流程。
圖4 usb-can模塊流程
圖5 can節(jié)點(diǎn)模塊流程
5 結(jié)束語(yǔ)
can現(xiàn)場(chǎng)總線(xiàn)具有通信距離遠(yuǎn)、傳輸速度快的特點(diǎn),該系統(tǒng)可實(shí)現(xiàn)對(duì)電機(jī)的全集成數(shù)字控制。基于步進(jìn)電機(jī)行程的可控性,本系統(tǒng)可實(shí)現(xiàn)對(duì)運(yùn)動(dòng)對(duì)象的精確位置控制。此外,可以在can節(jié)點(diǎn)模塊上多加幾路限位等機(jī)械急停按鈕,使電機(jī)更加安全、可靠的運(yùn)行。