过程控制与现场总线技术课程设计要点_第1页
过程控制与现场总线技术课程设计要点_第2页
过程控制与现场总线技术课程设计要点_第3页
过程控制与现场总线技术课程设计要点_第4页
过程控制与现场总线技术课程设计要点_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要楼宇自动化控制系统是采用现代化的传感技术、 计算机通信技术对建筑物内 所有机电设施进行信号采集、控制,提供有效安全的物业管理,使其设备应用在 最良好的状态。随着经济、科技日益的发展,作为技术先进、可靠性高、功能完 善、成本合理的远程网络通信控制方式 CAN-Bus已被广泛应用到各个自动化控 制系统中。楼宇自动化控制系统也不例外,本课程设计是基于CAN总线的远程控 制装置,通过CAN总线完成对现场设备的控制操作,并与CAN总线上其他设备完 成数据的传输。系统硬件部分主要由 AT89S52单片机、SJA1000CANS制器等组 成,系统在硬件和软件上进行模块化设计, 具体实现了以单片机为控制核

2、心, 设 计了 4路数字量输入,4路模拟量输出模块,以及 CAN接口电路模块。CAN总线 的应用,提高了楼宇智能化水平并降低了设备的管理成本。CAN总线提供了标准网络协议的数据链路层,没有相应的高层通信协议。CANoper协议是一种基于CAN 现场总线的开放的、标准化的高层协议,它具有实时性的高速串行总线系统, CANope协议允许不同设备以标准化方式进行通信,使其具有互操性。关键词:楼宇自动化;CAN总线;控制节点;CANoper协议第一章 题目分析与设计方案的选择 11.1 设计题目分析11.2 总体设计方案的选择 1第二章系统电路设计22.1 硬件组成22.2 CANopen 协议概述2

