第九章  can 应用层协议

60
第第第 CAN 第第第第第 CAN 基基基基基基基 CANopen DeviceNet SAE J1939

Upload: gray-burks

Post on 04-Jan-2016

248 views

Category:

Documents


0 download

DESCRIPTION

第九章  CAN 应用层协议. CAN 基本协议的应用 CANopen DeviceNet SAE J1939. CANopen 概述. CAN 和 CANopen 标准在 OSI 网络模型中的原理图. CAN 基本协议的应用. CAN 三层协议:物理层、数据链路层、应用层 应用层:明确 CAN 消息帧的 11 位标识符和 8 字节数据如何使用 CAN 协议只对物理层和数据链路层作了描述和规定,而对于应用层则没有说明。如果每个都可以为自己的产品设计一个应用层协议。不同厂商的设备之间不能互相操作. CANopen 概述. 应用层协议内容 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第九章  CAN 应用层协议

第九章  CAN 应用层协议 CAN 基本协议的应用 CANopen DeviceNet SAE J1939

CANopen 概述

CAN 和 CANopen 标准在 OSI 网络模型中的原理图

CAN 基本协议的应用 CAN 三层协议物理层数据链路层

应用层 应用层明确 CAN 消息帧的 11 位标识

符和 8 字节数据如何使用 CAN 协议只对物理层和数据链路层作了描述

和规定而对于应用层则没有说明如果每个都可以为自己的产品设计一个应用层协议不同厂商的设备之间不能互相操作

CANopen 概述 应用层协议内容

应用层提供一组服务和协议 通讯规范提供配置设备的方法和通讯数据

定义了设备之间的数据如何通讯 设备规范为设备增加了设备相关的类行为

CAL(CAN Application Layer)

CAL ( CAN Application Layer )协议是目前基于 CAN 的高层通讯协议中的一种提供了 4 种应用层服务功能

CMS (CAN-based Message Specification) CMS 提供基于变量事件域类型的对象

以设计和规定一个设备(节点)的功能如何被访问(例如如何上载下载超过 8 字节的一组数据(域)并且有终止传输的功能)

CAL(CAN Application Layer) NMT (Network ManagemenT)

提供网络管理(如初始化启动和停止节点侦测失效节点)服务这种服务是采用主从通讯模式(所以只有一个 NMT 主节点)来实现的

CAL(CAN Application Layer) DBT (DistriBuTor)

提供动态分配 CAN ID (正式名称为 COB-ID Communication Object Identifier )服务这种服务是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 2: 第九章  CAN 应用层协议

CANopen 概述

CAN 和 CANopen 标准在 OSI 网络模型中的原理图

CAN 基本协议的应用 CAN 三层协议物理层数据链路层

应用层 应用层明确 CAN 消息帧的 11 位标识

符和 8 字节数据如何使用 CAN 协议只对物理层和数据链路层作了描述

和规定而对于应用层则没有说明如果每个都可以为自己的产品设计一个应用层协议不同厂商的设备之间不能互相操作

CANopen 概述 应用层协议内容

应用层提供一组服务和协议 通讯规范提供配置设备的方法和通讯数据

定义了设备之间的数据如何通讯 设备规范为设备增加了设备相关的类行为

CAL(CAN Application Layer)

CAL ( CAN Application Layer )协议是目前基于 CAN 的高层通讯协议中的一种提供了 4 种应用层服务功能

CMS (CAN-based Message Specification) CMS 提供基于变量事件域类型的对象

以设计和规定一个设备(节点)的功能如何被访问(例如如何上载下载超过 8 字节的一组数据(域)并且有终止传输的功能)

CAL(CAN Application Layer) NMT (Network ManagemenT)

提供网络管理(如初始化启动和停止节点侦测失效节点)服务这种服务是采用主从通讯模式(所以只有一个 NMT 主节点)来实现的

CAL(CAN Application Layer) DBT (DistriBuTor)

提供动态分配 CAN ID (正式名称为 COB-ID Communication Object Identifier )服务这种服务是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 3: 第九章  CAN 应用层协议

CAN 基本协议的应用 CAN 三层协议物理层数据链路层

应用层 应用层明确 CAN 消息帧的 11 位标识

符和 8 字节数据如何使用 CAN 协议只对物理层和数据链路层作了描述

