标题：Can总线技术
Can总线技术定义
Can网络即控制器局域网CAN——Controller Area Network）  CAN总线技术在汽车车身控制中的应用属于现场总线的范畴，它是一种有效支持分布式控制或实时控制的串行通讯网络，其总线规范已被ISO国际标准化组织制定为国际标准，并被公认为是最有前途的现场总线之一。CAN总线的应用范围遍及从高速网络到低成本的多线路网络，广泛应用于控制系统中的各检测和执行机构之间的数据通信。由于其设计成本低，通讯可靠，在电力系统中得到了广泛应用，尤其是在早期的变电站综合自动化系统建设中起了很大作用。
Can总线技术在汽车行业的运用
汽车为什么选择了CAN总路线技术从成本上来说，CAN比UART、RS-232/485高，但比以太网低；从实时性来说：CAN的实时性比UART和以太网高，为了保证安全，车用通信协议都是按周期性主动发送，不论是CAN还是LIN，对实时性要求高的消息其发送周期都小于10ms（每辆车都有好几条这样的消息），发动机、ABS和变速器都有几条这样的消息；从可靠性来说，CAN有一系列事故安全措施，这是UART和以太网都不具备的，多点冗余也是UART（点对点传输）和工业以太网（数据传输距离短）难于实现的，所以CAN出现后，由于价格的原因，最初应用得最多的地方并不是汽车，而是对成本不敏感的工业控制和医疗设备。
其次总线是一个系统，总线上的速度仅仅是系统中的一个因素，ElexRay虽然只有20MBPS但它在一个16BIT的MCU上都能跑起来，100MHZ以太网虽快，但一个32BIT的MCU很难达到10MBPS。况且还要涉及到系统的安全性，类似冗余，BUS安全等。所以综合考虑，汽车选择了CAN总线技术。
汽车CAN总路线技术通过遍布车身的传感器，汽车的各种行驶数据会被发送到“总线”上，这些数据不会指定唯一的接收者，凡是需要这些数据的接收端都可以从“总线”上读取需要的信息。Can总线的传输数据非常快，可以达到每秒传输32bytes有效数据，这样可以有效保证数据的实效性和准确性。传统的轿车在机舱和车身内需要埋设大量线束以传递传感器采集的信号，而Can-Bus总线技术的应用可以大量减少车体内线束的数量，线束的减少则降低了故障发生的可能性。
CAN-Bus介绍
控制器局部网（Controller Area Network）是BOSCH公司为现代汽车应用领先推出的一种多主机局部网，由于其卓越性能现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在中国迅速普及推广。
控制器区域网（Controller Area Network)CAN现场总线已经成为在仪表装置通讯的新标准。它提供高速数据传送，在短距离（40m)条件下具有高速（1Mbit/s）数据传输能力，而在最大距离10000m时具有低速（5kbits/s）传输能力，极适合在高速的工业自控应用上。CAN总线可在同一网络上连接多种不同功用的传感器（如位置，温度或压力等）。
CAN-Bus总线特点
CAN总线与其他总线相比有如下特点：
l 它是一种多主总线，即每个节点机均可成为主机，且节点机之间也可进行通信；
l 通信介质可以是双绞线、同轴电缆或光导纤维，通信速率可达1Mbps；
l CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能，可完成对通信数据的成帧处理，包括位填充、数据块编码、循环冗余校验、优先级判别等项工作；
l CAN协议的一个最大特点是废除了传统的站地址编码，而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的节点个数在理论上不受限制，数据块的标识码可由11位或29位二进制数组成，因此可以定义211或229个不同的数据块，这种按数据块编码的方式，还可使不同的节点同时接受到相同的数据，这一点在分步式控制中非常重要；
l 数据段长度最多为8个字节，可满足通常工业领域中控制命令，工作状态及测试数据的一般要求。同时，8个字节不会占用总线时间过长，从而保证了通信的实时性；
l CAN协议采用CRC检验并可提供相应的错误处理功能，保证了数据通信的可靠性。
l CAN总线所具有的卓越性能、极高的可靠性和独特设计，特别适合工业设备测控单元连。
因此CAN-Bus总线成为倍受工业界的重视，并已公认为最有前途的现场总线之一。
CAN协议是一个被定义为ISO11898的国际标准，除了CAN协议本身外，CAN协议的一致性测试也被定义为ISO16845标准，它描述了CAN芯片的互换性。
1、数据交换原理
CAN是一种基于广播的通讯机制，广播通讯依靠报文（Message）的传送机制来实现，因此CAN并未定义站及站地址，而仅仅定义了报文，这些报文依靠报文确认区（Identifier）来进行识别，一个消息报文确认区在一个网络中必须是唯一的，它不但描述了某一报文的意义，而且还定义了报文的优先级，当很多站都在访问总线时，优先级是很重要的，因此，CAN是通过报文的确认区来决定报文的优先级的。
CAN使用地址访问的方法，使网络系统的配置变得非常灵活，用户很容易可以增加一个新的站到一个已经存在CAN网络里，而不用对已经存在的站进行任何硬件或软件上的修改，但必须此新增的站为完全的接收者，这样它将不会对网络上各节点的通讯产生影响。
2、实时数据传送
在实时处理系统中，通过网络交换紧急报文存在很大的不同：一个迅速改变的值，如发动机负载必须频繁的进行传送且要求延迟比其它的值如发动机温度要小。发送的报文都要和其它的不太紧急的报文进行优先级的比较，在系统设计中，报文的优先级体现在写入报文确认区的二进制值，这些值不能被动态的改变。确认区中的值越小，其报文的优先级越高（也就是0比1的优先级高）。
3、消息的帧格式（Frame format）
CAN协议支持两种帧格式，它们只是在确认区存在差异，一种被称为CAN标准帧，在CAN2.0协议的Part A进行定义，标准帧支持11bit的确认区长度，；另一种称为CAN扩展帧，在CAN2.0协议的Part B进行定义，支持29bit的确认区。
4、检测和信号错误
不同于其它总线系统，当错误产生时CAN协议不能立即使用应答报文来取代错误信号，对于错误侦测CAN协议有完整的三种报文级机制：
l 循环冗余检测（CRC）
l 帧检测（Frame check）
l ACK错误
CAN协议也提供两种位元级的错误侦测机制：
l 监视（Monitoring）
l 位填充（Bit stuffing）
如果至少一个站使用上述机制发现一个或多个错误，则发送“错误标志（error flag）”来取消当前的传送，阻止其它站继续接收报文，以确保通过网络的数据连贯性，一个错误的报文传送被取消后，发送者自动重新尝试发送（自动重发），并重新进行总线访问权的竞争。
CAN-Bus特点
作为ISO11898CAN标准的CAN-Bus（ControLLer Area Net-work Bus），是制造厂中连接现场设备（传感器、执行器、控制器等）、面向广播的串行总线系统，最初由美国通用汽车公司（GM）开发用于汽车工业，后日渐增多地出现在制造自动化行业中。
1、CAN-Bus系统组成及性能
CAN-Bus系统通过相应的CAN接口连接工业设备（如限位开关、光电传感器、管道阀门、电机启动器、过程传感器、变频器、显示板、PLC和PCI作站等）构成低成本网络。直接连接不仅提供了设备级故障诊断方法，而且提高了通信效率和设备的互换性。CAN-Bus数据传输速率为1Mbit/s，线路距离lkm，基本站点数64，传输媒体是屏蔽双绞线或光纤。
2、CAN-Bus数据链路控制特点
CAN-Bus数据链路层协议采用平等式（Peer to peer）通信方式，即使主机出现故障，系统其余部分仍可运行（当然性能受一定影响）。当一个站点状态改变时，它可广播发送信息到所有站点。
CAN-Bus的信息传输通过报文进行，报文帧有4种类型：数据帧、远程帧、出错帧和超载帧，其中数据帧格式如图8所示。CAN-Bus帧的数据场较短，小于8B，数据长度在控制场中给出。短帧发送一方面降低了报文出错率，同时也有利于减少其他站点的发送延迟时间。帧发送的确认由发送站与接收站共同完成，发送站发出的ACK场包含两个“空闲”位（recessive bit），接收站在收到正确的CRC场后，立即发送一个“占有”位（dominant bit），给发送站一个确认的回答。CAN-Bus还提供很强的错误处理能力，可区分位错误、填充错误、CRC错误、形式错误和应答错误等。
CAN-Bus应用一种面向位型的损伤仲裁方法来解决媒体多路访问带来的冲突问题。其仲裁过程是：当总线空闲时，线路表现为“闲置”电平（recessive level），此时任何站均可发送报文。发送站发出的帧起始字段产生一个“占有”电平（dominant level），标志发送开始。所有站以首先开始发送站的帧起始前沿来同步。若有多个站同时发送，那么在发送的仲裁场进行逐位比较。仲裁场包含标识符ID（标准为llbit），对应其优先级。每个站在发送仲裁场时，将发送位与线路电平比较，若相同则发送；若不同则得知优先级低而退出仲裁，不再发送。系统响应时间与站点数无关，只取决于安排的优先权。可以看出，这种媒体访问控制方式不像Ethetnet的CSMA/CDCA协议那样会造成数据与信道带宽受损。
3、CANopen协议
CAN-Bus除配置设备网（DeviceNet）协议外，还提供基于CAL（CANA pllicationlayer) 的CANopen协议（CiA DS-301），即支持设备参数的直接访问，又可实现有苛刻时间要求的过程数据通信。
CAN-Bus的DeviceNet协议具有开放性，用户无须购买加入系统所需的硬件、软件和允许权，多厂家设备能够在单一网络上相互操作。CANhs也允许与Ethernet或其他局域网相连，接人控制算法组态及管理信息PC系统，从而形成管控一体化的工业网络。
CAN-Bus应用
CAN-Bus的通讯协议建立在国际标准组织的开放系统互联参考模型基础上，主要工作在数据链路层和物理层，用户可在其基础上开发适应系统实际需要的应用层通信协议。CAN的信号传输采用短帧结构，每一帧的有效字节数为8个，因而传输时间短，受干扰的概率低。当节点严重错误时，具有自动关闭的功能，以切断该节点与总线的联系，使总线上的其他节点及通信不受影响，故具有较强的抗干扰能力。
典型应用
● 现有RS232设备连接CAN-Bus网络
● 扩展标准RS232网络通讯长度
● PLC设备连接CAN-Bus网络通讯
● CAN-Bus与串行总线之间的网关网桥
● 工业现场网络数据监控
● CAN教学应用远程通讯
● CAN工业自动化控制系统
● 低速CAN网络数据采集数据分析
● 智能楼宇控制数据广播系统等CAN-Bus应用系统。
现场总线技术以其独有的技术优势和特点，在现代分布式测量与控制技术领域中应用已愈来愈广泛。各种现场总线的主控制器一般都内嵌有相当完善的、开放式的互联通信协议，它具有通信速度快、误码率低、开发设计简单及网络使用维护方便等诸多特点，是实现网络化现场测量与控制技术的一个发展方向。但目前的许多现场已投入使用的测量与控制系统中，各仪器设备或装置之间通信所使用的仍是传统的RS-485或RS-422总线。在不断投入新型现场总线系统的同时，要在短期内改造或淘汰那些旧系统是不现实的。况且，在许多应用场合，新老系统中主机的控制算法及功能是相似或兼容的，所以在一定时期新老总线系统同时并存是客观的现实需要。对此，若能将新老仪器设备或装置通过一种透明转换装置而有机地揉合在一起，去掉老系统中重复的部分，是一种很好的选择。
​