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

下载本文档

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

文档简介

1、1CAN总线基础与模拟软件2传输机构执行机构检测机构CAN BUS计算机计算机其他网络CAN控制器CAN控制器CAN控制器要关注的问题1,这个总线是怎么工作的?它们共用一条通信线路。.2,它们传送的数据是什么样的?帧格式3,它们共用一条通信线路,竞争怎么办?优先、仲裁,谁最优先4,总线上传送的信息很多,某个控制器怎么接收自己需要的数据?接收,过滤5,还要注意CAN总线通信速率的问题CAN总线的基本问题3CAN模拟软件运行的环境计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机计算机Ethernet基础学习可以借肋一下模拟软件,在自己的计算机上不需要

2、CAN的相关硬件设备,可以模拟出CAN总线的一些特性,有助于理解CAN的一些基本概念。4第1个问题,CAN总线传输的数据认识标准数据帧CAN四种帧类型: 数据帧、远程帧、错误帧、超载帧;数据帧是实际中经常使用的。标准数据帧:扩展数据帧:数据帖主要有2种:标准帧和扩展帧(它们主要区别是ID号长度不同;IDE位不同标准帧IDE=0显性电平,扩展帧IDE=1隐性电平。)使用过程中要注意的有:ID,DLC, 08bytes数据,IDE5第2个问题,CAN总线优先级问题逐位仲裁机制CAN总线上的设备(节点)是检测到总线空闲才发送的,节点每次发送的数据都很短,在极短的时间就能发送完成,这样数据不会碰撞,但

3、当总线发送数据量很大的情况下,难免会有两个设备同时发送的情况。就靠ID的大小来解决。Node B:00011101101(0 xED) VS Node A:00011101111(0 xEF)举例说明两个ID同时发送,逐位仲裁的方法得出的结论,ID号小的能获得较高的优先级。通过这样做,既照顾了数据优先性,碰撞的概率也降到极低的程度6第3个问题,CAN总线上节点对数据的选择接收过滤机制过滤机制是靠设置接收的ID和屏蔽位共同完成的。1.默认情况下,总线上的节点接收所有的数据。2.只接收某一个ID号的数据帧的情况是这样实现的: 设定要接收的ID号到节点的CAN控制器中,并且把相应的屏蔽位全设置为1.

4、 例如:要接收ID号为0 x317的标准数据帧:对于标准帧,ID和MSK都是11位的,一个ID的bit就对应一个屏蔽的bit,屏蔽的某位为1就说明接收到的ID的那一位必须与设定ID那一位相同,如果不相同就不接收;而屏蔽位为0接收的ID那一位可以是(0或1)7第3个问题,CAN总线上节点对数据的选择接收过滤机制2.接收一部分ID号的实现:例如:要接ID号为0 x310到0 x317标准数据帧。011 0001 0000 b -0 x310011 0001 0001 b -0 x311011 0001 0010 b -0 x312011 0001 0011 b -0 x313011 0001 01

5、00 b -0 x314011 0001 0101 b -0 x315011 0001 0110 b -0 x316011 0001 0110 b -0 x317111111111000b 屏蔽位8第3个问题,CAN总线上节点对数据的选择接收过滤机制9一个实际的例子,配料系统(简装版)工作过程:1,监控计算机确定哪些配料控制器进行配料任务,发选中消息给主控制器,主控制器发送一条选中信息给所有的配料控制器,告知配料控制器哪些进行配料工作。2,主控制器按一定顺序发送启动信息,让配料控制器启动,配料控制器启动后发送一条启动成功的应答消息。3,配料控制器启动后开始称量物料,把物料的流量值周期性的发送给

6、监控机。4,如果某个配料控制器出现故障,要发送报警信息。5,当系统要停止时,主控制器发送停止命令,让配料控制器停止工作,并应答。10一个实际的例子,配料系统CAN通信设计先对所有收发信息进行统计:这里介绍主控制器的信息和配料控制器的信息主控制器传送的信息有:发送:a.配料控制器选中信息,所有控制器都接收,优先级较低b.配料控制器启动/停止信息,针对某控制器来控制启动停止,优先级一般接收:a.各个配料控制器发送的报警信息, 要能区分出是哪个控制器发的, 优先级较高b.各个配料控制器的启动/停止应答信息,能区分出是哪个控制器,优先级一般配料控制器传送的信息有:发送:a.发送实时称量的信息,各个控制

