CAN總線(xiàn)技術(shù)及其應用
接收緩沖器(RXB、長(cháng)度為13個(gè)字節)是驗收濾波器和CPU之間的接口,用來(lái)存儲從CAN總線(xiàn)上接收并被確認的信息。作為接收FIFO(RXFIFO,長(cháng)度為64字節)的一個(gè)窗口,接收緩沖器可被CPU訪(fǎng)問(wèn)。CPU在接收FIFO的支持下,可以在處理一條報文的同時(shí)接收其他報文。
驗收濾波器(ACF)將一條接收到的報文標識碼與驗收濾波器中的預設值相比較,以決定是否接收這條報文。在純粹的接收測試中,所有的報文都保存在接收FIFO中,但只有驗收濾波通過(guò)且無(wú)差錯的報文,才能被保存在接收緩沖器中。
位流處理器(BSP)是一個(gè)控制發(fā)送緩沖器、接收FIFO和CAN總線(xiàn)之間數據流的程序裝置。它還執行總線(xiàn)上的錯誤檢測、仲載、總線(xiàn)填充和錯誤處理。位時(shí)序邏輯(BTL)監視串行的CAN總線(xiàn)和位時(shí)序。它在信息開(kāi)頭“弱勢支配”的總線(xiàn)傳輸時(shí),同步CAN總線(xiàn)位流(硬同步),接收報文時(shí)再次同步下一次傳送(軟同步)。
錯誤管理邏輯(EML)負責限制傳輸層模塊的錯誤。它接收來(lái)自位流處理器的出錯報告,然后把有關(guān)錯誤統計告訴位流處理器和接口管理邏輯(IML)。
2.2 SJA1000的內部寄存器
SJA1000有兩種工作模式,即BasicCAN模式和PeliCAN模式。在這兩種模式中,SJA1000寄存器從數量、地址分配到功能等方面都有所區別。SJA1000在復位狀態(tài)下的默認模式為BasicCAN模式。CAN控制器在兩種模式中又都有兩種狀態(tài)模式,分別稱(chēng)為操作模式和復位模式。處在這兩種不同狀態(tài)的模式中,對寄存器的訪(fǎng)問(wèn)操作功能是不同的。SJA1000的控制寄存器、命令寄存器、狀態(tài)寄存器、發(fā)送緩沖器(均為8位)等各種寄存器分配在0~31地址單元中。設置各寄存器中的參數可實(shí)現不同的操作功能。
2.3 CAN總線(xiàn)驅動(dòng)器PCA82C250
總線(xiàn)驅動(dòng)器PCA82C250是CAN控制器與物理總線(xiàn)之間的接口。該器件對總線(xiàn)提供了差動(dòng)發(fā)送能力,同時(shí)對CAN控制器提供了差動(dòng)接收能力。它可以用高達1Mbps的位速率在兩條有差動(dòng)電壓的總線(xiàn)上傳輸數據,總線(xiàn)可連接110個(gè)節點(diǎn)??偩€(xiàn)驅動(dòng)器PCA82C250的功能參如圖3所示。
圖3 PCA82C250的功能框圖
圖3中,引腳8(Rs)用于選定PCA82C250的工作模式。PCA82C250的工作模式有3種,即高速模式、斜率控制模式和待機模式。對于高速工作模式,發(fā)送器的輸出級晶體管盡可能快速啟動(dòng)和關(guān)閉。在這種模式下,不采取任何措施限制上升和下降的斜率。采用斜率控制模式(Slope Control),可降低射頻干擾。
3 CAN總線(xiàn)技術(shù)應用設計
3.1硬件電路設計
利用CAN總線(xiàn)技術(shù)實(shí)現了智能小區單元門(mén)禁控制器和小區保安部門(mén)之間數據的快速、準確傳遞,提高了小區智能化管理水平。圖4為小區單元門(mén)禁控制器的CAN總線(xiàn)通信部分電路。值得注意的是控制器AT89S52為高電平復位,而SJA1000為低電平復位。為了增強CAN總線(xiàn)各節點(diǎn)的抗干擾能力,SJA1000的TX0、RX0和PCA82C250之間設置光電耦合器TLP521—2(即圖4中的U3),實(shí)現了CAN總線(xiàn)上各用戶(hù)之間的電氣隔離。同時(shí),兩根總線(xiàn)與地之間分別接了一個(gè)防雷擊管P6KE6.8,當兩輸入端與地之間出現瞬變干擾時(shí),通過(guò)防雷擊管的放電可起到一定的保護作用。
另外,PCA82C250的CANH和CANL之間接120Q阻抗匹配電阻是非常必要,否則會(huì )影響總線(xiàn)的數據傳輸距離和傳輸質(zhì)量。
3.2 CAN總線(xiàn)的軟件設計
CAN總線(xiàn)技術(shù)的軟件設計主要包括:CAN總線(xiàn)控制器的初始化、報文發(fā)送和報文接收。SJA1000總線(xiàn)控制器的初始化對CAN總線(xiàn)的正常工作非常重要。SJA1000的初始化只有在復位模式下才能進(jìn)行,初始化的關(guān)鍵是設置SJA1000內部寄存器的參數。其包括:設置工作方式、設置接收濾波方式,設置接收屏蔽寄存器(AMR)和接收代碼寄存器(ACR)、設置波特率參數和中斷允許寄存器(IER)等。在完成SJA1000的初始化設置以后,返回工作狀態(tài),進(jìn)行報文的發(fā)送和接收通信。圖5為SJA1000的初始化程序流程圖。
圖4 CAN總線(xiàn)硬件電路設計
圖5 SJA1000初始化程序流程
發(fā)送報文子程序負責完成報文的發(fā)送。發(fā)送時(shí)用戶(hù)只需將待發(fā)送的報文按特定格式組合成一幀報文,送入SJA1000發(fā)送緩存區中,然后啟動(dòng)SJA1000的發(fā)送位,即可發(fā)送報文。以查詢(xún)方式發(fā)送報文的程序流程如圖6所示。
評論