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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM控制器LPC2294的CAN/PCI智能通信卡設(shè)計

          基于ARM控制器LPC2294的CAN/PCI智能通信卡設(shè)計

          作者: 時間:2015-04-12 來源:網(wǎng)絡(luò) 收藏

            微控制器與PCI9030之間的硬件設(shè)計是該通信卡的核心控制部分。本設(shè)計采用ALTERA公司的FPGA EPlC6來實現(xiàn)微控制器與PCI9030之間的接口。EPlC6是ALTERA公司的一款FPGA芯片,它內(nèi)部集成了20塊128×36 bits的RAM模塊,可以方便地將它編程為所需要的“雙口RAM”,然后將上行數(shù)據(jù)(CAN節(jié)點發(fā)往PC機的數(shù)據(jù))和下行數(shù)據(jù)(PC機發(fā)往CAN節(jié)點的數(shù)據(jù))通過該“雙口RAM”緩存轉(zhuǎn)發(fā)。由于EPlC6擁有豐富的I/O口,故可靈活選擇數(shù)據(jù)格式(32位/16位/8位)以及傳輸方法,本文采用16位復(fù)用傳輸模式。

          本文引用地址:http://www.ex-cimer.com/article/272388.htm

            EPlC6還要編程實現(xiàn)PCI9030與之間的邏輯控制時序轉(zhuǎn)換。由于PCI9030與的控制信號不完全一致,所以需要進行邏輯控制時序轉(zhuǎn)換。同時,本文PCI9030的局部總線一側(cè)采用的是地址/數(shù)據(jù)復(fù)用模式,而控制器采用的是非復(fù)用模式,因此也需要EPlC6進行模式轉(zhuǎn)換:在PCI9030的地址周期內(nèi)可利用LALE將16位地址鎖存到EPlC6內(nèi)部寄存器,等到PCI9030的數(shù)據(jù)周期來臨時,再與數(shù)據(jù)一起送到ARM的地址口與數(shù)據(jù)口上,以方便ARM取用。

            2 軟件設(shè)計

            2.1 通信卡軟件設(shè)計

            通信卡上的軟件主要指的是ARM控制器上的軟件程序。本文選用ARM控制器來實現(xiàn)智能數(shù)據(jù)傳輸路徑選擇。是通信卡的控制核心。它集成有4路CAN控制器,每個CAN控制器都與獨立CAN控制器SJA1000有著相似的寄存器結(jié)構(gòu),它只是對器件寄存器訪問由原來的8bit字節(jié)訪問轉(zhuǎn)變?yōu)榱?2 bit的雙字訪問。可實現(xiàn)CAN網(wǎng)段與上位機之間的數(shù)據(jù)傳輸控制(包括上行數(shù)據(jù)傳輸和下行數(shù)據(jù)傳輸)以及不同CAN網(wǎng)段間的數(shù)據(jù)傳輸控制(平行數(shù)據(jù)傳輸)。

            LPC2294為所有CAN控制器提供了全局接收標識符查詢功能。它包含一個512×32 (2 k字節(jié))的RAM,可通過軟件處理在RAM中存放1~5個標識符表格。整個接收濾波RAM可容納1024個標準標識符或512個擴展標識符,或兩種類型的混合標識符。由于允許的表格范圍有2 k字節(jié),故能容易地滿足復(fù)雜的ID接收過濾要求。LPC2294在FullCAN模式下能自動接收并選定網(wǎng)段的標準幀,但本文不采用FullCAN模式。

            若在EPlC6的“雙口RAM”中設(shè)置一個狀態(tài)與控制寄存器組(SOR),那么,上位機便可通過訪問該寄存器組查詢通信卡的運行狀態(tài)。為了有效管理數(shù)據(jù)傳輸,防止傳輸過程中的數(shù)據(jù)丟失,本設(shè)計在ARM內(nèi)部的靜態(tài)RAM區(qū)開辟了一個全局數(shù)據(jù)收發(fā)緩存區(qū)(GRTB),其示意圖如圖4所示。

            

           

            圖4中,對于標準幀來說,它只有11位標識符,因此,圖中的標識符字節(jié)3和4保留不用。而幀格式用來區(qū)別此幀是標準幀(0)還是擴展幀(1)。當RTR為1時,表示此幀是遠程幀。圖中的源段號和目的段號用于表明此幀來自哪個網(wǎng)段以及將要送往哪個網(wǎng)段(此處將上位機也作為其中一段來處理)。DLC表明傳輸?shù)臄?shù)據(jù)字節(jié)數(shù)目。

            2.2 通信卡的運行流程

            系統(tǒng)上電復(fù)位后,系統(tǒng)將首先運行初始化程序。LPC2294的初始化主要是初始化全局接收和發(fā)送緩沖區(qū)以及清除狀態(tài)寄存器中的值等;PCI9030的初始化主要是從EEPROM中加載初始數(shù)據(jù)以進行初始設(shè)置,CAN初始化包括設(shè)置模式、總線時序、中斷使能、標識符表格,這些設(shè)置均可通過給CAN芯片的內(nèi)部寄存器賦值來實現(xiàn)。初始化成功之后,通信卡將進行自檢,并在確定啟動正常之后進入工作狀態(tài)。這一部分的程序流程圖如圖5的A部分所示。

            

           

            系統(tǒng)進入工作狀態(tài)后(圖5中的B部分)將等待中斷產(chǎn)生,如有,則進人相應(yīng)的中斷服務(wù)程序。如果是數(shù)據(jù)傳輸,則轉(zhuǎn)入數(shù)據(jù)傳輸子程序,數(shù)據(jù)傳輸子程序主要包括3個部分:

            (1) 下行數(shù)據(jù)傳輸

            下行數(shù)據(jù)傳輸指的是上位機向CAN網(wǎng)段發(fā)送數(shù)據(jù)。即上位機把數(shù)據(jù)寫入到“雙口RAM”中以等待LPC2294將數(shù)據(jù)取走。LPC2294將上位機發(fā)來的數(shù)據(jù)暫時存放在全局數(shù)據(jù)收發(fā)緩存區(qū)(GRTB)中,然后檢查匹配的目的段是否有空閑的發(fā)送區(qū)(CANSR中的TBS位為1),若有則將數(shù)據(jù)分別寫入每個網(wǎng)段的發(fā)送區(qū)并發(fā)送。如果匹配網(wǎng)段的3個發(fā)送緩沖器全為忙,則循環(huán)等待,直到有一個以上的發(fā)送緩沖器為空再進行發(fā)送。

            (2) 上行數(shù)據(jù)傳輸

            上行數(shù)據(jù)傳輸指的是CAN網(wǎng)段向上位機發(fā)送數(shù)據(jù)。當程序檢測到某個網(wǎng)段X的CAN中斷/捕獲寄存器(CANICR)中的接收中斷位(RI)置位后,它將進入接收中斷服務(wù)程序。此時程序?qū)⒌綐俗R符表格中查找匹配的標識符,CAN控制器會在接收時自動搜索接收濾波器的RAM中的表格并進行匹配,只要找到匹配值則產(chǎn)生接收中斷并通知用戶保留信息,否則自動放棄這一幀信息而不產(chǎn)生接收中斷,如果它只找到一個匹配值(源網(wǎng)段中),則說明此數(shù)據(jù)是只傳輸給上位機的,此時程序會將接收到的數(shù)據(jù)信息按上面介紹的格式保存到全局數(shù)據(jù)收發(fā)緩沖區(qū)(GRTB),以等待LPC2294將其發(fā)送給EPlC6的“雙口RAM”,以便上位機讀取。

            (3) 平行數(shù)據(jù)傳輸

            當出現(xiàn)接收中斷時,程序也會到標識符表格中查找匹配的標識符,如果找到一個以上的匹配值,則說明還有其他網(wǎng)段需要這些數(shù)據(jù)。此時程序會將接收到的數(shù)據(jù)信息讀入到全局數(shù)據(jù)收發(fā)緩沖區(qū)(GRTB)中去,然后把數(shù)據(jù)發(fā)往匹配網(wǎng)段。

            在調(diào)用相應(yīng)的數(shù)據(jù)傳輸子程序后,程序?qū)⒅脴酥疚徊⒎祷?。如果是其它一些中斷,則轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。若沒有中斷產(chǎn)生,則檢查PC機是否有參數(shù)配置需要,最后進行系統(tǒng)自檢。本系統(tǒng)會在系統(tǒng)閑暇時進行自檢并上傳狀態(tài)報表,這樣可以使用戶隨時了解通信卡的工作情況,對于提高系統(tǒng)的工作可靠性以及出現(xiàn)故障時的查錯效率具有重要的意義。

            2.3 上位機程序設(shè)計

            本設(shè)計中,上位機軟件設(shè)計程序主要包括通信卡底層驅(qū)動程序和用戶服務(wù)程序。其設(shè)計框圖圖6所示。

            

          電子血壓計相關(guān)文章:電子血壓計原理




          關(guān)鍵詞: ARM LPC2294

          評論


          相關(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); })();