新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于ARM920T的現場總線控制系統

        一種基于ARM920T的現場總線控制系統

        作者: 時間:2014-01-17 來源:網絡 收藏

          3.2.1 IO接口連接

          微處理器的通用IO口可以提供一個簡便的方法來控制SJA100T。EP9315的GPIO信號提供了很大的靈活度來滿足SJA1000T時間上的要求。將SJA1000T數據地址復用總線全部與EP9315的通用IO接口連接。其它信號線WR、RD、ALE……也與IO接口連接。具體連接方式參考圖2。

          22.jpg

          3.2.2 數據信號線連接

          除了全部由IO端口來控制CAN模塊,還可利用ARM9的數據線和信號線來實現CAN模塊的擴展。連接電路如圖3所示,凡SJA1000T以外的信號均為EP9315芯片上的信號管腳,SJA1000T數據地址復用總線與EP9315數據線相連,GPIOx、GPIOy、GPIOz可以是EP9315任意GPIO引腳,但選擇同一個通道的GPIO口將使編程更容易。注意SJA100T的INT可以連接CPU的INT也可以連接到帶有中斷的通用IO上。在EP9315中,GPIO的通道A,B,F有中斷功能。

          33.jpg

          圖2和圖3是示意圖,具體的由于EP9315信號高電平為3.3V,而SJA1000T高電平為5V,故需要通過74LVC245這類電平匹配芯片進行電平匹配后再連接。

          4、驅動開發

          由于在許多場合具有實時性的要求,本采用實時性高的eCos作為操作系統,CAN驅動程序也在eCos操作系統 上進行擴展。

          對eCos系統的設備驅動程序的設計主要圍繞著DEVTAB_ENTRY和DEVIO_TAB進行,添加新設備的工作就是對這兩個表項的各個域進行實現,并且編寫與硬件相關的底層函數。通過對驅動程序結構層次的剖析,CAN總線驅動的開發分為四步:

          第一步:向內核注冊新設備;

          第二步:開發驅動程序基本IO函數;

          第三步:實現中斷處理函數;

          第四步:綁定設備中斷并進行驗證。

          具體實現過程如下:

          4.1 向內核注冊新設備

          在向內核注冊新設備時,原有的驅動程序中和硬件無關的部分仍然可以使用,例如設備I/O函數表,硬件相關的部分需要自行設計,包括設備描述符、設備名、設備初始化程序init、查找程序lookup和拓展CAN總線的數據結構。

          拓展CAN總線的數據結構Can_bus時一組用于描述對設備進行的全部操作的數據結構。通過宏Can_bus產生can總線的數據結構,宏Can_bus的原型為:

          Can_bus(1,funs,modereg,intrenreg,bustime,outpctr,clkdiv,acptcode,acptmask,flag)

          參數說明如下:

          l-該數據結構的語言標識符

          funs接口函數組,即硬件接口函數。

          flags驅動程序初始表示值。

          modereg工作模式初始值

          intrenreg中斷允許初始值

          bustime總線時鐘1,和總線時鐘2初始值

          outpctr輸出控制

          clkdiv分時

          acptcode驗收代碼

          acptmask驗收屏蔽

          在產生CAN總線的設備表入口時首先要創建can總線的數據對象Can_bus,并且初始化以上所有參數。拓展CAN總線的Can_bus數據對象標識符為EP9315_can_bus。

          拓展CAN總線的設備表入口對象實現如下:

          DEVTAB_ENTRY(EP9315_can_io0,

          CYGDAT_IO_CAN_EP9315_CAN0_NAME,

          0,

          cyg_io_can_devio,

          EP9315_can_init, //拓展CAN的初始化函數

          EP9315_can_lookup, //拓展CAN的查找函數

          EP9315_can_bus //CAN數據結構Can_bus

         ?。?

          4.2 開發驅動程序基本IO函數

          這部分函數指的是驅動程序接口函數中與硬件相關的部分,也就是Can_bus數據結構中的funs接口函數表。funs函數表通過以下宏進行定義:

          CAN_FUNS(l,putc,getc,set_config,start_xmit,stop_xmit)

          參數說明如下:

          l是該funs函數表的C語言標實符。

          putc函數:bool (*putc)(can_bus *priv,unsigned char c)該函數發送一個字符到串口。如果發送成功,則返回true,否則返回false。

        陀螺儀相關文章:陀螺儀原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 文安县| 大竹县| 元谋县| 常德市| 古浪县| 阜阳市| 克拉玛依市| 松桃| 营山县| 汪清县| 余江县| 永新县| 建阳市| 乳山市| 连江县| 通河县| 西丰县| 阜城县| 阿瓦提县| 诸暨市| 东乌| 华容县| 濉溪县| 马公市| 团风县| 宁河县| 福泉市| 公主岭市| 体育| 黑河市| 基隆市| 白玉县| 巍山| 防城港市| 高雄县| 东丽区| 鄄城县| 施甸县| 贵定县| 楚雄市| 邛崃市|