国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于C8051F040的CAN總線通訊系統(tǒng)設(shè)計

基于C8051F040的CAN總線通訊系統(tǒng)設(shè)計

——
作者:田奕1,劉秀紅2 時間:2007-01-26 來源:《現(xiàn)代電子技術(shù)》 收藏


1 引言

本文引用地址:http://m.ptau.cn/article/21320.htm

can總線,即控制器局域網(wǎng)總線,是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。由于其高性能、高可靠性及獨特的設(shè)計和適宜的價格,而廣泛應(yīng)用于工業(yè)現(xiàn)場控制、智能樓宇、醫(yī)療器械、交通工具以及傳感器等領(lǐng)域,并已被公認(rèn)為幾種最有前途的現(xiàn)場總線之一。

目前can系統(tǒng)使用較多的是獨立can控制器,利用單片機的并口控制can控制器,除了8條數(shù)據(jù)線外,還需要幾條控制線。采取這樣的設(shè)計不但占用了單片機的引腳,而且增加了電路板的面積。同時,由于采用了并行通訊,降低了系統(tǒng)的可靠性,因此,采取系統(tǒng)內(nèi)部集成can控制器的單片機勢在必行。

本文已cygnal公司的內(nèi)部集成can控制器的c8051f040單片機為基礎(chǔ),介紹了can總線的通訊接口的具體設(shè)計及其應(yīng)用。由于采用了集成can控制器的單片機,大大簡化了電路,同時也提高了系統(tǒng)的可靠性。

2 c8051f040集成的can控制器

c8051040內(nèi)部集成can控制器,他兼容can技術(shù)規(guī)范2.0a和2.0b主要由can內(nèi)核、消息ram(獨立于cip-51的ram)、消息處理單元和控制寄存器組成,圖1所示是c8051f040的內(nèi)部的can總線結(jié)構(gòu)圖。

圖1中,can內(nèi)核由can協(xié)議控制器和負(fù)責(zé)消息收發(fā)的串行/并行轉(zhuǎn)換rx/tx移位寄存器組成,消息ram用于存儲消息目標(biāo)和每個目標(biāo)的仲裁掩碼。這種can處理器有32個隨意配置為發(fā)送和接收的消息目標(biāo),并且每一個消息目標(biāo)都有他自己的識別掩碼,所有的數(shù)據(jù)傳輸和接收濾波都是由can控制器完成的,而不是由cip-51來完成。can內(nèi)部寄存器中存儲了所有can的控制和配置信息,其中包括控制寄存器、狀態(tài)寄存器、設(shè)置波特率的位定時寄存器,測試寄存器、錯誤計數(shù)器和消息接口寄存器。通常can內(nèi)核不能直接訪問消息ram,而必須通過接口寄存器if1或if2來訪問。另外,cip51的sfr并不不能直接訪問can內(nèi)部寄存器的所有單元,其配置can、消息目標(biāo)、讀取can狀態(tài)以及獲取接收數(shù)據(jù)、傳遞發(fā)送數(shù)據(jù)都由sfr中的6個特殊寄存器來完成,其中can0cn,can0tst和can0sta三個寄存器可直接獲取或修改can控制器中對應(yīng)的寄存器,而can0dath,can0atl,can0adr三個寄存器主要用來訪問修改其他不能直接訪問的can內(nèi)部寄存器,其中can0adr用來指出要訪問寄存器的地址,ca0dath,can0datl這時就相當(dāng)于要訪問的16位寄存器的高低字節(jié)的映射寄存器,而對他們的讀寫則相當(dāng)于所指向寄存器的讀寫。

圖2給出了cip-51如何訪問can中控制寄存器和每個消息的路徑圖。消息處理單元用于根據(jù)寄存器中的消息來控制can內(nèi)核中移位寄存器和消息ram之間的數(shù)據(jù)傳遞,同時,他還可用來管理中斷的產(chǎn)生。

