當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]1 引言CAN(Controller Area Network)是控制器局域網(wǎng),主要用于各種設(shè)備檢測(cè)及控制的現(xiàn)場(chǎng)總線。CAN總線是德國(guó)BOSCH公司20世紀(jì)80年代初為解決汽車中眾多控制與測(cè)試儀器間的數(shù)

1 引言

CAN(Controller Area Network)是控制器局域網(wǎng),主要用于各種設(shè)備檢測(cè)及控制的現(xiàn)場(chǎng)總線。CAN總線是德國(guó)BOSCH公司20世紀(jì)80年代初為解決汽車中眾多控制與測(cè)試儀器間的數(shù)據(jù)交換而開(kāi)發(fā)的串行數(shù)據(jù)通信協(xié)議。這是一種多主總線,無(wú)論是在高速網(wǎng)絡(luò)還是在低成本的節(jié)點(diǎn)系統(tǒng),應(yīng)用都很廣泛。由于采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,其主要特點(diǎn)如下:

●通信方式靈活,可以多主方式工作,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,不分主從。

●CAN節(jié)點(diǎn)只需對(duì)報(bào)文的標(biāo)識(shí)符濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)及全局廣播方式發(fā)送和接收數(shù)據(jù),其節(jié)點(diǎn)可分成不同的優(yōu)先級(jí),節(jié)點(diǎn)的優(yōu)先級(jí)可通過(guò)報(bào)文標(biāo)識(shí)符進(jìn)行設(shè)置,優(yōu)先級(jí)高的數(shù)據(jù)最多可在134μs內(nèi)傳輸,可以滿足不同的實(shí)時(shí)要求。

●CAN總線通信格式采用短幀格式,每幀字節(jié)數(shù)量多為8個(gè)字節(jié),可滿足一般工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測(cè)試數(shù)據(jù)的要求,同時(shí),8個(gè)字節(jié)不會(huì)占用總線時(shí)間過(guò)長(zhǎng),保證了通信的實(shí)時(shí)性。

●采用非破壞性總線仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息出現(xiàn)沖突時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)會(huì)主動(dòng)退出數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),大大節(jié)省了總線沖突仲裁時(shí)間,在網(wǎng)絡(luò)重載的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓。

●直接通信距離最大可達(dá)10 km (速率在5 kb/s以下),最高通信速率可達(dá)1 Mb/s (此時(shí)距離最長(zhǎng)為40 m);節(jié)點(diǎn)數(shù)可達(dá)110個(gè),通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。

●CAN總線采用CRC檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證數(shù)據(jù)通信的可靠性,其節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,使總線上其他節(jié)點(diǎn)的操作不受影響。

2 CAN總線系統(tǒng)結(jié)構(gòu)

由于CAN總線采用多主方式工作,所以具有與DCS(分布式控制系統(tǒng))不一樣的拓?fù)浣Y(jié)構(gòu)。其控制系統(tǒng)由計(jì)算機(jī)和智能節(jié)點(diǎn)組成,如圖1所示。該系統(tǒng)最大的特點(diǎn)是所有的節(jié)點(diǎn)都能以平等的地位掛接在總線上。1個(gè)總線節(jié)點(diǎn)通常至少包括3部分:控制節(jié)點(diǎn)任務(wù)的單片機(jī)、總線控制器及總線驅(qū)動(dòng)器。本文主要介紹CAN總線智能節(jié)點(diǎn)的簡(jiǎn)單設(shè)計(jì)。智能節(jié)點(diǎn)由89C5l型單片機(jī)、SJA1000型總線控制器、82C250型總線驅(qū)動(dòng)器及PC構(gòu)成。在實(shí)際應(yīng)用中可以連接不同的傳感器件,完成數(shù)據(jù)的采集和傳輸。

3 硬件電路設(shè)計(jì)

