控制器局域網(wǎng)系統(tǒng)CAN總線的實(shí)現(xiàn)
控制器局域網(wǎng)總線(CAN,Controller Area Network)是一種用于實(shí)時(shí)應(yīng)用的串行通訊協(xié)議總線,它可以使用雙絞線來(lái)傳輸信號(hào),是世界上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。CAN協(xié)議用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動(dòng)化和工業(yè)應(yīng)用。CAN協(xié)議的特性包括完整性的串行數(shù)據(jù)通訊、提供實(shí)時(shí)支持、傳輸速率高達(dá)1Mb/s、同時(shí)具有11位的尋址以及檢錯(cuò)能力。
隨著CAN總線在各個(gè)行業(yè)和領(lǐng)域的廣泛應(yīng)用,對(duì)其的通信格式標(biāo)準(zhǔn)化也提出了更嚴(yán)格的要求。1991年CAN總線技術(shù)規(guī)范(Version2.0)制定并發(fā)布。該技術(shù)規(guī)范共包括A和B兩個(gè)部分。其中2.0A給出了CAN報(bào)文標(biāo)準(zhǔn)格式,而2.0B給出了標(biāo)準(zhǔn)的和擴(kuò)展的兩種格式。美國(guó)的汽車工程學(xué)會(huì)SAE在2000年提出了J1939協(xié)議,此后該協(xié)議成為了貨車和客車中控制器局域網(wǎng)的通用標(biāo)準(zhǔn)。CAN總線技術(shù)也在不斷發(fā)展。傳統(tǒng)的CAN是基于事件觸發(fā)的,信息傳輸時(shí)間的不確定性和優(yōu)先級(jí)反轉(zhuǎn)是它固有的缺陷。當(dāng)總線上傳輸消息密度較小時(shí),這些缺陷對(duì)系統(tǒng)的實(shí)時(shí)性影響較小;但隨著在總線上傳輸消息密度的增加,系統(tǒng)實(shí)時(shí)性能會(huì)急劇下降。為了滿足汽車控制對(duì)實(shí)時(shí)性和傳輸消息密度不斷增長(zhǎng)的需要,改善CAN總線的實(shí)時(shí)性能非常必要。于是,傳統(tǒng)CAN與時(shí)間觸發(fā)機(jī)制相結(jié)合產(chǎn)生了TTCAN(Time-Triggered CAN),ISO11898-4己包含了TTCAN。 TTCAN總線和傳統(tǒng)CAN總線系統(tǒng)的區(qū)別是:總線上不同的消息定義了不同的時(shí)間槽(Timer Slot)。
電子送經(jīng)卷取系統(tǒng)是紡織工藝流程的一個(gè)重要環(huán)節(jié),其控制性能的優(yōu)劣直接影響著工藝過程及織機(jī)的效率。然而,通信又是該系統(tǒng)的關(guān)鍵技術(shù),使得電子送經(jīng)卷取系統(tǒng)通信的設(shè)計(jì)受到國(guó)內(nèi)外紡織公司(德國(guó)的百格拉,意大利的舒美特等公司)的高度重視,提出了多種設(shè)計(jì)方案。然而,中國(guó)用戶仍然面臨著劍桿織機(jī)送經(jīng)和卷取系統(tǒng)的價(jià)格昂貴、操作復(fù)雜,數(shù)據(jù)傳輸效率低等問題。
CAN(控制器局域網(wǎng))總線是一種有效支持分布式控制和實(shí)時(shí)控制的串行通信網(wǎng)絡(luò),與其它通訊相比,其數(shù)據(jù)通信具有突出的靈活性和可靠性。ARM控制器可以滿足一般的工業(yè)控制的需要,其具有減少系統(tǒng)硬件設(shè)計(jì)的復(fù)雜度和性價(jià)比高等優(yōu)點(diǎn)而得到廣泛應(yīng)用。
1 送經(jīng)卷取系統(tǒng)的總體設(shè)計(jì)
根據(jù)技術(shù)及經(jīng)濟(jì)需求,本設(shè)計(jì)選取ARM7-LPC2194為主控制器,作為CAN網(wǎng)絡(luò)節(jié)點(diǎn)控制器,(其中LPC2194內(nèi)部集成有四路CAN控制器而不必外接CAN控制器),應(yīng)用CAN總線技術(shù)和接口電路,實(shí)現(xiàn)了節(jié)點(diǎn)間的高效數(shù)據(jù)交換和傳輸。系統(tǒng)總體框圖如圖1所示。

2 系統(tǒng)的硬件設(shè)計(jì)
2.1 系統(tǒng)CAN總線的實(shí)現(xiàn)
送經(jīng)卷取系統(tǒng)主要由內(nèi)部集成有四路CAN控制器的ARM7-LPC2194芯片、光電隔離器TLP2631、CAN收發(fā)器PCA82C250及送經(jīng)卷取驅(qū)動(dòng)器等元件組成,其結(jié)構(gòu)如圖2所示。

