CAN总线基础与模拟软件_第1页
CAN总线基础与模拟软件_第2页
CAN总线基础与模拟软件_第3页
CAN总线基础与模拟软件_第4页
CAN总线基础与模拟软件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

CAN总线基础与模拟软件 CANBUS 计算机 要关注的问题1 这个总线是怎么工作的 它们共用一条通信线路 2 它们传送的数据是什么样的 帧格式3 它们共用一条通信线路 竞争怎么办 优先 仲裁 谁最优先4 总线上传送的信息很多 某个控制器怎么接收自己需要的数据 接收 过滤5 还要注意CAN总线通信速率的问题 CAN总线的基本问题 CAN模拟软件运行的环境 基础学习可以借肋一下模拟软件 在自己的计算机上不需要CAN的相关硬件设备 可以模拟出CAN总线的一些特性 有助于理解CAN的一些基本概念 第1个问题 CAN总线传输的数据 认识标准数据帧 CAN四种帧类型 数据帧 远程帧 错误帧 超载帧 数据帧是实际中经常使用的 标准数据帧 扩展数据帧 数据帖主要有2种 标准帧和扩展帧 它们主要区别是ID号长度不同 IDE位不同标准帧IDE 0显性电平 扩展帧IDE 1隐性电平 使用过程中要注意的有 ID DLC 0 8bytes数据 IDE 第2个问题 CAN总线优先级问题 逐位仲裁机制 CAN总线上的设备 节点 是检测到总线空闲才发送的 节点每次发送的数据都很短 在极短的时间就能发送完成 这样数据不会碰撞 但当总线发送数据量很大的情况下 难免会有两个设备同时发送的情况 就靠ID的大小来解决 NodeB 00011101101 0 xED VSNodeA 00011101111 0 xEF 举例说明两个ID同时发送 逐位仲裁的方法 得出的结论 ID号小的能获得较高的优先级 通过这样做 既照顾了数据优先性 碰撞的概率也降到极低的程度 第3个问题 CAN总线上节点对数据的选择接收 过滤机制 过滤机制是靠设置接收的ID和屏蔽位共同完成的 1 默认情况下 总线上的节点接收所有的数据 2 只接收某一个ID号的数据帧的情况是这样实现的 设定要接收的ID号到节点的CAN控制器中 并且把相应的屏蔽位全设置为1 例如 要接收ID号为0 x317的标准数据帧 对于标准帧 ID和MSK都是11位的 一个ID的bit就对应一个屏蔽的bit 屏蔽的某位为1就说明接收到的ID的那一位必须与设定ID那一位相同 如果不相同就不接收 而屏蔽位为0接收的ID那一位可以是 0或1 第3个问题 CAN总线上节点对数据的选择接收 过滤机制 2 接收一部分ID号的实现 例如 要接ID号为0 x310到0 x317标准数据帧 01100010000b 0 x31001100010001b 0 x31101100010010b 0 x31201100010011b 0 x31301100010100b 0 x31401100010101b 0 x31501100010110b 0 x31601100010110b 0 x317 111111111000b屏蔽位 第3个问题 CAN总线上节点对数据的选择接收 过滤机制 一个实际的例子 配料系统 简装版 工作过程 1 监控计算机确定哪些配料控制器进行配料任务 发选中消息给主控制器 主控制器发送一条选中信息给所有的配料控制器 告知配料控制器哪些进行配料工作 2 主控制器按一定顺序发送启动信息 让配料控制器启动 配料控制器启动后发送一条启动成功的应答消息 3 配料控制器启动后开始称量物料 把物料的流量值周期性的发送给监控机 4 如果某个配料控制器出现故障 要发送报警信息 5 当系统要停止时 主控制器发送停止命令 让配料控制器停止工作 并应答 一个实际的例子 配料系统 CAN通信设计 先对所有收发信息进行统计 这里介绍主控制器的信息和配料控制器的信息 主控制器传送的信息有 发送 a 配料控制器选中信息 所有控制器都接收 优先级较低b 配料控制器启动 停止信息 针对某控制器来控制启动停止 优先级一般接收 a 各个配料控制器发送的报警信息 要能区分出是哪个控制器发的 优先级较高b 各个配料控制器的启动 停止应答信息 能区分出是哪个控制器 优先级一般 配料控制器传送的信息有 发送 a 发送实时称量的信息 各个控制器要有区分 优先级一般b 各个配料控制器发送的报警信息 要能区分出是哪个控制发的 优先级较高c 各个配料控制器发送启动停止应答信息 能区分出是哪个控制器发的 优先级一般接收 a 配料控制器选中信息 所有控制器都接收 优先级较低b 主控制器发出来的启动 停止信息 针对不同控制器 优先级一般 一个实际的例子 配料系统 CAN通信设计 ID设计 在进行CAN总线通信的设计时 要注意 1 要能区分出各种不同的信息 用ID号来标识 2 要区分出各种不同信息的优先级 比如发生了报警 优先级要高 3 要区分出信息是要大家都接收的还是只针对某一个控制器的 接收过滤 比如有8个配料控制器 采用标准帧进行设计 问题可以如下解决 最前2bit设为优先级00最高01一般10较低11最低 最后4bit设为控制器号1111 15为主控制器0001 1000 1 8 0000相当于所有控制器 用于区分不同控制器 中间5bit可以代表各种消息00001配料控制器发送的报警00010主控制器发送的启动 停止信息00011配料控制器发送的流量信息00100配料控制器发送的启 停应答00101主控制器发送的选中信息 11bitID的使用 例如1 配料控制器发送的报警信息00000010001 0 x112 控制器发送的流量值信息01000110010 0 x232主控制器发送给2 的启 停信息01000100010 0 x222 一个实际的例子 配料系统 CAN通信设计 数据设计 细心的同学发现 我们上面设计的ID有的是主控制器发送给2 配料控制器的启 停信息 一个ID只能代表一个意思 那是让2 启动还是停止呢 别忘了 我们还除了ID可用外还有0 8bytes的数据区可以用 它可以装我们要发送的数据 例如 控制配料控制器的启动停止 相当于一个开关量 我们最多用一个字节的数据就够了 数据为0 xFC表示启动 0 xFE表示停止所以让2 配料控制器启动的数据帧为 ID 01000100010 0 x222 ID号 DLC 1 数据长度 数据 0 xFC 1个字节的数据 让2 配料控制器停止的数据帧为 ID 01000100010 0 x222 ID号 DLC 1 数据长度 数据 0 xFE 1个字节的数据 一个实际的例子 配料系统 CAN通信设计 接收屏蔽 还有一个问题 接收方怎么选择信息 2个例子 1 主控制器接收1 8号配料控制器的报警信息 前面说过它们的报警信息为以下这一组 00000010001 0 x0111 配料控制器发送的报警信息00000010010 0 x0122 配料控制器发送的报警信息00000010011 0 x0133 配料控制器发送的报警信息00000010100 0 x0144 配料控制器发送的报警信息00000010101 0 x0155 配料控制器发送的报警信息00000010110 0 x0166 配料控制器发送的报警信息00000010111 0 x0177 配料控制器发送的报警信息00000011000 0 x0188 配料控制器发送的报警信息11111110000 0 x7F0屏蔽位2 主控制器发送给2 的启 停信息 由于只有2 配料控制器接收 所以是全屏蔽的地方 01000100010 0 x222111111111111 0 x7FF 一个实际的例子 配料系统 协议表 对照信息表 ID的分配 数据的意义来制定协议表 注 ID号里的x代表的是跟控制器相关的数据 实际x是控制器号 x的取值范围0 F 一个实际的例子 配料系统 2 3人一组试试协议 2 3人一组 来模拟配料系统 一个同学做主控制器 其它的同学做配料控制器 模拟配料系统的工作过程 1 定好配料控制器的号 按上面的协议表定出各条消息 ID和数据 2 主控制器发送选中命令 配料控制器同学看接收到的信息判断自己是否被选中 3 主控制器依次给配料控制器同学发送启动命令 配料控制器同学回应一个启动成功消息 4 配料控制器的同学发送流量值信息 主控制器同学可以用虚拟液位来看流量 5 配料控制器的同学发送报警信息 6 主控制器的同学区分是哪个配料控制器发送的报警信息 7主控制器同学依次给配料控制器发送停止信息 配料控制器的同学收到后发送一个停止成功消息 把发送的数据和接收到的数据 附在作业上 会出现的问题

温馨提示

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

最新文档

评论

0/150

提交评论