CAN總線(xiàn)在波動(dòng)仿生推進(jìn)器中的應用
為進(jìn)一步提高CAN總線(xiàn)的可靠性,在系統設計中采取了一系列的抗干擾措施。一方面將SJA1000與82C250通過(guò)高速光耦6N137相連,從而實(shí)現了CAN總線(xiàn)上各CAN節點(diǎn)的電氣隔離。另一方面,在82C250與CAN物理總線(xiàn)的接口部分也采用一定的安全和抗干擾措施。比如,82C250的CANH和CANL引腳各自通過(guò)一個(gè)5Ω的電阻與CAN總線(xiàn)相連,可起到一定的限流作用,保護82C250免受過(guò)流的沖擊;CANH和CANL與地之間分別并聯(lián)一個(gè)30P的小電容,可以起到濾除總線(xiàn)上的高頻干擾和一定的防電磁輻射的能力;CANH和CANL與地之間分別反接了一個(gè)保護二極管,這樣,當CAN總線(xiàn)有較高的負電壓時(shí),通過(guò)二極管的短路可起到一定的過(guò)壓保護作用。
另外,為了保護各CAN節點(diǎn)控制端不受電機端的影響,在單片機與電機接口處均采用了基于6N137的光電隔離方案。這樣,當伺服電機端有大電壓電流產(chǎn)生時(shí),由于光耦的保護作用,不會(huì )對控制端產(chǎn)生較大影響。
在應用光電隔離方案時(shí)要注意的一個(gè)重要問(wèn)題是要必須確保光耦兩端的兩個(gè)電源完全隔離,否則光電隔離將起不到其應有的保護作用。在本系統中,通過(guò)采用廣州金升陽(yáng)公司的小功率電源隔離模塊B0505S-1W很好地實(shí)現了各電源之間的完全隔離。
3CAN網(wǎng)絡(luò )的軟件設計
CAN網(wǎng)絡(luò )的軟件主要包括三部分:初始化設計、通信設計、電機協(xié)調控制設計。下面從CAN控制節點(diǎn)的角度對它們進(jìn)行說(shuō)明。
3.1初始化設計
CAN網(wǎng)絡(luò )的初始化包括對微控制器內部資源的初始化和CAN控制器SJA1000的初始化。微控制器的內部資源包括程序中使用的各控制變量、定時(shí)器、外部中斷、串口等,需要在程序進(jìn)入正常工作前對它們進(jìn)行合理的設置。這里重點(diǎn)對SJA1000的初始化進(jìn)行說(shuō)明。
SJA1000的初始化只能在復位模式下進(jìn)行。其主要內容包括工作方式的設置、接收濾波方式的設置、接收屏蔽寄存器和接收代碼寄存器的設置、波特率參數的設置、中斷允許寄存器的設置等等。在完成SJA1000的初始化設置之后,應使SJA1000回到工作模式,進(jìn)行正常的通信任務(wù)。圖3是SJA1000的初始化流程圖。需要特別引起注意的是,在同一個(gè)CAN網(wǎng)絡(luò )中,各個(gè)CAN節點(diǎn)必須設置成相同的波特率,否則無(wú)法進(jìn)行CAN通信。

3.2通信設計
CAN網(wǎng)絡(luò )能否正常工作很大程度上取決于基于CAN總線(xiàn)的發(fā)送和接收程序能否正確設計。跟大多數的通信過(guò)程一樣,CAN的發(fā)送和接收也分為查詢(xún)和中斷兩種方式。在本系統中,發(fā)送采用查詢(xún)方式,接收采用中斷方式。發(fā)送時(shí)用戶(hù)只需將待發(fā)送的數據按特定格式組合成一幀報文,送入SJA1000的發(fā)送緩存區中,然后啟動(dòng)SJA1000發(fā)送即可。其間需要對CAN總線(xiàn)的發(fā)送緩存區狀態(tài)進(jìn)行判斷。發(fā)送流程如圖4。
在PeliCAN模式中,SJA1000有8個(gè)不同的中斷,接收中斷是其中的一個(gè)。一旦CAN產(chǎn)生中斷,SJA1000就將中斷輸出設為低電平,直到主控制器通過(guò)讀SJA1000的中斷寄存器對中斷采取相應措施,或釋放接收緩存器后產(chǎn)生接收中斷。在主控制器完成該動(dòng)作后,SJA1000將輸出中斷跳到高電平。處理中斷請求的握手信號或兩個(gè)中斷之間的高電平脈沖要求主控制器的中斷由電平觸發(fā)。中斷接收的流程如圖5所示。相比發(fā)送子程序而言,它除了進(jìn)行單純的數據幀接收之外,還要對中斷運行寄存器中允許引起中斷的各種錯誤(比如總線(xiàn)脫落、錯誤報警、接收溢出等)進(jìn)行判斷并作相應處理。在波動(dòng)仿生推進(jìn)器的應用里,設置了接收中斷和數據溢出中斷,并在主程序里定時(shí)檢測總線(xiàn)狀態(tài),如果發(fā)現總線(xiàn)脫離,則對SJA1000進(jìn)行復位處理。
3.3電機協(xié)調控制設計
波動(dòng)仿生推進(jìn)器單柔性長(cháng)鰭的波動(dòng)控制要求其多電機系統按照設定的波動(dòng)參數帶動(dòng)多個(gè)鰭條形成相應的波形。由于采用了高性能的伺服電機及驅動(dòng)器,我們可以很精確的控制電機的運行速度,故在形成了各電機之間按設定波長(cháng)要求的相位差之后,只要保持各個(gè)電機之間速度的嚴格同步,就可以實(shí)現多個(gè)電機之間的協(xié)調運轉。為此,需要在各個(gè)電機控制節點(diǎn)里預先設置一些相關(guān)的控制原語(yǔ),如電機原點(diǎn)定位、相位調整、速度設定、方向設定以及停機等基本電機控制指令。主控模塊PC/104通過(guò)對這些控制原語(yǔ)的合理調用,便可實(shí)現各種類(lèi)型的波形。
另一種更合理可靠的方法是,各電機控制節點(diǎn)采集伺服電機上增量編碼器的角度脈沖信號,經(jīng)過(guò)解析將角度數字信號送往PC/104。在每個(gè)控制周期內,PC/104對這些角度信號進(jìn)行綜合處理,通過(guò)一定的協(xié)調機制來(lái)實(shí)時(shí)修改對電機的控制量。由于CAN總線(xiàn)在一定條件下其最高通信速率可達1Mbps,通過(guò)設定適當的控制周期,可以滿(mǎn)足本系統的需要。
4結論
本文設計的CAN總線(xiàn)系統在波動(dòng)仿生推進(jìn)器的波動(dòng)控制中得到了成功應用。與基于RS-232總線(xiàn)的控制系統相比,本系統在通信的可靠性和快速性上體現出了較大優(yōu)勢。在通信速率為250Kbps以及13個(gè)底層節點(diǎn)的情況下,通過(guò)實(shí)際反復的靜水和航行試驗表明其通信效果完全可以滿(mǎn)足系統的需要,同時(shí)該CAN總線(xiàn)系統也具備良好的波形控制和狀態(tài)監測功能。
本文作者創(chuàng )新點(diǎn):基于CAN總線(xiàn)技術(shù)設計了新型的波動(dòng)仿生推進(jìn)器控制系統,給出了詳細的軟硬件設計方案,并對多個(gè)電機的協(xié)調控制作了相應分析。
伺服電機相關(guān)文章:伺服電機工作原理
評論