ImageVerifierCode 换一换
格式:PPT , 页数:53 ,大小:450KB ,
资源ID:457644      下载积分:12 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-457644.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第12章综合实例——工业CAN网络控制系统节点设计-Read.ppt)为本站会员(ga****84)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

第12章综合实例——工业CAN网络控制系统节点设计-Read.ppt

1、第12章 综合实例工业CAN网络控制系统节点设计,本章通过一个在工业上实际使用的实例,讲解CAN网络控制系统的设计方法,及其CAN通讯协议的基本制定过程。通过该实例,读者能够学习到CAN网络通讯、CAN通讯协议制定各方面的知识。,12.1 系统结构与分析,在工业现场,往往需要通过一个主机对分布在厂房各处的设备进行控制和监控,利用CAN网络,可以有效的组织各个设备的通讯与管理。,12.1.1 工业CAN网络控制系统节点功能分析,在工业现场,大部分控制与监控只需要对输入输出的数字信号进行管理即可,因此本章设计的工业CAN网络控制系统节点,需要具备以下的功能。硬件具备足够数量的数字信号输入端口(=1

2、2);硬件具备足够数量的数字信号输出端口(=12);硬件具备总线通讯能力,总线负荷结点数=50个,通讯能力不小于250kbsp,根据需要综合考虑选用CAN总线通讯系统;,12.1.1 工业CAN网络控制系统节点功能分析,硬件具备显示时钟能力,时钟可以根据需要由总线设置;硬件具备232/485接口,与智能仪表进行通讯;硬件具备相当的抗干扰能力,能够满足现场条件的稳定运行;在满足上述条件下尽可能减小成本。,12.1.2 工业CAN网络控制系统分析,本章介绍的工业CAN网络控制系统,通过CAN网络对各个分布节点的数字量输出信号进行控制,同时监控分布节点的数字量输入信号,并通过232/485协议读取智

3、能仪表的测量值,通过CAN网络采集到系统主机,在各个节点处相应有LED显示状态。,12.2 CAN总线知识简介,CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN是作为汽车环境中的微控制器通讯而设计的,因此在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络方面得到了大量的应用。例如发动机管理系统、变速箱控制器、仪表装备、电子主干系统等等,均具备CAN通讯的能力。随着CAN总线的发展,CAN总线也被广泛应用于工业控制。,12.2.1 CAN总线的特点,CAN总线是一种多节点的无主从竞争网络,其具备以下一些突出

4、的特点。低成本;极高的总线利用率;很远的数据传输距离(长达10Km);高速的数据传输速率(高达1Mbit/s);,12.2.1 CAN总线的特点,可根据报文的ID决定接收或屏蔽该报文;可靠的错误处理和检错机制;发送的信息遭到破坏后,可自动重发;节点在错误严重的情况下具有自动退出总线的功能;报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。,12.2.2 CAN总线的物理层,CAN总线的物理层通过两根导线将所有设备连接到一起,这两个导线称为CANH和CANL。由于CAN协议没有对CAN总线的通讯介质作出规定,因此CAN总线的通讯介质可以是屏蔽双绞线或者光缆等常用的通讯线路。如图所

5、示为简单的CAN总线拓扑结构。,12.2.3 CAN总线的报文帧,为了实现CAN总线的通讯功能,CAN通讯协议中定义了四种不同的通讯报文帧。 数据帧:数据帧携带数据从发送器至接收器; 远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧; 错误帧:任何单元检测到总线错误就发出错误帧; 过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。12.2.3.1 数据帧12.2.3.2 远程帧12.2.3.3 错误帧12.2.3.4 过载帧,12.2.4 CAN总线的仲裁,当CAN总线上两个节点同时发送信息时,就需要进行CAN总线的仲裁。CAN总线以报文为单位进行数据传送,报

6、文的优先级结合在11位/29位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改,总线读取中的冲突可通过位仲裁解决。当CAN网络上两个节点同时发送消息时,就要发生CAN总线的仲裁,总线状态由节点中的显性位所决定,因此,当一个节点发送的仲裁域出现隐形位时,节点将检查总线状态是否与自己状态一致,当发现总线被显性状态所占据时,说明有更高优先级的节点正在发送信息,该节点自动停止发送,等待下一次总线空闲时再尝试发送。,12.3 工业CAN网络控制系统节点硬件电路设计,在本节中从各个子系统详细介绍工业CAN网络控制系统节点的硬件电路设计,包括单片机最小系统、

