基于modbus协议的模拟温度采集器_第1页
基于modbus协议的模拟温度采集器_第2页
基于modbus协议的模拟温度采集器_第3页
基于modbus协议的模拟温度采集器_第4页
基于modbus协议的模拟温度采集器_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、信息与控制工程学院专业综合设计说明书信控学院硬件课程设计说明书基于Modbus协议的模拟温度采集器学生学号: 学生姓名: 专业班级: 指导教师: 职 称: 起止日期:2015.3.162015.4.3吉林化工学院Jilin Institute of Chemical Technology专业综合设计任务书一设计题目:基于Modbus协议的模拟温度采集器二设计目的1熟悉Keli uVision开发软件 及Altium Designer电路设计软件的使用;2. 掌握C8051F410单片机体系结构及C语言程序设计方法,并了解Modbus协议;3. 掌握基于C8051F410单片机与AD590构成的

2、基于Modbus协议的模拟温度采集器的电路设计方法;4. 掌握基于C8051F410单片机的基于Modbus协议的模拟温度采集器的编程方法。三设计任务及要求1. 学习C8051F410单片机体系结构及程序开发。2.设计基于Modbus协议的模拟温度采集器的电路原理图,并应用Altium Designer画出其电路原理图。3. 完成基于Modbus协议的模拟温度采集器电路的焊装和硬件调试。4. 编写完整的实验程序,进行整机调试。5. 撰写设计说明书。四设计时间及进度安排设计时间共三周(2007.12.102007.12.28),具体安排如下表:周安排设 计 内 容设计时间第一周1.学习C8051

3、F410单片机体系结构及程序开发;2设计基于Modbus协议的模拟温度采集器电路,并应用Altium Designer画出其电路原理图。 2015.3.162015.3.22第二周1.完成基于Modbus协议的模拟温度采集器电路的焊装和硬件调试;2.编写实验程序。2015.3.232015.3.29第三周1整机调试;2撰写设计说明书;3.答辩2撰写设计说明书。3答辩。2015.3.302015.4.3五指导教师评语及学生成绩指导教师评语:年 月 日成绩指导教师(签字):I摘 要温度是现代工业生产过程中的一个重要参数,在生产过程中常需对温度进行检测盒监控,特别是在电力、化工等大型自动化企业的生产

4、过程中往往需要监视和测量几十个温度参数。在某些特殊的生产场合(比如印染和炼油),温度参数测量和控制的精度直接影响后续产品的质量。本文介绍一种基于Modbus协议的温度采集模块的设计方法。AD590温度传感器随温度的变化而产生不同的电阻信号,电阻信号经过恒定电流变成模拟电压信号,单片机内部多路模拟开关电路对模拟信号进行采集,A/D转换模块对采集到的信号进行模数转换,把转换得到的数字信号按照顺序分别送入单片机,单片机通过RS485现场总线实现与PC机的挂接。单片机通过现场总线能够把温度值以Modbus协议的形式发送给PC机,实现了工控计算机的现场总线集中管理。关键字: Modbus协议;A/D转换

5、器;AD590温度传感器I目录专业综合设计任务书I1 概 述12 整体设计思路及原理23 硬件设计33.1供电电源模块33.2单片机最小系统及其接口电路模块33.3 RS485通讯模块43-3RS485通讯模块53.4 AD590测温模块54 软件设计84.1 Modbus协议84.2 系统初始化95 Keil的使用10结 论15参考文献16附录1 系统电路图17附录2 焊接电路板过程18III1 概 述课程设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。通过课程设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。1进一步巩固和加深学生所学一门或几门相关专

6、业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;2培养学生实践动手能力及独立分析和解决工程实际问题的能力;3培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。4.培养学生与老师合作的能力,学生通过向指导老师提问获取一些专业信息,为毕业以后所从事的研究方向奠定一定的基础。5.培养学生的意志力,三周的实习对学生来说也是相当长的一段经历,如何静下心来踏实学习老师所要求记忆自己想要掌握的知识,对大多数同学来说也是一种考验。6培养学生的抗压能力,在实习期的最后,我们每个人都需要进行个人与老师单独答辩,是否能把自己所掌握的知识说出来

