竭诚为您提供优质文档/双击可除
can协议开发

  篇一:面向汽车的can通信协议
  面向汽车的can通信协议
  摘要
  can总线是为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。对于汽车工业而言,它的实时性、灵活性、可靠性、低成本以及良好的故障珍断和纠错能力都有着很大的吸引力及市场空间。can作为控制器联网的手段,已广泛应用于各品牌汽车。在控制发动机、变速箱、abs等车身安全模块,都是以c为主网。相信can技术将会成为汽车领域发展的新途径。
  关键字can总线通信协议网络现场总线总线结构
  引言
  can是控制器局域网络(controllerareanetwork,can)的简称,是由研发和生产汽车电子产品著称的德国bosch公司开发了的,并最终成为国际标准(iso11898)。是国际上应用最广泛的现场总线之一。由于其高性能,高可靠性,及独特的设计,can总线越来越受到人们的重视。在北美和西欧,can总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以can为底层协议专为大型货车和重工机械车辆设计的j1939协议。
  本文主要对can总线技术的介绍,深入研究面向汽车的can通信协议的特点,优势,应用等。
  1基本概念
  can是controllerareanetwork的缩写(以下称为can),是iso国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个lan,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的
  can通信协议。此后,can通过iso11898及
  iso11519进行了标准化,在欧洲已是汽车网络的标准协议。
  can的高性能和可靠性已 
被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
  2优势
  can属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之许多Rs-485基于R线构建的分布式控制系统而言,基于can总线的分布式控制系统在以下方面具有明显的优越性:
  2.1网络各节点之间的数据通信实时性强
  首先,can控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且can协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得can总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用Rs-485只能构成主从式结构系统,通信方式也只能
以主站轮询的方式进行,系统的实时性、可靠性较差;
  2.2缩短了开发周期
  can总线通过can收发器接口芯片82c250的两个输出端canh和canl与物理总线相连,而canh端的状态只能是高电平或悬浮状态,canl端只能是低电平或悬浮状态。这就保证不会在出现在Rs-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且can节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,can具有的完善的通信协议可由can控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的Rs-485所无法比拟的。
  2.3已形成国际标准的现场总线
  另外,与其它现场总线比较而言,can总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是can总线应用于众多领域,具有强劲的市场竞争力的重要原因。
  2.4最有前途的现场总线之一
  can即控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,can总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,can总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商,如benz(奔驰)、bmw(宝马)、poRsche(保时捷)、Rolls-Royce(劳斯莱斯)和jaguaR(美洲豹)等都采用了can总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。同时,由于can总线本身的特点,其应用范围已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。can已经形成国际标准,并
  (10)故障界定
  (confinement)can节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。
  (11)应答接收对正确接收的给出应答,对不一致报文进行标记。
  (12)can通讯距离最大是10公里(设速率为5kbps),或最大通信速率为1mbps(设通信距离为40米)。
  (13)can总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。
  (14)是短帧结构,短的传送时间使其受干扰概率低,can有很好的校验机制,这些都保证
了can通信的可靠性。
  特点
  can总线是德国bosch公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1mbps。
  篇二:can标定协议
  1.2can标定协议
  控制器局域网络can是由英特尔公司和罗伯特博世有限公司联合开发的。该协议广泛应用在许多高端汽车控制系统如发动机管理以及工业控制系统。用于can协议的控制器芯片可以从不同的半导体制造商处得来。
  can标定协议是asap标准的一部分。它是由一个名叫ingenieurbürohelmutkleinknecht的标定系统制造商开发和推广的,并且应用于汽车行业的许多领域中。ccp由asap的工作组控制,并且增强了可选功能。
  2应用程序的领域及范围
  这个文件规定了can标定协议ccp,是由包含了asap的工作组来定义。ccp定义了控制器与
