新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN總線技術(shù)及其應(yīng)用

CAN總線技術(shù)及其應(yīng)用

作者: 時(shí)間:2016-12-21 來源:網(wǎng)絡(luò) 收藏

接收緩沖器(RXB、長度為13個(gè)字節(jié))是驗(yàn)收濾波器和CPU之間的接口,用來存儲(chǔ)從CAN總線上接收并被確認(rèn)的信息。作為接收FIFO(RXFIFO,長度為64字節(jié))的一個(gè)窗口,接收緩沖器可被CPU訪問。CPU在接收FIFO的支持下,可以在處理一條報(bào)文的同時(shí)接收其他報(bào)文。

驗(yàn)收濾波器(ACF)將一條接收到的報(bào)文標(biāo)識(shí)碼與驗(yàn)收濾波器中的預(yù)設(shè)值相比較,以決定是否接收這條報(bào)文。在純粹的接收測(cè)試中,所有的報(bào)文都保存在接收FIFO中,但只有驗(yàn)收濾波通過且無差錯(cuò)的報(bào)文,才能被保存在接收緩沖器中。

位流處理器(BSP)是一個(gè)控制發(fā)送緩沖器、接收FIFO和CAN總線之間數(shù)據(jù)流的程序裝置。它還執(zhí)行總線上的錯(cuò)誤檢測(cè)、仲載、總線填充和錯(cuò)誤處理。位時(shí)序邏輯(BTL)監(jiān)視串行的CAN總線和位時(shí)序。它在信息開頭“弱勢(shì)支配”的總線傳輸時(shí),同步CAN總線位流(硬同步),接收?qǐng)?bào)文時(shí)再次同步下一次傳送(軟同步)。

錯(cuò)誤管理邏輯(EML)負(fù)責(zé)限制傳輸層模塊的錯(cuò)誤。它接收來自位流處理器的出錯(cuò)報(bào)告,然后把有關(guān)錯(cuò)誤統(tǒng)計(jì)告訴位流處理器和接口管理邏輯(IML)。

2.2 SJA1000的內(nèi)部寄存器

SJA1000有兩種工作模式,即BasicCAN模式和PeliCAN模式。在這兩種模式中,SJA1000寄存器從數(shù)量、地址分配到功能等方面都有所區(qū)別。SJA1000在復(fù)位狀態(tài)下的默認(rèn)模式為BasicCAN模式。CAN控制器在兩種模式中又都有兩種狀態(tài)模式,分別稱為操作模式和復(fù)位模式。處在這兩種不同狀態(tài)的模式中,對(duì)寄存器的訪問操作功能是不同的。SJA1000的控制寄存器、命令寄存器、狀態(tài)寄存器、發(fā)送緩沖器(均為8位)等各種寄存器分配在0~31地址單元中。設(shè)置各寄存器中的參數(shù)可實(shí)現(xiàn)不同的操作功能。

2.3 CAN總線驅(qū)動(dòng)器PCA82C250

總線驅(qū)動(dòng)器PCA82C250是CAN控制器與物理總線之間的接口。該器件對(duì)總線提供了差動(dòng)發(fā)送能力,同時(shí)對(duì)CAN控制器提供了差動(dòng)接收能力。它可以用高達(dá)1Mbps的位速率在兩條有差動(dòng)電壓的總線上傳輸數(shù)據(jù),總線可連接110個(gè)節(jié)點(diǎn)??偩€驅(qū)動(dòng)器PCA82C250的功能參如圖3所示。

圖3 PCA82C250的功能框圖

圖3中,引腳8(Rs)用于選定PCA82C250的工作模式。PCA82C250的工作模式有3種,即高速模式、斜率控制模式和待機(jī)模式。對(duì)于高速工作模式,發(fā)送器的輸出級(jí)晶體管盡可能快速啟動(dòng)和關(guān)閉。在這種模式下,不采取任何措施限制上升和下降的斜率。采用斜率控制模式(Slope Control),可降低射頻干擾。

3 術(shù)應(yīng)用設(shè)計(jì)

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

利用術(shù)實(shí)現(xiàn)了智能小區(qū)單元門禁控制器和小區(qū)保安部門之間數(shù)據(jù)的快速、準(zhǔn)確傳遞,提高了小區(qū)智能化管理水平。圖4為小區(qū)單元門禁控制器的CAN總線通信部分電路。值得注意的是控制器AT89S52為高電平復(fù)位,而SJA1000為低電平復(fù)位。為了增強(qiáng)CAN總線各節(jié)點(diǎn)的抗干擾能力,SJA1000的TX0、RX0和PCA82C250之間設(shè)置光電耦合器TLP521—2(即圖4中的U3),實(shí)現(xiàn)了CAN總線上各用戶之間的電氣隔離。同時(shí),兩根總線與地之間分別接了一個(gè)防雷擊管P6KE6.8,當(dāng)兩輸入端與地之間出現(xiàn)瞬變干擾時(shí),通過防雷擊管的放電可起到一定的保護(hù)作用。

另外,PCA82C250的CANH和CANL之間接120Q阻抗匹配電阻是非常必要,否則會(huì)影響總線的數(shù)據(jù)傳輸距離和傳輸質(zhì)量。

3.2 CAN總線的軟件設(shè)計(jì)

術(shù)的軟件設(shè)計(jì)主要包括:CAN總線控制器的初始化、報(bào)文發(fā)送和報(bào)文接收。SJA1000總線控制器的初始化對(duì)CAN總線的正常工作非常重要。SJA1000的初始化只有在復(fù)位模式下才能進(jìn)行,初始化的關(guān)鍵是設(shè)置SJA1000內(nèi)部寄存器的參數(shù)。其包括:設(shè)置工作方式、設(shè)置接收濾波方式,設(shè)置接收屏蔽寄存器(AMR)和接收代碼寄存器(ACR)、設(shè)置波特率參數(shù)和中斷允許寄存器(IER)等。在完成SJA1000的初始化設(shè)置以后,返回工作狀態(tài),進(jìn)行報(bào)文的發(fā)送和接收通信。圖5為SJA1000的初始化程序流程圖。

圖4 CAN總線硬件電路設(shè)計(jì)

圖5 SJA1000初始化程序流程

發(fā)送報(bào)文子程序負(fù)責(zé)完成報(bào)文的發(fā)送。發(fā)送時(shí)用戶只需將待發(fā)送的報(bào)文按特定格式組合成一幀報(bào)文,送入SJA1000發(fā)送緩存區(qū)中,然后啟動(dòng)SJA1000的發(fā)送位,即可發(fā)送報(bào)文。以查詢方式發(fā)送報(bào)文的程序流程如圖6所示。



關(guān)鍵詞: CAN總線技

評(píng)論


技術(shù)專區(qū)

關(guān)閉