<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > LPC2000系列CAN驗(yàn)收濾波的編程及應(yīng)用

          LPC2000系列CAN驗(yàn)收濾波的編程及應(yīng)用

          作者: 時(shí)間:2008-03-13 來(lái)源:網(wǎng)絡(luò) 收藏
          摘要 隨著總線的廣泛,有些系統(tǒng)對(duì)有更復(fù)雜的要求。LPC200O32住ARM微控制器內(nèi)嵌的控制器提供全局的ID查詢功能,可以滿足復(fù)雜的要求。減小系統(tǒng)軟件設(shè)計(jì)及運(yùn)行負(fù)擔(dān)。本文對(duì)ARM的驗(yàn)收作了詳細(xì)的描述,給出C語(yǔ)言編制的程序以方便移植和使用,希望此模塊對(duì)于有復(fù)雜驗(yàn)收濾波要求的CAN起到一定的作用。
          關(guān)鍵詞 CAN 驗(yàn)收濾波 SJAl000


          引 言
          隨著信息技術(shù)的飛速發(fā)展,32位ARM微控制器以其低功耗、高性能以及小體積等特性,得到了廣泛的。在汽車、消費(fèi)娛樂(lè)、儀器儀表、工業(yè)控制、海量存儲(chǔ)、網(wǎng)絡(luò)、安保和無(wú)線等領(lǐng)域,隨處可見(jiàn)其應(yīng)用實(shí)例。因而,基于ARM的技術(shù)方案是最具市場(chǎng)前景和市場(chǎng)優(yōu)勢(shì)的解決方案。
          現(xiàn)場(chǎng)總線是當(dāng)前工業(yè)通信領(lǐng)域中應(yīng)用最廣的技術(shù)之一。作為現(xiàn)場(chǎng)總線之一的CAN總線,以其高性能、高可靠性以及靈活的設(shè)計(jì)越來(lái)越受到人們的重視,越來(lái)越多的ARM微控制器帶有CAN控制器。Philips 2000ARM微控制器是基于ARM7的集成有2個(gè)或4個(gè)CAN控制器的微控制器,在工業(yè)通信網(wǎng)絡(luò)中有廣泛的應(yīng)用。

          1 CAN總線的硬/軟件設(shè)計(jì)簡(jiǎn)述
          1.1 硬件設(shè)計(jì)
          系列ARM內(nèi)置CAN控制器,每一個(gè)CAN控制器都與SJAl000有相似的寄存器結(jié)構(gòu),只是寄存器訪問(wèn)由8位字節(jié)訪問(wèn)轉(zhuǎn)變?yōu)?2位雙字訪問(wèn),因而使得硬件連接相對(duì)變得簡(jiǎn)單。CAN總線驅(qū)動(dòng)器使用82C250或TJA1050。為增強(qiáng)節(jié)點(diǎn)的抗干擾能力,CAN控制器與總線驅(qū)動(dòng)器可不直接相連,而是通過(guò)高速光耦6N137連接。光耦部分采用的兩個(gè)電源應(yīng)隔離,故采用電源隔離模塊。
          1.2 軟件設(shè)計(jì)
          CAN節(jié)點(diǎn)的基本軟件設(shè)計(jì)包括CAN節(jié)點(diǎn)初始化、報(bào)文發(fā)送、報(bào)文接收3部分。在這3部分程序的基礎(chǔ)上可編出CAN總線通信的一般應(yīng)用程序。當(dāng)然,要將CAN總線應(yīng)用于通信任務(wù)比較復(fù)雜的系統(tǒng)中,還需要編寫(xiě)CAN總線異常處理、驗(yàn)收濾波設(shè)置等內(nèi)容。

          2 驗(yàn)收濾波器的設(shè)置及工作原理
          當(dāng)CAN控制器接收一完整的標(biāo)識(shí)符時(shí),將通知驗(yàn)收濾波器。驗(yàn)收濾波器響應(yīng)這個(gè)信號(hào),并讀出標(biāo)識(shí)符,與AF(驗(yàn)收濾波)RAM中的標(biāo)識(shí)符表格進(jìn)行匹配,以決定接收或放棄此幀信息。
          AF RAM是一個(gè)容量為51232位(2KB)的RAM。通過(guò)軟件設(shè)置,可在RAM中存放1~5個(gè)標(biāo)識(shí)符表格。圖1為一個(gè)完整的AFRAM內(nèi)部表格分布。

          為方便實(shí)現(xiàn),把AF RAM的內(nèi)容按32位模式排列,每個(gè)32位稱為一個(gè)“cell”。表格就是cell的集合。前兩種表格中每個(gè)cell包含2個(gè)標(biāo)識(shí)符,且配置時(shí)每個(gè)cell中高位標(biāo)識(shí)符小于低位標(biāo)識(shí)符,否則會(huì)引起驗(yàn)收濾波器執(zhí)行失敗。接下來(lái)的2個(gè)表格,每一對(duì)范圍或每一個(gè)標(biāo)識(shí)符占用1個(gè)cell,而合法的擴(kuò)展標(biāo)識(shí)符范圍表格必須以偶數(shù)個(gè)cell出現(xiàn)。每個(gè)表格均需按升序排列,每種表格可根據(jù)應(yīng)用需要適當(dāng)裁減。

          3 驗(yàn)收濾波實(shí)現(xiàn)
          程序用C語(yǔ)言編制,在ADSl.2開(kāi)發(fā)環(huán)境下通過(guò)JTAG接口進(jìn)行實(shí)時(shí)調(diào)試、仿真和下載,并在實(shí)際應(yīng)用中得到了驗(yàn)證。要說(shuō)明的是,F(xiàn)ullcan模式應(yīng)用較少,程序未涉及它的設(shè)置;設(shè)置了獨(dú)立標(biāo)準(zhǔn)標(biāo)識(shí)符和標(biāo)準(zhǔn)標(biāo)識(shí)符范圍表格,對(duì)標(biāo)準(zhǔn)ID{1,2,0x10,0x20}和指定范圍{{90=ID=100}及{0x300=ID=0x400}}的信號(hào)進(jìn)行接收,獨(dú)立擴(kuò)展標(biāo)識(shí)符表格和擴(kuò)展標(biāo)識(shí)符范圍表格未設(shè)置。需要設(shè)置時(shí),可參考前兩種表格的設(shè)置程序。
          在CANREG.H中,定義驗(yàn)收濾波模式寄存器結(jié)構(gòu)如下:

          ②初始化一個(gè)獨(dú)立標(biāo)準(zhǔn)標(biāo)識(shí)符表格的內(nèi)容。
          ③初始化一個(gè)標(biāo)準(zhǔn)標(biāo)識(shí)符組表格的內(nèi)容。
          ④用獨(dú)立標(biāo)準(zhǔn)標(biāo)識(shí)符表格內(nèi)容初始化1,uT的獨(dú)立標(biāo)準(zhǔn)標(biāo)淤符表格。
          ⑤用標(biāo)準(zhǔn)標(biāo)識(shí)符范圍表格內(nèi)容初始化LuT的標(biāo)準(zhǔn)標(biāo)識(shí)符范圍表格。
          ⑥模式2,啟動(dòng)全局驗(yàn)收濾波器。
          在majn.c中所含的4個(gè)相關(guān)函數(shù)略。

          結(jié)語(yǔ)
          在SJAlO∞的應(yīng)用巾,驗(yàn)收濾波器只能對(duì)一些規(guī)律性較強(qiáng)的ID和個(gè)數(shù)較少的ID進(jìn)行濾波‘硼。當(dāng)需要設(shè)計(jì)復(fù)雜的驗(yàn)收濾波器時(shí),以上的驗(yàn)收濾波模塊能起到一定的作用。當(dāng)然,在具體的應(yīng).Hj場(chǎng)合.還需要考慮通信協(xié)議、CAK總線異常處理、cAN初始化、接收和發(fā)送等程序。
          編者注:本文為期刊縮略版,全文見(jiàn)本刊網(wǎng)站www.mesnet.com.cn。



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();