收藏 分享(赏)

CAN总线技术基础.pdf

上传人:精品资料 文档编号:10731661 上传时间:2020-01-03 格式:PDF 页数:45 大小:1.44MB
下载 相关 举报
CAN总线技术基础.pdf_第1页
第1页 / 共45页
CAN总线技术基础.pdf_第2页
第2页 / 共45页
CAN总线技术基础.pdf_第3页
第3页 / 共45页
CAN总线技术基础.pdf_第4页
第4页 / 共45页
CAN总线技术基础.pdf_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、CAN总线技术基础总线技术基础总线技术基础CAN总线的优势及应用 数据传输速度高(相对), 1Mbit/s 抗干扰能力强(差分数据线) 具有自我诊断能力(错误侦测)CAN总线的作用CAN( “Controller Area Network”, 控制器局域网 )总线的作用就是将整车中各种不 同的控制器连接起来,实现信息的可靠共享,并减少整车 线束数量。可以设想一种极端情况,如下图所示:如果整车上所有的用电设备都是一个独立的 CAN总线节点,并且每一个节点都向外发送自己当前的状态,并且接受来自外部的信息,那么整车的控制只需要一条 CAN总线控制线和电源线就可以了!组合开关 组合灯具 电磁阀 雨刷电

2、机 仪表 传感器CAN总线的基本工作原理跟其他总线一样, CAN总线的通信也是通过一种类似于 “会议 ”的机制实现的,只不过会议的过程并不是由一方( 节点 )主导,而是,每一个会议参加人员都可以自由的提出会议议题( 多主通信模式 ),二者对应关系如下:仲裁参会人员发言顺序裁定报文会议议题ID参会人员身份节点参会人员局域网会议CAN总线工作原理请求发言 发言优先权 开始发言 发言反馈参会人员信息反馈结束发言帧起始 仲裁 开始发送0/1错误检测接收成功应答帧结尾一帧报文CAN总线网络结构Physical LayerData Link LayerApplication LayerSAEJ1939信号

3、电平信号传输、抗干扰位定时、同步位编解码总线仲裁机制can报文帧结构报文打包can总线容错网络负载率j1939本质如何将29ID分类j1939组织架构协议查找位填充机制机制单片机总线控制器总线收发器CAN总线网络节点结构何为 CAN收发器?按照 BOSCH CAN总线标准将 0或 1逻辑信号转换为标准中规定的电平,同时有反馈功能CAN总线上的电平CAN2.0A/B标准规定:总线空闲时, CAN_H和 CAN_L上的电压为 2.5V在数据传输时,显性电平(逻辑 0): CAN_H 3.5V CAN_L 1.5V 隐性电平(逻辑 1): CAN_H 2.5V CAN_L 2.5V显性电平隐性电平总

4、线支持的最大节点数目由上表可以看出,常用的两款 CAN驱动芯片支持的总线节点数目都可以满足整车 CAN节点需求,这不是问题。总线支持的最大节点数目总线长度的思考影响总线长度的主要因素:( 1) CAN总线通信的应答机制,即成功接收到一帧报文的节点必须在应答场的 ”应答间隙 “期间发送一位 “显性位 ”表示成功接收到一帧数据如:通信速率为 250Kbit/s,传送一个 bit所需时间为: 1/250 1000 = 4那么,该信号在总线上的延时时间必须小于( 2?)才能保证发送节点成功的在应答间隙期间接收到该 “显性电平 ”。任何一根导线都可以简化为左图所示的电路模型,可以看到,其中既有电感又有电

5、容,因此,电流在其中传输并不是光速,而是需要一定的时间。对于双绞线而言,信号在其中的传播延时时间约为, 5ns/m(典型值)。当通信速率达到 1Mbit/s时, 40m的总线长度,延时时间就达到 200ns,而允许延时时间为 600ns左右,还是不能不考虑的!注意后面同步的概念总线长度的思考由上面的分析可知:总线通信速率越高,通信距离越短,对物理传输线的要求就越高,在双绞线、屏蔽线还是其他的传输线选择上,通信速率是一个很关键的参数。影响总线长度的其他因素:( 1)信号在节点 ECU内部的延时时间( 2)振荡器的容差(各个节点 ECU内部晶振频率的差别)这些因素加起来就形成了 CAN总线通信中总

6、的信号延时。CAN总线的硬件抗干扰( 1)共模电感作用:共模电压有较大的感抗,差模电压感抗为零,相当于电感滤波。对共模电流有较大的阻碍作用 。CAN总线的硬件抗干扰( 2)1 终端电阻终端电阻 120欧姆并非固定不变,这跟使用的导线有关!ISO11898的推荐值何为 CAN控制器?CAN控制器主要实现了两部分的功能, 1:数据链路层的全部功能; 2:物理层的位定时功能也就是 BOSCH CAN 2.0A/B中规定的部分总线长度的限制 位定时、同步CAN总线控制器按照时间片的概念将每一个 bit的时间划分成了 n个时间片。这样做的目的就是为了实现 CAN总线的同步、保证不同节点间时间的一致性。如

7、:晶振和 CAN CLOCK 频率均为 4MHz,那么每一个时间片最小时间就为 0.25 s,通信波特率为 250Kbit/s,那么每一个 bit的时间就为 4 s,因此,每一个 bit的总的时间片数目就为 16。当然可以进一步提高晶振频率,使得每一个 bit被划分的更加细致。CAN2.0A/B将每一个 bit的时间划分成了 4段,同步段、传输段、相位段 1和相位段 2,每一段占用一定的时间片同步的概念假设两个节点的时间完全一致(即晶振完全相同,没有误差),信号经过 T延时后到达节点 B,此时节点 B就以当前时刻为基准进行位定时,因为二者的时钟完全一致,因此,节点 B的采样不会出现任何问题,即

