新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于C8051F040單片機的CAN總線測試模式研究

基于C8051F040單片機的CAN總線測試模式研究

作者: 時間:2012-04-23 來源:網(wǎng)絡(luò) 收藏

摘要:現(xiàn)場已成為數(shù)據(jù)領(lǐng)域中最為活躍的熱點,被公認為最有前途的現(xiàn)場總線之一,總線節(jié)點的設(shè)計、調(diào)試是總線通訊系統(tǒng)設(shè)計的重點。在此介紹了內(nèi)部集成的CAN控制器,并設(shè)計了一個CAN通信節(jié)點,并給出了CAN節(jié)點軟件設(shè)計程序,可以用于CAN總線模塊的,節(jié)省時間。
關(guān)鍵詞:;CAN總線;測試;CAN控制器

現(xiàn)場總線能同時滿足過程控制和制造業(yè)自動化的需求,因而現(xiàn)場總線已成為數(shù)據(jù)總線領(lǐng)域中最為活躍的一個領(lǐng)域。現(xiàn)場總線的和應(yīng)用已成為數(shù)據(jù)總線領(lǐng)域的熱點。CAN總線(Controller Area Network)屬于現(xiàn)場總線的范疇,它是一種支持分布式控制和實時控制的串行通信網(wǎng)絡(luò)。CAN總線是德國博士公司在20世紀80年代為解決現(xiàn)代汽車中眾多的控制和測試儀器之間的數(shù)據(jù)通信而開發(fā)的一種串行通信協(xié)議。由于其高性能、高可靠性、及獨特的設(shè)計,CAN總線越來越受到人們的重視,其應(yīng)用領(lǐng)域不再局限于汽車工業(yè),而向過程工業(yè)、機械工業(yè)、紡織工業(yè)、農(nóng)用機械、傳感器以及航空航天等領(lǐng)域發(fā)展。被公認為最有前途的現(xiàn)場總線之一。

1 引言
Cygnal公司開發(fā)的51系列C8051F040是完全集成的混合信號系統(tǒng)型微控制器,其上集成可實現(xiàn)全功能CAN的CAN總線控制器,完全符合CAN規(guī)范2.0A和2.0B。本文利用C8051F040單片機上集成的CAN控制器,外接一個CAN收發(fā)器(PCA82C250)設(shè)計了一個CAN通信節(jié)點的硬件電路,然后詳細介紹了CAN控制器測試的實現(xiàn),可以應(yīng)用于CAN通信節(jié)點的調(diào)試測試。

2 C8051F040單片機上集成的CAN控制器
CAN控制器包括CAN核,消息存儲器,消息處理器,控制寄存器和模塊接口等幾部分。CAN核用于協(xié)議控制和消息的串并轉(zhuǎn)換;消息存儲器用于存儲消息對象和標志符;消息處理器用于控制CAN核和消息存儲器之間的數(shù)據(jù)傳輸;控制寄存器用于控制和配置CAN控制器;模塊接口用于MCU與CAN控制器之間交換數(shù)據(jù)。C8051F040單片機上集成的CAN控制器的消息存儲器上可以存儲32個消息對象,均可以被配置為發(fā)送或接收對象。CAN總線協(xié)議處理由CAN控制器獨立完成,不用MCU干預(yù),因此CAN通信占用的CPU帶寬很小,C8051F040集成CAN控制器原理如圖1所示。

本文引用地址:http://butianyuan.cn/article/171577.htm



3 CAN控制器工作模式
C8051F040單片機上集成的CAN控制器主要有2種工作模式:正常工作模式和測試模式。可以通過將CAN控制器寄存器中的Test位置1,進入測試模式。在測試模式下,測試寄存器中的Tx1,Tx0,LBack,Silent以及Basic位均是可寫的。將Test位置0后,測試寄存器的所有功能將被禁止。測試模式又可細分為沉默模式(又叫監(jiān)測模式)、回送模式、基本模式以及回送和沉默模式結(jié)合等4種工作模式。通過將測試寄存器
中的Silent位置1,可將CAN核設(shè)置為沉默模式。在沉默模式下,CAN核能夠接收有效數(shù)據(jù)幀和有效遠程幀,但是只能在總線上發(fā)送隱性位而不能進行傳輸。圖2為在沉默模式下CAN_TX和CAN_RX信號同CAN核的聯(lián)系。通過將測試寄存器的LBack位置1,可以將CAN核設(shè)置為回送模式。在回送模式下,CAN核將它發(fā)送的消息當作接收到的消息對待,并存儲在接收緩存中。


圖3為在回送模式下CAN_TX和CAN_RX信號同CAN核的聯(lián)系。通過將LBack和Silent同時置1,可以將回送模式和沉默模式結(jié)合。這種模式可以應(yīng)用于熱自檢,可以在不影響CAN系統(tǒng)運行的情況下,對CAN節(jié)點進行自檢。在這種模式下,CAN_RX引腳與CAN核斷開,CAN_TX引腳被保持為隱性位。圖4為在這種模式下CAN_TX和CAN_RX信號同CAN核的聯(lián)系。若將測試寄存器中的Basic置1,CAN核便工作于基本模式下。在這種模式下消息存儲器不工作,即不用消息隊列緩存交換數(shù)據(jù),而把IF1寄存器用作傳輸緩存,把IF2寄存器用作接收緩存。

4 CAN通信節(jié)點硬件設(shè)計
C8051F040上集成的CAN控制器是一個協(xié)議控制器,不能提供物理層驅(qū)動,需要外接CAN收發(fā)器才能掛接在CAN網(wǎng)絡(luò)上與其他節(jié)點通信。本文采用PCA82C250收發(fā)器作為物理層驅(qū)動器。若在CAN控制器和PCA82C250之間加入光藕隔離器件可以提高系統(tǒng)的穩(wěn)定性和可靠性,但這會增加系統(tǒng)的復(fù)雜性。本文的目的主要是調(diào)試CAN控制器的測試模式,所以沒有使用光藕隔離器件。CAN通信節(jié)點原理圖如圖5所示。

5 軟件設(shè)計
C8051F040的CAN通信節(jié)點的軟件設(shè)計主要包括3個部分:CAN節(jié)點初始化、報文發(fā)送和報文接收。熟悉這3部分程序的設(shè)計,就能寫出普通的CAN通信程序。
5.1 CAN初始化
初始化CAN控制器的一般步驟如下:
(1)將SFRPAGE寄存器設(shè)置為CAN0_PAGE。
(2)將CAN0CN寄存器的INIT和CCE位設(shè)置為“1”。
(3)設(shè)置時序參數(shù)。
(4)啟動CAN控制器。
由于本文要的是測試模式,所以最后要進入測試模式。


 



評論


相關(guān)推薦

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

關(guān)閉