新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP 內(nèi)嵌ECAN模塊的總線接口設(shè)計(jì)

        基于DSP 內(nèi)嵌ECAN模塊的總線接口設(shè)計(jì)

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

        一個(gè)消息有11位或29為標(biāo)識符、一個(gè)控制域和最多8個(gè)字節(jié)的數(shù)據(jù)構(gòu)成。當(dāng)要發(fā)送一個(gè)消息時(shí),消息控制器把這個(gè)消息發(fā)送到CPK 的發(fā)送緩沖區(qū)中,以便在下一個(gè)總線空閑狀態(tài)時(shí)開始發(fā)送消息。當(dāng)多于一個(gè)消息要被發(fā)送時(shí),最高優(yōu)先級的消息將被消息控制器發(fā)送到CPK中,如果兩個(gè)消息的優(yōu)先級相同,則大序號的郵箱首先發(fā)送。

          1.3 接口電路設(shè)計(jì)

          本文使用的接口管理CPU 為TMS320F2812,使用其內(nèi)部集成的,因此只需要連接CAN總線收發(fā)器模塊和隔離器件即可實(shí)現(xiàn)CAN功能。

          ECAN接口電路圖如圖3所示。

          

          ADM3053的左側(cè)為邏輯端,邏輯端管腳接線如下:

         ?。?)RXD 和TXD 分別接 的ECANRX 和ECANTX引腳;

         ?。?)VCC接邏輯端VCC(+5 V)電源;

         ?。?)VIO接的IO供電電壓VIO;

          (4)GND管腳接邏輯端地線端GND_LOG.

          ADM3053 的右側(cè)為總線端,總線端的管腳接線如下:

         ?。?)CANH 和CANL 之間與CAN 物理總線相連,且確??偩€兩端并聯(lián)120 Ω端接電阻;

         ?。?)總線端電壓輸入VISOIN 接隔離電壓輸出VI-SOUT,并通過濾波電容接地;(3)CANH和CANL連接共模電感ACT45B-510-2P,濾除總線上的共模信號;

          (4)CANH和CANL并聯(lián)TVS管PESD1CAN,作為瞬態(tài)抑制保護(hù),防止總線上的瞬變干擾。

          2 軟件設(shè)計(jì)

          2.1 ECAN的存儲器映射ECAN的寄存器被映射到片內(nèi)存儲器的外設(shè)幀1區(qū)域,CPU 用這些寄存對CAN 的消息對象進(jìn)行配置和控制,控制和狀態(tài)寄存器只允許32 位存取。ECAN 提供了32個(gè)消息郵箱,每個(gè)郵箱可以配置為發(fā)送或接收郵箱。消息是一塊RAM 區(qū)域,映射到 的RAM 存儲器,每個(gè)郵箱RAM 的地址分配如圖4 所示。消息郵箱用來存儲接收到的CAN消息或存放等待發(fā)送的CAN消息。當(dāng)郵箱不用于存儲CAN 消息時(shí),CPU 可以將消息郵箱RAM 空間當(dāng)成通用存儲器使用。寄存器和消息RAM空間如圖4所示。

          

          2.2 通信軟件

          2.2.1 系統(tǒng)初始化

          初始化在初始化模式下才能進(jìn)行,初始化模式和正常操作模式之間的轉(zhuǎn)換時(shí)通過CAN網(wǎng)絡(luò)同步實(shí)現(xiàn)的,也就是說,CAN 控制器在改變模式之前,要檢測總線空閑狀態(tài)(等于11個(gè)接收位),如果產(chǎn)生支配總線錯誤,CAN控制器將不能檢測到總線空閑狀態(tài),因此也不能完成模式切換。將CCR寄存器置1,使CAN模塊工作于初始化模式,而且只有CCE寄存器設(shè)置為1時(shí),才能執(zhí)行初始化操作。完成上述設(shè)置后,才能操作ECAN模塊配置寄存器。ECAN模塊的初始化流程如圖5所示。

          

          2.2.2 消息發(fā)送

        隔離器相關(guān)文章:隔離器原理


        關(guān)鍵詞: DSP ECAN模塊 總線接口

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 玛多县| 抚顺县| 南雄市| 琼海市| 宜兰县| 维西| 山阳县| 永济市| 喀什市| 裕民县| 湖北省| 柘荣县| 沁阳市| 定南县| 治多县| 镇平县| 陇川县| 东兰县| 北川| 汨罗市| 灵寿县| 莱西市| 日喀则市| 东阿县| 广安市| 洪洞县| 新沂市| 小金县| 田东县| 永胜县| 永昌县| 白水县| 中卫市| 库尔勒市| 日喀则市| 锦屏县| 怀化市| 台安县| 习水县| 乌拉特前旗| 襄城县|