和规定而对于应用层则没有说明如果每个都可以为自己的产品设计一个应用层协议不同厂商的设备之间不能互相操作

CANopen 概述 应用层协议内容

应用层提供一组服务和协议 通讯规范提供配置设备的方法和通讯数据

定义了设备之间的数据如何通讯 设备规范为设备增加了设备相关的类行为

CAL(CAN Application Layer)

CAL ( CAN Application Layer )协议是目前基于 CAN 的高层通讯协议中的一种提供了 4 种应用层服务功能

CMS (CAN-based Message Specification) CMS 提供基于变量事件域类型的对象

以设计和规定一个设备(节点)的功能如何被访问(例如如何上载下载超过 8 字节的一组数据(域)并且有终止传输的功能)

CAL(CAN Application Layer) NMT (Network ManagemenT)

提供网络管理(如初始化启动和停止节点侦测失效节点)服务这种服务是采用主从通讯模式(所以只有一个 NMT 主节点)来实现的

CAL(CAN Application Layer) DBT (DistriBuTor)

提供动态分配 CAN ID (正式名称为 COB-ID Communication Object Identifier )服务这种服务是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 4: 第九章  CAN 应用层协议

CANopen 概述 应用层协议内容

应用层提供一组服务和协议 通讯规范提供配置设备的方法和通讯数据

定义了设备之间的数据如何通讯 设备规范为设备增加了设备相关的类行为

CAL(CAN Application Layer)

CAL ( CAN Application Layer )协议是目前基于 CAN 的高层通讯协议中的一种提供了 4 种应用层服务功能

CMS (CAN-based Message Specification) CMS 提供基于变量事件域类型的对象

以设计和规定一个设备(节点)的功能如何被访问(例如如何上载下载超过 8 字节的一组数据(域)并且有终止传输的功能)

CAL(CAN Application Layer) NMT (Network ManagemenT)

提供网络管理(如初始化启动和停止节点侦测失效节点)服务这种服务是采用主从通讯模式(所以只有一个 NMT 主节点)来实现的

CAL(CAN Application Layer) DBT (DistriBuTor)

提供动态分配 CAN ID (正式名称为 COB-ID Communication Object Identifier )服务这种服务是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 5: 第九章  CAN 应用层协议

CAL(CAN Application Layer)

CAL ( CAN Application Layer )协议是目前基于 CAN 的高层通讯协议中的一种提供了 4 种应用层服务功能

CMS (CAN-based Message Specification) CMS 提供基于变量事件域类型的对象

以设计和规定一个设备(节点)的功能如何被访问(例如如何上载下载超过 8 字节的一组数据(域)并且有终止传输的功能)

CAL(CAN Application Layer) NMT (Network ManagemenT)

提供网络管理(如初始化启动和停止节点侦测失效节点)服务这种服务是采用主从通讯模式(所以只有一个 NMT 主节点)来实现的

CAL(CAN Application Layer) DBT (DistriBuTor)

提供动态分配 CAN ID (正式名称为 COB-ID Communication Object Identifier )服务这种服务是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 6: 第九章  CAN 应用层协议

CAL(CAN Application Layer) NMT (Network ManagemenT)

提供网络管理(如初始化启动和停止节点侦测失效节点)服务这种服务是采用主从通讯模式(所以只有一个 NMT 主节点)来实现的

CAL(CAN Application Layer) DBT (DistriBuTor)

提供动态分配 CAN ID (正式名称为 COB-ID Communication Object Identifier )服务这种服务是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 7: 第九章  CAN 应用层协议

CAL(CAN Application Layer) DBT (DistriBuTor)

提供动态分配 CAN ID (正式名称为 COB-ID Communication Object Identifier )服务这种服务是采用主从通讯模式(所以只有一个 DBT 主节点)来实现的

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 8: 第九章  CAN 应用层协议

CAL(CAN Application Layer) LMT (Layer ManagemenT)

LMT 提供修改层参数的服务一个节点( LMT Master )可以设置另外一个节点( LMT Slave )的某层参数(如改变一个节点的 NMT 地址或改变 CAN 接口的位定时和波特率)

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 9: 第九章  CAN 应用层协议

CAL(CAN Application Layer) CMS 为它的消息定义了 8 个优先级每个优先级拥有