7、CAN控制器电路、CAN收发器电路、时钟显示电路、输入输出控制电路和跑马灯电路等部分。,12.3.1 AT89S51单片机最小系统电路,在该设计中采用了AT89S51单片机作为核心处理器,因此在电路中首先需要设计的是AT89S51的最小系统。AT89S51单片机的最小系统电路包含以下几个部分:单片机供电电路:AT89S51需要具有可靠的5V供电,在电路图中的VCC和GND为供电网络标识符;振荡电路:AT89S51需要一个稳定的振荡电路才能够正常工作,在该电路采用了24Mhz的晶振作为AT89S51的时钟源;复位电路:复位电路是单片机正常运行的一个必要部分,复位电路应该保证单片机在上电的瞬间进行

8、一次有效的复位,在单片机正常工作时将RST引脚置低。此外通过一个按键进行手动复位,在单片机运行不正常时使用。,12.3.2 CAN总线控制电路,CAN控制器电路采用Philips公司生产的SJA1000并行接口CAN控制器,SJA1000是一款独立的控制器,用于汽车和一般工业环境中的控制器局域网络(CAN)。12.3.2.1 SJA1000的性能指标SJA1000是PHILIPS半导体PCA82C200 CAN控制器(BasicCAN)的替代产品,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN 2.0B协议,具体性能指标如下。12.3.2.3 SJA1000的滤

9、波工作方式使用SJA1000时要注意SJA1000的验收滤波器的使用才能够正确的从CAN总线上接收正确的数据。12.3.2.4 SJA1000的接口电路,12.3.3 CAN收发器电路,CAN收发器采用Philips公司生产的PCA82C250专用高速CAN收发器,PCA82C250是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力,并对CAN控制器提供差动额接收能力,具有体积小,耗电低,工作稳定,抗干扰能力强的特点。 12.3.3.1 PCA82C250的性能指标12.3.3.2 PCA82C250的引脚定义12.3.3.3 PCA82C250的CAN驱动电路设计,12.3

10、.4 时钟显示电路,时钟显示采用了共阴极的LED数码管,为了减小对单片机引脚的占用和降低成本,采用Maxim公司生产的MAX7219串行LED数码管驱动器,MAX7219是美国MAXIM公司生产的串行输入输出共阴极显示驱动器。该芯片可直接驱动最多8位7段数字LED显示器,或64个LED和条形图显示器。它与微处理器的接口非常简单,仅用3个引脚与微处理器相应端连接即可实现最高10MHz串行口。12.3.4.1 时钟显示电路设计具体电路设计如图12.23所示,MAX7219与AT89S51单片机连接采用三线串行接口。对于MAX7219,串行数据是以16位数据包的形式从DIN脚串行输入,在CLK的每一

11、个上升沿一位一位地送入芯片内部16位移位寄存器。,12.3.5 数字量输入输出,数字量输入/输出接口电路主要是用于工业控制时的逻辑输入和输出,设计要求大于12路输入/输出,由于数字核心单片机的引脚有限,要实现如此之多的输入输出必须要进行IO扩展。如果使用逻辑电路进行扩展,电路复杂程度和成本都会比较高,因此采用Atmel公司生产的AVR单片机Atmega 48进行数字端口的扩展,该单片机成本只要5元左右,却能够实现19路的数据量,在该电路使用中无需晶振电路,几乎所有的引脚都可以用来作为IO扩展接口,,12.3.6 跑马灯及其他接口电路,为了调试方便,在电路中外扩了8位跑马灯,为了减少端口使用,将

12、跑马灯电路与ID设置电路进行了复用,具体电路设计如图所示,此外,也为电路留出了RS232接口,CAN和电源接口。,12.3.7 工业CAN网络控制节点总电路,由以上的设计分析可以得到如图所示的节点硬件电路图。,12.4 工业CAN网络控制系统通讯协议设计,本节讲解工业CAN网络控制系统节点的通讯协议设计,该通讯协议基于CAN总线在工业上的标准通讯协议CANOpen进行简化并制定,本章仅仅选取了部分重要的协议部分进行讲解,具体细节读者可以参考CANOpen协议标准。,12.4.1 拓扑结构与接口定义,本章介绍案例的工业现场控制系统的网络拓扑图如图所示,控制主机通过CAN总线控制现场设备进行数字量

