基于ARM7的CAN总线网络设计Word文档下载推荐.docx

上传人:b****6 文档编号:21087390 上传时间:2023-01-27 格式:DOCX 页数:40 大小:300.64KB
下载 相关 举报
基于ARM7的CAN总线网络设计Word文档下载推荐.docx_第1页
第1页 / 共40页
基于ARM7的CAN总线网络设计Word文档下载推荐.docx_第2页
第2页 / 共40页
基于ARM7的CAN总线网络设计Word文档下载推荐.docx_第3页
第3页 / 共40页
基于ARM7的CAN总线网络设计Word文档下载推荐.docx_第4页
第4页 / 共40页
基于ARM7的CAN总线网络设计Word文档下载推荐.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

基于ARM7的CAN总线网络设计Word文档下载推荐.docx

《基于ARM7的CAN总线网络设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于ARM7的CAN总线网络设计Word文档下载推荐.docx(40页珍藏版)》请在冰豆网上搜索。

基于ARM7的CAN总线网络设计Word文档下载推荐.docx

本课题的最终目的是达到对现场总线控制系统的掌握和应用,并且掌握用电子硬件开发的思路和方法,培养和提高个人的独立科研及设计能力。

本课题亦可为其它嵌入式系统所用,对其它嵌入式系统的开发有重要价值。

1.3ARM嵌入式系统的发展趋势和现况

嵌入式系统的发展在很大程度上改变了以往前后台系统单一的功能,是智能设备向多任务、多功能、智能化、图形操作人机界面的方向发展,并取得了广泛的应用。

例如,以前的电梯系统通常使用PLC作为主控单元,针对当今的高速、高层次电梯已经无法发挥出其优势,取代它的是具有多功能、多接口、图形界面的嵌入式电梯主控控制器。

现代的先进汽车,更是具有多个嵌入式系统,完善的功能和放心的安全性能也是我们有目共睹的。

就连美国的火星车,也采取了嵌入式系统。

所以,纵观当今的电子行业,几乎所有的产品领域都朝着嵌入式方向发展并不断深入。

由于网络与通信技术的发展,嵌入式系统在经历了近20年的发展历程后,又进入了一个新的历史发展阶段,即从普通的低端应用进入到一个高、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来32位MCU的发展。

32位MCU的应用不会走8位机百花齐放、百余种型号系列齐上阵的道路,这是因为在8位机的低端应用中,嵌入对象与对象专业领域十分广泛而复杂;

而32位的MCU的高端应用则多集中在网络、通信和多媒体技术领域,32位MCU将会集中在少数厂家发展的少数型号系列上。

在众多嵌入式系统厂家参与下,基于ARM系列处理器的应用技术会在众多领域取得突破性进展。

Intel公司将ARM系列向更高端的嵌入式系统发展;

而NXP公司则在向高端嵌入式系列发展的同时,向低端的8位和16位机的高端应用延伸。

Intel公司和NXP公司的发展都体现了各自的特点,并充分发挥了各自的优势。

因此,在32位嵌入式系统的应用中,ARM系列会形成ARM公司领军,众多厂家参与,计算机专业、电子技术专业以及对象专业人士共同推动的局面,形成未来32位嵌入式系统应用的主流趋势[]。

1.4本设计的任务

本课题以CAN-bus智能楼宇、照明系统的设计为基础,采用当前比较流行的iCAN协议,硬件平台采用基于ARM7的LPC2000系列芯片作为该平台的核心。

LPC2000系列中的LPC2x9x芯片内部集成FullCAN控制器,受到了同行业的青睐。

在软件方面,重点描述了系统软件的构建和驱动程序框架的编写。

具体工作如下:

1、对iCAN总线的技术规范、通信协议以及标准进行学习,以及与CAN2.0协议的差别。

2、对设计中运用的芯片LPC2000系列进行学习,掌握实际运用的方法。

完成基于CAN总线技术的智能节点模块的设计。

实现采集现场数据的传送。

本次设计的重点就是CAN总线通信接口电路设计。

3、在硬件搭建完成的基础上,完成系统软件设计,画出初始化流程图,数据的发送和接受流程图,编写其相对的程序。