220 个 COB-ID 范围从 1 到 1760 剩余的标志( 0 1761-2031 )保留给 NMT DBT 和 LMT COB-ID越低优先级越高

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 10: 第九章  CAN 应用层协议

CANopen 协议介绍 通信接 口和协议软件用于提供在总线上收发通信对象的服务不

同 CANopen 设备间的通信是通过交换通信对象来完成的 对象字典描述了设备使用的所有数据类型通信对象和应用对象

对象字典位于通信程序和应用程序之间用于向应用程序提供接口

应用程序对对象字典进行操 作即可实现 CANopen 通信它包括功能部分和通信部分通信部分通过对对象字典进行操作实现CANopen 通信而功能部分则根据应用要求来实现

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 11: 第九章  CAN 应用层协议

CANopen 协议介绍 CAL 提供了所有的网络管理服务和报文传送协

议但并没有定义 CMS 对象的内容或者正在通讯的对象的类型而这正是 CANopen切入点

CANopen 是在 CAL 基础上开发的使用了 CAL通讯和服务协议子集提供了分布式控制系统的一种实现方案

CANopen 的核心概念是设备对象字典( OD Object Dictionary )对象字典不是 CAL 的一部分而是在 CANopen 中实现的

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 12: 第九章  CAN 应用层协议

对象字典 (OD) 对象字典( OD Object

Dictionary )是一个有序的对象组每个对象采用一个16 位的索引值来寻址为了允许访问数据结构中的单个元素同时定义了一个 8位的子索引 CANopen 网络中每个节点都有一个对象字典

对象字典包含了描述这个设备和它的网络行为的所有参数

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 13: 第九章  CAN 应用层协议

对象字典 (OD)

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 14: 第九章  CAN 应用层协议

对象字典 (OD) OD 通过通信对象描述了设备的所有功能介于应用程

序和通信接口直接 在 CANopen 网络系统中每个节点都有唯一的一个对

象字典而且每个节点的对象字典都具有相同的结构但具体的内容要根据不同的设备而定

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 15: 第九章  CAN 应用层协议

通信模型 包括 CANopen 网络上的消息帧以及其内容和功能 管理消息 服务数据对象 过程服务对象 特殊功能对象

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 16: 第九章  CAN 应用层协议

管理消息 层管理网络管理和 ID 分配服务如初始化配置和

网络管理(包括节点保护) Boot-up 消息 Heartbeat 消息 NMT 消息 服务和协议符合 CAL 中的 LMT NMT 和 DBT 服务部

分这些服务都是基于主从通讯模式在 CAN 网络中只能有一个 LMT NMT 或 DBT 主节点以及一个或多个从节点

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 17: 第九章  CAN 应用层协议

Boot-up 消息 1 Start_Remote_node (0x01) 2 Stop_Remote_Node (0x02) 3 Enter_Pre-Operational_Stat

e (0x80) 4 Reset_Node (0x81) 5 Reset_Communication (0x8

2) 6 设备初始化结束自动进入Pre_Operational状态发送 Boot-up

消息 通知 NMT 主节点已经到就绪状态

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 18: 第九章  CAN 应用层协议

Boot-up 消息 NMT-slave 节点发布 Boot-up报文通知 NMT-

Master 节点它已经从 initialising状态进入 pre-operational状态

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 19: 第九章  CAN 应用层协议

Heartbeat 消息 Heartbeat 协议是为了解决错误控制显示节

点当前状态而引入的 Heartbeat 消息周期性地由节点发出表示该节点目前仍然在工作

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 20: 第九章  CAN 应用层协议

NMT 消息 由 NMT 主节点

发送迫使从节点状态转换使用 2B 数据单帧第一个数据字节是命令第二个字节是目标节点的 ID

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 21: 第九章  CAN 应用层协议

NMT 消息 只有 NMT-Master 节点能够传送 NMT Module Contro

l报文 NMT Module Control 消息不需要应答 NMT 消息格式如下

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 22: 第九章  CAN 应用层协议

NMT 消息 通过节点保护服务 NMT 主节点可以检查每个节点的当前状态当这些节点没有数据传送时这种服务尤其有意义

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 23: 第九章  CAN 应用层协议