本設(shè)計(jì)分別將協(xié)議控制器通過串行數(shù)據(jù)輸出線TX和串行數(shù)據(jù)輸入線RX連接到光電隔離器TLP2631的3管腳和7管腳,實(shí)現(xiàn)了光電隔離。利用CAN收發(fā)器。PCA82C250將從光電隔離器TLP2631輸出的差動(dòng)的總線信號(hào)轉(zhuǎn)換成邏輯信號(hào)電平并在RxD輸出,接收到的串行數(shù)據(jù)通過與總線電纜相連的差動(dòng)發(fā)送和接收總線終端CANH和CANL將數(shù)據(jù)送到總線協(xié)議控制器譯碼,完成了普通電平到顯、隱性電平的傳輸。CAN總線獲取顯、隱性電平后,再經(jīng)過PCA82C250和光電耦合器TLP2631將數(shù)據(jù)傳輸給送經(jīng)驅(qū)動(dòng)器、卷取驅(qū)動(dòng)器的CAN接收端口,從而實(shí)現(xiàn)了基于CAN總線的數(shù)據(jù)傳輸。
2.2 系統(tǒng)抗干擾的設(shè)計(jì)
信號(hào)數(shù)據(jù)傳輸過程中,存在著擾動(dòng),為此本設(shè)計(jì)采取以下措施來(lái)克服干擾的影響:
1)為了滿足光電隔離的要求,本設(shè)計(jì)在協(xié)議控制器和CAN收發(fā)器之間加入了TLP2631光電隔離器,有效地抑制了傳輸線中由于耦合電容、電感造成的干擾,實(shí)現(xiàn)了不同電平的轉(zhuǎn)換。
2)為了匹配數(shù)據(jù)總線的阻抗和提高數(shù)據(jù)傳輸?shù)目垢蓴_能力,在CAN總線終端的兩端加有兩個(gè)120 Ω總線阻抗匹配電阻。若不接這兩個(gè)電阻,有時(shí)甚至無(wú)法通信。采用屏蔽雙絞線以減少現(xiàn)場(chǎng)環(huán)境對(duì)結(jié)點(diǎn)的干擾。
3 系統(tǒng)的軟件設(shè)計(jì)
送經(jīng)卷取系統(tǒng)的軟件設(shè)計(jì)是實(shí)現(xiàn)數(shù)據(jù)高效通信的關(guān)鍵,本文的軟件部分主要由數(shù)據(jù)采集程序和CAN總線通信程序設(shè)計(jì)兩部分組成。其中數(shù)據(jù)采集程序可參考文獻(xiàn),本文重點(diǎn)論述CAN通訊程序的設(shè)計(jì)。
3.1 開發(fā)環(huán)境
軟件開發(fā)環(huán)境,選用ADS1.2集成開發(fā)環(huán)境,ADS是ARM微控制器集成開發(fā)工具。ADS1.2支持ARM10之前所有ARM系列,支持軟件調(diào)試及JTAG硬件仿真調(diào)試,支持匯編語(yǔ)言、C/C++源程序;具有編譯效率高、系統(tǒng)庫(kù)功能強(qiáng)等特點(diǎn);可以在WINDOWS 98、WINDOWS XP、WINDOWS 2000上運(yùn)行。
控制器局域網(wǎng)
1. ?基本定義與開發(fā)背景? ?12CAN總線全稱控制器局域網(wǎng)(Controller Area Network),是德國(guó)博世公司為解決汽車電子系統(tǒng)中復(fù)雜線束問題而設(shè)計(jì)的串行通信協(xié)議。其核心目標(biāo)是減少線束數(shù)量,實(shí)現(xiàn)多設(shè)備間高效、可靠的數(shù)據(jù)交換。
2. ?核心特點(diǎn)?
?多主通信?:所有節(jié)點(diǎn)平等,可隨時(shí)主動(dòng)發(fā)送數(shù)據(jù),無(wú)需主從區(qū)分。
?非破壞性仲裁?:通過優(yōu)先級(jí)(ID值越小優(yōu)先級(jí)越高)解決總線沖突,高優(yōu)先級(jí)節(jié)點(diǎn)可繼續(xù)傳輸。
?高可靠性?:具備錯(cuò)誤檢測(cè)(CRC校驗(yàn))、自動(dòng)重發(fā)、故障節(jié)點(diǎn)隔離等功能。
?靈活拓?fù)?:支持雙絞線、同軸電纜或光纖,成本低且抗干擾強(qiáng)。
3. ?技術(shù)參數(shù)?
?通信速率與距離?:最高1Mbps(40m內(nèi)),遠(yuǎn)距離時(shí)速率降低(如5Kbps下可達(dá)10km)。
?節(jié)點(diǎn)容量?:理論支持無(wú)限節(jié)點(diǎn),實(shí)際可達(dá)110個(gè)。
?幀結(jié)構(gòu)?:短幀設(shè)計(jì)(8字節(jié)有效數(shù)據(jù)),包含數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀等5種類型。
4. ?應(yīng)用領(lǐng)域?
?汽車電子?:如發(fā)動(dòng)機(jī)控制、車身網(wǎng)絡(luò)等,是現(xiàn)代車輛的標(biāo)準(zhǔn)協(xié)議。
?工業(yè)控制?:分布式系統(tǒng)(如PLC、傳感器網(wǎng)絡(luò))。
?智能交通?:交通信號(hào)控制、車載設(shè)備互聯(lián)等。
5. ?協(xié)議標(biāo)準(zhǔn)與物理層?
?國(guó)際標(biāo)準(zhǔn)?:ISO 11898(高速CAN)和ISO 11519(低速容錯(cuò)CAN)。
?電平邏輯?:差分信號(hào)(CAN_H與CAN_L的電位差),顯性電平(邏輯0)優(yōu)先于隱性電平(邏輯1)。
?總結(jié)?:CAN總線以其高實(shí)時(shí)性、可靠性和靈活性成為分布式控制系統(tǒng)的核心通信方案,尤其在汽車電子和工業(yè)自動(dòng)化領(lǐng)域占據(jù)主導(dǎo)地位。