關(guān) 閉

新聞中心

EEPW首頁 > 安全與國防 > 設(shè)計應(yīng)用 > 基于Cortex-M3內(nèi)核芯片LM3S2965的CAN總線節(jié)點設(shè)計

基于Cortex-M3內(nèi)核芯片LM3S2965的CAN總線節(jié)點設(shè)計

作者: 時間:2011-02-15 來源:網(wǎng)絡(luò) 收藏

  32個報文對象是相同的,優(yōu)先級除外。最小編號的報文對象具有最高的優(yōu)先級。優(yōu)先級以兩種方式影響操作:第一種,如果在同一時間準備好多個操作,那么具有最高優(yōu)先級的報文對象將會首先發(fā)生;第二種,多個報文對象正在掛起中斷時,如果讀取中斷狀態(tài),則具有最高優(yōu)先級的報文對象首先出現(xiàn)。由應(yīng)用負責把32個報文對象作為一個源來管理,并確定分配和釋放它們的最佳途徑。

  控制器在下列條件下能夠產(chǎn)生中斷:

  ①當任何一個報文對象發(fā)送一個報文時;

  ②當任何一個報文對象接收一個報文時;

 ?、蹪M足警告條件,如一個錯誤計數(shù)器達到了限值,或出現(xiàn)多個總線錯誤時;

  ④滿足控制器錯誤條件,如進入總線關(guān)閉狀態(tài)時。

  圖3是總線節(jié)點的軟件流程。其中的對象就是一組數(shù)據(jù)的信息,包括下面結(jié)構(gòu)體的信息:

c.JPG

  其中,ulMsglD用作11或29位標識符的報文標識符;ulMsgIDMask為在使能標識符過濾器時所使用的報文標識符屏蔽;ulFlags保存多個狀態(tài)標志和tCANObjFlags所指定的設(shè)置;ulMsgLen是報文對象中的數(shù)據(jù)字節(jié)數(shù);pucMsgData是指向報文對象的數(shù)據(jù)的指針。

  此結(jié)構(gòu)是對與CAN控制器中一個CAN報文對象相關(guān)的項目進行的壓縮??梢灾苯訉⑦@個對象的信息填充,即進行對象的賦值工作。下面的代碼是程序中CAN接口部分的初始化部分:

d.JPG


  上面的這些函數(shù)都已經(jīng)通過提供的API函數(shù)完成工作,CANConfigureNetwork函數(shù)要自己編寫,代碼如下:

f.JPG

  這里僅僅是對前文介紹的對象進行賦值,是將系統(tǒng)中真正用到的對象配置成我們需要的對象(包括是發(fā)送還是接收)。此處鑒于篇幅只給出了兩個對象,一個用于發(fā)送數(shù)據(jù),一個用于接收數(shù)據(jù)。上面的函數(shù)設(shè)置好后就可以通過CAN中斷控制器來接收和發(fā)送數(shù)據(jù)。上述程序代碼在Keil C3.78版本上調(diào)試編譯通過,并且已經(jīng)成功用于產(chǎn)品中。

結(jié)語

  本文介紹的CAN總線接口節(jié)點設(shè)計方案實現(xiàn)非常方便,硬件電路簡單,軟件設(shè)計模塊化,可以應(yīng)用此方案設(shè)計實用的系統(tǒng)。本文的接口就是的一部分,可以直接將儀表與傳感器組成的稱重系統(tǒng)接入現(xiàn)有的分布式網(wǎng)絡(luò)中。

稱重傳感器相關(guān)文章:稱重傳感器原理

上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