關 閉

        新聞中心

        EEPW首頁 > 安全與國防 > 設計應用 > 基于Cortex-M3內核芯片LM3S2965的CAN總線節點設計

        基于Cortex-M3內核芯片LM3S2965的CAN總線節點設計

        作者: 時間:2011-02-15 來源:網絡 收藏

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

          控制器在下列條件下能夠產生中斷:

          ①當任何一個報文對象發送一個報文時;

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

          ③滿足警告條件,如一個錯誤計數器達到了限值,或出現多個總線錯誤時;

          ④滿足控制器錯誤條件,如進入總線關閉狀態時。

          圖3是總線節點的軟件流程。其中的對象就是一組數據的信息,包括下面結構體的信息:

        c.JPG

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

          此結構是對與CAN控制器中一個CAN報文對象相關的項目進行的壓縮。可以直接將這個對象的信息填充,即進行對象的賦值工作。下面的代碼是程序中CAN接口部分的初始化部分:

        d.JPG


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

        f.JPG

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

        結語

          本文介紹的CAN總線接口節點設計方案實現非常方便,硬件電路簡單,軟件設計模塊化,可以應用此方案設計實用的系統。本文的接口就是的一部分,可以直接將儀表與傳感器組成的稱重系統接入現有的分布式網絡中。

        稱重傳感器相關文章:稱重傳感器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 库伦旗| 噶尔县| 新兴县| 闸北区| 定远县| 蓝山县| 黔南| 义乌市| 枣庄市| 闸北区| 长宁县| 全椒县| 如东县| 白城市| 普兰店市| 鹰潭市| 乡宁县| 柏乡县| 宁蒗| 潮安县| 中江县| 三明市| 治多县| 会昌县| 南投县| 思茅市| 华安县| 仲巴县| 林州市| 称多县| 威海市| 读书| 彭泽县| 丰顺县| 浑源县| 泰州市| 莱西市| 全南县| 平阳县| 宜丰县| 三明市|