8、节点 B总是能采样到 A节点发出的总线电平。硬同步只发送在一个帧的起始。T采样点采样点同步的概念假设传输没有延时,但是节点 A和节点 B的晶振有误差,那么由上图可以看出,虽然硬同步已经实现,但是节点 B的采样点却不能够采样到当前时刻的数据,而是上一时刻的数据,即节点 B的时间跑的慢了。那么 CAN总线控制器如何处理该问题呢? 通过重同步的机制实现。采样点采样点同步的概念CAN总线控制器通过在一帧数据的传输过程进行重同步保证一帧报文的顺利传输,重同步的本质为:增加或减少自己的位定时时间(如:增加12个时间片)来和总线上的其他节点同步。为了实现重同步, CAN总线控制器必须要通过位填充实现,即:如

9、果 CAN总线控制器发现报文里有 5个连续相同的位,就会在第六位填充一位相反的数据位(该数据位只是为了总线安全才考虑的),同步发生在隐性电平(逻辑 1)向显性电平(逻辑 0)转换的跳变沿。Can总线报文帧结构CAN总线共有四种报文: 1 数据帧 2 远程帧3 错误帧 4 过载帧数据帧定义帧起始: 1bit。从图中看出,在帧间隙后由逻辑 1(至少两个 bit)向逻辑 0 的跳变就被认为是帧起始,它的作用就是为了硬同步。仲裁场:由 29bit的 ID标示符和 IDE、 SRR、 RTR位构成。 IDE位用于标示该帧是扩展帧( 29bit ID)还是标准帧( 11bit ID); SRR在扩展帧中为

10、一隐性位; RTR位为远程帧标志位。由上图可以看出, 11bit的基本 ID首先被发送( ID28ID18),然后在发送 18bit的扩展 ID( ID17ID0)CAN总线的仲裁机制要点 ( 1)首先发送 ID的 29位,优先级问题( 2)总线电平由谁决定CAN总线总裁机制的实现也就实现了 CAN总线的多主机模式,总线节点不存在谁主谁从的概念友情提示:我们可以人为的给 29位的 ID赋予一定的意义从而区分不同的报文类型!报文滤波报文滤波可以通过软件编程的方式实现,也可以通过硬件(芯片内部的报文滤波寄存器)实现,但二者实现的原理是相同的,如下图所示:数据帧中的其他场作用控制场:包括两位保留位(

11、必须为 0),和数据长度位( DLC0DLC3)数据场:包括最多 8个字节的数据CRC场:是一种算法,对数据进行 CRC校验,共 15bit,其后跟了一位 CRC界定符 为 1(隐性电平)应答场:为两个 1(总线电平为低电平),其中一位为应答间隙,另一位为应答界定符。成功接收到数据的节点必须发送一位显性位(总线电平为高电平)来应答该发送节点,必须注意:该显性位必须在应答间隙期间,即 1bit的时间内将总线电平拉高。帧结尾: 7个连续的 1组成(隐性电平)CAN总线的侦听机制 支持仲裁及错误检查帧听就是发出去的数据再采样回来,比较采样回来的数据是否和发出的数据一致!CAN总线错误检测CAN总线通

12、过如下几个方面进行错误检测( 1)当节点赢得总线发送权后,会对总线电平进行检测,当发送的电平和检测到的总线电平不一致时,认为错误( 2)出现 6个连续相同的电平时,认为是填充错误( 3) CRC错误,接收数据的节点按照与发送数据的节点相同的方法计算数据的 CRC校验值,如果接收节点的计算结果与数据包中 CRC场的数据不一致,认为是 CRC错误( 4)应答错误,在应答场如果没有监控到一个显性电平,那么就认定一个应答错误( 5)固定位错误,例如: CRC界定符等,其电平是固定的,当监控到该电平不相符时,认定一个错误另:总线同步机制也是 CAN总线容错的一种方式注意:通过上面 5种错误检测机制,发送

13、节点和接收节点均可以检测到总线上的错误,并通过错误的累加来实现总线节点的关闭等操作CAN总线负载率计算计算例子:假设 CAN总线波特率为 250Kbit/s,总线报文发送时间间隔为 10ms,报文为数据帧( 8个字节数据),那么 10ms内总线能够支持的最大报文数量为多少?第一步:根据通信波特率计算 10ms总共可以发送多少 bit(250000/1000)*10 = 2500bit第二步:计算最长的一帧报文有多少个 bit1sof + 29id + 1ide + 1rtr + 1srr + 2r + 4dlc + 8*8data + 16crc + 2ack + 7eof = 128bit第

14、三步:计算 10ms内可以支持的报文数目2500/128 19由上面的计算可知,当 10ms间隔的报文数量超过 19条时,就会出现丢帧,总线饱和。计算报文数量也是设计 CAN网络所要考虑的,可以查阅相关文献看负载率在多少时合适!SAE J1939的组织架构SAE J1939主要包括下面的协议文档( 1) SAE J1939-11 规定了 J1939协议通信的物理层( CAN总线物理层)( 2) SAE J1939-21 规定了 J1939协议的数据链路层( 3) SAE J1939-31 规定了 J1939协议的网络层(设计网关 ECU时遵守)( 4) SAE J1939-71 规定了 J1939协议的整车应用层( 5) SAE J1939-73规定了 J1939协议的诊断层(诊断仪诊断协议)实际上 J1939协议是以 CAN总线通信为数据传输的基础,并在此基础上建立的更高一层的通信协议。其中 J1939-21介绍了如何将29Bit的 ID进行划分定义, J1939-71更加具体的对整车信息进行分类定义。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报