3 智能節(jié)點通訊部分的硬件設(shè)計

c8051f040中內(nèi)置can總線協(xié)議控制器,只要外接總線驅(qū)動芯片和適當(dāng)?shù)目垢蓴_電路就可方便地建立一個實用的can總線智能測控節(jié)點。本文采用philip公司的tja1050t can總線驅(qū)動器,硬件原理圖如圖3所示。

為了增強can總線節(jié)點的抗干擾能力,可以采取以下措施:

(1)f040的tx0和rx0并不是直接與tja1050t的txd和rxd相連,而是通過高速光耦6n137后與tja1050t相連,這就很好地實現(xiàn)了總線上各can節(jié)點間的電氣隔離,不過應(yīng)該特別說明的一點是光耦部分電路采用的兩個電源va和vb必須完全隔離,否則采用光耦也就失去了意義。這些部分雖然增加了節(jié)點的復(fù)雜性,但是卻提高了節(jié)點的穩(wěn)定性和安全性。

(2)tja1050t的canh和canl引腳各自通過1個5ω的電阻與can總線相連,電阻可起到一定的限流作用,保護(hù)tja1050t免受過流的沖擊。

(3)canh和canl與地之間并聯(lián)2個30pf的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的作用。

(4)另外可在2根can總線接入端與地之間分別反接1個保護(hù)二極管。當(dāng)can總線有較高的負(fù)電壓時,通過二極管的短路可起到一定的過壓保護(hù)作用。

4 智能節(jié)點的通訊軟件設(shè)計

節(jié)點的can通信主要包括系統(tǒng)初始化程序、發(fā)送程序、接收程序等,軟件部分設(shè)計的好壞將直接決定系統(tǒng)能否正常工作,對于初次接觸can總線系統(tǒng)的設(shè)計人員來說是一個難點,也是一個重點,在本論文中,系統(tǒng)軟件采用結(jié)構(gòu)化程序設(shè)計方案,使其具有較好的模塊性和可移植性,對于不同的系統(tǒng)功能或不同的應(yīng)用環(huán)境,可以方便地進(jìn)行編程重組。

4.1 系統(tǒng)的初始化

初始化程序主要完成對所有的消息對象進(jìn)行初始化(一般將所有值置零),對can控制寄存器(can0cn)、位定時寄存器(bitreg)進(jìn)行設(shè)置,還要對發(fā)送消息對象和接收消息對象分別進(jìn)行初始化。其中,位定時寄存器的設(shè)置較為復(fù)雜,這里使用外部晶振為11.0592mhz,can通信速率為1mb/s,得到bitreg的出初始值為0x2640。主程序中規(guī)定對象初始化、發(fā)送和接收初始化,最后才啟動can處理機制(對bitreg和can0cn初始化),下面為can啟動程序:

4.2 發(fā)送和接收程序

發(fā)送程序主要負(fù)責(zé)把接口寄存器里邊要發(fā)送內(nèi)容寫入到具體的消息對象中,而接收程序所要實現(xiàn)的功能與發(fā)送程序正好相反,接收程序負(fù)責(zé)把接收到的內(nèi)容從消息對象中讀入接口寄存器中,由于兩者的程序相似,下面給出發(fā)送程序代碼。

5 結(jié)語

采用內(nèi)部集成了can控制器模塊的微控制器設(shè)計現(xiàn)場總線智能結(jié)點,不但硬件設(shè)計上簡單、可靠、編制相應(yīng)的軟件時也更方便和簡潔。本文正是采用這種設(shè)計方案,詳細(xì)介紹了用c8051f040進(jìn)行can總線智能節(jié)點通訊接口設(shè)計時的硬件接口及軟件設(shè)計方法。系統(tǒng)的實際運行驗證了設(shè)計的正確性與可靠性。



關(guān)鍵詞:

評論


相關(guān)推薦

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

關(guān)閉