張榮,安志勇,孫敏,張倩索
(長春理工大學 光電工程學院,長春 130022)
CAN(Controller Area Network,控制器局域網)總線是上個世紀80年代德國博世(BOSCH)公司開發的一種多主方式串行通訊總線協議,屬于工業現場總線范疇,最初應用于汽車領域。由于其具有抗干擾能力強,數據傳輸位速率高,以及強大的錯誤檢測功能等特點,如今 CAN總線已得到了廣泛的認同,并應用于工業自動化、醫療設備、電力系統、船舶、航天等領域。
足球機器人作為一個新興的領域,對多智能體研究有著推進作用,因此足球機器人內部多模塊的協作則顯得尤為重要。足球機器人本體由激光測距儀、雙目視覺攝像儀、電子羅盤、電源管理模塊、上位PC機、電機驅動管理模塊等幾部分構成,由于傳統的串行方式傳輸速率的限制,直接影響到機器人在運動過程中動作執行的準確性,本文采用了CAN總線的通信方式,可使傳輸速率高達1Mbps,完全可以滿足圖像采集處理分析及運動方式選擇的實時性要求。
CAN控制器根據兩根線上的電位差來判斷總線電平。發送電平分為顯性電平和隱性電平,二者必居其一。發送方通過電平變化,把消息發送給接收方,每個模塊作為一個單獨的節點,總線拓撲結構如圖1所示。

圖1 總線拓撲結構Fig.1 Bus topological structure
SJA1000獨立CAN控制器。SJA1000受FPGA控制,其內部寄存器的讀寫以及相的命令都需要按照在Nios II系統規范操作,通過C語言的開發環境,對其進行驅動初始化,接受并發送信息等具體操作。SJA1000結構如圖2所示[1]。

圖2 SJA1000結構Fig.2 SJA1000 structure
NIOSII是一個用戶可配置的32位 RISC嵌入式處理器,是 SOPC(System On a Programmable Chip,片上可編程系統)的核心,可添加進入FPGA中。處理器是由軟核形式實現,具有高度的靈活性與可配置性。開發過程中硬件部分設計主要是通過QuartusII軟件來完成,軟件部分是由NIOS IDE來完成。
本文選用的是 Altera公司的 EP1C6Q240C8芯片,使用QuartusII軟件中的SOPCBuilder建立外設包括:(1)NIOSII Core:即CPU連接CAN總線控制器實現總線上數據的接收與發送處理。(2)JTAG_UART:以串行通訊方式連接 PC機傳輸數據,可實現在線程序調試與下載。(3)SDRAM/FLISH:執行和保存編輯完成的軟件部分。5PLL:鎖相環的定制與設置,進行分頻或倍頻以便對不同器件提供不同的時鐘。(4)其他接口(PIO):ALE、CS、RD、WR、RST、INI以及數據/地址復用總線等的定制,完成與SJA1000的硬件連接部分。
系統以建立的 NIOSII的軟核為處理器,CAN總線的獨立控制芯片選用Philips公司的SJA1000,82C250作為總線收發器。由于 SJA1000的工作電壓為 5V,而 EP1C6Q240C8的正常工作電壓為3.3V,極限電壓也不過4.6V,雖然同為TTL電平,但如果使FPGA芯片長期工作于極限電壓之上會有對器件造成損壞,所以本文選用 TI公司的雙向總線收發器74ALVC164245,把 SJA1000的5V TTL電平信號AD0~AD7、CS、WR、RD、ALE轉換成3.3V的IO標準電壓,再與FPGA各管腳相連。82C250是 CAN總線控制器與物理總線之間的接口,該器件為總線提供差動傳送能力和差動接受能力。其中RS腳加入50K左右的電阻以降低射頻干擾,同時在總線兩端各串聯一個124的電阻以保證阻抗匹配。
值得注意的是,通常設計會在82C250與CAN總線控制器SJA1000連接處加入光耦隔離部分,以增強其抗干擾能力,但是這種方式會使系統產生的功耗較大,因此本文沒有采用加入光耦隔離的方案,而是采用一種新的隔離方式,即磁耦合技術。
該設計選用的芯片ADuM1201是一種新型的芯片,它的技術與從前那種采用光電二極管與LED相結合的技術有本質上的區別,它采用的是磁隔離的技術。此項技術可以將隔離性能提高到 5000V以上,對于從前的光耦隔離的方式有較大突破,同時也起到了顛覆性的作用,取消了從前光電轉換的繁瑣過程,直接通過變壓器進行磁耦合,是目前最先進的隔離方法。
磁耦合技術在該芯片上的應用方式是直接將變壓器集成在芯片當中,因此這類芯片相比較光電耦合器件來說集成的性能更高,由于通道的集成效應,再與光電耦合器件的比較中,這種方式大大的提高了在光電轉換過程的效率,降低了能量的損耗,而且磁藕合不必去考慮驅動電路等環節,同樣節省了硬件空間與成本,傳輸速率更高,控制精度更加準確,抗干擾能力也更強,而且該芯片甚至可以實現在一塊芯片上實現多通道數字隔離的正反向通信,在應用中更加靈活方便。不僅如此,功耗在比較中同樣有較大的優勢,一般情況下磁藕合的功耗大約是光電耦合器件的幾十分之一,因此本文將其選擇為隔離環節中的設計方案。具體磁耦合與光電耦合的比較見表1。
本設計選用的軟件開發環境是在Nios II5.0系統下 NiosII5.0 IDE。該環境是基于通用的 Eclipse-IDE和EclipseC開發套件的,主要可以完成軟件的編寫程序、編譯和調試等功能,由于包含 C標準庫,在應用起來與單片機C語言編程類似,所以該環境應用非常靈活方便。
SJA1000獨立CAN控制器有以下兩種可供選擇的操作模式:BasicCAN模式(和PCA82C200兼容)和PeliCAN模式。BasicCAN模式可以在PCA82C200開發的軟件與硬件直接互連不需要對設置做任何更改,該模式是上電后默認的操作模式,它同時能夠處理所有 CAN2.0B規范的幀類型,而且它還具有一些更強的功能,使其適用于更廣泛的領域。SJA1000操作最主要的功能由三個部分組成:初始化、發送幀和接收幀。

