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

下载本文档

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

文档简介

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

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

3、1 总述.2 2.2.2 设备模型.2 2.2.3 对象字典.3 2.2.4 CANopen要点.4第3章 系统软件设计.5 3.1 选择CANopen的原因.5 3.2 CANopen协议系统软件设计.6 3.3 软件设计系统流程.6第4章 调试及仿真.10第5章 总结.参考文献.11附 录.12附件1:总原理图.12附件2:总PCB图和实物图.13附件3:元器件清单表.14 附件4:系统总程序.15第1章 题目分析与设计方案的选择1.1 设计题目分析随着微电子技术与通讯技术的迅速发展,以及光纤通信(Fiber Communication)、卫星通信(Satellite Communicat

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

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

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

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

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

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

10、子协议区域A000FFF Reserved 表2-1 2.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 CANopen要点对用户来说了解CANopen协议的一些要点是很重要的。标识符:CANopen协议采用11位标识符,数据链路层与CAN2.0一致。CAN从节点CAN从节点CAN从节点CAN从节点CANopen网络中的主从节点:在CANopen系统中需要有一个而且只有一个主节点,但是可以有多个从节点(0126)。主节点用于启动和停止网络;节点检查;网络引导。如图2-2 图2-2 主从节点PDO协议:在ZANopen协议中,

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

14、完成AT89S52的控制程序,主要由初始化、发送、接收三部分组成。由于系统中一个点在任意时刻均可以主动与其他节点通信,所以各节点的通信程序相同。PC软件采用VB或者VC实现。3.1 选择CANopen原因基金会现场总线以ISO/OSI开放系统互连模型为基础,取其物理层、数据链路层、应用层为FF通信模型的相应层次,并在应用层上增加了用户层。用户层主要主站对总线具有控制权,主站间通过传递令牌来传递对总线的控制权。取得控制权的主站,可向从站发送、获取信息。泛应用于加工制造、过程和楼宇自动化等行业。其中PROFIBUS DP可以提供最大12Mbps的传输速率。由于优越的传输特性和高的传输速率,在可编程

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

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

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

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

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

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

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

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

23、LED的发送和接收的命令如下:打开空调与通风监控系统 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.北京:电子工业出版社,2005.附录附件

26、1 :总原理图附录2:总PCB图和实物图附件3:元器件清单表器件类别元件序号型号参数数量封装形式单片机U1AT89S522DIP-40CAN总线控制器U2 SJA1000 2 DIP-28 CAN总线收发器U5 82C2502DIP-8串口电平转换U6MAX2321DIP-16光电耦合器U3、U46N1374DIP-8串口接头J19针1DB9开关S1-S4无自锁按钮8SBUT发光二极管S5-S8红灯8LED-H排阻 J510K4CON9二极管D5、D640074DIODE晶振X112M2XTAL1X26M2普通电阻R1 10K1AXIAL0.4 R2、R8 47K2R8 10K1R3、R4R6

27、、R7390 4R56.2K 1R10120 1电容C7-C9C13-C17104 8RAD0.1 C1、C2C10、C1130pf 4C3、C422pf 2C5、C12 105 2第 19 页附件4:系统总程序 /*/ #include reg51.h#include huart.h/*/#define uchar unsigned char #define uint unsigned intvoid RestUart1RxPg(void);void RxingProcess(void);void RxingSTA_Clutch(void);void TxingProcess(void);v

28、oid UartWorkSTA_Clutch(void);void Go_UartCommTask(void);bit StandFrameTx(uchar Comm, uchar *Pdata, uchar Len);void SendData(void);void init(void);void delay(uint x);struct FrameFormatuchar head;uchar size;uchar comm;uchar message7;uint sum; StandFrame;uchar data Uart_RxBuffUart_RxBuffLen; uchar data

29、 UartDataBackUart_RxBuffLen;uchar data RxSunCount;uchar data Uart_RxCount;uchar data Uart_TxCount;uchar data Uart_RxTimeOver;uchar data Uart_Work_STA; uchar *Uart_TxPtr;uchar TempData=0x00,0x01;uchar VoltData=0x10,0x11;uchar CircleData=0x20,0x21;uchar WaterData=0x30,0x31;uchar RunLedTime;bit RxFlag;

30、bit Uart_RxOver;bit Uart_AckFlag;sbit Air = P17;/控制通风系统sbit Light = P16;/控制照明系统sbit Water = P15;/控制给排水系统sbit Power = P14;/控制电力供应系统sbit GetTemp = P13;/获取温度信息sbit GetVolt = P12;/获取电压信息sbit GetCircle = P11;/获取电流信息sbit GetWater = P10;/获取水位信息void main(void)init();while(1)Go_UartCommTask();SendData();void

31、 init(void) SCON = 0x50;/SM0/FE SM1 SM2 REN TB8 RB8 TI RI TMOD = 0x21; TH0 = 0x4c; TL0 = 0x00;TH1 = 0xfd; /9600TL1 = 0xfd;ES = 1;/串口 ET0 = 1;/T0 TR0 = 1;/开T0 TR1 = 1;/开T1 EA = 1;/开总中断P3 = 0x0f;RunLedTime = 20;void UartWorkSTA_Clutch(void)if (RI)RxingSTA_Clutch(); if(SBUF=Uart_FramHead)Uart_Work_STA=

32、Rxing; /接收到帧头后置串口为接收数据状态。Uart_RxCount=0; /接收计数置位Uart_RxBuffUart_RxCount+=Uart_FramHead; /将帧头收入接收缓存。/Uart_RxCount=1; Uart_RxTimeOver=Uart_OverTimeValue; /置帧接收超时时间。void RxingProcess(void)if(Uart_RxCount=1) if(SBUF=RxSunCount+1) Uart_RxTimeOver=0; Uart_RxOver=1; /帧接收完成void Uart_ISPPG(void) interrupt 4s

33、witch (Uart_Work_STA)case Txing: TxingProcess(); break; caseRxing: RxingProcess(); break;casenoBusy: UartWorkSTA_Clutch(); break;TI=0; RI=0; uint MakeFrameSum(uchar *ptr,uchar Len) uint Sum; uchar i; Sum=0; for(i=0; iLen; i+)Sum+=*ptr+;return (Sum);bit StandFrameTx(uchar Comm, uchar *Pdata, uchar Len)uchar i;if(Uart_Work_STA!=noBusy) return 0; /Uart忙返回Uart_Work_STA=Txing; StandFrame.head=Uart_FramHead;StandFrame.size=StandFramLen-1;StandFm=Comm; for(i=0; iLen; i+)StandFrame.messagei=*Pdata+; for(; iStandFramLen

温馨提示

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

评论

0/150

提交评论