7、,让专业技术人员听明白也是一种能力的表现。7培养学生的团队认同感,一个团队如果想要合作愉快,必须有明确的分工和各自的要求及细则,如果人人都有这种认同感,那么这次实习变为我们以后走进工作岗位提供了一些经验。8.培养学生的执行能力,仅仅三周的时间如果能把课题所涉及的内容完美地呈现来,每个组员必须各尽其责,同时也培养了助长的领导能力。2 整体设计思路及原理作为数字检测仪表它的主要功能是把模拟信号转换成相应的数字信号,然后通过CPU的处理和运算,最后通过显示器进行显示,完成相应的处理功能。因此,它的设计原理及流程如下图所示:供 系统电源单片机小系统D/A上位机显示传感器信号调理电路3 硬件设计本设计的

8、电路主要由电源模块、单片机最小系统及其接口电路模块、AD590温度传感器模块、485通讯模块。具体电路和工作原理下面一一介绍。3.1供电电源模块电子技术课程中所介绍的直流稳压电源一般是线性稳压电源, 它的特点是起电压调整功能的器始终工作在线性放大区,由50Hz工频变压器、整流器、滤波器和串联调整稳压器组成。它的基本工作原理为:工频交流电源经过变压器降压、 整流、滤波后成为一稳定的直流电。图中其余部分是起电压调节,实现稳压作用的控制部分。电源接上负载后,通过采样电路获得输出电压,将此输出电压与基准电压进行比较。如果输出电压小于基准电压,则将误差值经过放大电路放大后送入调节器的输入端,通过调节器调

9、节使输出电压增加,直到与基准值相等;如果输出电压大于基准电压,则通过调节器使输出减小。这种稳压电源具有优良的纹波及动态响应特性。本设计采用固定集成输出集成稳压电路,它主要由变压器(双9V,5W)、集成整流桥、集成稳压器LM7805(+5V)、LM431(2.5V)构成。电路图如下:3-1 稳压供电电源3.2单片机最小系统及其接口电路模块单片机最小系统是单片机能正常工作的条件。它主要由时钟电路、复位电路构成。具体接法请观察各个端口的网络标号。C8051F410 内部有两个12 位的电流模式数/模转换器(IDAC)。由于12位D/A精度不够,故需要扩展成15位D/A。从键盘输入温度数值,查表得其对

10、应的电压值。故可算出IDAC对应的的输出电流值。具体电路见下图: 3-2单片机最小系统及接口电路3.3 RS485通讯模块特点: 1. RS-485的电气特性:采用差分信号负逻辑,逻辑"1”以两线间的电压差为+(26)V表示;逻辑"0"以两线间的电压差为-(26)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片, 且该电平与TTL电平兼容,可方便与TTL电路连接。2. RS-485的数据最高传输速率为10Mbps。3. RS-485接口是采用平衡驱动器和差分,接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。4. RS-485最大的通信距离

11、约为1219m,最大传输速率为10Mbps,传输速率与传输距离成反比,在100KbpS的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点。3-3RS485通讯模块3.4 AD590测温模块AD590是美国ANALOG DEVICES公司的单片集成两端感温电流源,其输出电流与绝对温度成比例。在4 V至30 V电源电压范围内,该器件可充当一个高阻抗、恒流调节器,调节系数为1 µA/K。片内薄膜电阻经过激光调整,可用于校准器件,使该

12、器件在298.2K (25°C)时输出298.2 µA电流。AD590适用于150°C以下、目前采用传统电气温度传感器的任何温度检测应用。低成本的单芯片集成电路及无需支持电路的特点,使它成为许多温度测量应用的一种很有吸引力的备选方案。应用AD590时,无需线性化电路、精密电压放大器、电阻测量电路和冷结补偿。除温度测量外,还可用于分立器件的温度补偿或校正、与绝对温度成比例的偏置、流速测量、液位检测以及风速测定等。AD590可以裸片形式提供,适合受保护环境下的混合电路和快速温度测量。AD590特别适合远程检测应用。它提供高阻抗电流输出,对长线路上的压降不敏感。任何绝缘