13、的输入和输出操作。,12.4.2 通讯约定协议,通讯约定协议是指网络中约定的统一通讯参数,通讯约定是所有节点能够正常连接的基本条件。12.4.2.1 通信节点及约束通信节点包括控制主机(MCC)和现场设备节点(ETN),一个网络允许一个MCC及一个或多个ETN,网络中至多允许126个ETN。,12.4.2 通讯约定协议,12.4.2.2 信息交换方式网络工作在主/从通讯模式,网络中只允许MCC和ETN之间的通信,MCC为主设备,ETN为从设备。MCC以单播或广播的方式进行通信,ETN接收对应ID的单播数据和所有的广播数据;ETN只向MCC发送单播数据。不允许ETN发送多播数据,不允许ETN之间

14、的通信。,12.4.2 通讯约定协议,12.4.2.3 通信数据速率CAN网络速率为250Kbps。12.4.2.4 数据刷新速率以250Kbps运行的CAN网络,网络的满负荷帧率约为2000frps。为保证各ETN有足够时间处理数据,ETN发送帧率小于5frps。,12.4.2 通讯约定协议,12.4.2.5 帧格式网络中采用CAN标准帧进行通信,每帧包括11位标识符(ID)、数据长度码(DLC)、远程传送请求位(RTR)、最多8个字节的数据等由用户设置的内容。此外,每帧还有CAN标准规定的帧起始、校验、分割、应答等。,12.4.3 标识符定义,在采用标准帧进行通信时,CAN对象标识符(CO

15、B-ID)为11位,其中高四位为功能代码,低7位是节点标识符。标识符的定义如表12.1所示。12.4.3.1 功能代码功能代码定义了功能代码值的范围是0x00H 0x0EH,其中0x00H - 0x02H对应于CANOpen中预定义主从连接集的广播对象,0x03H 0x0EH对应于CANOpen中主从连接集的对等对象。,12.4.3 标识符定义,12.4.3.2 广播对象广播对象包括网络管理(NMT,Network ManagemenT)模块控制(Module Control)、同步(SYNC,SYNChronize)、时间戳(TIME,Time Stamp),如表所示。,12.4.3 标识符

16、定义,12.4.3.3 对等对象对等对象包括紧急消息(EMCY,EMergenCY)、过程数据对象(PDO,Process Data Object)、服务数据对象(SDO,S1ervice Data Object)、网络管理错误控制(NMT,NMT Error Control)五类。,12.4.3 标识符定义,12.4.3.4 节点标识符(NID)分配NID从01H到7EH为ETN所用,7FH(全1)为MCC所用。在实际的网络通信中,所有对等对象的NID始终表现为ETN的NID,即在所有的对等对象通信中,主控电脑发送的帧以实验台节点的NID作为的地址,实验台节点发送的帧以自身的NID作为源地址

17、,所有广播帧的NID为0,如表所示。,12.4.4 过程数据对象(PDO),网络报文数据共8个字节,分别表示为Byte 0, Byte 1, , Byte 7。每个字节8位,表示为:b0, b1, , b7,位序表示为b7, b6, , b0。即在网络上串行发送数据时,每字节的最高位被首先发送,最低位被最后发送。字节序及位序的定义见如表所示。,12.4.4 过程数据对象(PDO),12.4.4.1 PDO1PDO1发送对象负责关于现场设备状态的一切设定与读取,如开关量设定、初始状态设定、状态读取、其他数据读取等。PDO1接收对象完成PDO1发送对象中设定情况的反馈,依据命令返回现场设备的开关状

18、态及其他状态。PDO1和PDO2对象成对出现。PDO1发送的COB-ID为384+NID,数据长度为自定义,数据帧。PDO1接收的COB-ID为512+NID,数据长度为自定义,数据帧。,12.4.4 过程数据对象(PDO),12.4.4.2 PDO2PDO2发送对象负责向现场设备上的智能仪表发送命令,PDO2接收对象将智能仪表的反馈发送回主机。智能仪表接在485总线上。PDO2发送的COB-ID为640+NID,数据长度自定义,数据帧。PDO2接收的COB-ID为768+NID,数据长度自定义,数据帧。,12.4.4 过程数据对象(PDO),12.4.4.3 PDO3PDO3用来实现现场设备

