CAN总线通讯实验_第1页
CAN总线通讯实验_第2页
CAN总线通讯实验_第3页
CAN总线通讯实验_第4页
CAN总线通讯实验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CAN 总线通讯实验 一 实验目的 掌握 UP NetARM2410 经典版上的 CAN 总线通讯原理 学习编程实现 MCP2510 的 CAN 总线通讯 掌握查询模式的 CAN 总线通讯程序的设计方法 二 实验内容 学习 CAN 总线通讯原理 了解 CAN 总线的结构 阅读 CAN 控制器 MCP2510 的芯片 文档 掌握 MCP2510 的相关寄存器的功能和使用方法 编程实现 UP NetARM2410 CL 之 间的 CAN 总线通讯 两个 UP NetARM2410 CL 通过 CAN 总线相连接 ARM 监视串行口 将接收到的字 符发送给另一个开发板并通过串口显示 计算机与开发板是通过超级终端通讯的 即按 PC 键盘通过超级终端发送数据 开发板将接收到的数据通过 CAN 总线转发 再另一个 PC 的超级终端上显示数据 三 预备知识 1 用 EWARM 集成开发环境 编写和调试程序的基本过程 2 ARM 应用程序的框架结构 3 会使用 Source Insight 3 编辑 C 语言源程序 4 了解 CAN 总线 四 实验设备及工具 硬件硬件 ARM 嵌入式开发平台 用于 ARM920T 的 JTAG 仿真器 PC 机 Pentium100 以 上 CAN 通讯电缆 软件软件 PC 机操作系统 Win2000 或 WinXP EWARM 集成开发环境 仿真器驱动程序 超级终端通讯程序 五 实验原理及说明 1 CAN 总线概述 CAN 全称为 Controller Area Network 即控制器局域网 是国际上应用最广泛的现场 总线之一 最初 CAN 总线被设计作为汽车环境中的微控制器通讯 在车载各电子控制装 置 ECU 之间交换信息 形成汽车电子控制网络 比如 发动机管理系统 变速箱控制器 仪表装备 电子主干系统中均嵌入 CAN 控制装置 一个由 CAN 总线构成的单一网络中 理论上可以挂接无数个节点 但是 实际应用 中节点数目受网络硬件的电气特性所限制 例如 当使用 Philips P82C250 作为 CAN 收发 器时 同一网络中允许挂接 110 个节点 CAN 可提供高达 1Mbit s 的数据传输速率 这使实时控制变得非常容易 另外 硬件 的错误检定特性也增强了 CAN 的抗电磁干扰能力 CAN 的主要优点包括 低成本 极高的总线利用率 很远的数据传输距离 长达 10 公里 高速的数据传输速率 高达 1Mbit s 可根据报文的 ID 决定接收或屏蔽该报文 可靠的错误处理和检错机制 发送的信息遭到破坏后可自动重发 节点在错误严重的情况下具有自动退出总线的功能 报文不包含源地址或目标地址仅用标志符来指示功能信息优先级 2 CAN 总线的电气特性 CAN 能够使用多种物理介质进行传输 例如 双绞线 光纤等 最常用的就是双绞线 信号使用差分电压传送 两条信号线被称为 CAN H 和 CAN L 静态时均是 2 5V 左右 此时状态表示为逻辑 1 也可以叫做 隐性 用 CAN H 比 CAN L 高表示逻辑 0 称为 显性 此时 通常电压值为 CAN H 3 5V 和 CAN L 1 5V 当 显性 位和 隐性 位同时发送的时候 最后总线数值将为 显性 这种特性 为 CAN 总线的总裁奠定了基 础 CAN 总线的一个位时间可以分成四个部分 同步段 传播段 相位段 1 和相位段 2 每段的时间份额的数目都是可以通过 CAN 总线控制器 比如 MCP2510 编程控制的 而 时间份额的大小 tq 由系统时钟 tsys 和波特率预分频值 BRP 决定 tq BRP tsys 如下图所 示 图 9 1 CAN 总线的一个位时间 上述四个部分的设定和 CAN 总线的同步 仲裁等信息有关 请读者参考 CAN 总线方 面的相关资料 3 CAN 总线的 MAC 帧结构 如下图所示 CAN 总线的帧数据有两种格式 标准格式和扩展格式 图 9 2 CAN 总线的帧数据 注 MCP2510 中 同时支持上述两种 CAN 总线的帧格式 4 UP NETARM2410 CL 上的 CAN 总线控制器 MCP2510 UP NETARM2410 CL 上采用 MicroChip 公司的 MCP2510 CAN 总线控制器 其特点 如下 支持标准格式和扩展格式的 CAN 数据帧结构 0 8 字节的有效数据长度 支持远程帧 最大 1Mbps 的可编程波特率 两个支持过滤器 Fliter Mask 的接收缓冲区 三个发送缓冲区 支持回环 Loop Back 模式 SPI 高速串行总线 最大 5MHz 4 5V 供电 3V 到 5 5V 供电 平台间的连接方式是将要用于通信的平台的 CAN H 和 CAN H 相连 CAN L 和 CAN L 相 连 系统中 S3C2410X 通过 SPI 同步串行接口和 MCP2510 相连 MCP2510 的片选信号 通过接在 S3C2410X 的 GPH0 上来控制 通过定义如下宏实现 MCP2510 的片选 define MCP2510 Enable GPHDAT GPHDAT 0 x7fe define MCP2510 Disable GPHDAT GPHDAT 0 x01 上述的两个宏定义就是对 GPH0 端口的置 1 和清 0 操作 S3C2410X 带有高速 SPI 接口 可以直接和 MCP2510 通讯 通过如下两个函数 SPISend 向同步串口发送数据 spi c SPIRecv 从同步串口读取数据 spi c 5 MCP2510 的控制字 如下表所示 MCP2510 的控制包括了 6 种命令 表 9 1 MCP2510 中的命令 命令格式定义 复位1100 0000 设置内部寄存器为默认值 并设置 MCP2510 到配置状 态 读取0000 0011 从选定的寄存器的地址开始读取数据 写入0000 0010 向选定的寄存器的地址开始写入数据 发送 请求 1000 0nnn 设置一个或者多个发送请求位 发送缓冲区中的数据 读取 状态 1010 0000 轮流检测发送或者接收的状态 修改 位 0000 0101 按位修改寄存器 各种命令的时序如下 图 9 4 读取命令 图 9 5 单字节写入命令 图 9 6 发送请求命令 图 9 7 修改位命令 图 9 8 状态读取命令 6 波特率的设置 波特率的设置 通过设置 MCP2510 中的 CNF1 CNF2 CNF3 三个寄存器 实现不同时钟下 CAN 总线通讯的波特率的设置 在 UP NETARM2410 CL 中 MCP2510 的输入时钟为 16MHz 可以按照如下方式定义 CAN 总线通讯的波特率 表 9 2 MCP2510 的波特率设置 CAN 波 特率 同 步 段 传 输 段 相 位 1 相 位 2 CNF1CNF2CNF3 125Kpbs17440 x030 x9E0 x03 250Kpbs17440 x010 x9E0 x03 500Kpbs17440 x000 x9E0 x03 1Mbps13220 x000 x9E0 x03 7 接受过滤器的设置 接受过滤器的设置 在 MCP2510 中有两个 Mask 过滤器 6 个 Filter 过滤器 可以控制 CAN 节点收到指定 的一个 或者一组 ID 的数据 Mask 和 Filter 来控制是否接收数据 遵循如下规律 表 9 3 Mask 和 Filter MaskFilter 发送方的 ID 是否接收 数据 0 xx是 100是 101否 110否 111是 可见 如果要收到所有的数据 只要设置 Mask 的所有位均为 0 就可以了 若要接收 指定的 ID 帧 只要将 Mask 的所有位均设为 1 然后将验收滤波寄存器设置为相应的 ID 即可 本实验中使用的是标准帧 因此 ID 的范围是 0 0 x7ff 发送报文中的标准帧 ID 在 函数 canWrite 中设置 接收报文端的 ID 在函数 MCP2510 Write Can ID 中设置 此函数在函数 init MCP2510 中 函数 init MCP2510 和 canWrite 在 main 函数中 8 MCP2510 的初始化的初始化 MCP2510 的初始化如下步骤 1 软件复位 进入配置模式 2 设置 CAN 总线波特率 3 关闭中断 4 设置 ID 过滤器 5 切换 MCP2510 到正常状态 Normal 6 清空接受和发送缓冲区 7 开启接收缓冲区 开启中断 可选 9 MCP2510 发送和接收数据 发送和接收数据 MCP2510 中有 3 个发送缓冲区 可以循环使用 也可以只使用一个发送缓冲区 但是 必须保证在发送的时候 前一次的数据已经发送结束 MCP2510 中有 2 个接收缓冲区 可以循环使用 数据的发送和接收均可使用查询或者中断模式 这里 为编程简单 收发数据都采用 查询模式 通过状态读取命令 Read Status Instruction 来判断是否接收到 或者发送出 数据 注 关于 MCP2510 的寄存器 操作方式等的详细情况请参考 MCP2510 的 datasheet 六 实验步骤 1 启动 JLink 仿真器并进行初始化配置 2 启动 IAR EWARM 新建或打开工程 CAN 总线通讯实验 3 编写 MCP2510 驱动函数 MCP2510 c 包括 CAN 初始化 init MCP2510 发 送数据 canWrite 接收数据 canRead 查询数据 canPol

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论