<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于C8051F040單片機的CAN總線(xiàn)測試模式研究

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

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

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

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

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

本文引用地址:http://dyxdggzs.com/article/171577.htm



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


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

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

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


 



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>