3、2.2.1 总述22.2.2 设备模型22.2.3 对象字典32.2.4 CANope n 要点4第三章系统软件设计53.1 选择CANoper的原因53.2 CANopen协议系统软件设计63.3 软件设计系统流程 6第四章调试及仿真10第五章总结参考文献11附 录12附件1:总原理图12附件2:总PCB图和实物图13附件3:元器件清单表 14附件4:系统总程序15第15页第一章 题目分析与设计方案的选择1.1 设计题目分析随着微电子技术与通讯技术的迅速发展,以及光纤通信(Fiber Communication)、卫星通信(Satellite Communication )、区域网络(Loc

4、al Area Network)与广域网(Wide Area Network)等取得长足发展。根据国际电工委员会(international Electrotechnical Commision, IEC、标准和现场总线基金会(fieldbus foundation, FF)的定义,现场总线的概念一般为一种用于智能化现场设备,自动化系统的开放式、数字化、双向串行、多节点的底层通信总线。 现场总线有:基金会现场总线(Foundation Fieldbus , FF)、控制局域网络(Controller Area Network, CAN、局域操作网络(Local Operating Fieldb

5、us , LonWorks)、过程现场总线(Process Fieldbus , PROFIBU)等。但是由于各个 行业的发展历史以及各个公司、 企业的经济利益,导致一些总线逐渐被遗忘,一 些总线在当今的市场上共存。而CAN总线是一种有效支持分布控制或实时控制的串行通信网络。在各种工 业现场总线中CAN总线以成本较低、速度快、实时性、可靠性较高的特点适应于 现代汽车电子、医疗、军事等领域的产业。CANoper协议定义了应用层和通讯子 协议,为可编程系数、不同器件、借口及应用子协议定义了帧状态。为现场总线 的全数字分布控制系统的广泛应用以及把系统一体化管理提供了有效的方案。CANope协议是基于

6、CAN串行总线系统和应用层CAL的高层协议。CAL提供 了网络管理服务和报文的传送协议。CANoper在CAL基础上使用了 CAL通讯和服 务协议子集的一种实现方案,在保证网络节点互用性的同时,允许节点的功能随 意扩展。在嵌入式系统用用的发展,许多总线已经不能满足高性能、高实时性系 统的要求,CAN总线是当前比较有希望成功的。1.2 总体设计方案的选择采用主流单片机AT89S52为微控制器,结合独立CAN控制器SJA1000设计 的硬件电路,该系统包括智能节点和具有 CAN-RS232转换功能的主节点两部分。 智能节点实现了数据采集、LED显示、CAN总线通信以及输出控制等功能。本 系统由上位

7、PC机、CAN总线借口通信适配卡和多个监控节点组成。监控点主要监控空调与通风监控系统,照明监控系统系统,供电系统,供水系统。方案设计 图如下图1-1。图1-1方案设计框图第二章系统电路设计2.1硬件的组成系统硬件部分主要由AT89S52单片机、SJAIOOOCANg制器等组成,系统在 硬件和软件上进行模块化设计,具体实现了以单片机为控制核心,设计了 4路数 字量输入,4路模拟量输出模块,以及 CAN接口电路模块。2.2 CANopen协议概述2.2.1 总述CANopen是一种构架在控制局域网络上的高层通讯协定,其中包括通讯子 协定和设备子协定是工业控制中常用的一种现场总线,常在嵌入式系统中被

8、应 用。CANopen协议是Cia协会针对CAN协议不完整性开发出来的一个更高层次 的协议。CANopen标准包括寻址方案、通讯子协定和其他由设备协定所定义的 应用层。其能支援网络管理、设备监控和节点之间的通讯,包括一个简易传输层 处理资料的分段传输和组合。资料连接层和实体层用CAN来实时工作。2.2.2 设备模型一个CANopen设备模块可以有三部分。如图 2-1,通信接口和协议软件提 供在总线上收发通信对象的服务。不同的 CANopen设备都是通过交换通信对象 完成之间的通信的,它直接面向 CAN控制器进行实时操作的。对象字典用来描 述设备是哦那个的所有数据类型、通信对象和应用对象。它位于

9、通信程序和应用 程序之间,为应用程序提供借口, CANopen通信通过应用程序对对象字典进行 操作实现的。应用程序包括通信部分和功能不分,通信部分通过对对象字典进行 操作实现CANopen的通信;功能部分则是根据应用要求来实现的。其对象字典 结构如表2-1。图 2-1 CANopen 设备对象字典结构索引对象000Not used00100仆静态数据类型002003F复杂数据类型040005F规定的复杂数据类型060007F设备子协议规定静态数据类型080009F设备子协议规定的复杂数据类型00A00FFFreserved10001FFF通讯子协议局域20005FFF特定子协议区域60009F

10、FF标准设备子协议区域A000FFFReserved表2-12.2.3 对象字典CANopen网络的通信和管理都是通过不同的通信对象来完成的。对象字典(Object Dictionary)是一个有序的对象组,每个对象用一个 16位的索引值来寻 址,定义了一个8位的子引索来允许访问数据中的单个元素。在 CANopen网络 系统中每个节点都有唯一的对象字典。CANopen网络的通信和管理都是通过不 同的通信对象来完成的。通讯对象分类:数据对象(PDO): PDO被映射到单一的CAN帧中,用8个字节的数据字 段把过程数据对象PDO映像到一单一的CAN帧传输应用对象。每一个PDO都 有一个惟一的标识符

11、,并且可以通过一个节点发送,但是可以有多个接受者。数据服务对象(SDO):用来对对象字典进行读写操作。该对象可以传输大 于8个字节的配置信息。接收者将确认收到的每个段信息,发送和接受者间将建 立点对点之间的通信,被访问对象字典的设备是 SDO通讯的服务器,一个设备 可以支持多的SDO对象,但是至少有一个SDO会在一个设备中被支持。网络管理对象(NMT ):网络管理对象包括节点警戒对象。网络管理协议(NMT)提供了特定应用,网络同步,时间戳和紧急报文传输。NMT主要提供了以下功能:模块控制服务;配置控制服务和错误控制服务。特殊功能对象:CANopen还为同步,紧急状态表示以及时间标记传送三个 特

12、定对象。同步对象是同步制造者对网络进行周期性广播,为该对象提供基本网络时钟。紧急对象则是当设备发生严重的内部错误时,紧急客户机发送一个紧急状态对象。时间标记对象是将应用设备提供公共的时间帧作参考。2.2.4 CANope n 要点对用户来说了解CANopen协议的一些要点是很重要的标识符:CANopen协议采用11位标识符,数据链路层与 CAN2.0 致。 网络中的主从节点:在 CANopen系统中需要有一个而且只有一个主节点, 但是可以有多个从节点(0126)。主节点用于启动和停止网络;节点检查;网络 引导。如图2-2图2-2主从节点PDO协议:在ZANopen协议中,CAN的数据信息是一种

13、过程数据对象 PDO, 它是设备用来传送处理信息的标准方式。这种通讯方式为一对多。见图2-3.图2-3 PDO协议SDO服务:SDO提供了一种获得指定节点相关状态的数据,服务端发送相 应的数据回应。如图2-4.预定义连接集:其简化了网络的配置和使用。发送和接收PDO:CANopen规定了相应的内存区域和接受网络上的数据, 可认同为C语言中不转弯的对地址进行操作处理,从而实现了 PDO数据能够完全透明 地传送,为程序的编程简单化。第三章系统软件设计系统软件设计关键是通信程序的设计。本设计采用C语言完成AT89S52的控 制程序,主要由初始化、发送、接收三部分组成。由于系统中一个点在任意时刻 均可

14、以主动与其他节点通信,所以各节点的通信程序相同。PC软件采用VB或者VC实现。3.1选择CANopenl原因基金会现场总线以ISO/OSI开放系统互连模型为基础,取其物理层、数据链 路层、应用层为FF通信模型的相应层次,并在应用层上增加了用户层。用户层 主要主站对总线具有控制权,主站间通过传递令牌来传递对总线的控制权。取得 控制权的主站,可向从站发送、获取信息。泛应用于加工制造、过程和楼宇自动 化等行业。其中PROFIBUS D可以提供最大12Mbps的传输速率。由于优越的传 输特性和高的传输速率,在可编程逻辑控制器 PLC中被广泛采用。CAN是Controller Area Network的

15、缩写,是ISO国际标准化的串行通信协议。在当今各产业中,为了给人和社会带来利益,各种各样的电子控制系统被 开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相 同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的 数量”、“通过多个LAN,进行大量数据的高速通信”的需要,因此有了CAN的通信协议。现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展 的热点之一,被誉为自动化领域的计算机局域网。CAN总线是属于现场总线的范畴,它可一对串行通信网络进行分布控制或者实时控制。 对于目前叫的

16、的RS-XXX 基于R线构建的分布控制来说。CAN总线具有下面优势:(1) CAN总线开发系统具有实时性强、传输距离远、抗干扰能力强。(2) CAN是到目前为止唯一具有国际认证标准且成本低的现场总线;(3) CAN总线废除传统的站地址编码,它以对通信数据块进行编码,可以不分主 从,多主方式工作。(4) CAN采用非破坏性仲裁技术两个节点同时向网络上传送数据时,可判断优先 级,先高后低使优先级高的节点在传输数据是不受影响,避免了总线冲突。(5) CAN采用短帧结构,每一帧只有8个有效字节,数据传输时间短,重新发送 的时间短,受干扰的概率低。(6) CAN可以点对点,一对多及广播集中方式传送和接收

17、数据。传输距离可长达 10km。(7) CAN的每帧信息都有通过CR(校验及检错措施,具有极好的检错效果(8) CAN的通信介质的选择上十分灵活,可选用双绞线、同轴电缆或光纤。(9) CAN节点在错误严重的情况下,能够自动关闭总线,切断它与总线的关联, 使总线上其他操作不受影响;基于上总线概述,又从成本以及工程上考虑,本次设计选择CAN总线。针对 自动化测控应用的需要,定义了信息存取的统一规则,采用设备描述语言规定了 通用的功能块集。用于实现测量、控制、工程量转换的应用模块,实现系统组态管理功能的系统软件技术以及构筑集成自动化系统、网络系统的系统集成技术。 过程现场总线(PROFIBU),PR

18、OFIBUS支持主从方式和多主通信方式。3.2 CANopen协议系统软件设计在基于CANopen的智能协议,从物理上分为:底层驱动程序借口和上层 CANope客户程序;从逻辑上可分为:底层动态连接库支持程序、收发报文高速 缓存逻辑,报文分析、分析结果记录和 GUI展示层。CANope客户程序根据协议标准解释获得 CANS文,并根据报文类型,按HASH 算法分类排序。在报文收发缓存处理上采用多线编程方法,解决多线程同步和互 斥问题,从而达到较好的报文实时处理功能, 逃避了线程的可重入性。客户程序 既可以文本方式结合相应的参数显示 CANoper的报文类型。也可以根据CANopen 协议已对网络

19、进行测试和分析。本次设计是CANoper设备节点,具有即用即插的功能,所以可以非常自如地 用主站或者从站的身份收发报文。其传递的数据格式是自定义结构体,为本次设 计显示报文内容提供了方便。CANoper协议软件是基于高级语言开发环境编写的 上位机软件,它的界面实现协议分析结果直观性非常强。对本次设计的可视化配置,比特率设置,样本数设定,MAS掩码设定具有明显效果。除此之外,CANoper协议还提供一些基本功能,其总线通信量,单次或循环 发送报文,及整个报文队列的在线观测,并对各类可变条件获得报文的记录以及 在线监测总线负载。本次设计是一套完整的楼宇控制系统,现场过程参数与状态信息通过各自的 传

20、感器现场汇入其相应的现场空盒子节点。各个仿真子系统的现场节点通过 CAN 总线完成数据通信,各个仿真子系统通过以太网实现整个仿真系统的信息通信。CANoper协议作为本次通信的主要协议,将被控对象、智能节点、网关和上 位机连成楼宇智能一体化。在运行与测试中,CANoper协议实时的处理CAN设备 发送和接受报文的可行性,为本次系统的开发、调试提供了极大的方便。3.3软件设计系统流程CAN总线模块将在AT89S52的控制下采集的数据发送给 CAN总线的上位机 上,接收CAN总线上发给各个控制节点数据,并且将它存如缓冲区。AT89S52向SJA1000发送数据时,采用查询的方式,当 SJA1000

21、里有接受到的新报文时, AT89S52采用中断方式。系统主程序如图 3-1。丰口妬化程序初始化:AT89S52将SJA100Q冲区和变量、定时器、串口、 CAN总线 初始化。初始化程序主要是在运行前,对SJA1000的控制寄存器写入控制而确定 的。如图3-2。图3-2 SJA1000初始化流程发送程序:SJA1000的初始化程序设计主要是通过对 SJA1000的寄存器写入 相应的控制字,从而确定SJA1000的工作方式。软件复位即在运行期间给 SJA1000 发一个做一个复位识别。SJA1000需要初始化的寄存器有:控制寄存器 CR或模 式寄存器MOD时钟分频寄存器CDR接受代码寄存器ACR屏

22、蔽寄存器AMR中 断使能寄存器IER、总线定时寄存器BTR输出控制寄存器OCF等。因为这些寄 存器仅能在SJA1000复位期间进行访问,因此在这些寄存器初始化之前,必须要 确保系统进入复位状态。发送程序如图 3-3。图3-3 发送程序接收程序:数据从CAN总线到CAN接收缓冲区由CAN勺控制器自动完成。接 收程序将各个节点的报文接收以及其它方面的处理。从接收缓冲器中读取接收到 的数据进行处理,并且在处理过程中对CAN总线出现的异常情况进行处理。系统 设计中采用中断的方式接受数据。如图 3-4。图3-4接收程序流程16进制(HEX,按键图3-5为小区安全监控系统窗口,其接收和发送均以 和LED的

23、发送和接收的命令如下:打开空调与通风监控系统LED1 亮关闭空调与通风监控系统LED1灭LED2亮LED2灭LED3亮LED3灭LED4亮LED4灭打开照明监控系统系统 关闭照明监控系统系统 打开给排水监控系统 关闭给排水监控系统 打开电力供应监控系统 关闭电力供应监控系统 按键1:获取当前温度 按键2:获取当前电压按键3:获取当前电流按键4:获取当前水位图3-5 VB窗口第四章调试及仿真在硬件调试处理过程中,发现过芯片 6N137的模拟输入和输出没有隔离开。 以至于电路出现异常。后经过修改,硬件电骡工作正常软件调试由一台PC机、系统硬件电路和VB软件组成。调试单片机和串口通 信硬件部分都为正

24、常。在 VB窗口运行基本收发程序。通过按键模拟数据采集驱 动,LED模拟继电器动作。通过两个仿真器可以了解串口通信部分的状态,另外 还可以间接了解CAN总线的实际状态,在调试中间向SJA1000的测试寄存器写入 0DBH再读SJA1000的测试寄存器,结果与写入的一致。说明SJA1000与控制器 连接正常。输入通道编写程序,通过观察仿真器对应地址中的内容, 确定节点的 输入通道为正常。参考文献【1】阳贤惠主编,现场总线技术及其应用,第二版,清华大学出版社,2008.10【2】王俊波.CAN open协议分析与实现.中文核心期刊,2005年第22卷第5-2 期.【3】杨春杰,亢红波.基于CAN总

25、线的分布控制系统设计J.工业仪表与自动化 装置.2007年第4期,62-64.【4】叶爱兵,郑华耀,陈巨涛.基于CANopen的协议分析系统设计与实现.扬州大 学报.2009年8月第12卷第3期.【5】苏健,张慧慧.基于以CAN总线的监控系统的设计J.制造业自动化.2002年 第 2 期,24-26.【6】万隆等主编,单片机原理及其应用技术,清华大学出版社,2007.1【7】李朝春.单片机原理及串行外设接口技术M.北京:北京航空航天大学,2008,16-18.【8】张岳.集散控制系统及现场总线.机械工业出版社,2006.5【9】沈卫红.基于单片机的智能系统设计与实现M.北京:电子工业出版社,2

26、005.qmwdnac附录附件1 :总原理图g I.CO3XSNVTDCOiT2no3_D2vO-AARZR彳A4 3 Eh7WAOR6-urtloOC oazela ojPVU2U407 UA6 UAlt/Do5405a NNAr8D3r4rOR1DM4DP c_Do o2Dp 1DQgo2DU1.2C3sc COALX iTCZQQox$1QQdphogE/DGQRDtcLAO59Tn-eVor7AO6AQ5dB2aqnuAWU6V-o IDNG2LAAAtA2邓ssss A7A SHH# *nuI 1w00附件3:元器件清单表器件类别元件序号型号参数数量封装形式单片机U1AT89S522

27、DIP-40CAN总线控制器U2SJA10002DIP-28CAN总线收发器U582C2502DIP-8串口电平转换U6MAX2321DIP-16光电耦合器U3、U46N1374DIP-8串口接头J19针1DB9开关S1-S4无自锁按钮8SBUT发光二极管S5-S8红灯8LED-H排阻J510K4CON9二极管D5、D640074DIODE晶振X112M2XTAL1X26M2普通电阻R110K1AXIAL0.4R2、R84. 7K2R810KQ1R3、R4R6、R7390 Q4R56.2K1R10120Q1电容C7-C9C13-C171048RAD0.1C1、C2C10、C1130pf4C3、

28、C422pf2C5、C121052第22页uchar data UartDataBackUart_RxBuffLe n;附件4:系统总程序/*/#i nclude reg51.h#i nclude huart.h/*/#defi ne uchar un sig ned char#defi ne uint un sig ned intvoid RestUart1RxPg(void);void Rxin gProcess(void);void Rxi ngSTA_Clutch(void);void Txin gProcess(void);void UartWorkSTA_Clutch(void);

29、void Go_UartCommTask(void);bit Stan dFrameTx(uchar Comm, uchar*Pdata, uchar Len);void Sen dData(void);void in it(void);void delay( uint x);struct FrameFormatuchar head;uchar size;uchar comm;ucharmessage;uint sum; Sta ndFrame;uchar data Uart_RxBuffUart_RxBuffLe n;uchar dataRxSunCount;uchar dataUart_R

30、xCo unt;uchar dataUart_TxCo unt;uchar dataUart_RxTimeOver;uchar dataUart_Work_STA;uchar *Uart_TxPtr;uchar TempData=0x00,0x01;uchar VoltData=0x10,0x11;uchar CircleData=0x20,0x21;uchar WaterData=0x30,0x31;uchar Run LedTime;bit RxFlag;bit Uart_RxOver;bit Uart_AckFlag;sbit Air = P1A7;/控制通风系统sbit Light =

31、 PU6;/控制照明系统sbit Water = PU5;/控制给排水系统sbit Power = P4;/控制电力供应系统sbit GetTemp = PU3;/获取温度信息sbit GetVolt = P2;/获取电压信息sbit GetCircle = P1;/获取电流信息sbit GetWater = P。;/获取水位信息void mai n(void)ini t();while(1)Go_UartCommTask();Sen dData(); void in it(void) SCON = 0x50;/ SMO/FE SM1SM2 REN TB8 RB8 TI RITMOD = 0x

32、21;TH0 = 0x4c;TL0 = 0x00;TH1 = 0xfd; /9600TL1 = 0xfd;ES = 1;串口ET0 = 1;/T0TR0 = 1;开 T0TR1 = 1;开 T1EA = 1;/开总中断P3 = 0x0f;Run LedTime = 20;void UartWorkSTA_Clutch(void)if (RI)Rxi ngSTA_Clutch(); if(SBUF=Uart_FramHead)Uart_Work_STA=Rxi ng;接收到帧头后置串口为接收数据 状态。Uart_RxCou nt=0;接收计数置位Uart_RxBuffUart_RxCou nt+

33、=Uart_FramHead;将帧头收入接收缓存。/Uart_RxCou nt=1;Uart_RxTimeOver=Uart_OverTimeValue;置帧接收超时时间。voidRxin gProcess(void)if(Uart_RxCou nt=1) if(SBUF=RxSu nCou nt+1) Uart_RxTimeOver=0;Uart_RxOver=1;/帧接收完成void Uart_ISPPG(void) in terrupt 4switch (Uart_Work_STA)case Txing: Txin gProcess(); break; caseRx ing: Rxin

34、gProcess(); break; case noBusy: UartWorkSTA_Clutch(); break;TI=0;RI=0;uint MakeFrameSum(uchar *ptr,uchar Len) uint Sum;uchar i;Sum=0;for(i=0; iLe n; i+) SBUF=*Uart_TxPtr+;/接收/接收计数if(Uart_TxCou nt!=0)case AirCtrlOff:Air = 0; break;Sum+=*ptr+;return (Sum);bit Stan dFrameTx(uchar Comm, uchar *Pdata,uchar Len)uchar i;if(Uart_Work_STA!=noBusy) return 0; /Uart忙返回Uart_Work_STA=Txi ng;Stan dFrame.head=Uart_FramHead;Stan dFrame.size=Sta ndFramLe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论