别人做的CAN总线系统,我想分析它 看看每个报文的内容是什么 怎么弄 用什么软件吗?第一次接触这个谢谢
首先你可以买一个ZLG的CAN分析仪,几百块钱一个,带上位机的!你把它设置成全部数据都能接收的,但是有一点就是你得知道波特率是多少。至于CAN的协议走的都是标准的协议,CAN2.0也分A和B的,如果是标准帧格式一个是扩展帧格式。
一年多的时间了,楼主做的怎么样了?可不可以分享分享经验,谢谢!

CAN总线协议通信的数据是什么格式,及其显示的波形图是怎样的?
控制器局域网CAN(Controller AreaNetwork)是一种多主方式的串行通信总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。CAN在汽车上的应用,具有很多行业标准或者是国际标准,比如国际标准化组织(ISO)的ISO11992、ISO11783以及汽车工程协会(SocietyofAutomotiveEngigeers)的SAEJ1939。CAN总线已经作为汽车的一种标准设备列入汽车的整车设计中。CAN通信协议规定了4种不同的帧格式,即数据帧、远程帧、错误帧和超载帧。基于以下几条基本规则进行通信协调:总线访问、仲裁、编码/解码、出错标注和超裁标注。CAN遵从OSI模型。按照OSI基准模型只有三层:物理层、数据链路层和哀告层,但应用层尚需用户自己定义。CAN总线作为一种有效支持分布式控制或实时控制的串行通信网络,应用范围遍及从高速网络到低成本的多线路网络。如:CAN在汽车中的发动机控制部件、ABS、抗滑系统等应用中的位速率可高达1Mbps。同时,它可以廉价地用于交通运载工具电器系统中,例如电气窗口、灯光聚束、座椅调节等,以替代所需要的硬件连接。其传输介制裁为双绞线,通信速率最高可达1Mbps/40m,直接传输距离最远可达10km/5kbps,挂接设备数最多可达110个。CAN为多主工作方式,通信方式灵活,无需站地址等节点信息,采用非破坏性总线仲裁技术,满足实时要求。另外,CAN采用短帧结构传输信号,传输时间短,具有较强的抗干扰能力。CAN总线与其它通信协议的不同之处主要有两方面:一是报文传送不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,其特点是可在线上网下网、即插即用和多站接收;另外一个方面就是特别强化了数据安全性,满足控制系统及其它较高数据要求系统的需求。在现代汽车的设计中,CAN总线已经成为构建汽车网络的一种趋势;而汽车网络作为直接与汽车内部各个ECU连接并负责命令的传递、数据的发送及共享,其可靠性和稳定性与整车的性能紧密相关。本文的设计开发是在基于试验条件下搭建的仿真平台,节点之间的通信是通过对等的CAN通信节点进行的。试验表明其运行性能稳定可靠,但实用化仍需要进一步的研究和改进,且程序的通信处理能力、纠错和容错能力有待进一步的提高.比如: 把CAN总线融合到嵌入式平台中,在其ARM-EP9315和ARM-S3C2440嵌入式平台上都做到了CAN总线功能的实现!ARM嵌入式控制平台,具有开放、集成度高、尺寸小、可扩展性强、低功耗等特点,非常适合与数字家电、车载设备、通信终端、网络设备等的应用。如今有了CAN总线的实现,使其在此方面的应用更为有效!

can通讯的报文是如何进行解析数据的
根据需要收到CAN报文之后,需要根据具体的通信协议解析,然后分析解析出的数据是否正确。下面进行报文实例解析。数据类型定义如表4 所示。 报文内容如表2所示。收到的报文为:1818D0F3 ce 0d 00 7d 00 6d 11 00 。协议中规定报文的第一、二字节表示总电压,高字节在前,低字节在后。又总电压的单位为0.1 V。所以在上面的数据中0 dce代表总电压,转为十进制为 3534,乘以0.1V的单位,则得到总电压值为353.4 V。协议中规定报文的第三、四字节表示总电流,又总电流的单位为 0.1A,偏移量为 32000 。

CAN通信协议
控制器局域网(CAN)为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。在汽车电子行业里,使用CAN连接发动机控制单元、传感器、防刹车系统、等等,其传输速度可达1 Mbit/s。同时,可以将CAN安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。 为了达到设计透明度以及实现柔韧性,CAN被细分为以下不同的层次:• CAN对象层(the object layer)• CAN传输层(the transfer layer)• 物理层(the phyical layer)对象层和传输层包括所有由ISO/OSI模型定义的数据链路层的服务和功能。对象层的作用范围包括: 查找被发送的报文。 确定由实际要使用的传输层接收哪一个报文。 为应用层相关硬件提供接口。在这里,定义对象处理较为灵活。传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在传输层里确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然,传输层的修改是受到限制的。 物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然,同一网络内,物理层对于所有的节点必须是相同的。尽管如此,在选择物理层方面还是很自由的。CAN具有以下的属性:• 报文的优先权• 保证延迟时间• 设置灵活• 时间同步的多点接收• 系统宽数据的连贯性• 多主机• 错误检测和标定• 只要总线一处于空闲,就自动将破坏的报文重新传输 • 将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭错误的节点

