《CAN控制器局域网.doc》由会员分享,可在线阅读,更多相关《CAN控制器局域网.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、|CAN总线简介 淄博皓轩仪表自动化技术有限公司 专业 自动化工程 设计淄博皓轩仪表自动化技术有限公司 2011-05-30 22:29:46 作者:SystemMaster 来源: 文字大小:大中小淄博皓轩仪表自动化技术有限公司 专业 自动化工程设计CANControl(Controller) Area Network是控制(器)局域网的简称它是德国公司在年为解决现代汽车中众多测量控制部件之间的数据交换而开发的一种串行数据通信总线。现已被列入 ISO 国际标准,称为 ISO11898CAN最初是为汽车的监测、控制系统而设计的,现已在航天、电力、石化、冶金、纺织、造纸、仓储等行业广泛采用。在火
2、车、轮船、机器人、楼宇自控、医疗器械、数控机床、智能传感器、过程自动化仪表等自控设备中,都广泛采用 CAN技术CAN的主要技术特点CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统CAN网络上的节点信息具有不同的优先级,可满足对实时性的不同要求,高优先级的数据最多可在 134微秒内得到传输 CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而节省了总线冲突的仲裁时间。 CAN只需通过报文滤波即可实现点对点、一点对多点及全
3、局广播等几种方式传送接收数据,无需专门的“调度“ CAN的直接通信距离最远可达 10km(速率 5kbps以下);通信速率最高可达 1Mbps(此时通信距离最长为 40m)。 CAN上的节点数主要决定于总线驱动电路,目前可达 110个;报文标识符可达 2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制采用短帧结构,传输时间短,受干扰概率低,具有良好的检错效果。CAN节点中均有错误检测、标定和自检能力。检错的措施包括:发送自检、循环冗余校验、位填充和报文格式检查等。保证了低出错率。CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。
4、CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。CAN器件可被置于无任何内部活动的睡眠方式,相当于未连接到总线驱动器。这样可降低系统功耗。其睡眠状态可借助总线激活或者系统的内部条件被唤醒。CAN在汽车电子系统中得到广泛应用 现代汽车越来越多地采用电子装置控制,如发动机控制、注油控制,|加速、刹车控制(ASC)及复杂的防死锁刹车系统(ABS)等。汽车内部所具有的控制器、执行器、监测仪器、传感器的数量很多,按模拟系统的接线方式,一个传统车辆的典型连线束展开后,其长度约为 1600多米,有将近 300个接头这些控制需检测及交换大量数据,因而引入 CAN通信技术,组成汽车内部网络,以适应控制与数
5、据通信的需要。世界上一些著名汽车制造厂商如 BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)ROLLS-ROYCE(罗斯莱斯)JAGUAR(美洲豹)等都已开始采用 CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。基于 CAN总线的数据通信与网络技术在汽车行业有良好的应用前景汽车内部网络的构成汽车内部网络由一系列称之为 ECU(电控单元)的不同功能部件作为网络节点而构成的。可分为动力、照明、操作、显示、安全、娱乐等多个子系统。Motorola公司提出的基于 CAN的汽车内部网络的解决方案。动力系统采用传输速率大于 250kbps的 CAN网段,车身电子系统采用传输速率不
6、小于 125kbps的低速 CAN网段,两个子网之间通过中央模块实现互连。 汽车内部网络的解决方案 ( Motorola )CAN通信技术 CAN的通信参考模型CAN的通信模型的分层结构数据链路层包括逻辑链路控制子层 LLCLLC的主要功能是:为数据传送和远程数据请求提供服务,确认由 LLC子层接收的报文实际已被接收,并为恢复管理和通知超载提供信息 媒体访问控制子层 MAC)MAC子层主要规定传输规则,即控制帧结构、执行仲裁、错误检测、出错标定和故障界定 物理层物理层规定了节点的全部电气特性 CAN节点网络的连接CAN总线的显位与隐位显位(0)VCANH: 3.5vVCANL 1 1.5v隐位
7、(1)VCANH 2.5vVCANL 2.5vCAN的帧类型4种不同类型的帧:数据帧、远程帧、出错帧或超载帧数据帧携带数据由发送器至接收器|远程帧用以请求总线上的相关单元发送具有相同标识符的数据帧出错帧由检测出总线错误的单元发送超载帧用于提供当前的和后续的数据帧的附加延迟CAN的帧结构 数据帧由 7个不同的位场(域)组成:帧起始(1 个显位),标志帧的起始仲裁场、控制场、数据场、CRC 场、应答场和帧结束(7 个隐位)。数据场长度可为零 。 CAN数据帧的组成CAN2.0A 与 CAN2.0BCAN2.0A:标识符的长度为 11位,这些位从高位到低位的顺序发送,最低位为ID.0,其中最高 7位
8、(ID.10ID.4)不能全为隐位。远程发送请求位(RTR)在数据帧中必须是显位,而在远程帧中必须为隐位仲裁场由 11位标识符和远程发送请求位 RTR组成。CAN 2.0B:存在两种不同的帧格式,具有 11位标识符的标准帧,29 位标识符的扩展帧标准帧与 CAN2.0A相同扩展帧的仲裁场由 29位标识符和替代远程请求 SRR位、标识位和远程发送请求位组成,标识符位为 ID.28至 ID.0。CAN数据帧的组成 远程帧远程帧由 6个场组成:帧起始、仲裁场、控制场、CRC 场、应答场和帧结束。远程帧不存在数据场。远程帧的 RTR位必须是隐位。DLC的数据值是独立的,它可以是 08 中的任何数值,为
9、对应数据帧的数据长度。出错帧出错帧由两个不同场组成,第一个场由来自各站的错误标志叠加得到,第二个场是出错界定符错误标志具有两种形式:活动错误标志(Active error flag),由 6个连续的显位组成认可错误标志(Passive error flag),由 6个连续的隐位组成出错界定符包括 8个隐位超载帧超载帧包括两个位场:超载标志和超载界定符发送超载帧的超载条件:要求延迟下一个数据帧或远程帧在间歇场检测到显位超载标志由 6个显位组成|超载界定符由 8个隐位组成CAN通信控制器CAN通信控制器 82C200 CAN控制器主要由实现 CAN总线协议部分和与微控制器接口部分电路组成。对于不同
10、型号的 CAN总线通信控制器,实现 CAN协议的电路,其结构和功能大体相同;与微控制器接口,其结构及方式存在一些差异CAN控制器芯片完成 CAN总线协议的物理层和数据链路层的所有功能,应用层功能由微控制器完成芯片工作的温度范围为:40125,汽车及某些军用领域,4080,一般工业领域CAN通信控制器 82C200的功能框图接口管理逻辑:接收来自微控制器的命令,控制信息缓存器,为微控制器提供中断和状态信息。发送缓存器:它有 10个字节存储单元组成,存储由微控制器写入,将被发送到 CAN的报文。接收缓存器 0和 1:接收缓存器 0和 1均由 10个字节组成,交替存储由总线接收到的报文,当一个缓存器
11、被分配给 CPU时,位流处理器可以对另一个进行写操作。 位流处理器:控制发送缓存器和接收缓存器(并行数据)与 CAN总线(串行数据)之间数据流的序列 位定时逻辑:它将 82C200同步于 CAN总线上的位流。收发逻辑:用来控制输出驱动器。错误管理逻辑:按照 CAN协议完成错误界定。控制器接口逻辑:与外部微控制器的接口,82C200 可直接与多种微控制器接口82C200的寄存器地址分配 1 控制段的 10个寄存器控制寄存器(CR) 控制寄存器的内容用于改变 82C200的状态,使 82C200 进入测试或正常工作模式,中断开放或禁止等,控制寄存器的控制位可被微控制器置位或复位,微控制器将控制寄存
12、器作为读写存储器。命令寄存器(CMR):用于初始化一种作用。使 82C200进入睡眠、唤醒状态;清除超载;释放接收缓存器;请求发送报文状态寄存器(SR状态寄存器的内容受总线控制器状态的影响。它表明了 82C200的总线状态、错误状态、发送状态、接收状态、接收状态、发送完成状态、接收缓存器状态、数据超载状态等状态寄存器对于微控制器作为只读存贮器出现|中断寄存器(IR)可用于识别中断源,如唤醒中断、超载中断、发送中断、接收中断等当一个或多个位被置位时,INT 引脚被激活在该寄存器被微控制器读出后,所有位被 82C200复位。该寄存器对于微控制器作为只读存储器出现接收码寄存器(ACR)它是 82C2
13、00的接收滤波器的一部分,该寄存器可被访问。接收码位(AC.7AC.0);报文标识符的最高 8位(ID.10ID.3);接收屏蔽位(AM.7 AM.0)若满足下列等式,则予以接收: (ID.10 ID.3 )= ( AC.7 AC.0 ) OR ( AM.7 AM.0 ) = 11111111B接收屏蔽寄存器(AMR)接收屏蔽寄存器是 82C200的接收滤波器的一部分。该寄存器可被访问,根据接收屏蔽寄存器认定接收哪些码总线定时寄存器 0(BTR0)总线定时器 0的决定波特率预分频器(BRP)和同步跳转宽度(SJW)的数值,若复位请求位被置为高,该寄存器可被访问 。 总线定时寄存器 1总线定时寄
14、存器 1的内容为周期宽度、采样点位置和在每个采样点获取采样的数目。若复位请求位被置为高,该寄存器可被访问。输出控制寄存器(OCR)在软件的控制下,输出控制寄存器可建立输出驱动器的不同配置,如正常输出、测试输出、时钟输出、双向输出;输出引脚为悬浮、上拉、下拉、推挽输出等。若复位请求位被置为高,该寄存器可被访问。测试寄存器测试寄存器仅用于生产测试发送缓存段用于存储由微控制器送至 82C200的被发送报文。分为描述符和数据场。描述符为两个字节,包括标识符、远程发送请求位和数据长度码标识符(ID):标识符由 11位(ID.10ID.0)构成,ID.10 为最高位。在仲裁过程、接收滤波中都要用到。标识符
15、的二进制数值越低,其优先权越高远程发送请求位(RTR)为高电平时,发送远程帧,否则发送数据帧,数据场:字节的数目由数据长度码决定。地址单元 12中的数据字节 1的最高位将首先被发送发送缓存器可由微控制器写入或读出描述符:标识符、远程发送请求位和数据长度码接收缓存段|接收缓存器各字节定义与发送缓存器同,只是起始地址不同接收缓存器:两个物理存储区对应同一地址,由内部接口管理决定访问哪一物理区域CAN通信控制器 功能框图控制器由以下几部分构成:接口管理逻辑 IML:它接收微处理器的命令,控制寄存器的地址,并为微处理器提供中断和状态信息。发送缓冲器 TXB: 它是和位流处理器()之间的接口,有字节长。
16、能存储一条将在总线上发送的完整报文。报文由写入, 由位流处理器读出。接收缓冲器(,): 是和接收滤波器之间的接口, 用来存储从总线收到并接收的报文。接收缓冲器 FIFO共字节长。其中有字节的窗口可供访问。在处理一个报文的同时,由这个继续接收其它正在到来的报文 CAN通信控制器(续)接收滤波器 ACF: 接收滤波器把收到的报文标识符和接收滤波寄存器中的内容进行比较,以判断该报文是否被接收。如果判断结果是肯定的, 则报文被存入。位流处理器 BSP: 位流处理器控制发送缓冲器和总线之间数据序列,同时它也执行错误检测、仲裁、位填充和总线错误处理功能。位定时逻辑 BTL: BTL监视总线上的串行序列,处
17、理与 CAN总线相关的位时间,按收到的报文头与总线上的位流同步。BTL 还为补偿传输迟延时间和相位跳变提供可编程的时间段。错误管理逻辑 EML:它按照协议完成错误界定。它接受来自 BSP的出错通知,并向 BSP和 IML提供出错统计 出错处理功能的增强仲裁丢失捕捉寄存器():以找到丢失仲裁位的位置出错代码捕捉寄存器():分析总线错误类型和位置出错警告限寄存器():定义出错警告极限值接收出错计数寄存器()发送出错计数寄存器()记录发送和接收时出现的错误个数等。可根据从这两个寄存器读取的错误个数来判断目前控制器的出错状态。出错中断:出错中断源:总线出错中断、错误警告限中断(可编程设置)和被动出错中
18、断。由中断允许寄存器()区分出以上各中断, 也可直接从中断寄存器()中直接读取中断寄存器的状态来判断出错类型。出错代码捕捉寄存器():当总线发生错误时, 产生相应的出错中断,同时,把对应的错误类型和产生位置写入出错代码捕捉寄存器(相对地址为 12)。这个代码一|直保存到被主控制器读取出来后,ECC 才重新被激活工作,捕捉下一个错误代码。可以从 ECC读取的数据来分析属于何种错误以及错误产生的位置,从而为调试工作提供了方便。 SJA1000的应用电路 加 CPU、晶振、电源、复位电路、总线收发器等,与其它测量控制电路,可构成 CAN应用节点SJA1000的应用电路其它与 CAN通信控制器相关的器
19、件 INTEL 82527CAN通信控制器。支持 CAN 2.0B规范,包括标准和扩展数据帧和远程帧带 CAN通信控制器的 8位微控制器 P8XC592适用于自动和通用工业领域的高性能 8位微控制器。它是 Philips现有微控制器 P8XC552和 CAN通信控制器 82C200的功能组合带 CAN通信控制器的 16位微控制器 87C196CA/CB及 P51XA-C3INTEL 82527CAN通信控制器的功能框图CAN总线收发接口器件 82C25082C250是 CAN控制器与物理总线之间的接口,器件可以提供对总线的差动发送和接收功能。82C250 的主要特性如下:与 ISO/DIS 1
20、1898标准全兼容高速性(最高可达 1Mbps)具有抗汽车环境下的瞬间干扰,保护总线能力降低射频干扰的斜率控制热保护总线与电源及地之间的短路保护低电流待机方式掉电自动关闭输出可支持多达 110个节点相连接CAN总线收发器 82C250的功能框图 对于 CAN控制器及带有 CAN总线接口的器件,82C250 并不是必须使用的器件,因为多数 CAN控制器均具有配置灵活的收发接口并允许总线故障,只是驱动能力一般只允许 2030 个节点连接在一条总线上。而 82C250支持多达 110个节点,并能以 1Mbps的速率工作于恶劣电气环境I/O功能16条可配置的数字及模拟 I/O口线每条 I/O口线均可通
21、过 CAN总线单独配置,包括 I/O方向,口模式和输入跳变的检测功能在用作数字输入时,可设置为由输入端变化引起 CAN报文自动发送两个分辨率为 10位的准模拟量(分配脉冲调制 PDM)输出具有 6路模拟输入通道的 10位 A/D转换器|两个通用比较器CAN总线 I/O器件 82C15082C150是一种具有 CAN总线接口的模拟和数字 I/O器件,可用于传感器、执行器接口。主要功能包括: CAN 接口功能和 I/O功能CAN接口功能符合具有严格的位定时的 CAN技术规范 2.0A和 2.0B全集成内部时钟振荡器(不需要晶振),位速率为 20K125Kbit/s具有位速率自动检测和校正功能由 4
22、个可编程标识符位,在一个 CAN总线系统上最多可连接 16个82C150支持总线故障自动恢复具有通过 CAN总线唤醒功能的睡眠方式带有 CAN总线差分输入比较器和输出驱动器CAN总线 I/O器件 82C150的应用汽车内部网络 SAE J1939 CAN规范只包括了物理层和数据链路层,是一个可以封装在通信控制器集成电路芯片内部的规范。SAE J1939以 CAN为基础,其物理层和数据链路层基本上沿用了 CAN规范,并增加了网络层、应用层和网络管理规范。SAE J1939目前已经发布的规范如下:J1939/01 卡车、公共汽车控制与通信网络J1939/12 物理层,250Kbps, 四线双绞线J
23、1939/13 物理层,诊断连接器J1939/31 网络层J1939/71 车辆应用层J1939/72 虚拟终端应用层J1939/73 应用层-诊断J1939/81 J1939网络管理协议通信参考模型比较 J1939的物理连接与网络拓扑总线由 CAN-H、CAN-L、 CAN-SHLD 导线组成;CAN-H 为黄色、CAN-L 为绿色。 网段由屏蔽双绞线对组成,允许用分枝短线将每个 ECU连接到总线上,不要求每个 ECU直接接近总线。网段上的 ECU数量SAE J1939汽车内部网络是将许多电控单元 ECU连接成的网络的物理实现。ECU 的数量受到总线上负荷的限制。根据现有规范对电气参数的规定
24、,在一个给定的网段上,ECU 的最大数量被限制为 30 网段以 250 Kbps 的数据传输速率运行,为防止信号反射,使网段运行对电子信号的影响最小,在总线的每个终端都应连接终端电阻|每个部件均有终端电阻(120 ),终端电阻采用支架安装,以便调整。同时,终端电阻同网络线之间通过跳线相连,以便灵活搭配。J1939网络可以由一个或多个网段组成,网段间由网络互连 ECU(如网桥)连接。 J1939报文帧的格式与定义 J1939为采用 CAN 2.0B扩展帧格式。J1939 29位 ID的位定义图SAE J1993进一步定义了 CAN数据帧仲裁域的标识位SAE J1993报文帧包含一个单一的协议数据
25、单元 PDUPDU包括 7个预定的域优先级、保留位、数据页、PDU 格式、PDU 细节(可以是目标地址、组扩展或专有)、源地址和数据域。CAN数据帧中的 SOF、SRR、IDE、RTR、部分控制域、CRC、ACK 和 EOF没有包括在 PDU内。因为这些部分完全由 CAN规范控制,未被 SAE J1939修改J1939中 29位 ID的位定义图优先级(P)。这三位用于总线仲裁时优选发送到总线上的报文。它们被接收器完全屏蔽。报文的优先级设置从最高的 0(0002)到最低的 7(1112)。所有面向控制的报文其缺省优先级为 3(011)。其它报文、专有报文、请求以及 AKC报文的缺省优先级为 6(
26、110)。随着参数组号 PGN的分配情况和总线通信的变化,允许提高或降低优先级。保留位(R)。该保留位供 SAE将来使用。不能与 CAN的保留位混淆。传输时所有的报文应该将 SAE保留位设为 0。数据页(DP)。数据页位选择了参数组描述的一个辅助页。在第 0页上可获得的所有参数组号的分配完成后,再作对第 1页的分配。PDU格式(PF)。PDU 格式域是一个 8位域。J1939 规定了 PDU1和PDU2两种格式。其值低于 240为 PDU1格式,其值为 240255为 PDU2格式。PDU1格式允许将参数组发送给一个指定目标或全局目标。不能选用 PDU2格式将 PGN传送给特定目标。 PDU细
27、节(PS)-这也是一个 8位的域,它的定义取决于 PDU格式(PF)域的内容。当 PDU格式(PF)域的值低于 240,则 PDU细节域表示的是一个目的地址;当 PF域的值是 240255 时,则 PDU细节域表示的是一个组扩展(GE)值源地址 SA域,共 8位。网络中仅容许一个设备对应给定的源地址 ,应防止地址重复数据域为 08 字节的数据。当某参数组的数据字节等于或小于 8时,数据域的所有 8个字节都可用。推荐使所有参数组号都保留 8个数据字节当需要 91785 个字节来表达某个参数组时,数据通信将由多个 CAN数据帧完成。在某一时刻需要传输的数据字节数小于 9时,将在一个单一的将 DLC
28、|设定为 8的 CAN数据帧中被发送。当某一参数组有 9个或多于 9个数据字节要传输时,则使用“传输协议功能“,以启动和关闭多包参数组的通信 J1939 允许在同一网络中使用 11位 ID的设备 ECU的设计说明 J1939规范将工作在网络上的 ECU分为标准 ECU、网络互连 ECU、诊断/开发工具几种类型。标准 ECU指用于发动机变速器ABS 系统虚拟终端仪表盘等的电控单元。标准 ECU不具备修改其他 ECU源地址的能力网络互联 ECU-网络互联 ECU用于网段互连.它们主要由中继器网桥路由器网关组成诊断/开发工具用于分析调试开发、监视在网段上的 ECU。 ECU的名称SAE J1939规
29、定,每个 ECU 将至少有一个名称和一个与之关联的地址。一个电控单元 ECU中可能有多个名称与多个地址共存。容许多个作相同工作的 ECU在同一网络上共存,但要为每个 ECU命名独特的名称。名称可以用 ECU的功能来表示 ,例如,1#发动机号2#发动机号1#变速器ABS 系统等。通过名称指明在网络上可以找到的任何功能 ECU的首选地址为了方便于网络初始化过程,通常使用的设备都有一个由委员会指派的首选地址。采用首选地址可以避免多个设备企图在网络上宣称相同的地址运用一个在上电之后分配地址的专门程序来解决可能发生的冲突。每个 ECU都必须有能力宣布它想要采用的地址,这是地址宣称特征。在 J1939网络
30、上运行的 ECU都应该有一个可用的首选地址。首选地址的分配从 0开始, 0 to 127 分配给在工业组 0中最常用的ECU;128 to 247 留给行业特定分配;248 to 253 留给特殊的 ECUs;ECU的地址号不能超过 254。 254 为空地址;255 为全局地址。ECU不能宣称空地址和全局地址。一个 ECU可以要求有多个地址,以区别要发生的作用 ECU的能力类型1)自组态 ECU (Self-Configurable ECUs)。自组态 ECU有能力动态地计算并宣称一个网络上未用过的地址。大多数的服务工具和网桥都应该有这个能力。2)命令组态 ECU(Command Configurable ECUs)。命令组态 ECU可以命令另一个 ECU采用一个给定的地址。网络互连 ECU,如桥,或服务工具可以是命令组态 ECU。接收该地址的 ECU则应发布一个地址宣称报文来确认收到了这个新命令的地址。即使在一个节点已经宣称了一个合法的地址的情况下,也可以命令 ECU接受一个新地址 ECU的能力类型(续)3)维护性可组态 ECU( Service Configurable ECUs)。可由维护者修改其地址的 ECU,通常指采用 DIP开关方式或服务工具可改变其地址的 ECU。