13、良好的双绞线都适用,与接收电路的距离可达到数百英尺。这种输出特性还便于AD590实现多路复用,输出电流可以通过一个CMOS多路复用器切换,或者电源电压可以通过一个逻辑门输出切换。它的主要特性如下: 1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:mA/K式中: 流过器件(AD590)的电流,单位为mA; T热力学温度,单位为K。 2、AD590的测温范围为-55+150。 3、AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。 4、输出电

14、阻为710MW。 5、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为±0.3。 AD590温度感测器是一种已经IC化的温度感测器,它会将温度转换为电流,在8051的各种课本中常看到它,相当常用到。 其规格如下: 温度每增加1,它会增加1A输出电流。 可量测范围-55至150。 供应电压范围+4V至30V。 AD590的接脚图及零件符号如下图所示: AD590的输出电流值说明如下: 其输出电流是以绝对温度零度(-273)为基准,每增加1,它会增加1A输出电流,因此在室温25时,其输出电流Io=(273+25)=298A。 Vo的值为

15、Io乘上10K,以室温25而言,输出值为2.98V(10K×298A)。 量测Vo时,不可分出任何电流,否则量测值会不准。 电路分析 AD590的输出电流I=(273+T)A(T为摄氏温度),因此量测的电压V为(273+T)A ×10K= (2.73+T/100)V。为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。 由于一般电源供应较多零件之后,电源是带杂讯的,因此我们使用齐纳二极体作为稳压零件,再利用可变电阻分压,其输出电压V1需调整至2.73V。 接下来我们使用差动放大器其输出Vo为 (100K/10K)×(V2-

16、V1)=T/10V。如果现在为摄氏28度,输出电压为2.8V。 3-4 AD590测温模块4 软件设计 4.1 Modbus协议Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息

17、而不影响各PC执行本身的控制任务。Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制