CAN总线协议的协议内容
CAN总线的物理层是将ECU连接至总线的驱动电路。ECU的总数将受限于总线上的电气负荷。物理层定义了物理数据在总线上各节点间的传输过程,主要是连接介质、线路电气特性、数据的编码/解码、位定时和同步的实施标准。 BOSCH CAN基本上没有对物理层进行定义,但基于CAN的ISO标准对物理层进行了定义。设计一个CAN系统时,物理层具有很大的选择余地,但必须保证CAN协议中媒体访问层非破坏性位仲裁的要求,即出现总线竞争时,具有较高优先权的报文获取总线竞争的原则,所以要求物理层必须支持CAN总线中隐性位和显性位的状态特征。在没有发送显性位时,总线处于隐性状态,空闲时,总线处于隐性状态;当有一个或多个节点发送显性位,显性位覆盖隐性位,使总线处于显性状态。在此基础上,物理层主要取决于传输速度的要求。从物理结构上看,CAN节点的构成如图7-8所示。在CAN中,物理层从结构上可分为三层:分别是物理信号层(Physical Layer Signaling,PLS)、物理介质附件(Physical MediaAttachment,PMA)层和介质从属接口(Media Dependent:Inter-face,MDI)层。其中PLS连同数据链路层功能由CAN控制器完成,PMA层功能由CAN收发器完成,MDI层定义了电缆和连接器的特性。目前也有支持CAN的微处理器内部集成了CAN控制器和收发器电路,如MC68HC908GZl6。PMA和MDI两层有很多不同的国际或国家或行业标准,也可自行定义,比较流行的是ISOll898定义的高速CAN发送/接收器标准。 在报文传输时,不同的帧具有不同的传输结构,下面将分别介绍四种传输帧的结构,只有严格按照该结构进行帧的传输,才能被节点正确接收和发送。(1)数据帧由七种不同的位域(Bit Field)组成:帧起始(Start of )、仲裁域(Arbitration Field)、控制域(Control Field)、数据域(DataField)、CRC域(CRC Field)、应答域(ACK Field)和帧结尾(End of )。数据域的长度可以为0~8个字节。1)帧起始(SOF):帧起始(SOF)标志着数据帧和远程帧的起始,仅由一个“显性”位组成。在CAN的同步规则中,当总线空闲时(处于隐性状态),才允许站点开始发送(信号)。所有的站点必须同步于首先开始发送报文的站点的帧起始前沿(该方式称为“硬同步”)。2)仲裁域:仲裁域由标识符和RTR位组成,标准帧格式与扩展帧格式的仲裁域格式不同。标准格式里,仲裁域由1l位标识符和RTR位组成。标识符位有ID28~IDl8。扩展帧格式里,仲裁域包括29位标识符、SRR位、IDE(Identifier Extension,标志符扩展)位、RTR位。其标识符有ID28~IDO。为了区别标准帧格式和扩展帧格式,CANl.0~1.2版本协议的保留位r1现表示为IDE位。IDE位为显性,表示数据帧为标准格式;IDE位为隐性,表示数据帧为扩展帧格式。在扩展帧中,替代远程请求(Substitute Remote Request,SRR)位为隐性。仲裁域传输顺序为从最高位到最低位,其中最高7位不能全为零。RTR的全称为“远程发送请求(Remote TransmissionRequest)”。RTR位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。它是区别数据帧和远程帧的标志。3)控制域:控制域由6位组成,包括2个保留位(r0、r1同于CAN总线协议扩展)及4位数据长度码,允许的数据长度值为0~8字节。4)数据域:发送缓冲区中的数据按照长度代码指示长度发送。对于接收的数据,同样如此。它可为0~8字节,每个字节包含8位,首先发送的是MSB(最高位)。5)CRC校验码域:它由CRC域(15位)及CRC边界符(一个隐性位)组成。CRC计算中,被除的多项式包括帧的起始域、仲裁域、控制域、数据域及15位为0的解除填充的位流给定。此多项式被下列多项式X15+X14+X10+X8+X7+X4+X3+1除(系数按模2计算),相除的余数即为发至总线的CRC序列。发送时,CRC序列的最高有效位被首先发送/接收。之所以选用这种帧校验方式,是由于这种CRC校验码对于少于127位的帧是最佳的。6)应答域:应答域由发送方发出的两个(应答间隙及应答界定)隐性位组成,所有接收到正确的CRC序列的节点将在发送节点的应答间隙上将发送的这一隐性位改写为显性位。因此,发送节点将一直监视总线信号已确认网络中至少一个节点正确地接收到所发信息。应答界定符是应答域中第二个隐性位,由此可见,应答间隙两边有两个隐性位:CRC域和应答界定位。7)帧结束域:每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。这样,接收节点可以正确检测到一个帧的传输结束。(2)错误帧错误帧由两个不同的域组成:第一个域是来自控制器的错误标志;第二个域为错误分界符。1)错误标志:有两种形式的错误标志。①激活(Active)错误标志。它由6个连续显性位组成。②认可(Passive)错误标志。它由6个连续隐性位组成。它可由其他CAN总线协议控制器的显性位改写。2)错误界定:错误界定符由8个隐性位组成。传送了错误标志以后,每一站就发送一个隐性位,并一直监视总线直到检测出1个隐性位为止,然后就开始发送其余7个隐性位。(3)远程帧: 远程帧也有标准格式和扩展格式,而且都由6个不同的位域组成:帧起始、仲裁域、控制域、CRC域、应答域、帧结尾。与数据帧相比,远程帧的RTR位为隐性,没有数据域,数据长度编码域可以是0~8个字节的任何值,这个值是远程帧请求发送的数据帧的数据域长度。当具有相同仲裁域的数据帧和远程帧同时发送时,由于数据帧的RTR位为显性,所以数据帧获得优先。发送远程帧的节点可以直接接收数据。(4)过载帧 过载帧由两个区域组成:过载标识域及过载界定符域。下述三种状态将导致过载帧发送:1)接收方在接收一帧之前需要过多的时间处理当前的数据(接收尚未准备好);2)在帧空隙域检测到显性位信号;3)如果CAN节点在错误界定符或过载界定符的第8位采样到一个显性位节点会发送一个过载帧。

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://m.wangsu123.cn/news/68113.html。