CAN總線在波動仿生推進器中的應(yīng)用
為進一步提高CAN總線的可靠性,在系統(tǒng)設(shè)計中采取了一系列的抗干擾措施。一方面將SJA1000與82C250通過高速光耦6N137相連,從而實現(xiàn)了CAN總線上各CAN節(jié)點的電氣隔離。另一方面,在82C250與CAN物理總線的接口部分也采用一定的安全和抗干擾措施。比如,82C250的CANH和CANL引腳各自通過一個5Ω的電阻與CAN總線相連,可起到一定的限流作用,保護82C250免受過流的沖擊;CANH和CANL與地之間分別并聯(lián)一個30P的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力;CANH和CANL與地之間分別反接了一個保護二極管,這樣,當CAN總線有較高的負電壓時,通過二極管的短路可起到一定的過壓保護作用。
另外,為了保護各CAN節(jié)點控制端不受電機端的影響,在單片機與電機接口處均采用了基于6N137的光電隔離方案。這樣,當伺服電機端有大電壓電流產(chǎn)生時,由于光耦的保護作用,不會對控制端產(chǎn)生較大影響。
在應(yīng)用光電隔離方案時要注意的一個重要問題是要必須確保光耦兩端的兩個電源完全隔離,否則光電隔離將起不到其應(yīng)有的保護作用。在本系統(tǒng)中,通過采用廣州金升陽公司的小功率電源隔離模塊B0505S-1W很好地實現(xiàn)了各電源之間的完全隔離。
3CAN網(wǎng)絡(luò)的軟件設(shè)計
CAN網(wǎng)絡(luò)的軟件主要包括三部分:初始化設(shè)計、通信設(shè)計、電機協(xié)調(diào)控制設(shè)計。下面從CAN控制節(jié)點的角度對它們進行說明。
3.1初始化設(shè)計
CAN網(wǎng)絡(luò)的初始化包括對微控制器內(nèi)部資源的初始化和CAN控制器SJA1000的初始化。微控制器的內(nèi)部資源包括程序中使用的各控制變量、定時器、外部中斷、串口等,需要在程序進入正常工作前對它們進行合理的設(shè)置。這里重點對SJA1000的初始化進行說明。
SJA1000的初始化只能在復(fù)位模式下進行。其主要內(nèi)容包括工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器和接收代碼寄存器的設(shè)置、波特率參數(shù)的設(shè)置、中斷允許寄存器的設(shè)置等等。在完成SJA1000的初始化設(shè)置之后,應(yīng)使SJA1000回到工作模式,進行正常的通信任務(wù)。圖3是SJA1000的初始化流程圖。需要特別引起注意的是,在同一個CAN網(wǎng)絡(luò)中,各個CAN節(jié)點必須設(shè)置成相同的波特率,否則無法進行CAN通信。
3.2通信設(shè)計
CAN網(wǎng)絡(luò)能否正常工作很大程度上取決于基于CAN總線的發(fā)送和接收程序能否正確設(shè)計。跟大多數(shù)的通信過程一樣,CAN的發(fā)送和接收也分為查詢和中斷兩種方式。在本系統(tǒng)中,發(fā)送采用查詢方式,接收采用中斷方式。發(fā)送時用戶只需將待發(fā)送的數(shù)據(jù)按特定格式組合成一幀報文,送入SJA1000的發(fā)送緩存區(qū)中,然后啟動SJA1000發(fā)送即可。其間需要對CAN總線的發(fā)送緩存區(qū)狀態(tài)進行判斷。發(fā)送流程如圖4。
在PeliCAN模式中,SJA1000有8個不同的中斷,接收中斷是其中的一個。一旦CAN產(chǎn)生中斷,SJA1000就將中斷輸出設(shè)為低電平,直到主控制器通過讀SJA1000的中斷寄存器對中斷采取相應(yīng)措施,或釋放接收緩存器后產(chǎn)生接收中斷。在主控制器完成該動作后,SJA1000將輸出中斷跳到高電平。處理中斷請求的握手信號或兩個中斷之間的高電平脈沖要求主控制器的中斷由電平觸發(fā)。中斷接收的流程如圖5所示。相比發(fā)送子程序而言,它除了進行單純的數(shù)據(jù)幀接收之外,還要對中斷運行寄存器中允許引起中斷的各種錯誤(比如總線脫落、錯誤報警、接收溢出等)進行判斷并作相應(yīng)處理。在波動仿生推進器的應(yīng)用里,設(shè)置了接收中斷和數(shù)據(jù)溢出中斷,并在主程序里定時檢測總線狀態(tài),如果發(fā)現(xiàn)總線脫離,則對SJA1000進行復(fù)位處理。
3.3電機協(xié)調(diào)控制設(shè)計
波動仿生推進器單柔性長鰭的波動控制要求其多電機系統(tǒng)按照設(shè)定的波動參數(shù)帶動多個鰭條形成相應(yīng)的波形。由于采用了高性能的伺服電機及驅(qū)動器,我們可以很精確的控制電機的運行速度,故在形成了各電機之間按設(shè)定波長要求的相位差之后,只要保持各個電機之間速度的嚴格同步,就可以實現(xiàn)多個電機之間的協(xié)調(diào)運轉(zhuǎn)。為此,需要在各個電機控制節(jié)點里預(yù)先設(shè)置一些相關(guān)的控制原語,如電機原點定位、相位調(diào)整、速度設(shè)定、方向設(shè)定以及停機等基本電機控制指令。主控模塊PC/104通過對這些控制原語的合理調(diào)用,便可實現(xiàn)各種類型的波形。
另一種更合理可靠的方法是,各電機控制節(jié)點采集伺服電機上增量編碼器的角度脈沖信號,經(jīng)過解析將角度數(shù)字信號送往PC/104。在每個控制周期內(nèi),PC/104對這些角度信號進行綜合處理,通過一定的協(xié)調(diào)機制來實時修改對電機的控制量。由于CAN總線在一定條件下其最高通信速率可達1Mbps,通過設(shè)定適當?shù)目刂浦芷?,可以滿足本系統(tǒng)的需要。
4結(jié)論
本文設(shè)計的CAN總線系統(tǒng)在波動仿生推進器的波動控制中得到了成功應(yīng)用。與基于RS-232總線的控制系統(tǒng)相比,本系統(tǒng)在通信的可靠性和快速性上體現(xiàn)出了較大優(yōu)勢。在通信速率為250Kbps以及13個底層節(jié)點的情況下,通過實際反復(fù)的靜水和航行試驗表明其通信效果完全可以滿足系統(tǒng)的需要,同時該CAN總線系統(tǒng)也具備良好的波形控制和狀態(tài)監(jiān)測功能。
本文作者創(chuàng)新點:基于CAN總線技術(shù)設(shè)計了新型的波動仿生推進器控制系統(tǒng),給出了詳細的軟硬件設(shè)計方案,并對多個電機的協(xié)調(diào)控制作了相應(yīng)分析。
伺服電機相關(guān)文章:伺服電機工作原理
評論