表1 磁耦合與光電耦合比較Tab.1 Magnetic coupling and photoelectric coupling comparison

圖3 SJA1000初始化順序Fig.3 SJA1000 initialization sequence
CAN總線的初始化設置是保證正常通信的最首要的條件,初始化方式如圖3所示。對于節點的波特率的設置是非常重要的,每個節點處的波特率必須保持一致否則通信無法正常進行,而其他設置則必須保證在復位的情況下完成。硬件復位是保證在復位管腳處出現一個高低電平的變化,并保持的過程。
通過實驗證明,該通信方式解決了傳統串行通信過程中失敗率和誤碼率都很高的缺點,CAN總線特有的容錯機制可以使我們在查詢檢測和排除錯誤的過程中更加的方便。在針對足球機器人這種對于策略選擇實時性和控制精確性都相當高的領域來說,優勢相當明顯。
[1]李雪源,陳萬忠.基于ASEJ1939協議的CAN總線通信技術及應用[D].中國優秀碩士學位論文全文數據庫,2005.
[2]耿方新,傅家林.CAN總線控制器的研究與設計[D].中國優秀碩士學位論文全文數據庫,2010.
[3]Sohn S D,Seong P H.Quantitative Evaluation of Safety Critical Software Testability Based on Fault Tree Analysis and Entropy[J].Systems and Software,2004,73(2):351-360.
[4]牟學剛,朱勁,蔣平.三輪全向足球機器人結構設計與系統模型研究[J].機械與電子,2006(5):38-41.
[5]余群名,王會方,張駿,等.足球機器人運動控制算法研究[J].湖南大學學報:自然科學版,2006,33(6):42-45.
[6]吳憲兵.足球機器人運動控制研究[J].機床與壓,2009,37(1):128-130.