筆者設(shè)計(jì)的CAN總線系統(tǒng)智能節(jié)點(diǎn)采用Intel公司的AT89C51型單片機(jī)作為節(jié)點(diǎn)的微處理器。AT89C51具有64KB的尋址空間。本身不帶CAN控制器,所以要實(shí)現(xiàn)與CAN總線之間的通信需外加CAN控制器和CAN驅(qū)動(dòng)器。在本設(shè)計(jì)中采用SJAl000型CAN總線通信控制器和AT82C250型總線驅(qū)動(dòng)器。

CAN總線系統(tǒng)智能節(jié)點(diǎn)硬件電路如圖2所示。從圖2可以看出,硬件電路主要由AT89C51、SJAl000、AT82C250、6N137型高速光電耦合器和MAX202型電平轉(zhuǎn)換器件組成。AT89C51負(fù)責(zé)SJAl000的初始化,控制SJAl000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。MAX202用于TTL電平與RS232電平的相互轉(zhuǎn)換,可以將接收的數(shù)據(jù)顯示在PC上。SJAl000的ADO-AD7連接到AT89C51的P0口,CS連接到AT89C51的P2.7。P2.7為0時(shí),CPU片外存儲(chǔ)器地址可選中SJA1000,CPU通過(guò)這些地址可對(duì)SJAl000執(zhí)行相應(yīng)的讀/寫操作。

SJAl000的RD、WR、ALE分別與AT89C51的相應(yīng)引腳相連,SJAl000的INT接AT89C51的INTl,AT89C51也可通過(guò)中斷方式訪問(wèn)SJA1000。

為了增強(qiáng)總線節(jié)點(diǎn)的抗干擾能力,SJAl000的TX0和RX0并不直接與82C250的TXD和RXD相接,而是通過(guò)6N137與AT82C250相接,這樣,很好地實(shí)現(xiàn)了總線上各節(jié)點(diǎn)間的電氣隔離。不過(guò),光耦電路用的2個(gè)電源VCC和VDD必須隔離。電源的完全隔離可采用小功率電源隔離模塊實(shí)現(xiàn)。這雖然增加了接口電路的復(fù)雜性,但卻提高了節(jié)點(diǎn)的穩(wěn)定性和安全性。

AT82C250與總線的接口也采取了一定的安全和抗干擾措施。

AT82C250的CANH引腳和CANL引腳各自通過(guò)1只5 Ω的電阻器與總線相連,電阻器可起到一定的限流作用,保護(hù)AT82C250免受過(guò)電流沖擊。CANH和CANL與地之間并聯(lián)了2只30pF的小電容器,可以濾除總線上的高頻干擾并具有一定的防電磁輻射能力。另外,在2條CAN總線輸入端與地之間分別接了1個(gè)防雷擊管,當(dāng)2個(gè)輸入端與地之間出現(xiàn)瞬變干擾時(shí),防雷擊管的放電起到一定的保護(hù)作用。AT82C250的RS引腳接1只斜率電阻器,其阻值的大小可根據(jù)總線通信速度適當(dāng)調(diào)整,一般在16 kΩ~140 kΩ之間。

4 軟件設(shè)計(jì)

4.1 網(wǎng)絡(luò)通信規(guī)則

CAN總線為多主工作方式,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息而不分主從,通信方式靈活。為禁止總線沖突,CAN總線采用非破壞性總線仲裁技術(shù),根據(jù)需要將各個(gè)節(jié)點(diǎn)設(shè)定為不同的優(yōu)先級(jí),并以標(biāo)識(shí)符ID標(biāo)定,其值越小,優(yōu)先級(jí)越高??偩€的節(jié)點(diǎn)之間可以進(jìn)行實(shí)時(shí)相互通信,當(dāng)1個(gè)節(jié)點(diǎn)需要接收另1個(gè)節(jié)點(diǎn)的數(shù)據(jù)時(shí),只需把其代碼寄存器的內(nèi)容設(shè)置成和另1節(jié)點(diǎn)的標(biāo)識(shí)符一致即可。如果對(duì)于標(biāo)識(shí)符和其代碼寄存器的內(nèi)容設(shè)置不一致,則節(jié)點(diǎn)所發(fā)的數(shù)據(jù)不予理會(huì)。

