基于LPC2194的4路CAN網(wǎng)橋設(shè)計(jì)
CAN總線以其設(shè)計(jì)獨(dú)特、成本低、可靠性高、實(shí)時(shí)性和抗干擾能力強(qiáng)等特點(diǎn),在汽車工業(yè)、機(jī)械工業(yè)、紡織工業(yè)、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械等領(lǐng)域得到了廣泛的應(yīng)用。從高速網(wǎng)絡(luò)到低速的多路接線網(wǎng)絡(luò)都可以使用CAN總線,其最高傳輸速率可以達(dá)到1 Mbps,最遠(yuǎn)傳輸距離可達(dá)10 km(傳輸速率在5 kbps以下時(shí))。但是當(dāng)要求傳輸速率較高且傳輸距離較遠(yuǎn)時(shí),單條總線就無(wú)法完成;而且在大型的網(wǎng)絡(luò)中,經(jīng)常需要多條總線的接入。這就需要同時(shí)有中繼與路由功能的CAN網(wǎng)橋來(lái)實(shí)現(xiàn)以上功能。
本文設(shè)計(jì)的4路CAN網(wǎng)橋可以延長(zhǎng)CAN傳輸距離,擴(kuò)展CAN通信網(wǎng)絡(luò);同時(shí)具有路由功能,可實(shí)現(xiàn)不同CAN網(wǎng)絡(luò)之間的不同路由、不同通信速率的轉(zhuǎn)換,能夠在大型CAN網(wǎng)絡(luò)中起到關(guān)鍵作用。
1 4路CAN網(wǎng)橋的設(shè)計(jì)方案
1.1 CAN網(wǎng)橋的優(yōu)點(diǎn)
使用4路CAN網(wǎng)橋?qū)W(wǎng)絡(luò)性能的改善有著很大的幫助,在大型網(wǎng)絡(luò)的組網(wǎng)中有以下優(yōu)點(diǎn):
①可以延長(zhǎng)網(wǎng)絡(luò)的傳輸距離,特別是經(jīng)過(guò)幾個(gè)CAN網(wǎng)橋的中繼之后,可以極大地延長(zhǎng)傳輸距離,能夠達(dá)到幾千米甚至幾十千米。
②可以增大CAN網(wǎng)絡(luò)的規(guī)模,4路CAN網(wǎng)橋有4個(gè)CAN支路,每條支路又可以增加新的CAN網(wǎng)橋,因此可以組成大規(guī)模的CAN網(wǎng)絡(luò)。
③可以實(shí)現(xiàn)不同網(wǎng)絡(luò)之間不同路由的選擇,增強(qiáng)了CAN網(wǎng)絡(luò)的可靠性。
1.2 設(shè)計(jì)方案
CAN網(wǎng)橋的設(shè)計(jì)方案一般分為單MCU和多MCU兩種。單MCU速度較慢,不適用于高速網(wǎng)絡(luò);多MCU方案結(jié)構(gòu)復(fù)雜,穩(wěn)定性較差。針對(duì)以上情況,本設(shè)計(jì)采用了自帶4路CAN控制器的ARM微控制器LPC2194,同時(shí)避免了MCU速度慢和多MCU網(wǎng)絡(luò)復(fù)雜的情況。
LPC2194的特點(diǎn)如下:
①具有32位的ARM7微控制器,帶有256 KB的嵌入式高速Flash存儲(chǔ)器。32位代碼能夠在最高時(shí)鐘頻率下運(yùn)行,且功耗極低,處理速度極快。
②自帶4路互聯(lián)的CAN控制器,完全支持CAN2.0B和ISO1198-1的標(biāo)準(zhǔn),每個(gè)CAN控制器均可以實(shí)現(xiàn)1Mbps的速率。其全局驗(yàn)收濾波器可識(shí)別所有總線的11位和29位Rx標(biāo)識(shí)符,相對(duì)于SJA1000的CAN控制器有著明顯的優(yōu)勢(shì)。
2 4路CAN網(wǎng)橋的硬件設(shè)計(jì)
2.1 總體設(shè)計(jì)
由于LPC2194集成4路CAN控制器,因此能夠方便地實(shí)現(xiàn)4路CAN總線接口,既減小了系統(tǒng)的規(guī)模,又提高了系統(tǒng)的穩(wěn)定性。本設(shè)計(jì)采用LPC2194作為主控芯片,具有隔離和保護(hù)的CTM8251T作為CAN收發(fā)器。系統(tǒng)的整體結(jié)構(gòu)如圖1所示。
2.2 微控制器與CTM8251T的接口設(shè)計(jì)
CTM8251T是一款帶隔離的通用CAN收發(fā)器模塊。該模塊內(nèi)部集成了所有必需的CAN隔離及CAN收發(fā)器件,具有2 500 V的隔離功能和CAN-bus總線過(guò)壓保護(hù)作用。該模塊符合ISO11898標(biāo)準(zhǔn),因此可以與其他遵從ISO11898標(biāo)準(zhǔn)的CAN收發(fā)器相互操作。由于微控制器LPC2194集成的4路CAN控制器完全相同,因此本設(shè)計(jì)中只給出1路CAN控制器與CTM8251T的連接圖,如圖2所示。
3 4路CAN網(wǎng)橋的軟件設(shè)計(jì)
4路CAN網(wǎng)橋不同于一般的CAN中繼器,可以選擇不同的路由和不同的通信速率。本設(shè)計(jì)中,4路CAN接口均可以實(shí)現(xiàn)與其他3路之間不同路由的選擇和不同通信速率之間的轉(zhuǎn)換,極大地增強(qiáng)了網(wǎng)絡(luò)的可擴(kuò)展性。4路CAN網(wǎng)橋的工作模式分為兩種:配置模式,可以選擇路由和不同支路的CAN通信速率;正常工作模式,根據(jù)所配置的狀態(tài)來(lái)進(jìn)行工作。
3.1 配置模式
配置模式的主要工作是將配置信息寫入EEPROM中,在正常工作時(shí)可以讀取配置的信息。配置模式的程序流程如圖3所示。
3.2 正常工作模式
在配置模式下配置好各信息后,系統(tǒng)重新上電可以進(jìn)入正常工作模式。根據(jù)配置模式配置的狀態(tài),4路網(wǎng)橋?qū)W(wǎng)絡(luò)中的信息進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā)。在LPC2194 中,4路CAN控制器是同時(shí)工作的,因此能夠提高系統(tǒng)的速度和實(shí)時(shí)性。每一路的結(jié)構(gòu)和程序是相同的,因此本設(shè)計(jì)僅給出1路CAN控制器正常工作的程序設(shè)計(jì)。
為了提高系統(tǒng)的轉(zhuǎn)換速度和穩(wěn)定性,本設(shè)計(jì)采用了中斷接收和查詢發(fā)送的方式。系統(tǒng)中斷接收CAN總線上的數(shù)據(jù),并根據(jù)路由選擇和標(biāo)識(shí)符的分配選擇發(fā)送到其他3路,從而完成網(wǎng)橋的工作。系統(tǒng)主程序和中斷程序流程分別如圖4和圖5所示。
4 實(shí)驗(yàn)結(jié)果
為了驗(yàn)證系統(tǒng)的可靠性,設(shè)計(jì)了一個(gè)通信收包率的實(shí)驗(yàn)。通過(guò)PC機(jī)間隔一定的時(shí)間,向CAN網(wǎng)橋一條支路發(fā)送8字節(jié)的數(shù)據(jù),網(wǎng)橋的另一條支路向PC機(jī)回復(fù)接收到的8字節(jié)數(shù)據(jù)。通過(guò)對(duì)比發(fā)送和接收的字節(jié)數(shù)來(lái)驗(yàn)證收包率。分別以100 ms、10 ms、5 ms、1 ms的間隔來(lái)發(fā)送8字節(jié)的數(shù)據(jù),發(fā)送和接收到的字節(jié)數(shù)為:
①間隔100 ms時(shí),發(fā)送1 336個(gè)字節(jié),接收1 336個(gè)字節(jié),收包率為100%;
②間隔10 ms時(shí),發(fā)送3 376個(gè)字節(jié),接收3 376個(gè)字節(jié),收包率為100%;
③間隔5 ms時(shí),發(fā)送4 056個(gè)字節(jié),接收4 056個(gè)字節(jié),收包率為100%;
④間隔1 ms時(shí),發(fā)送5 336個(gè)字節(jié),接收5 336個(gè)字節(jié),收包率為100%。
其中,間隔1 ms時(shí)的發(fā)送和接收?qǐng)D如圖6所示。
實(shí)驗(yàn)結(jié)果表明,在以不同間隔發(fā)送數(shù)據(jù)時(shí),網(wǎng)橋都能很好地完成工作,可滿足實(shí)際應(yīng)用的需要。
結(jié) 語(yǔ)
本文設(shè)計(jì)的4路CAN網(wǎng)橋采用功能強(qiáng)大的ARM芯片LPC2194作為主控芯片,因此能夠及時(shí)地處理4路CAN總線的數(shù)據(jù)傳輸。通過(guò)具體實(shí)驗(yàn)證明,該網(wǎng)橋工作穩(wěn)定、可靠、使用方便,完全滿足現(xiàn)場(chǎng)的需求。[!--empirenews.page--]