主设备之间的连接使用can2.0b(11-bit和29-bit标示符),也包括2.0a(11-bit标示符)用于:
  1.从控制器获得数据,
  2.内存转移和标定控制器中的控制功能。
  在以下领域ccp提供的功能可能会被用到:
  开发电子控制单元(ecu)
  ecu功能和环境测试的系统
  用于控制设备的测试系统和测试标准
  前车系列的机载测试盒测量系统
  任何基于can的分布式电子控制系统的非汽车应用
  5定义及缩写
  can控制器区域网络:通信协议(在iso/osi模型水平1+2)是由罗伯特博世有限公司开
  发和维护的。设计此协议用以管理各种cpu之间多路复用的通讯。它是信息化控制,采用无损的逐位仲裁决定哪个节点“拥有”总线,并且有一个信号优先体系,它基于每个信号传递的信号标示符。
  ccpcan标定协议:由ingenieurbürohelmutkleinknecht开发,并由asap工作组通
  过批准为用于数据采集和标定的标准协议。
  cRo命令接收对象:信号从主设备发送到从设备。
  cRm命令返回信息:一种由从设备发向主设备的信号格式,包含了命令/错误代码和命令
  计数器。
  daq数据采集:从ecu中定义一个程序和从设备到主设备之间的信号发送,以实现数据的
  快速读取
  dto数据发送器:从设备发送到主设备的信号。(命令返回信号或者事件信号或数据采集
  信号)
  ecu电子控制单元:带有一个中央处理机利用它的外围电路执行程序功能的电子设备。消息对象:在can总线上传递的信号,是由发送端ecu发送到接收端ecu的。接收端ecu
  拥有信号中包含的数据编码。一个消息对象的数据可以是0到8字节。
  消息框:在最近的关于can的文献中,消息框是消息对象的同义名称。
  主从设备:一套通过can交换数据对象的控制器。此外,外部控制器链接到网络,它与一
  个或多个控制器相连,并向它们发送命令,被称为主设备。在现存网络中接收命令的控制