19、上LCD等显示信息的控制,现场设备内容的反馈等。12.4.4.4 PDO4PDO4保留,用于未来的使用。,12.4.5 服务数据对象(SDO),服务数据对象参考CANOpen协议标准CiA DS/301,9.2.2制定。SDO对象用来实现对现场设备管理、过程控制等信息。12.4.5.1 SDO(发送/服务器)12.4.5.2 SDO(接收/客户),12.4.6 同步对象(SYNC),同步对象参考CANOpen标准协议:CiA DS/301,9.2.3制定。同步对象由NMT主机周期性的广播发出,间隔时间约定为5秒。消息自主机初始化完毕后开始发出,所有从节点在进入“预运行”状态后,须等待此消息。该

20、对象的COB-ID为128,数据长度为0,数据帧。,12.4.7 时间戳对象(TIME),时间戳对象参考CANOpen标准协议:CiA DS/301,9.2.4制定。ETN在收到时间戳对象后,将本地时间设定为时间戳指定的时间,并重新开始计时。由于网络传输等原因造成的时间误差暂不予考虑。该对象的COB-ID为256,数据长度为3,数据帧。数据格式为“时、分、秒”,数据格式为unsigned char,如表所示。,12.4.8 紧急对象(EMCY),紧急对象参考CANOpen标准协议:CiA DS/301,9.2.5制定。CAN通信过程中,在执行某些命令时发生的响应错误在相应对象中已经实现的,均不

21、在此实现。另,ETN的严重错误需要通过SDO对象通知MCC。ETN的其余错误均通过EMCY发出,但不影响整个实验的进行,具体错误代码如表所示。,12.5 工业CAN网络控制节点程序设计,本章介绍该案例的程序设计,同样,对一这样一个大的工程,需要将程序利用不同的C文件和H头文件进行组织,该系统程序的工程文件结构。,12.5.1 SJA1000芯片寄存器与关键字定义,SJA1000.h定义了和CAN控制器芯片SJA1000相关的所有寄存器和控制字,及其SJA1000相关寄存器地址,具体代码如下。,12.5.2 SJA1000.c底层驱动函数库,SJA1000.c包含了SJA1000的底层驱动函数,

22、具体代码如下。(具体内容请参照本书),12.5.3 时钟操作定义,Timer_defs.h头文件里定义了与时钟操作相关的具体变量,具体代码如下。(具体内容请参照本书),12.5.4 时钟操作函数库,Timer_funcs.c文件中包含了所有关于时钟操作的函数,是这些函数的实体文件,具体代码如下所示。(具体内容请参照本书),12.5.5 485信息定义,_485_defs.h头文件中包含了485通讯需要的相关头文件定义,具体代码如下所示。(具体内容请参照本书),12.5.6 485通讯函数库,_485_funcs.c包含了所有关于485通讯的函数,注意在本案例设计中,485驱动芯片是外置,在本案

23、例中仅仅输入和输出逻辑信号。(具体内容请参照本书),12.5.7 Max7219寄存器与关键字定义,max7219.h中定义了所有关于LED数码管驱动的寄存器和寄存器地址,具体代码如下所示。(具体内容请参照本书),12.5.8 Max7219数码管驱动函数库,max7219.c定义了操作MAX7219对LED数码管进行驱动的函数,具体代码如下。(具体内容请参照本书),12.5.9 数码管操作函数库,DIG_funcs.c函数中包含了所有关于数码管操作的功能函数,具体代码如下。(具体内容请参照本书),12.5.10 CAN总线操作函数库,CAN_funs.c函数中包含了CAN总线的一般操作函数,

24、这些函数都是在SJA1000底层函数的基础上编写的,具体代码如下。(具体内容请参照本书),12.5.11 输入输出管理函数,atmega48.c是管理节点19路输入输出接口的函数,内部实际上就是和atmega48进行SPI通讯的函数,具体代码如下。(具体内容请参照本书),12.5.12 综合节点功能函数,该文件是实现整个CAN网络系统的综合功能节点,其中的函数实现了整个定义的CAN通讯协议,具体代码如下所示。(具体内容请参照本书),12.5.13 引脚定义,pin_defs.h定义了所有的引脚功能分布,具体代码如下所示。(具体内容请参照本书),12.5.14 CAN操作函数声明,xkcan.h对大部分功能函数进行了声明,具体代码如下。(具体内容请参照本书),12.5.15 特殊变量定义,xkcan_defs.h定义了在操作中需要用到的一些特殊变量和特殊定义,具体代码如下。(具体内容请参照本书),

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。