CAN控制器與收發(fā)器的工作原理及分類
控制器局域網(wǎng)總線(CAN,Controller Area Network)是一種用于實時應(yīng)用的串行通訊協(xié)議總線,它可以使用雙絞線來傳輸信號,是世界上應(yīng)用最廣泛的現(xiàn)場總線之一。CAN協(xié)議用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動化和工業(yè)應(yīng)用。CAN協(xié)議的特性包括完整性的串行數(shù)據(jù)通訊、提供實時支持、傳輸速率高達(dá)1Mb/s、同時具有11位的尋址以及檢錯能力??刂破骶钟蚓W(wǎng)CAN( Controller Area Network)屬于現(xiàn)場總線的范疇,是一種有效支持分布式控制系統(tǒng)的串行通信網(wǎng)絡(luò)。是由德國博世公司在20世紀(jì)80年代專門為汽車行業(yè)開發(fā)的一種串行通信總線。由于其高性能、高可靠性以及獨特的設(shè)計而越來越受到人們的重視,被廣泛應(yīng)用于諸多領(lǐng)域。而且能夠檢測出產(chǎn)生的任何錯誤。當(dāng)信號傳輸距離達(dá)到10km時,CAN仍可提供高達(dá)50kbit/s的數(shù)據(jù)傳輸速率。由于CAN總線具有很高的實時性能和應(yīng)用范圍,從位速率最高可達(dá)1Mbps的高速網(wǎng)絡(luò)到低成本多線路的50Kbps網(wǎng)絡(luò)都可以任意搭配。因此,CAN己經(jīng)在汽車業(yè)、航空業(yè)、工業(yè)控制、安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。
CAN是一種廣泛應(yīng)用于汽車和工業(yè)領(lǐng)域的通信協(xié)議。它的工作原理基于串行通信和差分信號傳輸。
CAN協(xié)議使用了分布式的通信方式,其中包括多個節(jié)點和一個總線。每個節(jié)點都可以發(fā)送和接收消息,而總線負(fù)責(zé)將消息傳輸?shù)剿羞B接的節(jié)點上。
CAN協(xié)議使用一種稱為"非破壞性位定時"的機(jī)制來解決沖突。每個節(jié)點在發(fā)送消息之前會監(jiān)測總線上的電平狀態(tài),并根據(jù)電平狀態(tài)來確定是否有其他節(jié)點正在發(fā)送消息。如果有沖突發(fā)生,節(jié)點會停止發(fā)送消息并等待一個隨機(jī)的時間后再次嘗試發(fā)送。
CAN協(xié)議使用兩根線進(jìn)行數(shù)據(jù)傳輸,分別為CAN_H和CAN_L。CAN_H和CAN_L之間的電壓差表示數(shù)據(jù)的邏輯值,通過差分信號傳輸可以有效抵抗電磁干擾。
在CAN網(wǎng)絡(luò)中,每個節(jié)點都有一個唯一的標(biāo)識符(ID),用于識別消息的發(fā)送者和接收者。當(dāng)一個節(jié)點想要發(fā)送消息時,它首先檢查總線上是否有其他節(jié)點正在發(fā)送消息。如果沒有沖突,該節(jié)點就可以發(fā)送消息。
接收消息的節(jié)點會監(jiān)聽總線上的數(shù)據(jù),并根據(jù)消息的標(biāo)識符判斷是否需要接收該消息。如果節(jié)點需要接收消息,則會將其存儲在接收緩沖區(qū)中供處理器讀取。
本設(shè)計分別將協(xié)議控制器通過串行數(shù)據(jù)輸出線TX和串行數(shù)據(jù)輸入線RX連接到光電隔離器TLP2631的3管腳和7管腳,實現(xiàn)了光電隔離。利用CAN收發(fā)器。PCA82C250將從光電隔離器TLP2631輸出的差動的總線信號轉(zhuǎn)換成邏輯信號電平并在RxD輸出,接收到的串行數(shù)據(jù)通過與總線電纜相連的差動發(fā)送和接收總線終端CANH和CANL將數(shù)據(jù)送到總線協(xié)議控制器譯碼,完成了普通電平到顯、隱性電平的傳輸。CAN總線獲取顯、隱性電平后,再經(jīng)過PCA82C250和光電耦合器TLP2631將數(shù)據(jù)傳輸給送經(jīng)驅(qū)動器、卷取驅(qū)動器的CAN接收端口,從而實現(xiàn)了基于CAN總線的數(shù)據(jù)傳輸。信號數(shù)據(jù)傳輸過程中,存在著擾動,為此本設(shè)計采取以下措施來克服干擾的影響:
1)為了滿足光電隔離的要求,本設(shè)計在協(xié)議控制器和CAN收發(fā)器之間加入了TLP2631光電隔離器,有效地抑制了傳輸線中由于耦合電容、電感造成的干擾,實現(xiàn)了不同電平的轉(zhuǎn)換。
2)為了匹配數(shù)據(jù)總線的阻抗和提高數(shù)據(jù)傳輸?shù)目垢蓴_能力,在CAN總線終端的兩端加有兩個120 Ω總線阻抗匹配電阻。若不接這兩個電阻,有時甚至無法通信。采用屏蔽雙絞線以減少現(xiàn)場環(huán)境對結(jié)點的干擾。
送經(jīng)卷取系統(tǒng)的軟件設(shè)計是實現(xiàn)數(shù)據(jù)高效通信的關(guān)鍵,本文的軟件部分主要由數(shù)據(jù)采集程序和CAN總線通信程序設(shè)計兩部分組成。其中數(shù)據(jù)采集程序可參考文獻(xiàn),本文重點論述CAN通訊程序的設(shè)計。軟件開發(fā)環(huán)境,選用ADS1.2集成開發(fā)環(huán)境,ADS是ARM微控制器集成開發(fā)工具。ADS1.2支持ARM10之前所有ARM系列,支持軟件調(diào)試及JTAG硬件仿真調(diào)試,支持匯編語言、C/C++源程序;具有編譯效率高、系統(tǒng)庫功能強(qiáng)等特點;可以在WINDOWS 98、WINDOWS XP、WINDOWS 2000上運行。
控制器局域網(wǎng)總線(CAN,Controller Area Network)是一種用于實時應(yīng)用的串行通訊協(xié)議總線,它可以使用雙絞線來傳輸信號,是世界上應(yīng)用最廣泛的現(xiàn)場總線之一。CAN協(xié)議用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動化和工業(yè)應(yīng)用。CAN協(xié)議的特性包括完整性的串行數(shù)據(jù)通訊、提供實時支持、傳輸速率高達(dá)1Mb/s、同時具有11位的尋址以及檢錯能力。
隨著CAN總線在各個行業(yè)和領(lǐng)域的廣泛應(yīng)用,對其的通信格式標(biāo)準(zhǔn)化也提出了更嚴(yán)格的要求。1991年CAN總線技術(shù)規(guī)范(Version2.0)制定并發(fā)布。該技術(shù)規(guī)范共包括A和B兩個部分。其中2.0A給出了CAN報文標(biāo)準(zhǔn)格式,而2.0B給出了標(biāo)準(zhǔn)的和擴(kuò)展的兩種格式。美國的汽車工程學(xué)會SAE在2000年提出了J1939協(xié)議,此后該協(xié)議成為了貨車和客車中控制器局域網(wǎng)的通用標(biāo)準(zhǔn)。CAN總線技術(shù)也在不斷發(fā)展。傳統(tǒng)的CAN是基于事件觸發(fā)的,信息傳輸時間的不確定性和優(yōu)先級反轉(zhuǎn)是它固有的缺陷。當(dāng)總線上傳輸消息密度較小時,這些缺陷對系統(tǒng)的實時性影響較小;但隨著在總線上傳輸消息密度的增加,系統(tǒng)實時性能會急劇下降。為了滿足汽車控制對實時性和傳輸消息密度不斷增長的需要,改善CAN總線的實時性能非常必要。于是,傳統(tǒng)CAN與時間觸發(fā)機(jī)制相結(jié)合產(chǎn)生了TTCAN(Time-Triggered CAN),ISO11898-4己包含了TTCAN。 TTCAN總線和傳統(tǒng)CAN總線系統(tǒng)的區(qū)別是:總線上不同的消息定義了不同的時間槽(Timer Slot)。
CAN總線,作為一種分布式的控制總線,其結(jié)構(gòu)相對簡潔。在總線上,每個節(jié)點都配備MCU控制器,負(fù)責(zé)處理CAN總線數(shù)據(jù)并執(zhí)行特定功能。僅需兩根線纜(CAN_H和CAN_L)即可將各節(jié)點連接起來,這種設(shè)計不僅節(jié)省了線纜資源,還大大提高了系統(tǒng)的可靠性。
遵循ISO11898標(biāo)準(zhǔn),CAN總線的拓?fù)浣Y(jié)構(gòu)采用干線和支線相結(jié)合的方式。干線兩端均配備了120歐姆的終端電阻,以確保信號的穩(wěn)定傳輸。節(jié)點則通過無端接的支線與總線相連,這種設(shè)計使得節(jié)點能夠靈活地加入或退出總線網(wǎng)絡(luò)。同時,標(biāo)準(zhǔn)還對干線和支線的各項參數(shù)進(jìn)行了詳細(xì)說明,為系統(tǒng)的設(shè)計和優(yōu)化提供了有力支持。
在CAN總線的拓?fù)浣Y(jié)構(gòu)中,線性網(wǎng)絡(luò)占據(jù)著重要地位。通過干線和支線的巧妙結(jié)合,總線網(wǎng)絡(luò)得以靈活構(gòu)建。為了確保信號的穩(wěn)定傳輸,干線兩端均配備了120歐姆的終端電阻。同時,標(biāo)準(zhǔn)化的設(shè)計使得每個節(jié)點都能輕松地加入或退出總線網(wǎng)絡(luò),為系統(tǒng)的擴(kuò)展性提供了有力保障。此外,表1還詳細(xì)列出了干線與支線的網(wǎng)絡(luò)長度參數(shù),為系統(tǒng)的設(shè)計和優(yōu)化提供了詳盡的參考依據(jù)。
在實際應(yīng)用中,CAN控制器和收發(fā)器常通過CAN中繼器將分支網(wǎng)絡(luò)與干線網(wǎng)絡(luò)相連。每條分支網(wǎng)絡(luò)均遵循ISO11898標(biāo)準(zhǔn),從而有效擴(kuò)展了CAN總線的通信距離,并增加了節(jié)點數(shù)量。