器被称为从设备。
  odt对象描述符表:用于接收数据组的变量元素列表。
  6协议的定义
  用于标定和获取数据的can通信协议是一个主-从通讯类型。在can总线上,主设备和一个或多个从设备相连。主从设备布局
  主设备是一个标定工具或诊断/监测工具,或一个测量系统通过向从设备发送命令以启动can总线上的数据传输。ccp实现支持命令,用于带有简单存储传输的通用控制和数据采集。通讯协议的上述两部分(函数组)是相互独立并且可以分别运行的,这是依靠从控制器实现的。这也支持各部分的信号以嵌套次序传输。
  6.1通用控制命令
  这些命令用于在从设备中实现功能。出于这个目的,在主设备和can总线上的其他位置(从设备)之间建立了连续的逻辑连接。这种逻辑连接一直有效,直到另一个站被选中或当前位置是通过明确的命令断开。
  初始化过后,已经取得了逻辑连接,主设备控制数据从主设备到从设备间的相互传输。所有来自主设备的命令必须由从设备上带有的握手协议来提示(命令返回码或错误代码)。
  6.2数据采集命令
  这些协议命令是用来在从设备中进行连续数据采集的。can上的任一节点都可以定期的传送内部数据,它们对应于主设备的控制命令所配置的一个列表。数据传输起始于主设备并由从设备完成,它可以依赖于固定的采样率或者由事件驱动(例如:曲轴位置)。
  7信号对象
  7.1信号对象组织
  根据对can的定义,所有需要传送的信号和数据都被打包成为“信号对象”,含有高达8字节的数据。一个信号对象从can上的一个节点传送到另一个节点。
  ccp要求至少两个信号对象,一个用于每个方向:
  1)命令接受对象:cRo
  2)数据传送对象:dto
  cRo用于命令代码和相关参数的接收,来执行内部功能或者是以逻辑连接的can设备之间的内存传输。命令的接收必须由一个使用数据传送对象dto的握手信号来提示,这样一来dto就被称为命令返回信号。这一dto信号的返回代码,用来判定对应命令是否被成功执行。
  功能框图:ccp主从设备间的通讯流程
  在从设备描述文件里定义了消息标识符在上述对象的分配(例如:asap2格式描述文件),它被用来配置主设备。一个好的建议表示信号对象的总线优先权需要认真确定,以防止破环总线上其他的实时通讯。同时,cRo需要具备比
  dto更高的优先权。
  对于ccp数据传输,它的本身没有定义字节顺序。因为数据组依靠ecu的cpu,字节顺序是在从设备描述文件中被定义的。唯一的例外是test中的站地址,连接和断开命令。
  7.2信号对象的描述
  7.2.1命令接收对象cRo
  一个命令接收对象cRo是由主设备送到其中一个从设备中的。从设备响应中的数据传输对象包含一个命令返回信号cRm。
  对象的结构:
  信号范围参数:
  cRo的数据长度代码必须是8.未使用的数据字节,在命令描述中标有“忽略”,可能代表任意值。
  7.2.2数据传输对象dto
  dto必须将从设备所有将要发出的信号和数据制作为数据包。数据包的首字节被用作它的id。
  dto是一个:*命令返回信号cRm,如果dto被当做主设备发送到一个cRo的响应。*事件信号,如果dto报告内部下属状态改变,以引用错误恢复或其他服
  务。详细的解释在该章的‘错误处理’。
  *数据采集信号,如果数据包id指向对应的对象描述表odt,它描述了数
  据采集元素(变量)包含在数据包剩余的7个字节的数据中。odts是通
  过协议命令进行初始化和修改的(见章节‘命令的描述’)。
  对象结构:
  信号范围内的参数:
  pid的含义:
  命令返回或事件信号的格式如下:
  eRR:命令返回/错误代码。
  ctR:cRo中最后一条命令收到的命令计数器
  cRm的数据长度代码必须是8。未使用的数据字节,在命令描述中标有“忽略”,可能代表任意值。
  数据采集信号的格式如下:
  pid=n;dto包含一个数据采集信号对应于对象描述表odtn(详见章节‘命令的描述’)dto的数据长度代码可设置为实际大小。
  7.3数据采集机构
  主设备可以从一个从设备中初始化数据采集,从设备将daq-dtos中定义的数据送回。
  组织的数据元素如下:位于ecu内存中的数据元素,被分配给一个称为对象描述表odt的列表中。表中包含地址,地址扩展和个元素的字节长度。odt可以有多达7个元素指针。
  在这odt中定义的每个元素的内容必须被转换成daq信号dto以送到主设备中。为了节省ecu中的内存资源,地址的扩展和长度都是可选的。该元素必须由
  ecu
  一贯的采样。如果一个ecu不支持一个元素的大小超过1字节,主设备需要将多数据对象分割为单一字节。在这种情况下,ecu必须保证在odt中所有元素的一致性。
  pid是分配给odt的数目(0=  ccp允许daq列表一个数字的安装,它可以同时起作用。每个
daq列表dto的采样和传
  篇三:can协议通信格式
  can协议通信格式
  can协议通信格式中有四种帧格式:数据帧、
  远程帧、出错帧和超载帧。其中断帧和远程帧的发
  送需要在cpu控制下进行,而出错帧和超载帧的
  发送则是在错误发生或超载时自动进行的。数据
  帧结构如图1所示。
  一
  个完整的数据帧格式,除了仲裁场、控制场、
  数据场外都是can控制器发送数据时自动加上去
  的,而仲裁场、控制场、数据场则必须由cpu控制
  给出。用sja1000时,写出发送缓冲器的txid0、
  txid1即设定了相应的仲裁场和控制场。txid0
  即为仲裁场的高8位,txid1的高3位为仲裁场的
  低3位,组成共11位的仲裁场。txid1的第5位
  为RtR位,即远程请求位。其在数据帧中为“0”;
  txd1低4位标示数据场所含字节数的多少,称为
  dlc。RtR和dlc共同构成控制场。发送的数据
  组成数据场,最多不超过8个字节。远程帧和数据
  帧的形式差别在于没有数据场。除此之外,在远程
  帧中RtR位必须置“1”,表示请求数据源节点向它
  的目的节点(即发送远程帧的节点)发送数据。源
  节点接收到该帧后,把要发磅数据用帧发给目的节
  点,完成数据请求。cRc场与ack场都是在低层
  次上为提高传输的可靠性而自动进行的。任何帧
  与帧之间是帧间空间。
  帧起始lf中裁场制场l数据场icRc场lack场1帧结
  图1数据帧结构
  3。3can总线系统的构成
保时捷porsche  从原理和实现的角度,只要有两个can节点
  和将它们连接成一体的通信媒体就可以构成一个
  can总线系统,这两个节点之间通过通信媒体交
  换信息。而由can总线构成的控制网络的结构一
  般由控制器节点、传感器节点、执行器节点以及其
  他的监控节点如人机界组成,can作为控制局域
  网还可以通过网关和其他网络如以太网互联构成
  维普资讯
  170杨春英:can现场总线系统设计技术及实现总第160期
  大型复杂的控制网络结构,如图2所示。
  图2can总线控制网络结构图
  4can接口模块的设计
  R
  can接口模块是实现上位机系统和can总
  线的连接接口,它的作用和以太网卡相同。can
  接口模块的设计选用can专业芯片一c络
  控制器。c络控制器具有完成can通信协
  议所要求的物理层和数据链路层的几乎所有功能。
  c络控制器芯片发展至今,已有多个厂家的
  各种类型的产品。按照控制器芯片的功能来分,既
  有独立的can控制器芯片,如philips的sja1000,
  又有集成到微控制器中的控制芯片,这样的芯片中
  有8位控制器芯片,如philips的p8xc59x系列芯
  片,16位控制器芯片,如motorola的68hc912系列
  以及32位微控制器芯片,如motorola的mc6837x
  系列芯片和带有can的dsp芯片,如ti的
  tms320lF24系列芯片。下面就以sja1000为例
  介绍can接口模块的设计。
  4.1sja1000简介
  sja1000是一种i/o设备基于内存编址的微
  控制器。双设备的独立操作是通过象Ram一样
  的片内寄存器修正来实现的。在basiccan模式
  下sja1000的寄存器结构及地址分配见表2。
  表2sjaio00的寄存器结构及地址分配表
  sja1000有两种不同的工作模式:复位模式和
  工作模式,在不同模式下访问寄存器是不同的。
  can控制器工作模式的设定、数据的发送和接收
  等都是通过这些寄存器来实现的。时钟分频寄存
  器ocR用于设定sja1000工作于basiccan还
  是pelican,还用于clkout引脚输出时钟频率的
  设定,在上电初始化控制器时必须首先设定。通
  常,在系统初始化时,先使cR.0=1,sja1000进入
  复位模式。在此模式下iR、acR、amR、btR0、
  btR1及ocR均可读可写,此时设置相应的初始
  值。当退出复位模式时,sja1000即按复位时设定
  的相应情况工作于工作模式,除非再次使芯片复
  位,否则上次设定的值不变。当需要发送信息时,
  若发送缓冲器空闲,由cpu控制信息写入txb,再
  由cmR控制发送;当接收缓冲器RxFiFo未满且
  接收信息通过了asp,则接收到的信息被写入
  FiFo。读取接收到的信息有两种办法。一种方法
  是,在中断被使能的情况下,由sja1000向cpu发
  中断信号,cpu通过sR及iR可以识别该中断,并
  读取数据释放接收缓冲器;另一种方法是直接读取
  sR,查询RxFiFo的状态,当有信息接收时,读取该
  信息并释放接收缓冲器。当接收缓冲器中有多条
  信息时,当前的信息被读取后,接收缓冲器中有多
  条信息时,当前的信息被读取后,接收缓冲器有效
  信号会再次有效,通过中断方式或查询方式可以再
  次读取信息,直到RxFiFo中的信息被全部读出为
  止。当RxFiFo已满,如还有信息被接收,此信息
  不被保存,且发出相应的缓冲器溢出信号供cpu
  读取处理。
  4.2原理框图
  can控制器接口芯片采用phihips公司生产
  的pca82c250,它是can总线控制器和物理总线
  的接口,可以提供对can总线的差动发送和接受
  能力,具有抗瞬间干扰、保护总线的能力,可以通过
  调整can总线上通讯脉冲边沿斜率来降低射频干
  扰。其原理框图如图3所示。
  维普资讯
  20xx年第4期舰船电子工程171
  图3can接口模块的原理框图
  在该设计中的关键是要完成计算机总线地址/现场总线作为过程自动化、制造自动化、楼宇、
  数据分开与sja1000地址/数据复用的转换,方法交通等领域现场智能设备之间的互联通信网络,沟
  之一是把数据线作为can控制器的数据地址复用通了生产过程现场控制设备之间及其与更高管理
  线,用a0作为地址、数据选择线。can总线的层网络之间的联系。目前国际上存在的多种现场
  canh、canl与地之间并联了两个30p的小电容,总线,有各自的组织、标准、芯片和应用领域。但还
  可以起到滤除总线上的高频干扰和一定的防电磁没有一种现场总线能够完全适用于所有的应用领
  辐射的能力。另外在两根can总线接入端与地之域。因此应用层的用户要根据自身系统的实际情
  问分别反接了一个保护二级管,当can总线有较况、工程的具体要求和经济实力选择适合自身的现
  高的负电压时,通过二极管的短路可起到一定的过场总线,使其能充分地发挥长处,同时
也使我们的
  压保护作用。82c250的Rs脚上接有一个斜率电工作达到最好的效果。
  阻,电阻大小可根据总线通讯速度适当调整,一般
  在16k~140k之间。为进一步提高抗干扰能力,
  在sja1000和82c250之问加接光电隔离,电源采
  用dc—dc变换器。在复位电路设计中,考虑到便
  于电路调试和处理整体运行时出现的问题的需要,
  采用三种复位方式,即上电复位、手动复位(调试