4、在设计的基础上完成相应的仿真,本来想完成实物的设计,但由于能力有限未能实现,希望能做一些仿真。

第2章CAN总线技术

2.1CAN-bus的特点

CAN属于总线式串行通信网络,由于其采用了许多新技术及其独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性,因而一些世界著名的汽车厂商如BENZ,BMW,ROLLS-ROYCE等都采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信[11]。

其特点可概括如下[12]:

1、CAN为多主方式工作,也就是说网络上的任何一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式比较灵活,而不用站点地址等节点信息。

2、CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据最多可在134us内得到传输。

3、CAN总线采用非破坏性总线仲裁技术。

当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁的时间。

4、CAN总线只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。

5、CAN的直接通信距离最远可达10km(速率5kbps以下);

通信速率最高可

达1Mbps(此时通信距离最长为40m)。

6、CAN上的节点主要取决于总线驱动电路,目前可达110个;

报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。

7、CAN总线采用短帧结构,传输时间短,受干扰概率小,具有极好的检错效果。

8、CAN的每帧信息都有CRC检验及其他检错措施,保证了数据出错率极低。

9、CAN通信介质可为双绞线、同轴电缆或光纤,选择灵活。

在系统结构确定的基础上,上述方案选择的依据将贯穿于整个系统的硬件设计和调试过程中。

同时,系统设计还要考虑到新颖性和技巧性的兼顾。

2.2CAN-bus与RS-485的特性比较

CAN-bus总线在通信能力、可靠性、实时性、灵活性、易用性、传输距离远、成本底等方面有着明显的优势,成为业界最有前途的现场总线之一。

这里我们选取在国内广泛应用的RS-485总线与CAN-bus总线进行比较,从中不难看出在串行的数据通信上CAN-bus总线具有的强大优势。

表2.1CAN-bus与RS-485的特性比较

特性

RS-485

CAN-bus

成本

低廉

稍高

总线利用率

网络特性

单主网络

多主网络

数据传输率

容错机制

通信失败率

极低

节点错误的影响

网络瘫痪

无影响

通信距离

<

1.5km

可达10km

网络调试

困难

非常容易

开发难度

后期维护成本

2.3CAN-bus分层结构

2.3.1CAN-bus的ISO/OSI参考模型结构

根据CAN2.0B协议,ISO/OSI参考模型结构分为两层:

数据链路层和物理层;

如图:

数据链路层

逻辑链路控制子层LLC

接收滤波

超载通知

恢复管理

媒体访问控制子层MAC

数据封装/拆装

帧编码(填充,解除填写)

媒体访问管理

错误检测

出错标定

应答

串行化/解除串行化

物理层

位编码/解码

位同步

同步

故障界定

总线故障管理

图2.1CAN-bus的ISO/OSI参考模型结构

LLC子层的主要功能是:

为数据传送和远程数据请求提供服务,确认由LLC子层接收的报文已被接收,并为恢复管理和通知超载提供信息。

MAC子层的功能主要是传送规则,亦即控制帧的结构、执行仲裁、错误检测、出错标定和故障界定。

物理层的功能是有关全部电气特性在不同节点间的实际传送。

CAN技术规范CAN2.0B定义了数据链路中的MAC子层和LLC子层的一部分,并描述与CAN有关的外层。

物理层定义了信号怎样进行发送,因而,涉及位定时、位编码元和同步的描述。

在这部分技术规范中,未定义物理层中的驱动器/接收器特性,以便允许根据具体应用,对发送媒体和信号电平进行优化,使信号传输更加方便[17]。

MAC子层是CAN协议的核心,它描述由LLC子层接收到的报文和对LLC子层发送的认可报文。

MAC子层可响应报文帧、仲裁、应答、错误检测标定。

MAC子层有称为故障界定的一个管理实时监控,它具有识别永久故障或短暂扰动的自检机制。

LLC子层的主要功能是报文滤波、超载通知和恢复管理[18]。

2.3.2帧结构

1、帧格式

有两种不同的帧格式,它们的标示符场的长度不同:

具有11位标示符的帧称为标准帧,而含有29位标示符的帧称为扩展帧。

