新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MCP2515的Linux CAN總線驅動程序設計

        基于MCP2515的Linux CAN總線驅動程序設計

        作者: 時間:2016-12-01 來源:網絡 收藏
        1.前言

        CAN(Controller Area Network)總線,即控制器局域網總線,是一種有效支持分布式控制或實時控制的串行通信網絡。由于其高性能、高可靠性、及獨特的設計和適宜的價格而廣 泛應用于工業現場控制、智能樓宇、醫療器械、交通工具以及傳感器等領域,并已被公認為幾種最有前途的現場總線之一。CAN總線規范已經被國際標準化組織制 訂為國際標準ISO11898,并得到了眾多半導體器件廠商的支持。

        本文引用地址:http://www.104case.com/article/201612/324434.htm

        本文使用華清遠見FS2416平臺。FS2416使用Socket網絡設備驅動和字符設備驅動兩種方式向Linux內核提供MCP2515的驅動,本文詳細介紹了使用Socket方式設計的基于MCP2515的Linux CAN總線驅動程序。

        2.FS2416簡介

        圖1 FS2416開發板

        FS2416采用的是三星公司的ARM926EJ內核CPU S3C2416,無論從性能上,還是成本上, S3C2416都強于2440,是2440的最完美替代者。

        作為32/16 bit RISC指令集、低成本、低功耗、高性能的微處理器。S3C2416使用了65nm的制作工藝從而降低成本、功耗及提高性能,其使用的ARM926EJ的 核心,集成了2D圖形加速,添加了低功耗模式,支持內部ROM/RAM引導,支持moviNand啟動和低功耗音頻編解碼。此外相對于其他ARM9芯片, 它的外設也得到了升級,有更多的資源。

        圖2 FS2416板級資源介紹

        3.MCP2515簡介

        MCP2515是一種獨立的CAN總線通信控制器,是Microchip公司首批獨立CAN解決方案的 升級器件,其傳輸能力較Microchip公司原有CAN控制器(MCP2510)高兩倍,最高通信速率可達到1Mbps。MCP2515能夠接收和發送 標準數據幀和擴展數據幀以及遠程幀,通過兩個接收屏蔽寄存器和六個接收過濾寄存器濾除無關報文,從而減輕CPU負擔。

        MCP2515主要功能參數及電氣特性如下:
        (1)支持CAN技術規范2.0A/B, 最高傳輸速率達到1Mbps;
        (2)支持標準數據幀、擴展數據幀和遠程幀,每幀數據域長度可為0~8個字節;
        (3)內含兩個的接收緩沖器和三個發送緩沖器,并且可編程設定優先級;
        (4)內含六個29位(bit)的接收過濾寄存器和兩個29位(bit)的接收屏蔽寄存器;
        (5)高速SPI接口,支持SPI 0,0和1,1模式;
        (6)一次性模式可確保報文被一次性傳輸;
        (7)具有可編程時鐘脈沖輸出引腳,可作為其他芯片時鐘信號源;
        (8) 幀起始(SOF)信號輸出功能可被用于在確定的系統中(如時間觸發CAN-TTCAN)執行時隙功能,或在CAN總線診斷中決定早期總線出級;
        (9) 采用低功耗CMOS技術,工作電壓:2.7V~5.5V, 工作電流:5mA(待機狀態1μA);
        (10)工作溫度范圍:(I)-40℃到+85℃,(E)-40℃到+125℃。

        4.硬件設計

        MCP2515與S3C2416的硬件連接圖如圖3所示。如硬件原理圖可知MCP2515芯片連接在 S3C2416芯片的SPI0上,中斷接在GPF1上;MCP2515輸出連接SN65HVD230 CAN總線收發器,SN65HVD230是德州儀器公司生產的3.3V CAN收發器。為了節省功耗,縮小電路體積,MCP2515 CAN總線控制器的邏輯電平采用LVTTL,SN65HVD230就是與其配套的收發器。


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 佛坪县| 浠水县| 中超| 广安市| 贵港市| 尚志市| 库尔勒市| 城口县| 青田县| 苍溪县| 特克斯县| 静安区| 武平县| 罗田县| 庄浪县| 湄潭县| 宜州市| 芦溪县| 牙克石市| 鄂伦春自治旗| 尼木县| 长沙市| 永新县| 阿拉善左旗| 双鸭山市| 天镇县| 同仁县| 横峰县| 伊宁县| 佳木斯市| 华阴市| 怀远县| 堆龙德庆县| 开封市| 阜新| 崇礼县| 肇庆市| 盐津县| 陕西省| 左权县| 丰台区|