服务数据对象( SDO ) SDO 提供客户访问服务器的对象字典 (OD) 的功能

访问者被称作客户 (client) 对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器 (server)

通过 SDO 服务可以访问对象字典的条目这些条目可能包含有任意长度的数据和数据类型

客户的 CAN报文和服务器的应答 CAN报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义)一个客户的请求一定有来自服务器的应答

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 24: 第九章  CAN 应用层协议

服务数据对象( SDO ) SDO 有 2 种传送机制1048698

加速传送( Expedited transfer )最多传输 4 字节数据 1048698 分段传送( Segmented transfer ) 传输数据长度大于 4

字节

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 25: 第九章  CAN 应用层协议

服务数据对象( SDO ) 为了进行标准的分段 DH速传送 SDO 定义了 6 个确认服务

(SDO 下载 SDO 上传启动 SDO 上传启动 SDO 下载下载SDO段和上传 SDO段 ) 和一个非确认服务 ( 中止 SDO 传送 ) 如启动 SDO 下载协议与对象字典的关系

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 26: 第九章  CAN 应用层协议

服务数据对象( SDO ) 一个节点向其它节点发送 SDO 时所使用报文 CANmdashID 为 600h+NodemdashID 例如 将值 0x31FF 写入节点 0x01 的索引为 0x6012 子索引为 2 的对象字典中对应的字节赋值如图 2 所示根据 SDO 协议连接对象报文的标识符 (COBmdashID) 为 600h+01h=601h Byte0 为 2B 表示客户向服务器发出下载请求采用加速传送方式并且显示字节长度 Bytel 和 2表示索引和子索引分别为 6012h和 2h Byte3 为 02h表示传送的数据为 2 个字节 Byte4 和 5 表示传送数据值为 0x31FF

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 27: 第九章  CAN 应用层协议

服务数据对象( SDO ) 通过使用索引和子索引(在 CAN报文的前几个字节)

SDO 使客户机能够访问设备(服务器)对象字典中的项(对象)

SDO 通过 CAL 中多元域的 CMS 对象来实现允许传送任何长度的数据

协议是确认服务类型为每个消息生成一个应答(一个 SDO需要两个 ID ) SDO请求和应答报文总是包含 8 个字节

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 28: 第九章  CAN 应用层协议

过程数据对象 PDO 用来传输实时数据 数据从一个生产者传到一个或多

个消费者数据传送限制在 1 到 8 个字节 PDO 通讯没有协议规定 PDO 数据内容只由它的 CA

N ID 定义假定生产者和消费者知道这个 PDO 的数据内容

每个 PDO 在对象字典中用 2 个对象描述 PDO 通信参数和 PDO映射参数 所謂PDO 的映射就是將PDO 的數據指向對象字典的某個位置

PDO 消息的内容是预定义的

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 29: 第九章  CAN 应用层协议

过程数据对象 PDO PDO訪問由於PDO 都是用來傳送較短且實時性較

高的控制數據和狀態數據因此 PDO數據在傳送時是不會像 SDO 一樣在數據包裡指定要對哪個 Index進行操作 PDO 在進行數據交換之前要先設定好是對哪個 Index操作的這個動作就是 PDO Mapping 映射好了 PDO 的數據對象則PDO 的數據就會被從站自動指向對象字典裡的某個 Index Sub-index上這樣就加快了數據交換的效率

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 30: 第九章  CAN 应用层协议

过程数据对象 PDO

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 31: 第九章  CAN 应用层协议

过程数据对象 PDO 同步(通过接收 SYNC 对象实现同步)

非周期由远程帧预触发传送或者由设备子协议中规定的对象特定事件预触发传送

周期传送在每 1 到 240 个 SYNC 消息后触发 异步

由远程帧触发传送 由设备子协议中规定的对象特定事件触发传送

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 32: 第九章  CAN 应用层协议

预定义消息或者特殊功能对象 同步用来同步网络中节点基于主从概念

时间戳为设备提供一个时间标准 紧急事件紧急事件由设备的内部错误触发每个错误事件只发送一次不重复发生

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 33: 第九章  CAN 应用层协议

预定义的连接设置 为了减小简单网络的组态工作量 CANopen 定义了强制性的缺省标识符( CAN-ID )分配表这些标志符在预操作状态下可用通过动态分配还可修改