2、帧类型

表2.2帧的种类及用途

帧用途

数据帧

用于发送单元向接收单元传送数据的帧

远程帧

用于接收单元向具有相同ID的发送单元请求数据的帧

错误帧

用于当检测出错误时向其它单元通知错误的帧

过载帧

用于接收单元通知其尚未做好接收准备的帧

帧间隔

用于将数据帧及遥控帧与前面的帧分离开来的帧

(1)数据帧

数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束[20]。

数据帧的结构如图2.2示:

图2.2数据帧

帧起始(SOF)标志数据帧和远程帧的起始,它仅由一个显性位构成。

只有在总线处于空闲状态时才允许站开始发送。

所有站都必须同步于首先开始发送的那个站的帧起始前沿。

仲裁场由标识符ID和RTR位(远程发送请求位)组成。

对于CAN2.0B,标准格式和扩展格式的仲裁场格式不同。

在标准格式中,仲裁场由11位ID和RTR位组成,标识符为ID.28~ID.18,如图2.3所示:

图2.3标准格式的仲裁场

而在扩展格式中,仲裁场由29位标识符、SRR位(替代远程请求位)、IDE位(标识符扩展位)和RTR位(远程发送求位)组成,标识符位为ID.28~ID.0,如图2-4所示:

图2.4扩展格式的仲裁场

控制场由保留位和数据长度码共6位组成。

其结构如图2.5所示。

数据长度代码

图2.5控制场

标准格式和扩展格式的控制域结构相同但位置不同。

CAN2.0A规范的r1位相当于CAN2.0B规范的IDE位。

两个保留位r1、r0必须发送显性位,但接收器认可显性和隐性的全部组合。

数据长度码DLC指出数据场的字节数目。

数据长度码为4位,在控制场中被发送。

数据字节的允许使用数目为0~8,不能使用其他数值。

数据场由数据帧中被发送的数据组成,它可包括0~8个字节8位。

首先发送的是最高有效位。

CRC场包括CRC序列,后随CRC定界符,共16位。

如图2.6所示。

应答场

图2.6CRC场

CRC序列由循环冗余码求得的帧检查序列组成,最适用于位数小于127的帧。

为实现CRC计算,被除多项式系数由不包含填充为的位流给定,组成该位流的成分包括帧起始、仲裁场、数据场(若存在的话)和在后面添加的15个0。

此多项式被下面的生成多项式除:

,除得的余数就是发送到总线上的CRC序列。

CRC序列后面是CRC界定符,它只包括一个隐性位。

应答场(ACK)为两位,包括应答间隙和应答界定符,如图2.7所示。

帧结束

图2.7应答场

在应答场中,发送器送出两个隐位。

当接收器正确地接收到有效地报文,该接收器就会在应答期间发送显性位(即发送应答)来通知发送器。

所有接收到有效报文的接收器都会发送应答,而不管该报文能否通过接收器的报文过滤或最终是否被采用。

ACK界定符是应答场的第二位,必须为隐性。

因此,应答间隙被两个隐性位(CRC界定符和ACK界定符)包围。

帧结束:

每个数据帧和远程帧均由7个隐性位组成的标志序列界定[21]。

(2)远程帧

远程帧由6个不同的位场组成:

帧起始、仲裁场、控制场、CRC场、应答场和帧结束[22]。

其结构如图2.8所示。

帧间隔或过载帧

图2.8远程帧

与数据帧相反,远程帧的RTR位是隐性位。

远程帧不存在数据场。

DLC的数据值是没有意义的,它可以是0-8中的任何数值,该数值也就是所请求数据帧的数据长度码。

(3)错误帧

出错帧由两个不同的场组成,第一个部分由来自不同节点的出错标志叠加而成,随后的第二部分是出错界定符。

如图2.9所示。

图2.9错误帧

出错标志有两种形式:

积极出错标志和消极出错标志由6个连续的隐性位组成(有时被其他节点的显性位覆盖)。

一个错误积极节点如果检测到了一个出错条件,会发送一个积极出错标志进行标识。

