工业控制器赵志旭实训报告.docx
- 文档编号:25237473
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:24
- 大小:521.73KB
工业控制器赵志旭实训报告.docx
《工业控制器赵志旭实训报告.docx》由会员分享,可在线阅读,更多相关《工业控制器赵志旭实训报告.docx(24页珍藏版)》请在冰豆网上搜索。
工业控制器赵志旭实训报告
模块化工业通用控制器
设计报告
指导教师:
赵建敏
报告人姓名:
赵志旭
报告人学号:
201002444
2011年5月20日
目录
1引言1
2设计概述3
2.1设计系统结构3
2.2各部分简介4
3软件设计5
3.1μC/OS-II5
3.2通讯协议6
3.3ADC模块设计9
3.4IO模块10
3.5LCD接口电路11
4硬件设计14
4.1CPU设计14
4.2电源设计15
4.3JTAG下载电路的设计16
5总结17
参考文献19
附录一:
LCD运行图21
附录二:
系统运行图22
1引言
近几年来,微电子技术和计算机技术的发展,使微控制器集成度越来越高,计算速度越来越快,价格和功耗越来越低。
因此不论是工业控制机技术还是可编程控制器(PLC)技术向嵌入式领域渗透的步伐正在逐渐加大。
嵌入式系统因极小的体积、极低的功耗散热和软硬件的可裁剪性,而深受用户的欢迎。
可以预见,基于嵌入式系统的工业控制器必将具有广阔的发展空间。
随着现代科技的发展,工业控制器在工业生产的各领域发挥着越来越重要的作用。
工业自动化的高速发展,生产规模的日益扩大,全球化生产的日益融合,对工业控制器提出了更高要求,如微型化、便携化、智能化、网络化等。
目前,用于工业控制的控制器主要分为两种,即:
工业控制机和可编程控制器(PLC)。
工业控制机是由通用的微机推广应用而发展起来的。
国内工控机的产品主要分为CP总线工控机、STD总线工控机、VME总线工控机。
其中CP总线工控机的发展最快;自60年代末第一台PLC问世以来,己很快被应用到机械制造、冶金、矿业、轻工等各个领域,大大推进了机电一体化进程,被人们称为现代工业控制三大支柱之一。
半导体技术的迅猛发展,使控制器的设计从模拟化走向数字化。
如果控制器由数字化再发展到模块化,即以模块控制器取代众多各厂家自己开发的控制器;那么各个厂家就可以利用现成单元电路模块组装成自己所需要的产品,这样就可以最大限度地以减少制造成本和开发时间。
因此模块化控制器应该有独立可拆分的功能和典型结构,具有组合性和通用性。
既易于组合成新系统、新产品,升级方式简捷;也容易从系统或产品中拆卸、更换,维修方便;总之模块工业控制器典型、通用、互换、兼容。
目前,在大型的工业控制系统中主要采用PLC、DCS等控制设备,它们采用模块化设计功能强大、设计灵活、性能稳定,可以很好的满足控制需求。
但是在小型控制系统中主要还是采用数字仪表来对系统进行控制,它在控制精度和速度上都难以满足现代工业控制的要求。
而目前在各个领域广泛应用的嵌入式系统具有功耗低、体积小、集成度高、成本低、稳定性好等特点,如果设计一种嵌入式工业控制器,采用模块化设计的方法,结合模块化的灵活性和嵌入式系统的高效、稳定特性。
它可以测量多种信号,有较高的测量精度和多种测量范围并且能够对信号进行各种复杂的处理、运算控制。
另外还可以设计一个良好的人机界面以方便用户对信号组态控制、监测的功能,使控制器更加满足现代工业控制的要求。
在此思想和热网工控检测的背景前提下,鉴于对现场温度压力和水箱液位的检测和控制,本实训要求学生从单片机系统的软硬件设计出发,学习基于STM32单片机的软硬件设计方法。
不采用现成的PLC实现顺序控制,而是从最底层用单片机设计实现一个模块化的工业控制器。
力求做出一个成本比PLC低,逻辑针对性高,智能化高,专业实现的功能要比PLC多,安全性可靠性高、通讯组态模式先进等特点。
此工业模块控制器可以应用于工业控制领域,例如过程控制系统、远程控制系统等,也可用于简单顺序控制系统。
除了工业控制以外,还可应用到消费电子和民用领域(如手持数据采集终端、各类网关、智能家居等)。
目前,在大型的工业控制系统中主要采用PLC、DCS等控制设备,它们采用模块化设计功能强大、设计灵活、性能稳定,可以很好的满足控制需求。
PLC和DCS在硬件和软件上都采用模块化设计,具有良好的组织性和设计灵活性。
但是在小型控制系统中主要还是采用数字仪表来对系统进行控制,它在控制精度和速度上都难以满足现代工业控制的要求。
而目前在各个领域广泛应用的嵌入式系统具有功耗低、体积小、集成度高、成本低、稳定性好等特点,如果设计一种嵌入式工业控制器,采用模块化设计的方法,结合模块化的灵活性和嵌入式系统的高效、稳定特性。
它可以测量多种信号,有较高的测量精度和多种测量范围并且能够对信号进行各种复杂的处理、运算控制。
另外还可以设计一个良好的人机界面以方便用户对信号组态控制、监测的功能,使控制器更加满足现代工业控制的要求。
在此思想前提下,本实训要求学生从单片机系统的软硬件设计出发,学习基于STM32单片机的软硬件设计方法。
不采用现成的PLC实现顺序控制,而是从最底层用单片机设计实现一个PLC控制器。
力求做出一个成本比PLC低,逻辑针对性高,智能化高,专业实现的功能要比PLC多,安全性可靠性高、通讯组态模式先进等特点。
此工业模块控制器可以应用于工业控制领域,例如过程控制系统、电机调速系统、远程控制系统等,也可用于简单顺序控制系统。
除了工业控制以外,还可应用到消费电子和民用领域(如手持数据采集终端、各类网关、智能家居等)。
2设计概述
2.1设计系统结构
本系统采用ST公司生产的STM32系列单片机。
STM32F103xx增强型系列使用高性能的ARMCortex-M332位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。
所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:
多达2个I2C和SPI、3个USART、一个USB和一个CAN。
STM32芯片虽然有如此强大的功能,但是价格并不贵,所以非常适合本系统使用。
本系统各模块间采用Modbus协议进行通信,Modbus协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
如果本系统采用Modbus协议可以保证各个模块之间的数据高速可靠的传输。
而且由于采用这种通用的工业标准,所以在以后的功能扩展的时候会非常简便。
本系统使用uC/OSII实时操作系统。
uC/OSII是一个源代码公开的实时嵌入式内核,包含了任务调度、任务管理、时间管理、简单内存管理和任务间的通信与同步等实时系统所需的基本功能。
在uC/OSII操作系统下,将程序按功能划分成不同的任务,这样可以提高程序执行的效率。
而且uC/OSII简单易学。
所以本系统采用uC/OSII为操作系统。
图2-1系统的整体框图
2.2各部分简介
整个实训设计的硬件设计以STM32为核心控制器完成CPU与LCD显示模块、AD采集模块、I/O模块的硬件设计。
每个模块设计RS-485通信接口。
软件设计基于UCOS/II操作系统,划分任务,编写驱动程序和控制程序,最终实现一个演示系统,采集4路一次供水温度信号、4路回水温度信号,4路二次供水温度信号、4路回水温度信号,并在LCD显示模块显示实时数据。
本实训设计的ADC采集模块负责检测采集现场的模拟信号量(例如温度、压力等),通过DMA(直接存储器存储)传输,之后等待CPU的查询。
一旦收到CPU的查询命令,就将采集到的现场模拟信号量通过RS485总线传输给CPU,然后接着去采集现场信息,等待CPU的下一次查询。
这样可以节省CPU的使用率。
通过系统框图可以看出CPU模块通过RS485总线和AD模块、IO模块和LCD模块相连接。
CPU模块在系统中充当主机,每隔一段时间就会分别查询各个模块的运行情况。
CPU主要任务是收集AD模块、IO模块的数据并将这些数据进行处理并发送给LCD模块显示。
AD模块主要任务是采集4路温度信号、4路压力信号,等待CPU模块的查询命令,当CPU查询命令到来时,将采集的信号传送给CPU模块。
IO模块主要任务是采集8路开关量信号,并在CPU查询命令到来时传送给CPU模块。
LCD模块主要任务是将CPU发送来的数据进行显示,并且根据触摸屏的状态来改变显示内容。
3软件设计
3.1μC/OS-II
μC/OS-II是一个实时操作系统内核,是一个源代码公开的实时嵌入式内核,包含了任务调度、任务管理、时间管理、简单内存管理和任务间的通信与同步等实时系统所需的基本功能。
没有提供输入输出管理、文件系统和网络之类的额外服务。
但是由于μC/OS-II的可移植性和开放性,用户可以自己的实际应用添加所需的模块。
μC/OS-II是一个抢占式实时操作系统,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权。
这个特点使得它的实时性比非占先式的内核要好。
另外内核的实现都仔细考虑了运行时间的确定性问题,任务调度、任务间通信和内存分配都是采用执行时间确定的设计,不会因为任务数变化、顺序变化等出现执行时间的差异。
μC/OS-II结构的关系如下图所示:
图3-1μC/OS-II结构的关系图
从图中可以看出,μC/OS-II软件主要有这四大部分构成,在移植过程中,我们需要修改的是与处理器有关的代码(驱动部分)部分和与μC/OS-II配置应用相关代码,还有就是用户自己编写的程序代码。
至于μC/OS-II内核的源代码(与处理器无关的源代码)部分,我们一般不用去修改,在移植过程中将其添加到相应的工程文件中直接使用就可以了。
实际上对于μC/OS-II的移植主要与4个文件相关,这4个文件是与处理器密切相关的:
汇编文件(OS_CPU_A.ASM)、处理器相关C文件(OS_CPU.H、OS_CPU.C)和应用程序相关的配置文件(OS_CFG.H)。
具体如下:
a、修改“include.h”文件
该头文件是一个主头文件,会出现在每一个.C文件中,通过修改它,增加自己的头文件。
b、修改“os_cfg.h”文件
此文件包含空闲任务的堆栈长度、消息队列、邮箱、信号量等的设置,通过修改此文件进行对操作系统裁剪。
c、修改头文件“OS_CPU.H”
头文件“OS_CPU.H”包括了用#define语句定义的、与处理器相关的常数、宏以及类型,需要修改的内容有与编译器相关的数据类型重定义部分和与处理器相关的少量代码。
d、修改C语言文件OS_CPU.C
文件OS_CPU.C中有10个C语言函数需要编写,这些函数中唯一必要的函数是OSTaskStkInit,其他9个函数必须声明,但不一定要包含任何代码。
e、修改汇编语言文件OS_CPU_A.ASM
汇编文件OS_CPU_A.ASM中需要编写的函数分别为OSStartHighRdy、OSCtxSw、OSIntCtxSw和OSTickISR。
总之,μC/OS-II是一个完整的、可移植、固化、裁减的占先式实时多任务内核。
μC/OS-II可供不同的微处理器使用,可以移植到8位到64位不同的微处理器上。
它的基本思路就是“近似地每时每刻总是让优先级最高的就绪任务处于运行状态”。
μC/OS-II是一个通用性的操作系统,所以对于不同硬件的实现,只需要根据具体CPU和实际应用做相应的移植即可。
3.2通讯协议
Modbus协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。
这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
Modbus协议可以分为两种传输模式(ASCII或RTU)。
本系统使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。
在网络波特率下多样的字符时间,这是最容易实现的(如下图的T1-T2-T3-T4所示)。
传输的第一个域是设备地址。
可以使用的传输字符是十六进制的0...9,A...F。
网络设备不断侦测网络总线,包括停顿间隔时间内。
当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。
在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。
一个新的消息可在此停顿后开始。
整个消息帧必须作为一连续的流转输。
如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。
同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。
这将导致一个错误,因为在最后的CRC域的值不可能是正确的。
在本系统中帧的接收和发送都是依靠串口完成的。
串口中断服务子程序流程图如图3-2所示:
图3-2串口中断服务子程序流程图
本系统模块间的通信过程为CPU模块(主机)每隔一段时间就会轮询一个从机以获取其数据。
而其它设备如ADC模块、LCD显示模块或I/O模块(从机)应返回对查询作出的响应,或处理查询所要求的动作。
CPU模块(主机)可对各从机寻址,发出广播信息,从机返回信息作为对查询的响应。
从机对于主机的广播查询,无响应返回Modbus协议报据设备地址,请求功能代码,发送数据,错误校验码,建立了主机查询格式,从机的响应信息也用Modbus协议组织,它包括确认动作的代码,返回数据和错误校验码。
若在接收信息时出现一个错误或从机不能执行要求的动作时,从机会组织一个错误信息,并向主机发送作为响应。
CPU模块在上电之后就会发送轮询命令,先询问AD模块,AD模块响应命令,将采集到的数据发送给CPU模块,轮询AD模块的命令帧格式如图3-3所示:
图3-3CPU轮询AD模块的命令帧格式
AD模块收到CPU模块的轮询请求,就会做出响应。
AD模块响应轮询命令的帧格式如图3-4所示:
图3-4AD模块响应轮询命令的帧格式
当CPU模块接收到AD模块的响应之后就会轮询IO模块,其帧格式如图3-5所示:
图3-5CPU轮询IO模块的命令帧格式
IO模块收到CPU模块的轮询请求,就会做出响应。
IO模块的响应帧格式如图3-6所示:
图3-6IO模块的响应帧格式
当CPU模块接收到IO模块的响应之后就会轮询LCD模块,帧格式如图3-7所示:
图3-7CPU轮询LCD模块的命令帧格式
LCD模块收到CPU模块的轮询请求,就会做出响应。
LCD模块的响应帧格式如图3-8所示:
图3-8LCD模块的响应帧格式
3.3ADC模块设计
STM32内部有2个ADC,每个ADC是12位的逐次逼近型模拟数字转换器。
它有18个通道,可测量16个外部和2个内部信号源。
各通道的A/D转换可以单次、连续、扫描或间断模式执行。
ADC的结果可由转换完成中断处理或由DMA存储,通道的转换可以单次、连续、扫描或间断模式执行,转换结果以左对齐或右对齐方式存储在16位数据寄存器中。
通道采样时间可编程,总转化时间可缩减到1us,此外,多种转换模式供选择,支持DMA数据传输。
直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
无须CPU任何干预,通过DMA数据可以快速地移动,这就节省了CPU的资源来做其他操作。
直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
无须CPU任何干预,通过DMA数据可以快速地移动,这就节省了CPU的资源来做其他操作。
图3-9AD模块配置程序流程图
3.4IO模块
根据功能需要,IO模块的操作系统分为三个任务:
AppTaskCollect任务、AppFrameAnalyze任务和AppTaskMBTx任务。
AppTaskCollect任务主要负责采集特定IO口的状态,程序流程图如图3-10所示:
图3-10AppTaskCollect任务流程图
IO模块主要是负责数字量的采集,读取特定管脚的高低电平状态,将其存储在一个缓冲区内,待CPU查询的时候,将数据打包发给CPU。
IO模块的配置流程图同CPU模块流程图相同如图3-11所示。
图3-11程序流程图
3.5LCD接口电路
本实训设计触屏的设计方案,并且采用了320*240的ILI9320液晶显示屏,来显示采集的数据,因此首先选择了ADS7843的触摸屏接口芯片和ILI9320的控制芯片来实现此功能。
Ads7843触摸屏接口是TI公司生产的4线电阻触摸屏转换接口芯片,它是一款具有同步串行接口的12位取样模数转换器,在125kHz吞吐速率和2.7v电压下的功耗为750uW,而在关闭模式下的功耗仅为0.5uW。
因此,ADS7843以其低功耗和高速率等特性,被广泛应用在采用电池供电的小型设备上,ADS7843采用SSOP-16引脚封装形式,温度范围是-40--+85摄氏度。
LCD显示屏以其低功耗,具有字符和点阵显示功能,已广泛用于便捷式仪器,越来越多的应用到了各个领域。
很多微控制器电路芯片内集成有LCD控制器,可以直接驱动LCD显示,运算结果数据通过CPU处理转换后写入显示寄存器中,最后送到显示驱动单元输出。
不同的MCU母体来实现显示数据的产生方式各不相同。
利用LCD可以构建一个非常友好的人机交互界面。
FSMC(FlexibleStaticMemoryController,可变静态存储控制器))是STM32系列中内部集成256KB以上FlaSh,后缀为xC、xD和xE的高存储密度微控制器特有的存储控制机制。
之所以称为“可变”,是由于通过对特殊功能寄存器的设置,FSMC能够根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型以匹配信号的速度,从而使得STM32系列微控制器不仅能够应用各种不同类型、不同速度的外部静态存储器,而且能够在不增加外部器件的情况下同时扩展多种不同类型的静态存储器,满足系统设计对存储容量、产品体积以及成本的综合要求。
利用FSMC来驱动LCD可以保证数据的传输速度。
本系统设计的LCD显示模块采用的ILI9320液晶显示,ILI9320是手机常用的彩屏控制器,采用16bit并行总线方式,端口映射到DSP的IO空间,彩屏具有4个背光LED灯(控制端为LED1~LED4),采用三极管9012链接共阳极LEDA,是背光受控于DSP的PE3脚,若一段时间内未触摸屏幕,控制PE3脚为高,是背光熄灭,降低系统功耗,彩屏与4线电阻式触摸屏紧贴在一起。
本系统使用的LCD具有触摸功能,触摸屏控制芯片为ADS7483,。
ADS7843是一个内置12位模数转换、低导通电阻模拟开关的串行接口芯片。
供电电压2.7~5V,参考电压VREF为1V~+VCC,转换电压的输入范围为0~VREF,最高转换速率为125kHz。
ADS7843的引脚如图3-5所示:
图3-5ADS7843引脚图
触摸屏工作时,上下导体层相当于电阻网络,如图3-6所示。
当某一层电极加上电压时,会在该网络上形成电压梯度。
如有外力使得上下两层在某一点接触,则在电极未加电压的另一层可以测得接触点处的电压,从而知道接触点处的坐标。
比如,在顶层的电极(X+,X-)上加上电压,则在顶层导体层上形成电压梯度,当有外力使得上下两层在某一点接触,在底层就可以测得接触点处的电压,再根据该电压与电极(X+)之间的距离关系,知道该处的X坐标。
然后,将电压切换到底层电极(Y+,Y-)上,并在顶层测量接触点处的电压,从而知道Y坐标。
确定了触摸点的坐标便可以根据程序的设置去执行不同的功能。
控制器与LCD的接口原理图如图3-7所示:
图3-7控制器与LCD的接口原理图
此接口的管脚的功能如下:
PD6、PD5、PD4、PD3、PD15、PD14、PD13、PD12为数据总线低8位,PG15-PG9和PD7为数据总线高8位,这16个管脚组成完整的16bits位宽的数据总线,负责LCD和控制器之间的数据传输。
PD8为ili9320的片选端,PD9为传输命令/数据选择端,PD10为写操作,PD11为读操作。
X-,Y+,X+,Y-为触摸芯片的测量信号。
4硬件设计
任何系统都要求软硬件的密切配合,硬件可以增加系统软件的稳定性和灵活性,软件可以降低硬件的成本,两者是相辅相成的本系统的CPU模块、AD模块、IO模块、LCD模块组成。
STM32是选用来自于ARM公司具有突破性的Cortex-M3内核的32位闪存微控制器。
该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。
STM32的出现给MCU用户前所未有的自由空间,提供了全新的32位产品选项,结合了高性能、实时、低功耗、低电压等特性,同时保持了高集成度和易于开发的优势,再加上丰富的外设和有竞争力的价格,得到了市场上高度的认可,使得它成为众多商家的第一选择。
4.1CPU设计
STM32有两个系列增强型和基本型。
STM32F103是增强型系列,工作在72MHz,带有片内RAM和丰富的外设。
STM32F101是基本型系列,工作在36MHz。
两个系列的产品拥有相同的片内闪存选项,在软件和引脚封装方面兼容。
均可以用于显示、声音、存储和高级控制;兼有低功耗和多种省电工作模式,能够优化工业设备、物业控制设备、医疗设备和计算机外设等产品的性能。
本实训设计选用的STM32F103ZE类型的微处理器芯片,主要进行接受ADC模块采集的8路温度数据并进标度变化、接受I/O模块采集的8路数字量数据并且发送处理完的数据给LCD显示模块,并且让其进行显示。
STM32F103ZE微处理器的内部资源:
⏹MCU:
STM32103ZET6;(LQFP144脚,片上集成512Kflash、64KRAM;12BitA/D、D/A;PWM、CAN、USB、SDIO、FSMC等资源)
⏹256K*16BITSRAM,FSMC扩展,满足大容量数据采集、处理及分析等应用MBSPIFLASH芯片(AT45DB161),满足彩屏上丰富的图片存储、数据表格存储等应用
⏹2.8寸TFT真彩屏,FSMC控制,配置ADS7843触摸控制器.
⏹CAN接口,驱动器芯片TJA1050
具体内部结构如图4-1所示:
图4-1STM32F103ZE内部结构图
4.2电源设计
本设计硬件电路采用USB取电,接口电压5V500mA经过AMS1117转换3.3V工作电压给各部分电路供电。
电源提示灯D1(红色)、S1电源开关。
USB也可以和MCU这种通讯实验,D-、D+分别接PA11、PA12。
在电源电路的设计中由于外界提供的电压可能不是很稳定,可能含有低频、高频成分的杂波,需要电容、电感对其滤除。
在此电路设计中选择的芯片是型号为AMS1117的稳压器,AMS1117器件引脚上兼容其他三端SCSI稳压器,提供适用贴片安装的SOT-223,8引脚SOIC,和TO-252(DPAK)塑料封装。
在最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。
如图4-2的电路设计,首先是5V电压源的接口电
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工业 控制器 赵志旭实训 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)