MCP2515中文详解

合集下载

MCP2515软件设计

MCP2515软件设计

基于MCP2515的SPI接口CAN总线控制器的软件设计摘要:CAN总线是德国bosch公司在1986年面向汽车各子系统间通信而开发出的通信协议。

由于它的高性能和可靠性已被广泛地应用于工业自动化、安防、船舶、医疗设备、工业设备等其他领域,并已成为现场总线技术的发展热点之一。

目前工业设计中较多使用并口can总线控制器,并口can总线芯片占用了MCU较多的普通IO口资源。

而目前MCU中大都包含着SPI接口模块,如能通过SPI接口对can总线控制器进行设置和收发,将使MCU的IO接口得到了高效的使用。

本论文将就使用MCU的SPI 接口的can总线控制器的软件设计进行分析。

关键词:MCP2515MCUCAN总线控制器SPI接口一、总线系统结构:CAN总线属于目前众多现场总线的一种,是一种集散型多主方式控制的串行通信网络。

网络中各节点根据各自的总线访问优先权(即标准或扩展报文标识符),采用仲裁方式竞向总线发送数据。

CAN总线通过CAN控制器的两个输出端CANH和CANL与物理总线连接,特点:1、CANH端是高电平或悬浮状态;2、CANL端是低电平或悬浮状态;其结构特性使总线避免了当系统出现错误,多节点同时发送数据造成的总线短路。

另外,CAN总线节点在错误情况下具有自锁功能,可有效避免总线瘫痪。

由于采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠。

它所具有的卓越性能和独特设计,特别适合工业设备测控单元互连,公认为最有前途的现场总线之一。

二、串、并口CAN总线控制器概述1、并口CAN总线控制器特点一般并口CAN总线控制器芯片为SJA1000或82C200,并口的优点是数据读写速度快,但占用I/O口较多,硬件较复杂。

在与MCU的接线中,最少使用13个IO口。

2、SPI接口的CAN总线控制器特点SPI接口是标准串行外设接口(SerialPeripheralInterface,SPI),是芯片间通信总线。

mcp2510与mcp2515区别

mcp2510与mcp2515区别
今天, CAN 市场仍在不停地增长,同时也扩展到了其 他的市场和不同的应用,从而在 CAN 网络中使日益复 杂和简单的节点更深入地实现分布式控制。复杂的节点 可能需要 32 位 MCU、 ASIC、CPLD、DSP 或其他器 件,而这些器件通常并没有片上 CAN 控制器。简单节 点可能仅需要很小的程序空间,而不需要许多集成有 CAN 的 MCU 中的所有额外外设。
使能位处于 CANCTRL.bit3。该位在 MCP2510 中未使 用,并读为零。
如果原始应用并没有将此位初始化为逻辑 1 (这应该是 不可能的,因为在 MCP2510 中这一位并没有实现), 那么使用 MCP2515 不会对操作产生任何影响。
AN872
起始帧 (SOF)信号
MCP2515 实现的这项功能如果使能,器件在 RXCAN 引脚检测到 CAN 报文开始时,将在 CLKOUT/SOF 引 脚上产生一个脉冲。
AN872
从 MCP2510 升级至 MCP2515
作者: Pat Richards Microchip Technology Inc.
介绍
开发 MCP2510 独立 CAN 控制器的初衷是赋予 CAN 系 统和模块设计人员更多的灵活性,允许他们为自己的应 用选择最好的处理器。使用 MCP2510 不会使设计者局 限于那些集成有 CAN 控制器的处理器。
休眠模式
当 CANCTRL.REQOP 位等于 b’001’ 时,两种器件都会 进 入 休 眠 模 式。一 旦 进 入 休 眠 模 式, MCP2510 的 REQOP 位保持不变,而 MCP2515 的 REQOP 位在器 件从休眠模式唤醒后立即变成 b’011’ ,以请求设置成仅 监听模式。需要留意 CANSTAT.OPMOD 位仍然反映着 当前的模式,在这个例子中为休眠模式。 在应用中使用 MCP2515 来替换 MCP2510 的影响应该 极小,因为应用中可读取 CANSTAT.OPMOD 位来检查 工作模式。 REQOP 位仅用于请求工作模式,而不是用 来验证工作所处的模式。

【IT专家】基于MCP2515的Linux CAN总线驱动程序设计(一)

【IT专家】基于MCP2515的Linux CAN总线驱动程序设计(一)

本文由我司收集整编,推荐下载,如有疑问,请与我司联系基于MCP2515的Linux CAN总线驱动程序设计(一)2017/06/06 0 时间:2016-12-12作者:华清远见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在CAN总线系统智能节点的应用(1)