这一个出错标志违反了位填充规则(填充规则适用于从帧起始到CRC界定符之间的所有域)或破坏了应答场和帧结束的固定格式,结果引起其他节点检测到新的出错条件并各自开始发送出错标志。

所以,这个在总线上可被检测到的显性位序列是各个节点发出的不同出错标志的叠加的结果。

该序列的总长度在6~12位之间变化。

一个错误消极节点如果检测到了一个出错条件,会试图发送一个消极出错标志进行标识。

这个错误消极节点等待6个具有相同极性的连续位(从消极出错标志的起始开始),当检测到6个相同极性的连续位,消极出错标志的发送即告完成。

出错界定符由8个隐性位组成。

出错标志发出后,每个节点都发送隐性位,并监视总线,直到检测到隐性位,随后开始发送剩余的7个隐性位。

(4)过载帧

过载帧包括两个位场:

过载标志和过载界定符。

如图2.10所示。

图2.10过载帧

有三种过载条件都会导致过载标志的传送:

1)接收器的内部条件(此时接收器对于下一数据帧或远程帧需要有一延时)。

2)间歇场期间检测到显性位。

3)如果CAN节点在错误界定符或过载界定符的第8位(最后一位)采样到一个显性位,节点会发送一个过载帧(不是错误帧)。

错误计数器不会增加。

由过载条件1而引发的过载帧只允许起始于所期望的间歇场的第一个位时间,而由过载条件2和3引发的过载帧应起始于所检测到显性位之后的位。

、过载标志由6个显性位组成。

过载标志的所有形式和“活动错误”标志的一样。

过载标志的形式破坏了间歇场的固定形式。

因此,所有其他的站也都检测到过载条件并与此同时发出过载标志。

如果有的节点在间歇的第3个位期间于本地检测到显性位,则其他的节点将不能正确地解释过载标志,而是将这6个显性位中的第一个位解释为帧的起始。

这第6个显性位破坏了产生错误条件的位填充的规则。

过载界定符包括8个隐性位。

过载界定符的形式和错误界定符的形式一样。

过载标志被传送后,站就一直监视总线直到检测到一个从显性位到隐性位的跳变为止。

此时,总线上的每一个站完成了过载标志的发送,并开始同时发送7个以上的隐性位[23]。

(5)帧间隔

数据帧(或远程帧)与它前面帧的隔离是通过帧间隔实现的,无论其前面的帧为何类型(数据帧、远程帧、出错帧、过载帧)。

所不同的是,过载帧与出错帧之前没有帧间隔,多个过载帧之间也不是由帧间隔隔离的。

帧间隔包括间歇场、总线空闲的位场以及可能的暂停发送场。

只有刚发送出前一报文的错误消极节点才需要暂停发送场[24]。

非错误消极节点或者作为前一报文接收器的节点的帧间隔如图2.11所示。

图2.11非错误消极节点帧间隔

作为前一报文发送器的错误消极节点的帧间隔如图2.12所示。

图2.12错误消极节点帧间隔

2.3.3报文滤波及校验

1、报文的滤波取决于整个识别符,允许在报文滤波中将任何的识别符位置设置为“不考虑”的可选屏蔽寄存器。

可以选择多组的识别符,使之被映射到隶属的接收缓冲器里。

如果使用屏蔽寄存器,它的每一位必须是可编程的,即它们能够被允许或禁止报文滤波。

屏蔽寄存器的长度可以包含整个识别符,也可以包含部分识别符。

2、校验报文有效的时间点,发送器与接收器不同。

(1)发送器

如果直到帧的末尾均没有错误,则此报文对于发送器有效:

如果报文破损,则报文会根据优先权自动重发。

为了能够和其他报文竞争总线,重发传输必须在总线空闲时启动。

(2)接收器

如果直到最后的一位(除了帧末尾位)均没有错误,则报文对于接收器有效;

如果一个“显性”电平也不会引起格式错误,帧末尾最后的位则被置于“不重要”状态。

2.3.4错误处理

帧错误有以下5种不同的类型:

1、位错误

单位在发送位的同时也对总线进行监视。

如果所发送的位置与所监视的位置不相符合,则在此时间里检测到一个位错误(biterror);