18、器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。Modbus具有以下几个特点:(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。(2)Modbus可以支持多种电气接口,如R

19、S-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。4.2 系统初始化主控芯片采用C8051F410 MCU,其指令周期为1至2个时钟周期,系统时钟频率为24.5MHZ,由于C语言易于移植,且语法简洁,本系统采用C语言编写,系统程序流程图如图6所示4-1 流程图C8051F410单片机是一款混合信号的处理器,内部集成AD、DA、晶振、SPI、比较器等片上资源,3组P口重的每个端口引脚都可以被定义为通用I/O(GPIO)或模拟输入/输出。所以在系统上电后为了使系统能够正确运行,必须对相应的寄存器做

20、必要的配置;之后,还要对LCD显示部分进行相应的初始化后才能够正确显示,所有这些的初始化工作都在系统初始化中完成。经过系统初始化后,系统进入循环扫描的状态中,系统要不断地对按键输入进行测量,利用单片机的DA转换器将其转换为模拟量, 然后在液晶上显示出来。5 Keil的使用 Keil是众多单片机爱应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑、编译、仿真等于一体,同时还支持PLM、汇编和C语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调程序,软件仿真方面也有很强大的功能。1.点击桌面上的Keil uVision3图标,出现启动画面:

21、2.新建一个工程,点击“project - New Project”新建3. 在对话框,选择 “硬件设计Modbus”文件夹下,给这个工程取个名“模拟温度采集器”后保存。4.在弹出的对话框中选择 CPU 厂商及型号, 并选中“Silicon Laboratories”下的C8051F410。5.新建一个 C51 文件 , 单击左上角的 New File 如下图所示 :6. 在下面空白区别写入或复制一个完整的程序,然后保存。如果想用汇编语言,要带后缀名一定是“test . asm”,如果是C语言,则是“test . c”: 7.保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source G

22、roup1 上单击右键 , 然后再单击 Add Files to Group Source Group 1'。8.选择要加入的文件 , 找到 万年历.C 后 , 单击 Add, 然后单击 Close9.在编辑框里输入代码。10.到此我们完成了工程项目的建立以及文件加入工程 , 现在我们开始编译工程。我们先单击编译, 如果在错误与警告处看到 0 Error(s) 表示编译通过.11.生成 .hex 烧写文件,先单击Options for Target,如图; 在下图中,我们单击 Output, 选中 Create HEX F。再单击“确定”。结 论硬件课程设计是学习阶段一次非常重要的理论

23、与实际相结合的机会,通过这次基于Bodbus协议的模拟温度采集器的设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我综合运用所学专业知识解决实际问题的能力,同时也提高了我查阅文献资料、电脑制图等其他能力水平。而且通过对整体设计思路的掌控,对局部器件的取舍,以及对细节程序的斟酌处理,都使我的能力得到了锻炼,并且意志力、抗压能力及耐力也都得到了不同程度的提升。这是我们都希望看到的也正是我们进行硬件课程设计的目的所在。通过此次实习,让我们脱离了书本,让硬件和软件结合在一起,而不仅仅是纸上谈兵,增强了我们的动手能力,为以后找工作打下坚实的基础。此次实习还认识了很多在书本上见识不到的器件,拓

24、宽了我们的视野,拓展了我们的专业知识,巩固了我们在书本上学习到的书面知识,让书本不再枯燥,让我们对这个专业更加有兴趣,让我们能用愉快的心态去学习和钻研这个专业。此次设计主要应用单片机技术。使用AD590温度传感器采集温度并通过数码管显示。电路经过多次改正测试最后达到理想效果,使用单片机编写程序通过数码管显示出来,随温度的不同数码管显示相应数值。同时温度显示非常清晰,该系统抗干扰能力好,价格低廉。这样,不仅降低了系统的设计成本,而且通过单片机的时钟电路提高了系统的精度。在0到100误差正负为0.1。该系统主要依靠单片机技术,单片机技术是设计的最主要的部分,它的使用明显提高了系统的靠性。在调试过程

25、中,我感触颇多,电路的基本结构和所需硬件焊接部分都已经大工告成,信心满满地用设计的程序进行调试,一直不出结果,对于一个刚刚接触硬件的我来说检查电路是最头疼的事,没有办法,应用老师说过的一句话,“没病不死人”,我用万用表检查电路的通断,配置电阻的大小是否正确,三极管的基极、集电极、发射极所接与自己绘制的电路图是否一致等等,最后终于找到是因为隔离的地和电源接法混淆,导致电路不能正常工作。在最后精准测温阶段,这时硬件电路已经没有问题,只能从所编程序的算法上下功夫找出为什么温度产生漂移而不能达到设计要求,最后在老师的提醒下得知是温度采集器AD590下接电阻阻值的问题,经过计算在程序中填入计算值,温度显

26、示正常,达到设计要求,这时是最开心的。 最后,谢谢老师在这三周里给予我们的关心,同时感谢老师三天中所教授的拓展知识和工程应用方面的经验,让我们体会到了组态软件功能之强大、英语在使用软中的重要性、当代最常用的主从机校验方式等等,通过此次硬件设计的锻炼与老师的指导,我对毕业设计的畏惧感不是那么强烈啦,这是老师和我一起学习的结果,我很享受这次与老师同学一起学习的过程。参考文献1 吴金戌,沈庆阳8051单片机实践与应用,北京:清华大学出版社,2003.12,26382 何立民单片机应用文集,北京:北京航空航天大学出版社,1991,53723 公茂法单片机人机接口实例集,北京:北京航空航天大学出版社,1

27、998.2,32594 何立明单片机高级教程应用与设计,北京:北京航天航空大学出版社,2000.4,1491735 李广弟,朱月秀单片机基础,北京:北京航空航天大学出版社,2001.8,36856 楼然苗,李光飞MCS51系列单片机设计实例,北京:北京航天航空大学出版社,2001.3,75837 李华单片机原理与接口技术,北京:清华大学出版社,33808 李军.51系列单片机高级实例开发指南M.上海:北京航空航天大学出版社,2004.10-15.9 凌玉华.单片机原理与应用系统设计M.长沙:中南大学出版社,2004.10-19.10 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践

28、)M.电子工业出版社,2006.11-21附录1 系统电路图附录2 焊接电路板过程小组成员焊接电路板电路板布局图电路板走线图附录3 实验重点程序/*程序名称:ADC0.c;-程序功能:C8051F410A/D转换测试;*/-/ C51头文件/-#include <c8051f410.h> / 包含c8051f410单片机特殊寄存器#include <intrins.h> / 包含指示编译器产生嵌入原有代码的程序的原型/-/ 宏定义/-#defineSYSCLK 1531250 unsigned int result1;float voltage,current;floa