缺省 ID 分配表是基于 11 位 CAN- ID 包含一个 4位的功能码部分和一个 7 位的节点 ID(Node-ID) 部分

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 34: 第九章  CAN 应用层协议

预定义报文或者特殊功能对象

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 35: 第九章  CAN 应用层协议

CANopen 标识符分配 使用预定义的主从连接集 ID 是缺省的不需要配置如果节点支持 PDO 数据内容也可以配置

上电后修改 PDO 的 ID (在预操作状态)使用(预定义的) SDO 在节点的对象字典中适当位置进行修改

使用 CAL DBT 服务节点或从节点最初由它们的配置 ID指称节点 ID 可以由设备上的拨码开关配置

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 36: 第九章  CAN 应用层协议

注意事项 (1) 在开发过程中不必要将 CANopen 协议中的各项内容都一一编写只要根据应用的具体要求按照 CANopen 协议编写即可对象字典都要通过软件实现这是实现 CANopen 的关键

(2) 组建对象字典时并没有必要把协议规定的所有项都包括进去另外还要留出足够的空间使得用户可以根据以后的具体需要向对象字典中添加功能项

(3) 一般应用中如果 CANopen 网络不复杂使用预定义的标识符分配就能满足要求对于特别大的系统如果要制定标识符分配这需要大量的软件编程

(4) 对于 CANopen 网络中必须实现的管理功能一般由一个节点来实现但也可以由几个节点分别承担尤其对于 SYNC报文传输和标识符的分配分开来实现会更好

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 37: 第九章  CAN 应用层协议

DeviceNet 设备层现场总线 DeviceNet

DeviceNet 是 20世纪 90年代中期发展起来的一种基于 CAN技术的开放型符合全球工业标准的低成本高性能的通信网络它通过一根电缆将PLC 传感器光电开关操作员终端电动机轴承座变频器和软启动器等现场智能设备连接起来是分布式控制系统减少现场 IO 接口和布线树立将控制功能下载到现场设备的理想解决方案

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 38: 第九章  CAN 应用层协议

DeviceNet DeviceNet 不仅可以作为设备级的网络还可以作为控制级的网

络通过 DeviceNet 提供的服务还可以实现以太网上的实时控制较之其它的一些现场总线 DeviceNet 不仅可以接入更多更复杂的设备还可以为上层提供更多的信息和服务

DeviceNet最初由Rockwell公司设计目前由 ODVA ( Open DeviceNet Vendors Association )致力于支持 DeviceNet 产品和规范的进一步开发此外 Rockwell GE ABB Hitachi Omron等公司也致力于 DeviceNet 的推广

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 39: 第九章  CAN 应用层协议

DeviceNet DeviceNet 的主要特点 采用基于 CAN 的多主方式工作 逐位仲裁模式的优先级对等通信建立了用于数据传输的生产者 消费者传输模型 DeviceNet 的直接通信距离最远为 500m 通信速率最高可达 500kbs

DeviceNet 上可容纳 64 个节点地址每个节点支持的 IO 数量无限制

采用短帧结构传输时间短受干扰的概率低检错效果好

通信介质为独立双绞总线信号与电源承载于同一电缆

支持设备的热插拔无需网络断电

DeviceNet 的接入设备可选择光隔离设计由外部供电设备与由总线供电的设备共享总线电缆

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 40: 第九章  CAN 应用层协议

DeviceNet DeviceNet 协议规范 mdash 沿用了 CAN 协议标准所规定的总线网络的物理层和数据链路层

定义了不同的报文格式总线访问仲裁规则及故障检测和故障隔离的方法

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 41: 第九章  CAN 应用层协议

DeviceNet 物理层和介质

物理层规范定义了 DeviceNet 的总线拓扑结构以及网络元件具体包括接地粗缆和细缆混合结构网络端接和电源分配

采用的典型拓扑结构是干线-分支结构 线缆包括(干线)和细缆(分支线)总线线缆采用五线制电缆包括了 2条信号线 2条 24V 电源线和一条屏蔽线支持总线供电

设备连接可选用开放 封装端头两种 提供 125250500Kbps 三种可选的通讯波特率最大拓扑距离为 500米每个网络段最大可达 64 个节点

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 42: 第九章  CAN 应用层协议