但是在仲裁场的填充位流期间或应答间隙发送一“隐性”位的情况是例外的——此时,当监视到一“显性”位时,不会发出位错位。

当发送器发送一个被动错误标志,但检测到“显性”位时也不视为位错误。

2、填充错误

如果在使用位填充法进行编码的信息中,出现了第6个连续相同的位电平时,将检测到一个天聪错误。

3、CRC错误

CRC序列包括发送器的CRC计算结果,接收器计算CRC的方法与发送器相同。

如果计算结果与接收到CRC序列的结果不同,则检测到一个CRC错误。

4、形式错误

当一个固定形式的为场含有一个或多个非法位,则检测到一个形式错误。

5、应答错误

只要在应答间隙期间所监视的位不为“显性”,则发送器会检测到一个应答错误。

2.3.5位定时与同步

位定时与同步的基本概念包括:

标称位速率、标称位时间、时间份额、信息处理时间、时间段的长度、同步。

1、位周期结构

同步段传播段相位缓冲段1相位缓冲段2

采样点

图2.13位时间结构

2、同步机制

(1)硬同步

同传播

步延迟相位缓冲段1相位缓冲段2

段段

图2.14硬同步

2.4CAN-bus应用层协议

2.4.1常用的CAN-bus应用层协议

高层协议是在CAN规范的基础上发展起来的应用层,好多已经广泛应用。

常用的CAN-bus高层协议有:

DeviceNet协议制定组织:

ODVA

CAL协议制定组织:

CIA

CANopen协议制定组织:

CANkingdom协议制定组织:

Kvaser

J1939协议制定组织:

SAE

SDS协议制定组织:

Honeywell

DeviceNet协议和CANopen协议是真正占据市场的协议。

标准的应用层协议具有以下特点:

1、一个开放的、标准的CAN-bus高层协议;

2、制定属于特定行业的CAN-bus应用方案;

3、支持不同厂商设备的互用性、可交换性;

4、完善地定义标准设备模型;

5、开放扩充自定义接口;

6、对总线仲裁、数据交换、错误处理有明显的界定。

2.4.2基于CAN-bus的iCAN协议

iCAN协议详细的定义了CAN-bus报文中帧标识符以及数据的分配和应用,建立了一个统一的设备模型,定义了设备的I/O资源和访问规则,主要内容如:

(1)iCAN报文格式定义,规定了iCAN协议规范中使用的CAN帧类型、以及帧ID、报文数据的使用 

(2)报文传输协议,规定了基于iCAN协议的设备之间的通讯方式

(3)设备的定义,设备标识、设备应用单元、设备通讯以及应用参数以及定义标准设备类型,区分网络上设备具有的不同功能或者产品类型 

(4)网络管理,规定了设备通讯监控以及错误管理

1、iCAN协议的通信层结构

iCAN协议

iCAN报文格式定义

报文传输

协议的网络管理

设备功能定义

应用层协议

CAN底层协议

CAN-bus

图2.15iCAN协议的通信层结构

2、iCAN的报文传输协议

(1)iCAN协议的通信模式

1)点对点传送

iCAN报文

源地址1目的地址8

节点1

节点2

节点8

图2.16iCAN协议的点对点传送

2)广播式传送

源地址1目的地址0xFF

图2.17iCAN协议的广播式传送

3)事件触发通信模式

节点9

输入超限定时上传定时上传

图2.18iCAN事件触发通信模式

2、iCAN协议报文处理流程

等待CAN报文

报文中MACID

接收

无效报文,丢失

与节点MACID

不相符

与节点MACID相符

是否建立连接

连接没有建立

建立连接

验证功能码

非法功能码

有效功能码

验证数据或者资源

无效参数

有效参数

根据报文内容进行处理

异常响应

正常响应

发送响应报文

图2.19iCAN报文处理流程

3、iCAN协议的特点

 iCAN协议在汲取DeviceNET和CANopen协议之精粹基础上,充分继承和发展了基于连接和对象寻址两种核心功能。

支持多种传输方式,包括轮询方式、状态触发方式以及定时循环方式,还根据国内实际情况,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1