新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CAN總線通信適配卡的設計與實現

        CAN總線通信適配卡的設計與實現

        作者: 時間:2012-03-13 來源:網絡 收藏

        1 簡介

        CAN(Controller Area Network)總線屬于現場總線的范疇,是一種有效支持分布式控制或實時控制的串行通信網絡。CAN協議目前已納入ISO國際標準(ISO11898),它分為物理層、數據鏈路層和應用層,其中物理層和數據鏈路層協議已經集成在芯片中,可通過硬件自動完成數據的成幀與發送和接收,從而大大減少軟件的工作量,因此,特別適用于工業自動化領域,尤其是那些強調低層監測與控制且要求可靠性高、實時性好的惡劣條件下的工業現場使用。

        具有以下突出特點:

        ● 能夠以多主節點方式工作,網絡上任一節點均可設成主節點以其它節點主動發送信息。

        ●報文傳輸不含目標地址,它以全網廣播為基礎,各個接收站可根據報文中反映的數據性質標識符來過濾報文以決定是否接收。同時可通過報文標識符將報文設定為不同的發送優先級,以滿足不同的實時要求。

        ●非破壞性總線仲裁和錯誤界定,利用現有的產品,可由控制器自動解決總線沖突和出錯界定,并對用戶完全透明,同時還能區分暫時和永久故障,并可自動關閉故障節點。

        ●通信距離可達10km(速率5kb/s),速度可達1MB/s(距離40m以內)。

        ●理論上,的網上節點數不受限制,它有2032種不同的報文標識符,但具體數量取決于物理層的承受能力,通常CAN總線上的節點數可達110個。CAN總線系統一般采用總線式網絡拓撲結構,其優點是結構簡單,成本低,系統可靠性高。其總體模式如圖1所示。

        2 CAN總線適配卡的功能特點

        CAN總線是插在PC機ISA插槽內的智能通訊卡,它可使PC機方便地連接到CAN總線上,其特點如下:

        (1)采用高性能的8位微處理器89C52(12MHz),可減輕PC主機的通信負擔,而且可以運行復雜的用戶通信任務。

        (2)卡上帶有lkB的高速雙口RAM存儲器,可直接映射到主機內存空間以實現CAN總線與主機PC的高速數據交換,并可設置雙口RAM在ISA總線中的基地址。

        (3)采用16MHz CAN控制器SJAl000時,其通訊速率可高達1Mbps。

        (4)中斷申請電路能夠保證PC機和適配卡上的微處理器實時處理對方的處理要求。

        (5)適配卡上帶有光電隔離,可保護PC機避免由于地環流而造成的損壞,并可增強系統在惡劣環境中使用的可靠性。

        (6)為方便系統調試,可用LED指示系統狀態和CAN的接收和發送狀態。

        3 CAN總線適配卡的硬件設計

        CAN由雙口RAM電路、微控制器電路、CAN通信控制電路三部分組成,其結構框圖如圖2所示。

        3.1 雙口RAM及其控制電路

        雙口RAM是一種性能優越的快速通信器件,它能提供兩種完全獨立的端口,每個端口都有完整的地址、數據和控制線。對于器件兩邊的使用者CPU而言,它與一般的RAM無多大區別,只有在兩邊同時讀寫同一地址單元時,才會出現競爭現象。在CAN中,通常利用雙口RAM IDT7130來建立雙向數據交換通道,以實現PC機和CAN控制器之間的數據傳送。

        PC機與擴展存儲器的接口有兩種方法:一種是把雙口RAM當成外部設備,使用端口I/O指令進行訪問,這種方法一次只能傳送一個字節(或字),因而傳送速度較慢;另一種是內存映像法,即把雙口RAM地址配置于PC機主存儲器的高端(一般為C0000H-DFFFFH),以使PC機像訪問主存儲器一樣訪問雙口RAM,同時使所有能夠訪問主存儲器的指令也可以以同樣的方式訪問雙口RAM。內存映像法可以以字符塊為單位進行傳送,因而可實現快速訪問雙口RAM。正是基于這些優點,在本適配卡設計中采用了的存儲器尋址方式。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 通城县| 资溪县| 德惠市| 诸暨市| 上饶市| 永靖县| 黄山市| 五常市| 炎陵县| 南投市| 苏州市| 弋阳县| 渝中区| 崇信县| 静安区| 临颍县| 浦县| 丹棱县| 大足县| 四会市| 临沭县| 南丰县| 邮箱| 宜良县| 寿宁县| 盖州市| 桑日县| 安丘市| 河西区| 卫辉市| 香河县| 建始县| 三河市| 莱阳市| 子长县| 托克托县| 乐至县| 元朗区| 建德市| 鄱阳县| 老河口市|