DeviceNet 数据链路层

遵循 CAN 协议规范并由 CAN控制器芯片实现 CAN 是基于广播方式的协议支持多主形式传输传输的帧被分配

一个标识符每个节点根据标识符确定是否接收这些帧 提供数据帧出错帧远程帧和过载帧等多种帧格式数据帧每帧

信息都有 CRC校验和其它校验措施数据传输误码率极低有严重故障的节点可自动从网络上切除

采用非破坏性逐位仲裁的方法解决共享介质总线访问冲突问题网络上每个节点拥有一个唯一的标识符这个标识符的值决定了仲裁中优先级的大小优先级值小的节点在竞争仲裁中为获胜的一方

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 43: 第九章  CAN 应用层协议

DeviceNet 数据通信方式

循环( Cyclic )方式适用于一些模拟设备可以根据设备的信号发生的速度灵活设定循环进行数据通信的时间间隔

状态改变( Change of State )方式适用于离散的设备采用事件触发方式当设备状态发生改变时才发生通信

选通( Strobed )方式利用 8B 的报文广播 64 个二进制位的值对应网络上 64 个可能的节点通过位的标识指定要求响应的从设备

查询( Polled )方式 IO报文直接依次发送到各个从设备

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 44: 第九章  CAN 应用层协议

DeviceNet 的网络通信 DeviceNet 是一个基于连接的通信网络系统一个 De

viceNet 的连接提供了多个应用之间的路径当建立连接时与连接相关的传送会被分配一个连接 ID ( CID )如果连接包含双向交换那么应当分配两个连接 ID值

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 45: 第九章  CAN 应用层协议

DeviceNet 报文 IO 报文适用于实时性要求较高和面向控制的数据它提供了

在报文发送过程和多个报文接收过程之间的专用通信路径通常使用优先级高的连接标识符通过一点或多点连接进行信息交换连接标识符提供了 IO报文的相关信息在 IO报文利用连接标识符发送之前报文的发送和接收设备都必须先进行设定设定的内容包括源和目的对象的属性以及数据生产者和消费者的地址 IO數據通常不需要響應用於控制數據的傳輸

显式报文顯示連接是 RequestResponse 型的通訊即主站發一筆命令從站必須回復一筆響應才算完成一次通訊适用于两个设备间多用途的点对点报文传递常用于节点的配置问题诊断等

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 46: 第九章  CAN 应用层协议

CAN 标识符使用 DeviceNet建立在标准 CAN20A 协议之

上并使用 11 位标准报文标识符可分成 4 个单独的报文组

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 47: 第九章  CAN 应用层协议

DeviceNet 对象模型 DeviceNet 应用层协议是以面向对象的方式进行描述的对协议

本身所要完成的功能进行抽象和定义把协议功能划分为多个模块每个模块抽象出它所具有的产品数据功能属性所能完成的功能和动作以及与其他模块对象的接口 (Interface) 并把模块对象化

DeviceNet 通过抽象的对象模型来描述网络中所有可见的数据和功能一个 DeviceNet 设备可以定义成为一个对象的集合

一个对象代表设备内一个部件的抽象描述对象由它的数据或属性功能或服务以及它所定义的行为决定

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 48: 第九章  CAN 应用层协议

DeviceNet 对象模型

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 49: 第九章  CAN 应用层协议

DeviceNet 与 CANopen 区别 传输距离

CANopen 网络可实现远距离传输 (le10 km) 工作速率可调 (1 Mbsge 通讯速率ge 5 kbs) 因此在实际应用中要考虑到传输距离的限制而选择总线协议如果用 devicenet 进行远距离传输要使用网络中继器现在市场上已经有很多这两种总线系统的中继器产品

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 50: 第九章  CAN 应用层协议

DeviceNet 与 CANopen 区别 标识符分配

CANopen支持 CAN20 A11 位和 CAN20 B29 位标识符而且报文的优先级只能通过它的大小来区分通常节点地址比较小的 COB-ID报文的优先级最高如果要传送需要快速响应的事件则要通过预定义和特殊功能对象如同步 (SYNC) 时间标记对象 (time stamp) 紧急事件 (emergency) PDO 用来传输实时数据优先级大于 SDO 因为 SDO 的数据量大通常用于设备初始化组态而 DeviceNET 只用了 CAN20 A 的 11 位标识符去分组定义报文的优先级这种信息组设计方法使总线优先级可任意分布而不仅和节点地址有关还取决与它是 IO还是显示报文报文的组号等

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 51: 第九章  CAN 应用层协议

