基于单片机的MODBUS通讯器设计毕业作品Word文件下载.docx
《基于单片机的MODBUS通讯器设计毕业作品Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的MODBUS通讯器设计毕业作品Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。
它已经成为一种通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通讯的。
它描述了控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
Modbus具有以下几个特点:
1、标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。
目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。
2、Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。
3、Modbus的帧格式简单、紧凑、通俗易懂。
用户使用容易,厂商开发简单。
在大多数工厂里,现场仪表采用单独的控制室直连对绞线电缆连接到控制系统。
当仪表设备被连接到一种分散式I/O系统的时候,可以增加更多的现场设备,但是仅仅需要一根对绞线电缆就可以把所有数据传送到MODBUS主站。
以MODBUS网络的方式组网连接的时候,把现场设备连接到一个过程控制系统、PLC或是工业计算机系统,整个工厂的连接都能够从对绞线电缆控制室直连的方式转变成为MODBUS连接方式。
到目前为止,我们仅仅涉及到了简单的MODBUS数据采集系统。
还有一种方案也是可能的,那就是把控制设备安装在现场,然后通过MODBUS使其与中央控制系统进行通讯。
它也可以被编程用来执行控制功能,例如PID控制、ON/OFF控制、现场报警、诊断以及报警监视等。
另一种“智能化”并且具有控制能力的MODBUS设备是来自于MooreIndustries公司的MDS方程站。
这是一种多功能控制器,它能够执行很多种类型的控制功能和运算。
有了MDS方程站,在实现简单控制任务、多变量控制任务(例如监视和控制一个蒸煮器里的纸浆液位或者使用来自多个流量、温度和压力变送器的输入信号实现质量流量计算)时就不再需要PLC或者大型控制器了。
最多可以有127个MDS模件被安装在一个MODBUS网络上面来实现对工厂的控制或是采集整个工厂的信号。
PID(比例、积分和微分)控制器最初都是单机独立运行的无通讯控制器。
由于PLC和DCS都已经智能化,因此现在PID控制器也智能化了。
今天,许多终端用户依然青睐那些直接读出和编程简单的单回路控制器。
诸如MODBUS等数字化通讯协议能够给这些一直单机运行的仪表注入一些新的活力。
通过对这些控制器进行多分支网络连接,可以创造一个自己的小型分散控制系统。
现代的控制领域持续不断的产生和应用诸如现场总线和网状网络等先进概念,MODBUS的简单性以及它的便于在许多通讯媒介上实施应用的特点一直使它受到最广泛的支持,并且成为全球应用最广泛的工业协议。
当使用现有老式控制系统的用户发现自己需要扩充现场仪表或者增加远程控制器的时候,他们都会采用MODBUS作为一个能够解决复杂问题的简单解决方案。
用户试图把一个外来设备连接到控制系统里面,使用这个设备的MODBUS接口被证明是最为容易的办法。
虽然MODBUS已经是最为古老的通讯方法之一,由于非常多的原因它也是最普及的通讯方法。
MODBUS便于使用、非常可靠、价格低廉并且可以连接到控制工业领域几乎所有的传感器和控制设备。
MODBUS广泛的应用于程序自动化、工业自动化、智能建筑、输配电通讯协议、智能电表、车用通讯。
1.2目的与意义
在现代化工业控制中,由于被控对象、测控装置等物理设备的地域分散性,以及控制与监控等任务对实时性的要求,不同设备之间现场交互性信息的传递越来越多。
但传统的工业控制系统软件存在着一些问题。
不具备开放性,各个部分的联系过于紧密,使系统过于复杂。
这样使系统的更新、扩展和升级变得非常困难,对系统任何一部分的修改都有可能对其它部分造成影响,从而导致大量且烦琐的软件和硬件的修改。
传统的工业控制软件开发中出现的另一个主要问题是软件的重复开发,软件不能够复用,资源不能共享,造成大量的人力与物力资源的浪费。
虽然使用高级语言函数库让我们可以利用面向对象的继承等方法大量重用源代码,但这些复用只是对源代码级的复用而不是对可执行文件级的复用。
由于传统工业控制系统的带来的不便,造成形成了大量的“信息孤岛”,但是,对于工业控制而言,各站点之间不是孤立的,它们必须互相配合、协调才能保证产品质量和实现连续生产,这就需要各站点能互通讯息。
另外,上级管理网也需要与子站交互数据,以实现全局的监控和优化。
然而,子站是采用不同开发平台、不同通讯协议组成的结构系统,可能由不同的厂家和个体开发。
要为每种协议写一个转换接口或驱动是比较繁琐的,特别是在站点和协议较多的时候。
因此,怎样有效集成数据,避免信息孤岛的出现,是工业控制领域中常遇到难点问题之一。
比较好的方法是各站点都采用标准协议进行数据通讯,而不必为每一种协议开发一个通讯接口。
目前这方面的协议比较多,MODBUS就是其中的一种。
MODBUS是一种全开放,免费提供,非常容易理解和实施的协议,从70年代诞生以来,在制造业、电力、水电、冶金、矿山、交通、基础设施的工业领域中的数据采集和过程控制得到了广泛应用,形成了一种事实上的工业标准。
同时,随着单片机技术的迅速发展,单片机技术已逐步进入工业自动化领域,单片机以体积小、质量轻、价格便宜、应用方便等优势。
它允许MODBUS协议与单片机232接口结合,在单片机串口中嵌入MODBUS信息帧,成为MODBUS/RTU或MODBUS/ASCII,在工业自动化领域中,具有很高的性能价格比,是一种真正开放的理想解决方案。
1.3发展现状和前景展望
目前在全球范围内已经安装了MODBUS串行设备,基于MODBUS和单片机技术的“透明就绪”的广泛应用可以被归类到三大市场:
能源与基础设施,工业,以及建筑行业。
◆
在能源与基础设施市场,机场、隧道、数字通讯、电信、水处理、油气、能源等行业大大得益于“透明就绪”的远程控制能力。
在工业市场,食品与饮料、微电子、制药、汽车等行业则高度的受益于“透明就绪”中从IT系统贯通到车间层单片机的统一全局网络架构。
在建筑市场,医疗机构、公用建筑、民用住宅、船舶等行业在“透明就绪”中使用他们原有的单片机232网络,从而大大的降低了实施费用。
1.4研究的主要内容和步骤
1.4.1主要内容
1、查找资料,熟悉单片机的基本结构及功能,熟悉利用STC12C5A60S2、STM32F103VET6单片机进行通讯器的硬件设计。
2、掌握C51语言,并完成MODBUS通讯程序的编写。
3、构建各个模块功能,利用Altiumdesigner软件画原理图及PCB。
4、购买元器件并焊接,制作通讯器。
5、搭建测试平台,通讯器软硬件调试。
1.4.2设计的步骤
本次设计的课题是基于单片机的MODBUS通讯器的设计,主要的研究方法步骤如下:
1、对整个MODBUS通讯协议的构成、要求、应用等进行大概的了解,明确课题的定位和所要解决的问题。
2、对单片机控制的理论以及涉及到的相关知识进行系统的学习,例如:
如何建立单片机232通讯,如何利用电脑对单片机编程,常用的编译软件,以及通讯所要达到的效果等等。
3、选择单片机型号,经过对常用编译软件的相关了解,对单片机性能及控制方法做简单测试。
经过之前的理论学习和了解,以及参考大量文献总结前人经验,初步选型方案选定如下:
选用STM32F103VET6做主控单片机,4.3寸TFT彩屏做界面显示,从机采用STC12C5A60S2做控制,主控单片机发送MODBUS命令给三个从机,从机根据命令执行相应操作,同时从机将采集到的数据保存到单片机RAM单元中供主机查询。
4、根据选定的单片机型号画出对应的最小系统以及各个功能模块电路图,画出PCB板,搭建硬件调试环境。
5、软件调试,首先利用电脑做MODBUS主机,分别调试主机控制板和从机控制板,确保软硬件完美结合。
6、综合调试,主机控制板与从机控制板进行MODBUS通讯,分别控制各个功能块。
对设计的结果进行分析和总结。
第2章系统设计方案
选择
方案一:
采用电脑当主机,从机利用单片机与电脑通过RS232通讯,电脑发送MODBUS命令查询从机数据,从机接收命令返回相应数据,电脑工控软件刷新从机数据,从而实现MODBUS通讯器功能。
方案二:
单片机做主机,利用显示屏作为数据显示界面,主机单片机发送MODBUS命令给从机,从机返回数据给主机单片机,主机控制液晶屏刷新从机数据,实现MODBUS通讯器功能。
方案一连接简单,操作方便,只需开发从机模块与电脑通讯,只需编写从机MODBUS通讯协议代码。
方案二利用液晶屏代替电脑显示器界面,单片机做主机,同时开发主机与从机,需要编写主机和从机MODBUS通讯协议,难度偏大。
权衡考虑后,方案二实用性更强,所以本系统采用方案二设计。
2.2芯片选择
由于主机液晶显示采用4.3寸TFT触摸屏,对主机CPU控制器要求较高,故主机主控芯片采用STM32系列的STM32F103RBT6芯片。
从机主控芯片则有两种选择:
1、STM系列的STM8S105K4,此芯片编程简单,单片机价格便宜,与传统51单片机编程方法兼容,内部资源丰富,下载程序简单,可在线调试,但需特定下载器,而且下载器价格昂贵。
2、STC系列的STC12C5A60S2,此芯片编程简单,价格便宜,与传统51单片机编程方法兼容,内部资源丰富,下载程序只需RS232接口即可将程序下载到单片机,经济实惠。
根据比较,本系统从机主控芯片采用STC12C5A60S2,利用串口通讯芯片MAX3232与上位机连接,系统硬件结构框图如图2.1所示。
2.3软件方案设计
本系统主机基于STM32单片机平台,从机基于STC单片机平台,利用其中的RS232,主机发送MODBUS命令查询从机数据,主机根据触摸屏定义的功能,下置数据到从机寄存器,改变从机寄存器模拟量的值,然后根据Modbus总线协议编写相应的程序完成其功能,另外再利用DS18b20测量温度,通过为软件的总体流程图。
图2.2软件总体流程图。
第3章硬件电路设计
3.1主机CPU模块
主机CPU模块采用STM32系列的Cortex‐M3处理器STM32F103VET6,STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。
按性能分成两个不同的系列:
STM32F103“增强型”系列和STM32F101“基本型”系列。
增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;
基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。
两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。
时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。
STM32F103VET6外围电路设计简单,芯片最小系统电路如图3.1所示。
如图3.1STM32F103VET6最小系统电路
3.2电源模块
主机系统供电采用Lm7805稳压出5V,供给LT1117输入,使得输出为3.3V主芯片所需的电源,电源模块原理图如图3.2所示。
LT1117三端可调或固定电压3.3V输出电流为1A,线路调整率为0.2%,负载调整率为0.4%,封装类型为SOT-223。
三端稳压集成电路lm7805。
常见的三端稳压集成电路有正电压输出的lm78×
×
系列和负电压输出的lm79×
系列。
三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。
图3.2电源模块电路图
3.3液晶显示模块
主机系统采用4.3寸TFT液晶显示屏做界面显示,4.3寸彩色TFTLCD显示模块的内置LCD控制器以及显存,对4.3寸模块进行操作时,实际上是对LCD控制器的控制寄存器、显示数据存储器进行操作。
液晶显示模块及CPU引脚接口电路如图3.5所示。
双图层显示功能,双图层显示的模块具有两个显示图层:
一个背景层,一个前景层。
两个图层都具备16位真彩的显示能力。
本系统直接采用STM32单片机驱动液晶屏,STM32单片机内部带有静态存储器控制器(FSMC),FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,它的主要作用是:
1、将AHB总线传输信号转换到适当的外部设备协议。
2、满足访问外部设备的时序要求所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备可以通过一个唯一的片选信号加以区分。
界面显示如图3.3、3.4所示。
图3.3开机界面图3.4主界面
图3.5TFT液晶及CPU引脚接口
3.4存储模块
由于主机采用4.3寸TFT触摸屏作为界面显示,像素点为480*272,需要大量图片数据信息,而主芯片内部Flash只有512KB,最多只能存放两张图片,所以本系统采用了外扩存储器的方法存储图片数据。
图片数据存入存储芯片的固定地址,多张图片分地址放置,CPU只需按地读取存储器内部数据送入TFT显示器,即可完成所有图片显示,节约了CPU内部空间。
本系统存储模块采用AT45DB161D存储芯片,存储容量为2M,足够存储大量图片数据信息。
模块电路图如图3.6所示,AT45DB161D是一款2.5V或2.7V,串行接口的FLASH存储器,是各种数字语音,图像,程序代码和数据存储应用的理想选择。
AT45DB161D支持RapidS串行接口,适用于要求高速操作的应用。
RapidS串行接口兼容SPI,最高频率可达66MHz。
AT45DB161D的存储容量为17,301,504位,组织形式为4,096页,每页512或528页。
图3.6存储模块
3.5程序调试下载模块
STM32内部集成JTAG调试模块,JTAG(JointTestActionGroup;
联合测试行动小组)是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。
现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。
标准的JTAG接口是4线:
TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。
JTAG接口可对PSD芯片内部的所有部件进行编程。
具有JTAG口的芯片都有如下JTAG引脚定义:
TCK——测试时钟输入;
TDI——测试数据输入,数据通过TDI输入JTAG口;
TDO——测试数据输出,数据通过TDO从JTAG口输出;
TMS——测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。
可选引脚TRST——测试复位,输入引脚,低电平有效。
含有JTAG口的芯片种类较多,如CPU、DSP、CPLD等。
JTAG内部有一个状态机,称为TAP控制器。
TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。
JTAG标准定义了一个串行的移位寄存器。
寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为BSC(Boundary-ScanCell)边界扫描单元。
这个串联的BSC在IC内部构成JTAG回路,所有的BSR(Boundary-ScanRegister)边界扫描寄存器通过JTAG测试激活,平时这些引脚保持正常的IC功能。
JTAG的系统板设计和连线关系如图3.7所示。
图3.7JTAG电路图
3.6串口通讯模块
串口通讯模块为整个设计的最重要的部分,本系统是基于串口RS232接口加入MODBUS通讯协议,此部分一旦不能工作本系统将变得毫无意义。
通讯方式直接利用串口通讯芯片MAX3232,MAX3232有双串口接口,串口1接口与从机相连,连接方式采用RJ45网络通讯接口。
串口2接口与DB9接口相连,可以与电脑RS232通讯,便于调试。
芯片外部电路图如图3.8所示。
下面简单介绍MAX3232芯片。
RS-232性能,器件仅需四个0.1uF的外部小尺寸电压电容。
MAX3232确保在120kbps数据速率,同时保持RS-232输出电平。
MAX3232具有二路接收器和二路驱动器,提供1uA关断模式,有效降低功效并延迟便携式产品的电池使用寿命。
关断模式下,接收器保持有效状态,对外部设备进行监测,仅消耗1uA电源电流,MAX3232的引脚、封装和功能分别与工业标准MAX242和MAX232兼容。
即使工作在高数据速率下,MAX3232仍然能保持RS-232标准要求的正负5.0V最小发送器输出电压。
只要输入电压在3.0V至5.5V范围以内,即可提供+5.5V(倍压电源)和—5.5V(反相电压)输出电压,电压工作在非连续模式,一旦输出电压低于5.5V,将开启电压;
输出电压超过5.5V,即可关闭电荷泵,每个电压需要一个电容器和一个储能电容,产生V+和V-的电压。
MAX3232在最差工作条件下能够保证120kbps的数据速率。
通常情况下,能够工作于235kbps数据速率。
图3.8串口通讯电路
3.7从机主控模块
从机主控采用STC12C5A60S2,最小系统电路图如图3.9所示。
STC12C5A60S2单片机性能特点:
1、工作频率0~40M相当于普通8051的0~80M。
2、FLASH程序储存4K-64K,RAM数据储存512B-1280B。
3、内部集成EEPROM2K-16K及看门狗和专用复位电路。
4、带A/D功能,超小封装。
5、2-4路PWM,8-10位高速A/D转换。
6、有ISP和IAP功能,强抗干扰和降低EMI性能。
图3.9从机主控模块最小系统
LED灯显示模块
LED灯模块采用8个0805封装的LED显示,LED模块电路图如图3.10所示。
利用STC单片机8个I/O端口分别控制8路LED,每一路都用100级PWM来调节LED亮度,每一路亮度值都可通过从机按键设置值,也可在主机触摸屏上设置每一路亮度值,也可以直接控制每一路LED亮灭,通过MODBUS命令下置到从机单片机,从机单片机根据亮度值修改LED亮度。
图3.10LED灯显示模块
3.9温度检测模块
。
温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。
DS18B20的主要特征:
(1)全数字温度转换及输出。
(2)先进的单总线数据通信。
(3)最高12位分辨率,精度可达土0.5摄氏度。
(4)12位分辨率时的最大工作周期为750毫秒。
(5)可选择寄生工作方式。
(6)检测温度范围为–55°
C~+125°
C(–67°
F~+257°
F)
(7)内置EEPROM,限温报警功能。
(8)64位光刻ROM,内置产品序列号,方便多机挂接。
(9