4.2 SJAl000的工作模式設(shè)置

SJAl000有二種工作模式:復(fù)位模式和工作模式。在復(fù)位模式下可對(duì)接收代碼、接收屏蔽、總線時(shí)序寄存器O和1及輸出控制寄存器進(jìn)行設(shè)置。一般在CAN初始化時(shí)完成對(duì)以上寄存器的設(shè)置,當(dāng)CAN進(jìn)入工作模式后,它們的值就不再變化。在工作模式下可進(jìn)行數(shù)據(jù)的發(fā)送和接收。特別要注意的是:當(dāng)硬件復(fù)位或控制器掉線時(shí)會(huì)自動(dòng)進(jìn)入復(fù)位模式,這樣就不能進(jìn)行正常的CAN通信,這就要求對(duì)復(fù)位位進(jìn)行監(jiān)控。當(dāng)發(fā)生硬件復(fù)位或控制器掉線而進(jìn)入復(fù)位模式時(shí),要求把復(fù)位位置為0并進(jìn)入工作模式,這樣CAN就能進(jìn)行正常發(fā)送和接收。

4.3 基于C語(yǔ)言的軟件編程

系統(tǒng)軟件的設(shè)計(jì)思想是系統(tǒng)上電后首先對(duì)AT89C51和SJAl000進(jìn)行初始化,以確定工作主頻、波特率、輸出特性等。其中任一智能節(jié)點(diǎn)可以利用查詢方式通過(guò)SJAl000從CAN總線上獲取所需的數(shù)據(jù)并把該數(shù)據(jù)傳送到PC上顯示,同時(shí)可以向總線上發(fā)送數(shù)據(jù)以供其他智能節(jié)點(diǎn)接收顯示。以下是具體實(shí)現(xiàn)程序。

以上就是進(jìn)行試驗(yàn)的程序,其中reg51.h是為AT89C52主控制器專門編寫的庫(kù)函數(shù),它在Keil軟件中是現(xiàn)成的,只要用#include語(yǔ)句包括進(jìn)來(lái)即可;intrins.h是為以后調(diào)用空函數(shù)_nop_()作準(zhǔn)備,它里面包括了類似于匯編語(yǔ)言的NOP語(yǔ)句;CAN_TOUWENJIAN.h是頭文件,用于對(duì)相關(guān)寄存器的定義。Tx_DATA_CAN()函數(shù)用于向總線發(fā)送數(shù)據(jù),REC_DATA_CAN()函數(shù)用于從總線接收數(shù)據(jù),SERIAL()用于PC與智能節(jié)點(diǎn)間的相互通信。限于篇幅,發(fā)送子程序和接收子程序沒(méi)有具體給出。[!--empirenews.page--]

5 結(jié)束語(yǔ)

在CAN總線的開(kāi)發(fā)試驗(yàn)過(guò)程中,筆者掌握了CAN總線智能節(jié)點(diǎn)的設(shè)計(jì),并在實(shí)踐中進(jìn)行了應(yīng)用。通過(guò)應(yīng)用證明,CAN總線具有以下優(yōu)點(diǎn):組網(wǎng)自由,擴(kuò)展性強(qiáng);自動(dòng)錯(cuò)誤界定,簡(jiǎn)化了通信的操作;可根據(jù)數(shù)據(jù)內(nèi)容確定優(yōu)先權(quán),解決通信的實(shí)時(shí)性問(wèn)題。此外,CAN網(wǎng)絡(luò)已在眾多工業(yè)控制系統(tǒng)中應(yīng)用,尤其在傳輸速率較高而且對(duì)實(shí)時(shí)性及可靠性要求高的場(chǎng)合,CAN總線將有廣闊的應(yīng)用前景。本文來(lái)源于《某型控制系統(tǒng)信號(hào)信息傳輸改進(jìn)研究》課題組,組長(zhǎng)是劉永鴻教授,副組長(zhǎng)是張文宏副教授,主要參與者有黃晨副教授、趙勇講師、李金剛研究生。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