- 24
- 0
- 约4.45千字
- 约 7页
- 2017-08-11 发布于重庆
- 举报
基于Labview的CAN总线通信仿真
基于虚拟仪器的CAN总线通信仿真
控制器局部网(CAN-CONTROLLERAREANETWORK)BOSCH公司为现代汽车监测和控制领先推出的一种多主机局部网,由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。CAN是一种多主方式的串行通讯总线。一个由CAN总线构成的单一网络中.理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。CAN可提供高达1Mbit/s的数据传输速率.这使实时控制变得非常容易。另外。硬件的错误检定特性也增强了CAN的抗电磁干扰能力。
CAN总线有以下特点:
CAN可以是对等结构,即多主机工作方式,网络上任意一个节点可以在任意时刻主动地向网络上其它节点发送信息,不分主从,通讯方式灵活。
CAN网络上的节点可以分为不同的优先级,满足不同的实时需要。
CAN采用非破坏性仲裁技术,当两个节点同时向网络上传送信息时,优先级低的节点自动停止发送,在网络负载很重的情况下不会出现网络瘫痪。
CAN可以点对点、点对多点、点对网络的方式发送和接收数据,通讯距离最远10km(5kb/s),节点数目可达110个。
CAN采用的是短帧结构,每一帧的有效字节数为8个,具有CRC校验和其它检测措施,数据出错几率极小。CAN节点在错误严重的情况下,具有自动关闭功能,不会影响总线上其它节点操作。
通讯介质采用廉价的双绞线,无特殊要求,用户接口简单,容易构成用户系统。
1 CAN总线工作机理
1.1 位仲裁
要对数据进行实时处理。就必须将数据快速传送,这就要求数据的物理传输通路有较高的速度。在几个站同时需要发送数据时.要求快速地进行总线分配。实时处理通过网络交换的紧急数据有较大的不同。一个快速变化的物理量。如汽车引擎负载,将比类似汽车引擎温度这样相对变化较慢的物理量更频繁地传送数据并要求更短的延时。
CAN总线以报文为单位进行数据传送.报文的优先级结合在11位标识符中.具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。
1.2 报文格式
如图所示,在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11位.扩展格式为29位。在标准格式中,报文的起始位称为帧起始(SOF)(RTR)RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。控制场包括标识符扩展位(IDE),指出是标准格式还是扩展格式。它还包括一个保留位(ro),为将来扩展使用。它的最后四个字节用来指明数据场中数据的长度(DLC)。数据场范围为0~8个字节.其后有一个检测数据错误的循环冗余检查(CRC)。应答场(ACK)包括应答位和应答分隔符发送站发送的这两位均为隐性电平(逻辑l).这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文报文的尾部由帧结束标出。在相邻的两条报文问有一很短的问隔位.如果这时没有站进行总线存取,总线将处于空闲状态。
图1标准数据帧
1.3 数据错误检测
不同于其它总线,CAN协议不能使用应答信息。事实上,它可以将发生的任何错误用信号发出。CAN协议可使用五种检查错误的方法,其中前三种为基于报文内容检查。
1.3.1 循环冗余检查(CRC)
在一帧报文中加入冗余检查位可保证报文正确。接收站通过CRC可判断报文是否有错。
1.3.2 帧检查
这种方法通过位场检查帧的格式和大小来确定报文的正确性,用于检查格式上的错误。
1.3.3 应答错误
如前所述,被接收到的帧由接收站通过明确的应答来确认。如果发送站未收到应答,那么表明接收站发现帧中有错误,也就是说,ACK场已损坏或网络中的报文无站接收。CAN协议也可通过位检查的方法探测错误。
1.3.4 总线检测
有时,CAN中的一个节点可监测自己发出的信号。因此,发送报文的站可以观测总线电平并探测发送位和接收位的差异。
1.3.5 位填充
一帧报文中的每一位都由不归零码表示.可保证位编码的最大效率。然而,如果在一帧报文中有太多相同电平的位.就有可能失去同步。为保证同步.同步沿用位填充产生。在j个生。在五个连续相等位后.发送站自动插人一个与之互补的补码位接收时.这个填充位被自动丢掉例如,五个连续的低电平位后,CAN自动插人一个高电平位CAN通过这种编码规则检查错误,如果在一帧报文中有6个相同位,CAN就知道发生了错误。
2 虚拟仪器技术
2.1 虚拟仪器简介
虚拟仪器技术目前已成为测试领域的主流技术,一个虚拟仪器系统主要由仪器硬件、计算机硬件和应用软件组成,应用软件又包括开发环境、应用程序和仪器驱动程序三部分。Labview(LaboratoryV
原创力文档

文档评论(0)