MCP2515在CAN总线系统智能节点的应用(1)
软件和接口稍作修改的基础之上 % 不需要更换单片 机 就可以实现 !"# 总线通信 & 本文主要介绍一种新型的 独立 !"# 通信控制 器 $!%B’(’ % 并给出在 !"# 总线 系统智能节点中的应用实例 &
%&’ ()’ *+ ,-./0’
SPI !" #$
CS SCK SPI SI !" SO
CAN ! " 0x00~0x03 0x04~0x07 0x08~0x0B 0x0C 0x0D 0xXE ! 0xXF !

+&8,/2/ 可 与 任 何 带 有 #84 接 口 的 单 片 机 直 接 相连 % 并且支持 #84 2M2 和 303 模式 ( 单片机通过 #84 接口可以读取接收缓冲器数据 ( +&8,/23 对 &’( 总 线的数据发送则没有限制 % 只要用单片机通过 #84 接 口将待发送的数据写入 +&8,/23 的发送缓存器 % 然后 再调用 :)#A 发送请求 N命令即可将数据发送到 &’( 总
%&#$ OSC1 OSC2 CLKOUT -./0 1,
INT
RX 0 BF RX1BF
TX 0 RTS TX1RTS RESET
+ !"# 通 信 控 制 器 $!%+’/’ 芯 片 介 绍
$!%B’(’ 是 一 种 独 立 的 !"# 总 线 通 信 控 制 器 %
李 貌 (硕 士 研 究 生
式 ) 睡眠模式 ) 监听模式 ) 和自检模式 ( 工作 模式的改 变主要是通过 &’(&):E-:7F$8 位选择 ( 当工作模式 改变的时候% 要等到所有的数据传输完毕后才能生 效& 因此在运行另一种工作模式之前% 可通过查询

基于MCP2515的CAN总线控制软件的设计与实现

基于MCP2515的CAN总线控制软件的设计与实现

基于MCP2515的CAN总线控制软件的设计与实现作者:孙龙刘晖虎来源:《现代信息科技》2018年第07期摘要:控制器局域网络(Controller Area Network,CAN)在汽车、工业控制、航空等嵌入式系统开发中得到了广泛的应用。

为确保其通信功能及接口实现的正确性,需进行有针对性地测试。

为了提高软件测试过程中CAN总线接口测试的效率和质量,本文设计和开发了基于CAN总线控制器MCP2515的CAN总线控制软件,以实现测试过程中对CAN总线收发数据的模拟和监视。

关键词:软件测试;CAN总线;传输层;应用层中图分类号:TP273 文献标识码:A 文章编号:2096-4706(2018)07-0001-05Abstract:The Controller Area Network is widely used in the development of embedded systems,such as automobile,industrial control,aviation and so on. For the correctness of its communication function and interface implementation,it needs to be tested pertinent. In order to improve the efficiency and quality of CAN bus interface test in software testing,a CAN bus control software based on CAN bus controller MCP2515 is designed and developed to realize the simulation and monitoring of CAN bus and receive data in the test process.Keywords:software tests;CAN bus;transport layer;application layer1 MCP2515概述MCP2515是一款独立CAN控制器,能够简化需要与CAN总线连接的应用。

基于MCP2515的CAN学习

基于MCP2515的CAN学习

基于MCP2515的CAN学习CAN总线上的所有节点都必须具有相同的标称⽐特率(Nominal Bit Rate)。

MCP2515通过DPLL(数字锁相环)实现位定时,DPLL被配置成同输⼊数据同步,并为发送数据提供标称定时。

DPLL将⼀个位时间分割为有最⼩单位为时间份额(Time Quanta,TQ)所组成的多个时间段。

CAN总线上的所有器件都必须使⽤相同的⽐特率。

然⽽并⾮所有器件都要求具有相同的主振荡器时钟频率。

对于采⽤不同时钟频率的器件,应通过适当设置波特率预分频⽐以及每⼀时间段中的时间份额的数量来对⽐特率进⾏调整。

CAN位时间由互不重叠的时间段组成。

每个时间段⼜由时间份额(TQ)组成。

CAN的标称⽐特率(Nominal Bit Rate,NBR):在不需要再同步的情况下,理想发送器每秒发送的位数公式如下: NBR = f bit = 1/t bit标称位时间(Nominal Bit Time,NBT)(t bit)由互不重叠的段时间段组成,NBT为以下时间段之和。

t bit = t SyncSeg + t PropSeg + t PS1 + t PS2与NBT相关的参数是采样点、同步跳转宽度(Synchronization Jump Width,SJW)和信息处理时间(Information ProcessingTime,IPT)。

同步段(SyncSeg)为NBT中的⾸段,⽤于同步CAN总线上的各个节点,输⼊信号的跳变沿就发⽣在同步段,该段持续时间为1TQ。

传播段(PropSeg)⽤于补偿各节点之间的物理传输延迟时间。

传输延时时间为信号在总线上传播时间的两倍,包括总线驱动器延迟时间,传播段的长度可编程设定为1--8TQ。

相位缓冲段1(PS1)和相位缓冲段2(PS2)PS1、PS2⽤于补偿总上的边沿相位误差。

通过再同步,可以延长PS1(或缩短PS2)。

PS1可编程设定为1--8TQ,⽽PS2可编程设定为2--8TQ。

mcp2515 工作原理

mcp2515 工作原理

mcp2515 工作原理MCP2515工作原理简介MCP2515是一款基于SPI总线的控制器局域网络(CAN)控制器,用于在嵌入式系统中实现CAN通信。

它是Microchip公司推出的一颗高性能芯片,广泛应用于汽车电子、工业控制等领域。

SPI总线SPI(Serial Peripheral Interface)是一种串行通信协议,常用于连接微控制器与外部设备。

它使用四条信号线(SCLK、MOSI、MISO、SS)进行数据传输。

MCP2515芯片功能MCP2515芯片具有以下主要功能:•CAN控制器:负责处理CAN报文的发送和接收。

•SPI控制器:与主控制器通过SPI总线进行通信。

•接口逻辑电路:将SPI总线与CAN总线连接起来。

工作模式MCP2515支持两种工作模式:配置模式和正常模式。

配置模式在配置模式下,MCP2515芯片可以通过SPI接口进行寄存器的配置。

在这种模式下,CAN控制器不会进行CAN总线的发送和接收操作。

正常模式在正常模式下,MCP2515芯片将根据配置的寄存器参数执行CAN 通信操作。

它可以接收其他节点发送的CAN报文,并将其存储在内部缓冲区中。

当需要发送CAN报文时,它会从缓冲区中读取报文并通过CAN总线发送出去。

报文发送MCP2515芯片通过以下步骤实现CAN报文的发送:1.设置发送请求:将控制寄存器中的一个特定位设置为1,表示要发送CAN报文。

2.设置发送缓冲区:将要发送的CAN报文数据写入发送缓冲区。

3.发送操作:MCP2515根据CAN总线的优先级进行发送,一旦发送成功,相应的发送缓冲区会被清空。

报文接收MCP2515芯片通过以下步骤实现CAN报文的接收:1.监听CAN总线:MCP2515将持续监听CAN总线上的报文。

2.接收操作:当一个报文被接收到时,MCP2515将其存储在接收缓冲区中。

3.读取报文:主控制器通过SPI接口读取接收缓冲区中的报文数据。

总结MCP2515芯片是一款用于嵌入式系统中实现CAN通信的控制器。

CAN总线控制器MCP2515的原理及应用

CAN总线控制器MCP2515的原理及应用
前 言
<=) 总线现在广泛应用于工业自动化、监控系
统、 医疗仪器等众多部门。目前, 我国工业上应用最广 泛 的 <=) 控 制 器 芯 片 当 属 >N1’1L4 公 司 的 H:="+++。 虽然它具有低成本, 高可靠性, 支持远距离通信等特 点, 但它在应用中也具有一些缺点, 比如地址总线和 数据总线分时复用常导致接口效率低下; 接收和发送 缓冲器的个数太少, 导致数据吞吐率低下; 屏蔽器和 过滤器的设置不够灵活, 不能满足同时需要更多屏蔽 和过滤条件的要求等。为了满足以上要求, 31.0&.N1L 公司推出了 <=) 总线控制器芯片 3<>*#"#,它符合
的接口, 而缓冲器、 过滤器组和控制逻辑 以 及 与 之 相关的位定时发生器、 控制和中断寄存器则负责实 现各种工作模式的设定和操作控制。
"(E 3;<*#"# 控制寄存器配置 与 S:="+++ 具有 @241.;=) 和 <-’1;=) 两种工作 模式不同, 3;<*#"# 只 有 一 种 工 作 模 式 , 即 )&062’ ( 正常) 模式。 )&062’ 模式既支持 ;=) 的标准帧格式, 也支持 ;=)*(+@ 的扩展帧格式。 3;<*#"# 的有效寻 址范围为 +>+?$B, 其中有用的寄存器共 ""! 个。表 " 列出了 3;<*#"# 在工作模式和配置模式下的控制寄
!"# 总线控制器 $!%&’(’ 的原理及应用
王继国, 吉吟东, 孙新亚
( 清华大学 自动化系, 北京
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据字段
协议 引擎
发送 <7:0>
移位 <14:0> { 发送 <5:0>,接收 <8:0>}
比较器
接收 <7:0>
CRC<14:0>
接收 错误 计数器
发送 错误 计数器
REC TEC
ErrPas BusOff
协议 有限 状态 机
SOF
发送 逻辑
TX
位 时序 逻辑
RX
时钟 发生器
配置 寄存器
2005 Microchip Technology Inc.
监控 SOF 信号:
- 可用于时隙协议和/或总线诊断以检测早期总 线性能退化
• 带有可选使能设定的中断输出引脚 • “缓冲器满”输出引脚可配置为:
- 各接收缓冲器的中断引脚 - 通用数字输出引脚 • “请求发送 (Request-to-Send, RTS)”输入引 脚可各自配置为: - 各发送缓冲器的控制引脚,用于请求立即发送
初稿
DS21801D_CN 第 3 页
MCP2515
图 1-2:
典型系统实现方法图
节点 控制器
SPI MCP2515
TX
RX
XCVR
节点 控制器
SPI
MCP2515
TX
RX
XCVR
CANH CANL
节点 控制器
SPI MCP2515
TX
RX
XCVR
表 1-1:
引脚说明
名称
PDIP/SOIC TSSOP I/O/P 引脚号 引脚号 类型
RXCAN TXCAN
CAN 协议
引擎
发送和接收缓冲器
验收屏蔽寄存器和 验收滤波器
SPI 接口
逻辑
CS SCK SI SO
SPI 总线
OSC1 OSC2 CLKOUT
时序 发生器
控制逻辑
控制 和 中断 寄存器
INT RX0BF RX1BF TX0RTS TX1RTS TX2RTS
RESET
2005 Microchip Technology Inc.
20 引脚 TSSOP
TXCAN 1 RXCAN 2 CLKOUT/SOF 3 TX0RTS 4 TX1RTS 5
NC 6 TX2RTS 7
OSC2 8 OSC1 9
VSS 10
MCP2515
20 VDD 19 RESET 18 CS 17 SO 16 SI 15 NC 14 SCK
13 INT
12 RX0BF 11 RX1BF
2005 Microchip Technology Inc.
初稿
DS21801D_CN 第 1 页
MCP2515
注:
DS21801D_CN 第 2 页
初稿
2005 Microchip Technology Inc.
MCP2515
1.0 器件概述
MCP2515 是一款独立 CAN 控制器,可简化需要与 CAN 总线连接的应用。图 1-1 简要显示了 MCP2515 的结构 框图。该器件主要由三个部分组成:
器件还有三个引脚,用来启动将装载在三个发送缓冲器 之一中的报文立即发送出去。是否使用这些引脚由用户 决定;若不使用,也可利用控制寄存器(通过 SPI 接口 访问)来启动报文发送。
1.3 SPI 协议模块
MCU通过SPI接口与该器件连接。使用标准的SPI读/写 指令以及专门的 SPI 命令来读 / 写所有的寄存器。
1.4 发送 / 接收缓冲器/验收屏蔽寄存器 /验收滤波寄存器
MCP2515 有三个发送缓冲器和两个接收缓冲器,两个 验收屏蔽寄存器 (分别对应不同的接收缓冲器)以及六 个验收滤波寄存器。图 1-3 的框图显示了这些缓冲器及 它们与 CAN 协议引擎的连接方法。
图 1-3:
缓冲器
CAN 缓冲器和协议引擎框图
TX 发送逻辑
采样 <2:0>
多数 决定
SAM StuffReg<5:0>
接收 错误计数器
发送 错误计数器
REC
TEC ErrPas BusOff
BusMon
比较器
CRC<14:0>
接收 <7:0>
比较器
移位 <14:0> (发送 <5:0>,接收 <7:0>)
发送 <7:0>
RecData<7:0>
13
O 中断输出引脚

SCK
13
14
I SPI 接口的时钟输入引脚

SI
14
16
I SPI 接口的数据输入引脚

SO
15
17
O SPI 接口的数据输出引脚

CS
16
18
I SPI 接口的片选输入引脚

RESET
17
19
I 低电平有效的器件复位输入引脚

VDD
18
20
P 逻辑和 I/O 引脚的正电源

初稿
DS21801D_CN 第 5 页
MCP2515
1.5 CAN 协议引擎
CAN 协议引擎包含数个功能模块,见图 1-4。下面将对 这些模块及其功能进行介绍。
1.5.1 协议有限状态机
协议引擎的核心是有限状态机 (Finite State Machine, FSM)。FSM 是一个定序器,对 TX/RX 移位寄存器、循 环冗余校验 (Cyclic Redundancy Check, CRC)寄存 器和总线之间的顺序数据流进行控制。 FSM 还对错误 管理逻辑(Error Management Logic,EML)及 TX/RX 移位寄存器和缓冲器之间的并行数据流进行控制。FSM 确保了依据 CAN 协议,进行报文接收、总线仲裁、报 文发送以及错误信号发生等操作过程。 FSM 还对总线 上报文的自动重发进行处理。
封装类型
18 引脚 PDIP/SOIC
TXCAN 1 RXCAN 2 CLKOUT/SOF 3 TX0RTS 4 TX1RTS 5 TX2RTS 6
OSC2 7 OSC1 8
Vss 9
MCP2515
18 VDD 17 RESET 16 CS 15 SO 14 SI 13 SCK 12 INT 11 RX0BF 10 RX1BF
1. CAN 模块,包括 CAN 协议引擎、验收滤波寄存 器、验收屏蔽寄存器、发送和接收缓冲器。
2. 用于配置该器件及其运行的控制逻辑和寄存器。 3. SPI 协议模块。
图 1-2 显示了该器件的典型系统应用。
1.1 CAN 模块
CAN 模块的功能是处理所有 CAN 总线上的报文接收和 发送。报文发送时,首先将报文装载到正确的报文缓冲 器和控制寄存器中。通过 SPI 接口设置控制寄存器中的 相应位或使用发送使能引脚均可启动发送操作。通过读 取相应的寄存器可以检查通讯状态和错误。会对在 CAN 总线上检测到的任何报文进行错误检查,然后与用户定 义的滤波器进行匹配,以确定是否将报文移到两个接收 缓冲器中的一个。
1.5.2 循环冗余校验
循环冗余校验寄存器产生循环冗余校验 (CRC)代码。 该代码在控制字段(数据字节数为 0 的报文)或数据字 段之后被发送,并用来检查进入报文的 CRC 字段。
图 1-4:
RX
CAN 协议引擎框图
位时序逻辑
1.5.3 错误管理逻辑
错误管理逻辑 (EML)负责将 CAN 器件的故障进行隔 离。该逻辑有两个计数器,即接收错误计数器(Receive Error Counter, REC)和发送错误计数器 (Transmit Error Counter, TEC)。这两个计数器根据来自位流处 理器的命令进行增减计数。根据错误计数器的计数值, CAN 控制器将被设定为错误主动、错误被动或总线关闭 三种状态。
MCP2515
带有 SPI 接口的独立 CAN 控制器
特性
• 完全支持 CAN V2.0B 技术规范,通讯速率为 1 Mb/s: - 0-8 字节长的数据字段 - 标准和扩展数据帧及远程帧
• 接收缓冲器、验收屏蔽寄存器和验收滤波寄存器: - 两个接收缓冲器,可优先存储报文 - 六个 29 位验收滤波寄存器 - 二个 29 位验收屏蔽寄存器
NC

6,15
— 无内部连接
注: 类型标识:I = 输入; O = 输出; P = 电源
DS21801D_CN 第 4 页
初稿
2005 Microchip Technology Inc.
MCP2515
TXREQ ABTF MLOA TXERR MESSAGE TXREQ ABTF MLOA TXERR MESSAGE TXREQ ABTF MLOA TXERR MESSAGE
TXB0
TXB1
TXB2
报文 队列 控制
发送字节序列发生器

验收屏蔽寄存器
RXM0

验收滤波寄存器
RXF0
验收滤波寄存器 RXF1
验收屏蔽寄存器 RXM1
验收滤波寄存器
RXF2
验收滤波寄存器

RXF3
验收滤波寄存器

RXF4
验收滤波寄存器
RXF5
R
X
标识符
B
0
M A
标识符
B
R X B 1
数据字段
1.5.4 位时序逻辑
位时序逻辑 (Bit Timing Logic, BTL)可监控总线输 入,并根据 CAN 协议处理与总线相关的位时序操作。 BTL 在起始帧时,对从隐性状态到显性状态的总线过渡 进行同步操作 (称为硬同步)。如果 CAN 控制器本身 不发送显性位,则在以后的隐性状态到显性状态总线过 渡时会再进行同步操作(称为再同步)。BTL 还提供可 编程时间段以补偿传播延迟时间和相位位移,并对位时 段内的采样点位置进行定义。对 BTL 的编程取决于波特 率和外部物理延迟时间。
相关文档
最新文档