29、t temp;union tempXfloat tempf;unsigned char tempc4;realtemp;unsigned char xdata rd0_dat48,td0_dat48;/UART0接收计数、站号 unsigned char idata rd0_cont,zhhao=3;sbit LED=P25;/ Genera6+ted Initialization File /#include "C8051F410.h"/ Peripheral specific initialization functions,/ Called from the Init

30、_Device() functionvoid PCA_Init() PCA0MD &= 0x40; PCA0MD = 0x00; void Oscillator_Init() OSCICN = 0x87;void UART_Init() SCON0 = 0x10;void Timer_Init() TCON = 0x40; TMOD = 0x21; CKCON = 0x04; TL0 = 0x8F; TH0 = 0x8E;TL1 = 0x96; TH1 = 0x96;void ADC_Init() ADC0CN = 0x00; / ADC0 disabled, burst-mode d

31、isabled, / conversion triggered on TMR2 overflow ADC0TK = 0xF8; / Pre-tracking mode enabled, keep / default timing settings ADC0CF = 0x00; / Repeat count = 1 ADC0CF |= (SYSCLK/3000000)-1)<<3; / Set SAR clock to 3MHz AD0EN = 1;void Voltage_Reference_Init() REF0CN = 0x13;void Port_IO_Init() P0MD

32、IN = 0xFB; P1MDIN = 0xFB; P2MDOUT = 0x20; P0SKIP = 0x04; P1SKIP = 0x04; XBR0 = 0x01; XBR1 = 0x40;/ Initialization function for device,/ Call Init_Device() from your main programvoid Init_Device(void) PCA_Init();Oscillator_Init();Timer_Init();UART_Init(); ADC_Init(); Voltage_Reference_Init(); Port_IO

33、_Init();unsigned int AD_Convert(unsigned char channel)unsigned int idata ad_value = 0;ADC0MX = channel;AD0BUSY = 1; / 启动转换while(ADC0CN&0x20)=0); / 转换没有完成则等待ADC0CN = ADC0CN&0xDF; / 清0转换完成中断标志ad_value = (ad_value|ADC0H&0X0F)<<8|ADC0L;return ad_value;/-/函数说明/ 计算发送数据帧的CRC校验码,共2个字节/函数返回

34、/ 2个字节的校验码/-unsigned int CRC_Send_UART0(unsigned char buf,unsigned char len)unsigned int idata b=65535,c=40961,l;unsigned char idata i,j,k;for(i=0;i<len;i+)l=b;l=l>>8;l=l<<8;k=b;k=kbufi;b=l+k;for(j=0;j<8;j+)k=b;k=k<<7;k=k>>7;b=b>>1;if(k=1)b=bc; return b;unsigned char CRC_Recv_UART0(unsigned char buf,unsigned char len)unsigned int idata b=65535,c=40961,l;unsigned char idata i,j,k;for(i=0;i<len;i+)l=b;l=l>>8;l=l<<8;k=b;k=kbufi;b=l+k;for(j=0;j<8;j+)k=b

温馨提示

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

评论

0/150

提交评论