關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于ARM控制器LPC2294的CAN/PCI智能通信卡設計

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

        作者: 時間:2009-08-27 來源:網絡 收藏

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

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

        2.2 卡的運行流程

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

        系統進入工作狀態后(圖5中的B部分)將等待中斷產生,如有,則進人相應的中斷服務程序。如果是數據傳輸,則轉入數據傳輸子程序,數據傳輸子程序主要包括3個部分:

        (1) 下行數據傳輸

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

        (2) 上行數據傳輸

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

        (3) 平行數據傳輸

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

        在調用相應的數據傳輸子程序后,程序將置標志位并返回。如果是其它一些中斷,則轉入相應的中斷服務程序。若沒有中斷產生,則檢查PC機是否有參數配置需要,最后進行系統自檢。本系統會在系統閑暇時進行自檢并上傳狀態報表,這樣可以使用戶隨時了解通信卡的工作情況,對于提高系統的工作可靠性以及出現故障時的查錯效率具有重要的意義。

        2.3 上位機程序

        中,上位機軟件設計程序主要包括通信卡底層驅動程序和用戶服務程序。其設計框圖圖6所示。

        通信卡底層驅動程序的功能主要是配置CAN總線接口、收發CAN總線上的數據、對CAN總線進行實時監測、執行用戶程序的收發命令等。CAN總線和PCI總線錯誤均采用中斷處理,并通過事件(Event)內核對象直接通知給用戶程序。

        PCI的用戶服務程序則通過PCI通信程序與系統PCIDI (PCI device interface)進行通信,并由系統完成PCI協議的處理與數據傳輸。用戶可以在設計好的上位機界面上方便的設定節點參數,查詢節點狀態信息。

        3 結束語

        本文設計的CAN/PCI通信卡采用功能強大的芯片LPC2294作為核心控制芯片,因此,該通信卡能夠同時處理4路CAN總線向上位機的數據傳輸。對于CAN網段之間的通信需求,本通信卡也能夠很好地滿足,并可使工業現場的CAN網絡組網更為簡單。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 定西市| 瑞昌市| 昆山市| 津市市| 久治县| 大足县| 吕梁市| 西充县| 报价| 三台县| 平山县| 寿宁县| 荃湾区| 怀来县| 资兴市| 类乌齐县| 闽清县| 明溪县| 新建县| 岳西县| 漳州市| 建湖县| 葫芦岛市| 阿荣旗| 介休市| 罗平县| 娄底市| 邢台县| 商南县| 东山县| 广平县| 石门县| 玛纳斯县| 乳山市| 寿阳县| 赣州市| 吉木萨尔县| 正安县| 奉贤区| 临颍县| 泸溪县|