基于MCP2515的Linux CAN总线驱动程序设计(一)

1.前言

        CAN(Controller Area Network)总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制订为国际标准ISO11898,并得到了众多半导体器件厂商的支持。

        本文使用华清远见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.硬件设计

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值