7、器要有区分,优先级一般b.各个配料控制器发送的报警信息, 要能区分出是哪个控制发的, 优先级较高c. 各个配料控制器发送启动停止应答信息,能区分出是哪个控制器发的,优先级一般接收:a.配料控制器选中信息,所有控制器都接收,优先级较低b.主控制器发出来的启动/停止信息,针对不同控制器,优先级一般11一个实际的例子,配料系统CAN通信设计,ID设计在进行CAN总线通信的设计时,要注意:1,要能区分出各种不同的信息, 用ID号来标识。2,要区分出各种不同信息的优先级,比如发生了报警,优先级要高。3,要区分出信息是要大家都接收的还是只针对某一个控制器的。(接收过滤)比如有8个配料控制器,采用标准帧进行

8、设计,问题可以如下解决:最前2bit设为优先级00 最高01 一般10 较低11 最低最后4bit设为控制器号1111=15为主控制器00011000,18#0000相当于所有控制器(用于区分不同控制器)中间5bit可以代表各种消息00001 配料控制器发送的报警00010 主控制器发送的启动/停止信息00011 配料控制器发送的流量信息00100 配料控制器发送的启/停应答00101 主控制器发送的选中信息11 bit ID的使用例如1#配料控制器发送的报警信息00000010001 = 0 x112#控制器发送的流量值信息01000110010 = 0 x232主控制器发送给2#的启/停信

9、息01000100010 = 0 x22212一个实际的例子,配料系统CAN通信设计,数据设计细心的同学发现,我们上面设计的ID有的是主控制器发送给2#配料控制器的启/停信息,一个ID只能代表一个意思? 那是让2#启动还是停止呢?别忘了,我们还除了ID 可用外还有08bytes的数据区可以用,它可以装我们要发送的数据。例如:控制配料控制器的启动停止,相当于一个开关量,我们最多用一个字节的数据就够了。数据为0 xFC表示启动, 0 xFE表示停止所以让2#配料控制器启动的数据帧为:ID:01000100010 = 0 x222 (ID号)DLC: 1 (数据长度)数据:0 xFC (1个字节的数

10、据)让2#配料控制器停止的数据帧为:ID: 01000100010 = 0 x222 (ID号)DLC: 1 (数据长度)数据: 0 xFE (1个字节的数据)13一个实际的例子,配料系统CAN通信设计,接收屏蔽还有一个问题: 接收方怎么选择信息?2个例子:1.主控制器接收18号配料控制器的报警信息,前面说过它们的报警信息为以下这一组:00000010001 = 0 x011 1#配料控制器发送的报警信息00000010010 = 0 x012 2#配料控制器发送的报警信息00000010011 = 0 x013 3#配料控制器发送的报警信息00000010100 = 0 x014 4#配料控

11、制器发送的报警信息00000010101 = 0 x015 5#配料控制器发送的报警信息00000010110 = 0 x016 6#配料控制器发送的报警信息00000010111 = 0 x017 7#配料控制器发送的报警信息00000011000 = 0 x018 8#配料控制器发送的报警信息11111110000 = 0 x7F0 屏蔽位2.主控制器发送给2#的启/停信息,由于只有2#配料控制器接收,所以是全屏蔽的地方。01000100010 = 0 x222111111111111 = 0 x7FF14一个实际的例子,配料系统协议表对照信息表、ID的分配、数据的意义来制定协议表命令/消

12、息优先级ID号数据周期性主控制器发启停命令10 x22x1字节,0 xFC代表启动,0 xFE代表停止触发选中命令20 x4501节节,每bit代表相应的配料控制器启停触发主控制器收启停应答10 x24x1字节,0 xCF代表启动,0 xEF代表停止触发报警信息00 x01x1字节,0 xEE代表有报警,0 xEF代表无报警触发配料控制器发流量信息10 x23x1字节,00 xFF代表流量值周期报警信息00 x01x1字节,0 xEE代表有报警,0 xEF代表无报警触发启停应答10 x24x1字节,0 xCF代表启动,0 xEF代表停止触发配料控制器收选中命令20 x4501节节,每bit代表

13、相应的配料控制器启停触发启/停命令10 x22x1字节,0 xFC代表启动,0 xFE代表停止触发注:ID号里的x代表的是跟控制器相关的数据(实际x是控制器号),x的取值范围0F15一个实际的例子,配料系统23人一组试试协议23人一组,来模拟配料系统,一个同学做主控制器,其它的同学做配料控制器,模拟配料系统的工作过程。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

提交评论