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