張榮,安志勇,孫敏,張倩索
(長春理工大學 光電工程學院,長春 130022)
CAN(Controller Area Network,控制器局域網(wǎng))總線是上個世紀80年代德國博世(BOSCH)公司開發(fā)的一種多主方式串行通訊總線協(xié)議,屬于工業(yè)現(xiàn)場總線范疇,最初應(yīng)用于汽車領(lǐng)域。由于其具有抗干擾能力強,數(shù)據(jù)傳輸位速率高,以及強大的錯誤檢測功能等特點,如今 CAN總線已得到了廣泛的認同,并應(yīng)用于工業(yè)自動化、醫(yī)療設(shè)備、電力系統(tǒng)、船舶、航天等領(lǐng)域。
足球機器人作為一個新興的領(lǐng)域,對多智能體研究有著推進作用,因此足球機器人內(nèi)部多模塊的協(xié)作則顯得尤為重要。足球機器人本體由激光測距儀、雙目視覺攝像儀、電子羅盤、電源管理模塊、上位PC機、電機驅(qū)動管理模塊等幾部分構(gòu)成,由于傳統(tǒng)的串行方式傳輸速率的限制,直接影響到機器人在運動過程中動作執(zhí)行的準確性,本文采用了CAN總線的通信方式,可使傳輸速率高達1Mbps,完全可以滿足圖像采集處理分析及運動方式選擇的實時性要求。
CAN控制器根據(jù)兩根線上的電位差來判斷總線電平。發(fā)送電平分為顯性電平和隱性電平,二者必居其一。發(fā)送方通過電平變化,把消息發(fā)送給接收方,每個模塊作為一個單獨的節(jié)點,總線拓撲結(jié)構(gòu)如圖1所示。
圖1 總線拓撲結(jié)構(gòu)Fig.1 Bus topological structure
SJA1000獨立CAN控制器。SJA1000受FPGA控制,其內(nèi)部寄存器的讀寫以及相的命令都需要按照在Nios II系統(tǒng)規(guī)范操作,通過C語言的開發(fā)環(huán)境,對其進行驅(qū)動初始化,接受并發(fā)送信息等具體操作。SJA1000結(jié)構(gòu)如圖2所示[1]。
圖2 SJA1000結(jié)構(gòu)Fig.2 SJA1000 structure
NIOSII是一個用戶可配置的32位 RISC嵌入式處理器,是 SOPC(System On a Programmable Chip,片上可編程系統(tǒng))的核心,可添加進入FPGA中。處理器是由軟核形式實現(xiàn),具有高度的靈活性與可配置性。開發(fā)過程中硬件部分設(shè)計主要是通過QuartusII軟件來完成,軟件部分是由NIOS IDE來完成。
本文選用的是 Altera公司的 EP1C6Q240C8芯片,使用QuartusII軟件中的SOPCBuilder建立外設(shè)包括:(1)NIOSII Core:即CPU連接CAN總線控制器實現(xiàn)總線上數(shù)據(jù)的接收與發(fā)送處理。(2)JTAG_UART:以串行通訊方式連接 PC機傳輸數(shù)據(jù),可實現(xiàn)在線程序調(diào)試與下載。(3)SDRAM/FLISH:執(zhí)行和保存編輯完成的軟件部分。5PLL:鎖相環(huán)的定制與設(shè)置,進行分頻或倍頻以便對不同器件提供不同的時鐘。(4)其他接口(PIO):ALE、CS、RD、WR、RST、INI以及數(shù)據(jù)/地址復用總線等的定制,完成與SJA1000的硬件連接部分。
系統(tǒng)以建立的 NIOSII的軟核為處理器,CAN總線的獨立控制芯片選用Philips公司的SJA1000,82C250作為總線收發(fā)器。由于 SJA1000的工作電壓為 5V,而 EP1C6Q240C8的正常工作電壓為3.3V,極限電壓也不過4.6V,雖然同為TTL電平,但如果使FPGA芯片長期工作于極限電壓之上會有對器件造成損壞,所以本文選用 TI公司的雙向總線收發(fā)器74ALVC164245,把 SJA1000的5V TTL電平信號AD0~AD7、CS、WR、RD、ALE轉(zhuǎn)換成3.3V的IO標準電壓,再與FPGA各管腳相連。82C250是 CAN總線控制器與物理總線之間的接口,該器件為總線提供差動傳送能力和差動接受能力。其中RS腳加入50K左右的電阻以降低射頻干擾,同時在總線兩端各串聯(lián)一個124的電阻以保證阻抗匹配。
值得注意的是,通常設(shè)計會在82C250與CAN總線控制器SJA1000連接處加入光耦隔離部分,以增強其抗干擾能力,但是這種方式會使系統(tǒng)產(chǎn)生的功耗較大,因此本文沒有采用加入光耦隔離的方案,而是采用一種新的隔離方式,即磁耦合技術(shù)。
該設(shè)計選用的芯片ADuM1201是一種新型的芯片,它的技術(shù)與從前那種采用光電二極管與LED相結(jié)合的技術(shù)有本質(zhì)上的區(qū)別,它采用的是磁隔離的技術(shù)。此項技術(shù)可以將隔離性能提高到 5000V以上,對于從前的光耦隔離的方式有較大突破,同時也起到了顛覆性的作用,取消了從前光電轉(zhuǎn)換的繁瑣過程,直接通過變壓器進行磁耦合,是目前最先進的隔離方法。
磁耦合技術(shù)在該芯片上的應(yīng)用方式是直接將變壓器集成在芯片當中,因此這類芯片相比較光電耦合器件來說集成的性能更高,由于通道的集成效應(yīng),再與光電耦合器件的比較中,這種方式大大的提高了在光電轉(zhuǎn)換過程的效率,降低了能量的損耗,而且磁藕合不必去考慮驅(qū)動電路等環(huán)節(jié),同樣節(jié)省了硬件空間與成本,傳輸速率更高,控制精度更加準確,抗干擾能力也更強,而且該芯片甚至可以實現(xiàn)在一塊芯片上實現(xiàn)多通道數(shù)字隔離的正反向通信,在應(yīng)用中更加靈活方便。不僅如此,功耗在比較中同樣有較大的優(yōu)勢,一般情況下磁藕合的功耗大約是光電耦合器件的幾十分之一,因此本文將其選擇為隔離環(huán)節(jié)中的設(shè)計方案。具體磁耦合與光電耦合的比較見表1。
本設(shè)計選用的軟件開發(fā)環(huán)境是在Nios II5.0系統(tǒng)下 NiosII5.0 IDE。該環(huán)境是基于通用的 Eclipse-IDE和EclipseC開發(fā)套件的,主要可以完成軟件的編寫程序、編譯和調(diào)試等功能,由于包含 C標準庫,在應(yīng)用起來與單片機C語言編程類似,所以該環(huán)境應(yīng)用非常靈活方便。
SJA1000獨立CAN控制器有以下兩種可供選擇的操作模式:BasicCAN模式(和PCA82C200兼容)和PeliCAN模式。BasicCAN模式可以在PCA82C200開發(fā)的軟件與硬件直接互連不需要對設(shè)置做任何更改,該模式是上電后默認的操作模式,它同時能夠處理所有 CAN2.0B規(guī)范的幀類型,而且它還具有一些更強的功能,使其適用于更廣泛的領(lǐng)域。SJA1000操作最主要的功能由三個部分組成:初始化、發(fā)送幀和接收幀。
表1 磁耦合與光電耦合比較Tab.1 Magnetic coupling and photoelectric coupling comparison
圖3 SJA1000初始化順序Fig.3 SJA1000 initialization sequence
CAN總線的初始化設(shè)置是保證正常通信的最首要的條件,初始化方式如圖3所示。對于節(jié)點的波特率的設(shè)置是非常重要的,每個節(jié)點處的波特率必須保持一致否則通信無法正常進行,而其他設(shè)置則必須保證在復位的情況下完成。硬件復位是保證在復位管腳處出現(xiàn)一個高低電平的變化,并保持的過程。
通過實驗證明,該通信方式解決了傳統(tǒng)串行通信過程中失敗率和誤碼率都很高的缺點,CAN總線特有的容錯機制可以使我們在查詢檢測和排除錯誤的過程中更加的方便。在針對足球機器人這種對于策略選擇實時性和控制精確性都相當高的領(lǐng)域來說,優(yōu)勢相當明顯。
[1]李雪源,陳萬忠.基于ASEJ1939協(xié)議的CAN總線通信技術(shù)及應(yīng)用[D].中國優(yōu)秀碩士學位論文全文數(shù)據(jù)庫,2005.
[2]耿方新,傅家林.CAN總線控制器的研究與設(shè)計[D].中國優(yōu)秀碩士學位論文全文數(shù)據(jù)庫,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]牟學剛,朱勁,蔣平.三輪全向足球機器人結(jié)構(gòu)設(shè)計與系統(tǒng)模型研究[J].機械與電子,2006(5):38-41.
[5]余群名,王會方,張駿,等.足球機器人運動控制算法研究[J].湖南大學學報:自然科學版,2006,33(6):42-45.
[6]吳憲兵.足球機器人運動控制研究[J].機床與壓,2009,37(1):128-130.