<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è) > 嵌入式系統 > 設計應用 > AVR單片機的CAN總線(xiàn)分析儀設計

AVR單片機的CAN總線(xiàn)分析儀設計

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

AVR單片機的CAN總線(xiàn)分析儀設計

圖6 自適應波特率流程

3.3 報文接收

  CAN報文的接收有2種方式,分別為查詢(xún)的方式和中斷的方式。

  查詢(xún)的方式是MCU以一定周期讀取CAN控制器的狀態(tài)寄存器,檢查接收緩沖區狀態(tài)標志是否至少接收到1個(gè)報文。接收緩沖區狀態(tài)指示為“空”,表示沒(méi)有接收到報文,MCU繼續當前的任務(wù)。當接收緩沖區狀態(tài)標志指示為“滿(mǎn)”,表示已接收至少1個(gè)報文,MCU從控制器取出報文,并寫(xiě)命令釋放接收緩沖區標志。查詢(xún)方式的不足是: 查詢(xún)周期如果過(guò)短,就會(huì )使MCU大部分時(shí)間運行在報文的接收查詢(xún)上,使其效率降低;若查詢(xún)周期過(guò)長(cháng),由于接收緩沖區的長(cháng)度有限會(huì )造成數據溢出,導致系統不能正常工作。

  中斷的方式是主程序在中斷控制的報文接收之前使能接收中斷和MCU的全局中斷。當控制器已接收1個(gè)報文,該報文通過(guò)驗收濾波器并放入接收緩沖區,則產(chǎn)生接收中斷。這樣MCU能夠立即響應,處理這個(gè)接收到的報文,然后釋放接收緩沖區。整個(gè)接收的過(guò)程可在中斷服務(wù)程序中完成,不需要與主程序發(fā)生交互作用。中斷方式可以避免查詢(xún)方式的不足,增強系統的可靠性。所以在設計報文接收時(shí)選擇中斷方式進(jìn)行報文的接收。圖7為報文接收流程。

AVR單片機的CAN總線(xiàn)分析儀設計

圖7 報文接收流程

3.4 總線(xiàn)狀態(tài)計算

  CAN分析儀主要的功能就是分析CAN總線(xiàn)上的各種總線(xiàn)參數,從而給使用者提供一個(gè)透明的窗口來(lái)觀(guān)測總線(xiàn)的運行狀況。CAN 總線(xiàn)協(xié)議屬于較為高級的現場(chǎng)總線(xiàn)協(xié)議, 工作過(guò)程較為復雜。從工程實(shí)用的角度看,以下性能參數具有較高的參考價(jià)值:

  ◆ 總線(xiàn)波特率,也叫做總線(xiàn)位速率,表示每秒鐘傳送信息位的數量,只有網(wǎng)絡(luò )中各節點(diǎn)的波特率相一致時(shí)才能夠進(jìn)行正常的報文收發(fā)。

  ◆ 總線(xiàn)吞吐量,總線(xiàn)單位時(shí)間內傳送的報文總數。

  ◆ 總線(xiàn)出錯率,總線(xiàn)單位時(shí)間的錯誤報文數。

  ◆ 總線(xiàn)負載,每秒鐘節點(diǎn)發(fā)送的位數與總線(xiàn)波特率之比。

除此之外,為了更方便地檢查總線(xiàn)狀態(tài),又增添了顯示功能,可以顯示接收報文、狀態(tài)寄存器、報文總數、報文計數器、錯誤代碼等??偩€(xiàn)分析軟件程序中所采用的算法簡(jiǎn)述如下。

 ?。?) 總線(xiàn)吞吐量的測試

  首先設定計數器i=0,定時(shí)器時(shí)間t=0,測量值數組count[5]={0}。當接收到總線(xiàn)上的1個(gè)報文并釋放接收緩沖區時(shí)啟動(dòng)定時(shí)器,設定定時(shí)時(shí)間t=5 s,等待定時(shí)中斷發(fā)生。計數器放在接收中斷函數中,當成功接收1幀報文時(shí),i=i+1。定時(shí)器中斷發(fā)生時(shí),將計數器的值i存入count[5]數組中。之后啟動(dòng)下一次定時(shí),當數組滿(mǎn)時(shí),結束測試,對count數組進(jìn)行排序,并去除最大和最小值??偩€(xiàn)吞吐量V為:

AVR單片機的CAN總線(xiàn)分析儀設計

(2) 總線(xiàn)負載的測試

  通過(guò)之前的自適應波特率程序已經(jīng)檢測到總線(xiàn)上的波特率為bote,設定計數器j=1,定時(shí)器t=0,報文位數設為c1=0,報文位數數組bit_count[20]={0}。當接收到總線(xiàn)上的1個(gè)報文并釋放接收緩沖區時(shí)啟動(dòng)定時(shí)器,設定定時(shí)時(shí)間t=1 s,等待定時(shí)中斷發(fā)生。報文位數、報文位數數組和計數器放在接收中斷函數中。當成功接收1幀數據時(shí),j=j+1,通過(guò)讀取接收幀信息SFF可以判定該幀數據有多少位,將位數寫(xiě)入c1,并存入bit_count[20]數組中。定時(shí)時(shí)間到時(shí),拷貝計數器值,結束測試??偩€(xiàn)負載U為:

AVR單片機的CAN總線(xiàn)分析儀設計

3.5 實(shí)驗結果

  為了便于測試分析儀的有效性和準確性,取單節點(diǎn)進(jìn)行實(shí)驗,即總線(xiàn)上只有1個(gè)節點(diǎn)在進(jìn)行報文發(fā)送。分別取波特率5 kbps、10 kbps、50 kbps、100 kbps,發(fā)送報文時(shí)間間隔100 ms、150 ms、200 ms、250 ms、400 ms、450 ms、500 ms、800 ms,每幀報文有8字節數據域。實(shí)驗得到的結果如表1所列。

表1 實(shí)驗結果

AVR單片機的CAN總線(xiàn)分析儀設計

從實(shí)驗結果可以看出,當每100 ms發(fā)送1幀報文時(shí),檢測到的總線(xiàn)吞吐量為10幀/s,即總線(xiàn)每秒傳送的報文總數為10幀,與實(shí)際相符。在不同的報文發(fā)送間隔和不同的總線(xiàn)波特率下,所測得的總線(xiàn)吞吐量和總線(xiàn)負載與實(shí)際相吻合。

4 結論

  本文設計的在實(shí)驗室和工業(yè)現場(chǎng)上進(jìn)行了調試,主要調試的項目包括自適應波特率、液晶顯示和CAN總線(xiàn)通信監測等。實(shí)踐證明該設計實(shí)現了對CAN2.0B標準節點(diǎn)(并兼容CAN2.0A節點(diǎn))監測分析的功能,指標達到預期的效果。為CAN總線(xiàn)的工程開(kāi)發(fā)應用和教學(xué)提供了一種簡(jiǎn)潔、高效的調試和監測手段。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: AVR單片機 CAN總線(xiàn)分析儀 ATmega64L SJA1000T

評論


相關(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>