过程控制与现场总线技术课程设计Word格式.docx
《过程控制与现场总线技术课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《过程控制与现场总线技术课程设计Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
总PCB图和实物图.....................................13
附件3:
元器件清单表.........................................14
附件4:
系统总程序...........................................15
第1章题目分析与设计方案的选择
1.1设计题目分析
随着微电子技术与通讯技术的迅速发展,以及光纤通信(FiberCommunication)、卫星通信(SatelliteCommunication)、区域网络(LocalAreaNetwork)与广域网(WideAreaNetwork)等取得长足发展。
根据国际电工委员会(internationalElectrotechnicalCommision,IEC)标准和现场总线基金会(fieldbusfoundation,FF)的定义,现场总线的概念一般为一种用于智能化现场设备,自动化系统的开放式、数字化、双向串行、多节点的底层通信总线。
现场总线有:
基金会现场总线(FoundationFieldbus,FF)、控制局域网络(ControllerAreaNetwork,CAN)、局域操作网络(LocalOperatingFieldbus,LonWorks)、过程现场总线(ProcessFieldbus,PROFIBUS)等。
但是由于各个行业的发展历史以及各个公司、企业的经济利益,导致一些总线逐渐被遗忘,一些总线在当今的市场上共存。
而CAN总线是一种有效支持分布控制或实时控制的串行通信网络。
在各种工业现场总线中CAN总线以成本较低、速度快、实时性、可靠性较高的特点适应于现代汽车电子、医疗、军事等领域的产业。
CANopen协议定义了应用层和通讯子协议,为可编程系数、不同器件、借口及应用子协议定义了帧状态。
为现场总线的全数字分布控制系统的广泛应用以及把系统一体化管理提供了有效的方案。
CANopen协议是基于CAN串行总线系统和应用层CAL的高层协议。
CAL提供了网络管理服务和报文的传送协议。
CANopen在CAL基础上使用了CAL通讯和服务协议子集的一种实现方案,在保证网络节点互用性的同时,允许节点的功能随意扩展。
在嵌入式系统用用的发展,许多总线已经不能满足高性能、高实时性系统的要求,CAN总线是当前比较有希望成功的。
1.2总体设计方案的选择
采用主流单片机AT89S52为微控制器,结合独立CAN控制器SJA1000设计的硬件电路,该系统包括智能节点和具有CAN-RS232转换功能的主节点两部分。
智能节点实现了数据采集、LED显示、CAN总线通信以及输出控制等功能。
本系统由上位PC机、CAN总线借口通信适配卡和多个监控节点组成。
监控点主要监控空调与通风监控系统,照明监控系统系统,供电系统,供水系统。
方案设计图如下图1-1。
图1-1方案设计框图
第2章系统电路设计
2.1硬件的组成
系统硬件部分主要由AT89S52单片机、SJA1000CAN控制器等组成,系统在硬件和软件上进行模块化设计,具体实现了以单片机为控制核心,设计了4路数字量输入,4路模拟量输出模块,以及CAN接口电路模块。
2.2CANopen协议概述
2.2.1总述
CANopen是一种构架在控制局域网络上的高层通讯协定,其中包括通讯子协定和设备子协定是工业控制中常用的一种现场总线,常在嵌入式系统中被应用。
CANopen协议是Cia协会针对CAN协议不完整性开发出来的一个更高层次的协议。
CANopen标准包括寻址方案、通讯子协定和其他由设备协定所定义的应用层。
其能支援网络管理、设备监控和节点之间的通讯,包括一个简易传输层处理资料的分段传输和组合。
资料连接层和实体层用CAN来实时工作。
2.2.2设备模型
一个CANopen设备模块可以有三部分。
如图2-1,通信接口和协议软件提供在总线上收发通信对象的服务。
不同的CANopen设备都是通过交换通信对象完成之间的通信的,它直接面向CAN控制器进行实时操作的。
对象字典用来描述设备是哦那个的所有数据类型、通信对象和应用对象。
它位于通信程序和应用程序之间,为应用程序提供借口,CANopen通信通过应用程序对对象字典进行操作实现的。
应用程序包括通信部分和功能不分,通信部分通过对对象字典进行操作实现CANopen的通信;
功能部分则是根据应用要求来实现的。
其对象字典结构如表2-1。
图2-1CANopen设备
对象字典结构
索引对象
000Notused
001~001F静态数据类型
002~003F复杂数据类型
040~005F规定的复杂数据类型
060~007F设备子协议规定静态数据类型
080~009F设备子协议规定的复杂数据类型
00A0~0FFFreserved
1000~1FFF通讯子协议局域
2000~5FFF特定子协议区域
6000~9FFF标准设备子协议区域
A000~FFFReserved
表2-1
2.2.3对象字典
CANopen网络的通信和管理都是通过不同的通信对象来完成的。
对象字典(ObjectDictionary)是一个有序的对象组,每个对象用一个16位的索引值来寻址,定义了一个8位的子引索来允许访问数据中的单个元素。
在CANopen网络系统中每个节点都有唯一的对象字典。
通讯对象分类:
数据对象(PDO):
PDO被映射到单一的CAN帧中,用8个字节的数据字段把过程数据对象PDO映像到一单一的CAN帧传输应用对象。
每一个PDO都有一个惟一的标识符,并且可以通过一个节点发送,但是可以有多个接受者。
数据服务对象(SDO):
用来对对象字典进行读写操作。
该对象可以传输大于8个字节的配置信息。
接收者将确认收到的每个段信息,发送和接受者间将建立点对点之间的通信,被访问对象字典的设备是SDO通讯的服务器,一个设备可以支持多的SDO对象,但是至少有一个SDO会在一个设备中被支持。
网络管理对象(NMT):
网络管理对象包括节点警戒对象。
网络管理协议(NMT)提供了特定应用,网络同步,时间戳和紧急报文传输。
NMT主要提供了以下功能:
模块控制服务;
配置控制服务和错误控制服务。
特殊功能对象:
CANopen还为同步,紧急状态表示以及时间标记传送三个特定对象。
同步对象是同步制造者对网络进行周期性广播,为该对象提供基本网络时钟。
紧急对象则是当设备发生严重的内部错误时,紧急客户机发送一个紧急状态对象。
时间标记对象是将应用设备提供公共的时间帧作参考。
2.2.4CANopen要点
对用户来说了解CANopen协议的一些要点是很重要的。
标识符:
CANopen协议采用11位标识符,数据链路层与CAN2.0一致。
网络中的主从节点:
在CANopen系统中需要有一个而且只有一个主节点,但是可以有多个从节点(0~126)。
主节点用于启动和停止网络;
节点检查;
网络引导。
如图2-2
图2-2主从节点
PDO协议:
在ZANopen协议中,CAN的数据信息是一种过程数据对象PDO,它是设备用来传送处理信息的标准方式。
这种通讯方式为一对多。
见图2-3.
图2-3PDO协议
SDO服务:
SDO提供了一种获得指定节点相关状态的数据,服务端发送相应的数据回应。
如图2-4.
图2-4SDO服务
预定义连接集:
其简化了网络的配置和使用。
发送和接收PDO:
CANopen规定了相应的内存区域和接受网络上的数据,可认同为C语言中不转弯的对地址进行操作处理,从而实现了PDO数据能够完全透明地传送,为程序的编程简单化。
第三章系统软件设计
系统软件设计关键是通信程序的设计。
本设计采用C语言完成AT89S52的控制程序,主要由初始化、发送、接收三部分组成。
由于系统中一个点在任意时刻均可以主动与其他节点通信,所以各节点的通信程序相同。
PC软件采用VB或者VC实现。
3.1选择CANopen原因
基金会现场总线以ISO/OSI开放系统互连模型为基础,取其物理层、数据链路层、应用层为FF通信模型的相应层次,并在应用层上增加了用户层。
用户层主要主站对总线具有控制权,主站间通过传递令牌来传递对总线的控制权。
取得控制权的主站,可向从站发送、获取信息。
泛应用于加工制造、过程和楼宇自动化等行业。
其中PROFIBUSDP可以提供最大12Mbps的传输速率。
由于优越的传输特性和高的传输速率,在可编程逻辑控制器PLC中被广泛采用。
CAN是ControllerAreaNetwork的缩写,是ISO国际标准化的串行通信协议。
在当今各产业中,为了给人和社会带来利益,各种各样的电子控制系统被开发了出来。
由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。
为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,因此有了CAN的通信协议。
现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。
CAN总线是属于现场总线的范畴,它可一对串行通信网络进行分布控制或者实时控制。
对于目前叫的的RS-XXX基于R线构建的分布控制来说。
CAN总线具有下面优势:
(1)CAN总线开发系统具有实时性强、传输距离远、抗干扰能力强。
(2)CAN是到目前为止唯一具有国际认证标准且成本低的现场总线;
(3)CAN总线废除传统的站地址编码,它以对通信数据块进行编码,可以不分主从,多主方式工作。
(4)CAN采用非破坏性仲裁技术两个节点同时向网络上传送数据时,可判断优先级,先高后低使优先级高的节点在传输数据是不受影响,避免了总线冲突。
(5)CAN采用短帧结构,每一帧只有8个有效字节,数据传输时间短,重新发送的时间短,受干扰的概率低。
(6)CAN可以点对点,一对多及广播集中方式传送和接收数据。
传输距离可长达10km。
(7)CAN的每帧信息都有通过CRC校验及检错措施,具有极好的检错效果
(8)CAN的通信介质的选择上十分灵活,可选用双绞线、同轴电缆或光纤。
(9)CAN节点在错误严重的情况下,能够自动关闭总线,切断它与总线的关联,使总线上其他操作不受影响;
基于上总线概述,又从成本以及工程上考虑,本次设计选择CAN总线。
针对自动化测控应用的需要,定义了信息存取的统一规则,采用设备描述语言规定了通用的功能块集。
用于实现测量、控制、工程量转换的应用模块,实现系统组态管理功能的系统软件技术以及构筑集成自动化系统、网络系统的系统集成技术。
过程现场总线(PROFIBUS),PROFIBUS支持主从方式和多主通信方式。
3.2CANopen协议系统软件设计
在基于CANopen的智能协议,从物理上分为:
底层驱动程序借口和上层CANopen客户程序;
从逻辑上可分为:
底层动态连接库支持程序、收发报文高速缓存逻辑,报文分析、分析结果记录和GUI展示层。
CANopen客户程序根据协议标准解释获得CAN报文,并根据报文类型,按HASH算法分类排序。
在报文收发缓存处理上采用多线编程方法,解决多线程同步和互斥问题,从而达到较好的报文实时处理功能,逃避了线程的可重入性。
客户程序既可以文本方式结合相应的参数显示CANopen的报文类型。
也可以根据CANopen协议已对网络进行测试和分析。
本次设计是CANopen设备节点,具有即用即插的功能,所以可以非常自如地用主站或者从站的身份收发报文。
其传递的数据格式是自定义结构体,为本次设计显示报文内容提供了方便。
CANopen协议软件是基于高级语言开发环境编写的上位机软件,它的界面实现协议分析结果直观性非常强。
对本次设计的可视化配置,比特率设置,样本数设定,MASK掩码设定具有明显效果。
除此之外,CANopen协议还提供一些基本功能,其总线通信量,单次或循环发送报文,及整个报文队列的在线观测,并对各类可变条件获得报文的记录以及在线监测总线负载。
本次设计是一套完整的楼宇控制系统,现场过程参数与状态信息通过各自的传感器现场汇入其相应的现场空盒子节点。
各个仿真子系统的现场节点通过CAN总线完成数据通信,各个仿真子系统通过以太网实现整个仿真系统的信息通信。
CANopen协议作为本次通信的主要协议,将被控对象、智能节点、网关和上位机连成楼宇智能一体化。
在运行与测试中,CANopen协议实时的处理CAN设备发送和接受报文的可行性,为本次系统的开发、调试提供了极大的方便。
3.3软件设计系统流程
CAN总线模块将在AT89S52的控制下采集的数据发送给CAN总线的上位机上,接收CAN总线上发给各个控制节点数据,并且将它存如缓冲区。
AT89S52向SJA1000发送数据时,采用查询的方式,当SJA1000里有接受到的新报文时,AT89S52采用中断方式。
系统主程序如图3-1。
图3-1系统主程序
程序初始化:
AT89S52将SJA1000、冲区和变量、定时器、串口、CAN总线初始化。
初始化程序主要是在运行前,对SJA1000的控制寄存器写入控制而确定的。
如图3-2。
图3-2SJA1000初始化流程
发送程序:
SJA1000的初始化程序设计主要是通过对SJA1000的寄存器写入相应的控制字,从而确定SJA1000的工作方式。
软件复位即在运行期间给SJA1000发一个做一个复位识别。
SJA1000需要初始化的寄存器有:
控制寄存器CR或模式寄存器MOD、时钟分频寄存器CDR、接受代码寄存器ACR、屏蔽寄存器AMR、中断使能寄存器IER、总线定时寄存器BTR、输出控制寄存器OCR等。
因为这些寄存器仅能在SJA1000复位期间进行访问,因此在这些寄存器初始化之前,必须要确保系统进入复位状态。
发送程序如图3-3。
图3-3发送程序
接收程序:
数据从CAN总线到CAN接收缓冲区由CAN的控制器自动完成。
接收程序将各个节点的报文接收以及其它方面的处理。
从接收缓冲器中读取接收到的数据进行处理,并且在处理过程中对CAN总线出现的异常情况进行处理。
系统设计中采用中断的方式接受数据。
如图3-4。
图3-4接收程序流程
图3-5为小区安全监控系统窗口,其接收和发送均以16进制(HEX),按键和LED的发送和接收的命令如下:
打开空调与通风监控系统LED1亮
关闭空调与通风监控系统LED1灭
打开照明监控系统系统LED2亮
关闭照明监控系统系统LED2灭
打开给排水监控系统LED3亮
关闭给排水监控系统LED3灭
打开电力供应监控系统LED4亮
关闭电力供应监控系统LED4灭
按键1:
获取当前温度
按键2:
获取当前电压
按键3:
获取当前电流
按键4:
获取当前水位
图3-5VB窗口
第四章调试及仿真
在硬件调试处理过程中,发现过芯片6N137的模拟输入和输出没有隔离开。
以至于电路出现异常。
后经过修改,硬件电骡工作正常.
软件调试由一台PC机、系统硬件电路和VB软件组成。
调试单片机和串口通信硬件部分都为正常。
在VB窗口运行基本收发程序。
通过按键模拟数据采集驱动,LED模拟继电器动作。
通过两个仿真器可以了解串口通信部分的状态,另外还可以间接了解CAN总线的实际状态,在调试中间向SJA1000的测试寄存器写入0DBH,再读SJA1000的测试寄存器,结果与写入的一致。
说明SJA1000与控制器连接正常。
输入通道编写程序,通过观察仿真器对应地址中的内容,确定节点的输入通道为正常。
参考文献
【1】阳贤惠主编,现场总线技术及其应用,第二版,清华大学出版社,2008.10
【2】王俊波.CANopen协议分析与实现.中文核心期刊,2005年第22卷第5-2期.
【3】杨春杰,亢红波.基于CAN总线的分布控制系统设计[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.
附录
附件1:
总原理图
附录2:
总PCB图和实物图
元器件清单表
器件类别
元件序号
型号参数
数量
封装形式
单片机
U1
AT89S52
2
DIP-40
CAN总线控制器
U2
SJA1000
2
DIP-28
CAN总线收发器
U5
82C250
DIP-8
串口电平转换
U6
MAX232
1
DIP-16
光电耦合器
U3、U4
6N137
4
串口接头
J1
9针
DB9
开关
S1-S4
无自锁按钮
8
SBUT
发光二极管
S5-S8
红灯
LED-H
排阻
J5
10K
CON9
二极管
D5、D6
4007
DIODE
晶振
X1
12M
XTAL1
X2
6M
普通电阻
R1
AXIAL0.4
R2、R8
4.7K
R8
10KΩ
R3、R4
R6、R7
390Ω
R5
6.2K
R10
120Ω
电容
C7-C9
C13-C17
104
RAD0.1
C1、C2
C10、C11
30pf
C3、C4
22pf
C5、C12
105
附件4:
系统总程序
/**************************/
#include"
reg51.h"
huart.h"
/**************************/
#defineucharunsignedchar
#defineuintunsignedint
voidRestUart1RxPg(void);
voidRxingProcess(void);
voidRxingSTA_Clutch(void);
voidTxingProcess(void);
voidUartWorkSTA_Clutch(void);
voidGo_UartCommTask(void);
bitStandFrameTx(ucharComm,uchar*Pdata,ucharLen);
voidSendData(void);
voidinit(void);
voiddelay(uintx);
structFrameFormat
{ucharhead;
ucharsize;
ucharcomm;
ucharmessage[7];
uintsum;
}StandFrame;
uchardataUart_RxBuff[