DeviceNet 与 CANopen 区别 初始化组态不同

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 52: 第九章  CAN 应用层协议

SAE J1939 美国汽车工程学会 SAE 于 2000 提出的 J1939成为货车和客车中控制器局域网的通用标准

J1939 协议实质是将 CAN扩展帧格式中未明确定义的11 位 ID 18 位扩展 ID 进行了明确定义紧随 ID 的是 8 个字节的数据

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 53: 第九章  CAN 应用层协议

SAE J1939CAN扩展帧

格式SOF 11位标识符 SRR IDE 18位扩展标识符

J1939帧格式

帧起始位

优先权 3位

R位(保) 数据页DP

PF格式 6位

SRR位 扩展标识 PF PS格式( 8位)

源地址( 8位)

CAN 1 2~4 5 6 7~12 13 14 15 16 17~24 25~32

帧位置 28~26 25 24 23~18 17 16 15~8 7~0

CAN20 的标准和扩展格式及 J1939 协议所定义的格式

一个 J1939协议报文单元

PRIORITY R DP PDU FORMAT PDU SPECIFIC

SOURCE ADDRESS

DATA FIELD

3 1 1 8 8 8 0~64

J1939 协议报文单元的具体格式

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 54: 第九章  CAN 应用层协议

LIN 总线 LIN 介绍

一种低成本的串行通讯网络用于实现汽车中的分布式电子系统控制 LIN 的目标是为现有汽车网络 ( 例如 CAN 总线 ) 提供辅助功能因此 LIN 总线是一种辅助的总线网络在不需要 CAN 总线的带宽和多功能的场合比如智能传感器和制动装置之间的通讯使用 LIN 总线可大大节省成本

LIN 通讯是基于 SCI(UART) 数据格式采用单主控制器 多从设备的模式仅使用一根 12V 信号总线和一个无固定时间基准的节点同步时钟线

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 55: 第九章  CAN 应用层协议

LIN 的主要特性 低成本基于通用 UART 接口几乎所有微控制器都具备 LIN 必需的硬件 极少的信号线即可实现国际标准 ISO9141 规定传输速率最高可达 20Kbi

ts 单主控器 多从设备模式无需仲裁机制 从节点不需晶振或陶瓷震荡器就能实现自同步节省了从设备的硬件成本 保证信号传输的延迟时间 不需要改变 LIN 从节点的硬件和软件就可以在网络上增加节点 通常一个 LIN 网络上节点数目小于 12 个共有 64 个标志符

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 56: 第九章  CAN 应用层协议

LIN 的通讯规则 一个 LIN 网络由一个主节点一个或多个从节点组成所有节点都

有一个从通讯任务该通讯任务分为发送任务和接收任务主节点还有一个主发送任务

一个 LIN 网络上的通讯总是由主发送任务所发起的主控制器发送一个起始报文该起始报文由同步断点同步字节消息标志符所组成相应的在接受并且滤除消息标志符后一个从任务被激活并且开始本消息的应答传输该应答由 248 个数据字节和一个校验码所组成起始报文和应答部分构成一个完整的报文帧

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 57: 第九章  CAN 应用层协议

LIN 总线与 MCU 的接口设计

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 58: 第九章  CAN 应用层协议

汽车智能灯控制系统

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 59: 第九章  CAN 应用层协议

大作业 1 CAN 总线概况 2CAN 总线应用实例介绍 3CAN 总线模块设计(基于 ARM DSP等) 4USB转 CAN 接口设计 5232转 CAN 接口设计 6CAN 网关设计 7 CAN 总线与其它总线的比较如 profiBus Foundation Fieldbus

Lonworks等等 8 CAN 应用层协议的实际应用如 CANopen DeviceNet SAE J1939 9 CAN 相关的英文文献翻译

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653

Page 60: 第九章  CAN 应用层协议

要求 1 2000 字以上 2 时间 1月 10号之前 信箱 xuemingding126com 手机 13818035653