3401赵斌基于单片机的卷曲纠偏系统的设计Word下载.docx
《3401赵斌基于单片机的卷曲纠偏系统的设计Word下载.docx》由会员分享,可在线阅读,更多相关《3401赵斌基于单片机的卷曲纠偏系统的设计Word下载.docx(45页珍藏版)》请在冰豆网上搜索。
本文论述了一种由Cortex-M3控制器组成的具有自动模式和手动模式的纠偏系统。
该系统由光电传感器电路、时钟和复位电路、TFT触摸屏电路、控制输出电路和处理器模块构成。
通过光电传感器检测边线的位置,拾取边线位置偏差信号,当发现出现偏差时,启动PWM信号和方向信号控制输出电路输出,及时纠正位置偏差。
系统使用TFT显示屏对系统工作状态、工作模式进行显示,使用触摸屏界面上的按钮对工作模式、手动模式下左移和右移进行切换。
同时系统还有左、右限位开关,起到防止系统失控的作用。
关键词:
自动控制,Cortex-M3,纠偏系统
Abstract
Withthedevelopmentofindustrialproduction,automationofproductionlineshavebecomeincreasinglydemanding.Inautomatedproductionlines,thecorrectionsystemisparticularlyprominentrole,hismainroleistodetectwhetherthematerialproductionlineoffsetwhenoffsetcorrectionsystemcanadjustthematerialcontrol,toreturnittoitsnormalposition,inordertoensurewinding,slittingandtidy.
ThispaperdiscussesaCortex-M3controllercorrectionsystemwithautomaticandmanualmodes.Thesystemusesthepositionofthephotoelectricsensordetectsedges,pickuptheedgepositiondeviationsignaltostartthePWMsignalandthedirectionsignalcontroloutputcircuitoutput,andpromptlycorrectpositiondeviationwhenthedeviation.SystemusesTFTscreendisplaysystemstatus,operatingmode,usethebuttonsonthetouch-screeninterfaceontheoperatingmode,manualmodetoswitchtheleftandtheright.Systemaswellastheleftandrightlimitswitch,playaroletopreventthesystemoutofcontrol.
Keywords:
Automaticcontrol,Cortex-M3,thecorrectionsystem
第1章 系统总体设计
1.1系统背景及意义
随着现代科学技术水平的不断提高,工厂生产自动化水平也越来越高。
目前,物料的放卷、收卷、传送等操作已基本实现自动化,然而在生产流水线中经常会因为各种原因导致物料在传送过程中产生偏差,比如物料在放卷、收卷、传送时会发生纵向偏移;
物料在前后进行拼接的过程中,可能前后拼接不整齐等等[1]。
这些问题在工业生产中都是不允许出现的,所以我们需要设计一套具有自动纠偏功能的控制系统。
1.2设计任务及要求
设计一纠偏控制系统,跟踪输送过程的产品物料的标志线或者边缘线,对此过程中的位置偏移进行修正,保证物料在卷绕、分切时的整齐性。
该系统可以自动检测,并对出现的偏差进行修正,同时还具有手动调整的功能。
设计的纠偏控制系统具有自动跟踪、检测、纠偏等功能。
系统采用STM32单片机实现,通过光电传感器检测标志线和边缘线,对出现的偏差发出信号,TFT屏显示系统工作状态,工作模式,触摸屏控制系统的工作模式,手动模式下微调物料。
1.3系统总体设计方案
系统工作原理:
光电传感器检测物料的边缘线和标志线,获取位置的偏差信号,当该信号超过一定值后,处理器识别并逻辑运算,然后启动位置纠偏控制执行装置对物料进行位置调整,直到物料回到正常位置,系统停止纠偏控制执行装置。
纠偏控制执行装置通过脉冲信号和方向信号控制,系统工作状态通过显示屏显示,手动调整操作通过触摸屏实现。
系统采用了STM32F103处理器,结构框图如下图所示,由光电传感器电路、时钟和复位电路、TFT触摸屏电路、控制输出电路和处理器模块构成。
其中光电传感器电路检测物料是否超出边界,当超出边界的时候,发出控制信号。
在系统控制中需要两种电源,分别是3.3V和5V,3.3V用于驱动TFT触摸显示屏电路,5V用于驱动光电传感器电路和控制输出电路,所以电源电路为系统提供这两种所需的电源。
TFT触摸屏电路是系统的人机接口电路,通过TFT触摸屏可以显示系统状态、系统工作模式(自动模式或者手动模式)、以及在手动模式下通过触摸左右按键来控制输出。
作为系统的核心,STM32F103在工作中检测光电传感器信号,当信号有效时,配置参数控制电路输出信号,同时控制TFT触摸屏显示系统状态和工作模式。
图1系统结构框图
第2章 系统硬件各模块设计
2.1STM32简介
STM32系列单片机是为高性能、低成本、低功耗的嵌入式Cortex-M3内核。
按性能分成两个不同的系列:
STM32F103“增强型”系列和STM32F101“基本型”系列。
增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;
基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。
两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。
时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz[2]。
STM32的I/O接口的驱动电压为2.0-3.6V,内部有经过调校的RC振荡电路40kHz和8MHz,用于CPU的锁相环PLL。
时钟RTC采用32kHz晶振。
STM32具有DMA控制器,总共有12个通道。
分别包含有,USART,DAC,SPI,定时器,ADC,I2C。
A/D转换器有2个,12位精度,采样时间都是us级,采样电压在0-3.6V,具有双采样和保持能力。
STM32集成一个内部温度传感器,通过A/D采用可以获取,不过温度的精度不高。
STM32具有高达112个的Fast的I/O端口,根据型号有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16个外部中断向量。
I/O端口都可以接受5V电压。
具有11个定时器,16位的定时器4个,每个有4个独立的IC/OC/PWM或者脉冲计数器。
6个通道能配置成PWM输出,还具有2个看门狗定时器,Systick定时器,24位倒计数器,2个16位基本定时器用于驱动DAC。
通信接口包括有2个I2C,5个USART,3个SPI,CAN总线(2.0B),USB2.0[3]。
本文采用的STM32F103属于STM32F103xx,起特点有如下:
STM32F103xx集成Flash和SRAM存储器,具有ARMCortex-M3内核。
内置多达128KB的嵌入式Flash,存储程序和数据。
配置时钟具有多个预比较器可以用于配置AHB频率,包括高速APB(PB2)和低速APB(APB1),高速APB最高的频率为72MHz,低速APB最高的频率为36MHz。
启动模式:
通过手动选择BOOT0和BOOT1的连接方式可以从不同的模式启动。
STM32有三种启动模式,分别为:
用户Flash,系统存储器,SRAM。
当开关P1的BOOT0为0时,系统从用户Flash启动;
当BOOT0为1时,BOOT1为0时,系统从系统存储器启动;
当BOOT0为1时,BOOT1为1时,系统从SRAM启动[4]。
2.2STM32结构
STM32F103xx的总体结构框图如图2-1所示。
内部总线和两条APB总线将片上系统和外设资源紧密地连接起来,其中内部总线是主系统总线,连接了CPU、存储器和系统时钟等。
APB1总线连接高速外设,APB2总线连接系统通用外设和中断控制[5]。
I/O端口包括PA、PB、PC、PD、PE、PF和PG七个16位的端口,其它的外设接口引脚都和I/O端口的引脚作用复用,图中的AF即表示作用复用引脚。
STM32F103xx的总体内核结构图如图2-1所示:
图2-1STM32F103xx内核结构图
2.3STM32处理器硬件电路设计
这是STM32的最小系统原理图,复位引脚NRST接一个10K电阻到VCC,接一个104的电容到地,即可构成上电复位的电路。
OSC_IN和OSC_OUT之间连接一个8MHz晶振,晶振两端分别对地连接接20pF电容,即构成单片机的外部振荡时钟电路。
OSC32_IN和OSC32_OUT之间连接32.768kHz晶振,22pF的C1和C2电容连接在晶振和地之间,这个晶振是为系统内部时钟,即万年历时钟源。
P1为STM32启动模式选择开关,P1的3脚和4脚,通过10k电阻分别连接CPU的BOOT1管脚和BOOT0管脚,P1的1、2脚连接3.3V电平,5、6脚接地,通过手动选择BOOT0和BOOT1的连接方式可以从不同的模式启动。
当BOOT0为1时,BOOT1为1时,系统从SRAM启动。
电路图如图2-2所示。
图2-2STM32最小系统原理图
2.4电源电路设计
CPU内核电源为3.3V,触摸显示屏也为3.3V,其他外设电路5V,电源有两种不同的电源,所以需要设计一个电源供电电路为CPU、触摸显示屏和外设供电。
供电电源电路由USB接口供电,如图2-3所示。
电路中连接了两个USB,一个USB_232接口连接USB转串口芯片,作为系统在开发时调试输出用;
一个USB接口为USB设备的接口。
S2为电源开关,AMS1117-3.3芯片是集成稳压芯片,芯片把从USB取得的5V电压转换输出为3.3V电压[6]。
3.3V电压连接了R21电阻和发光二极管D1,用于指示电源电路工作状态。
电路中C14、C15、C16、C17为电源的滤波电路,提高电源系统的抗干扰能力。
AMS1117-3.3稳压芯片输出的3.3V,供给STM32和触摸显示屏使用。
图2-3电源电路原理图
2.5光电传感器电路设计
光电传感器输入电路用到的硬件有限位开关,光电传感器。
限位开关是一种控制元件,它利用生产机械某些运动部件的碰撞来发出控制指令的主令电器,在本套系统中作为安全开关使用,当材料超出所定界限时,进入中断,产生警告信息,通知操作人员。
光电传感器是一种能把光量的变化转换成电量变化的器件。
它利用被检测物体对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的。
光电传感器把检测的信号通过输出口供给给单片机,让单片机控制步进电机,调整物料位置。
传感器与单片机接口电路如图所示:
图2-4光电传感器检测电路
图2-4为光电传感器电路图,G1A和G2A两个光电传感器的电源与电源VCC相连,GND与地线相连,信号输出端分别经过5.1k的限流电阻后,与IC2光耦连接,光耦的输出端经过5.1k上拉电阻拉高,同时输出端还与,输出端与单片机的PB0端和PB1端相连。
电路中当光耦输入端为高电平时,光耦内部二极管导通,射级输出端导通,单片机检测到电平为低电平。
当光耦输入端为低电平时,光耦内部二极管截止,射级输出截止,单片机检测到的电平为高电平。
系统默认时低电平有效。
光耦在电路具有隔离作用,提高了系统的稳定的性。
2.6TFT触摸屏电路设计
2.6.1TFT显示屏
TFT-LCD即薄膜晶体管液晶显示器,主要用于显示文本及图形信息。
液晶显示模块是一种将液晶显示器件、连接件、集成电路线路板、背光源等装配在一起的组件。
液晶显示屏具有轻薄、体积小、功耗低、易于彩色化、画质高而且不易闪烁灯有点[5]。
TFT-LCD也被叫做真彩液晶显示器。
TFT液晶显示屏的特点是亮度好、对比度高、层次感强、颜色鲜艳,但也存在着比较耗电和成本过高的不足。
TFT型的液晶显示器主要的构成包括:
萤光管、导光板、偏光板、滤光板、玻璃基板、配向膜、液晶材料、薄模式晶体管等等。
我们这里使用的一种ILI9320模块有如下特点:
显示屏的大小2.8寸,分辨率320×
240,16位真彩色,自带有XPT2046芯片的触摸屏,16位并行的通用的接口,触摸屏数据通过SPI接口。
该模块采用的控制器为ILI9320。
触摸屏显示模块采用80并口方式与外部连接,采用16位数据线该模块的80并口有如下一些信号线:
CS:
触摸屏显示片选信号。
WR:
向触摸屏显示写入数据。
RD:
从触摸屏显示读取数据。
D[15:
0]:
16位双向数据线。
RST:
硬复位触摸屏显示。
RS:
命令/数据标志(0,读写命令;
1,读写数据)。
触摸屏显示模块的RST复位信号线与STM32的复位脚相连接,触摸屏显示的背光控制需要IO口来控制触摸屏显示的背光。
触摸屏显示总共需要的IO口数目为21个。
模块的控制器为ILI9320,该控制器自带显存,其显存总大小为172820(240*320*18/8),即18位模式(26万色)下的显存量。
模块的16位数据线与显寸的对应关系为565方式,如下图所示:
图2-5TFT显示屏数据与显存关系
在计算机中,常见的颜色有8位、16位、24位、32位色,其中24位及以上称为真彩,我们这里使用的是16位,最低5位代表蓝色,中间6位为绿色,最高5位为红色。
数值越大,表示该颜色越深。
我们这里使用的是RGB模式,RGB色彩就是常说的三原色,R代表Red(红色),G代表Green(绿色),B代表Blue(蓝色)。
2.6.2触摸屏
我们常用液晶的触摸屏,大都是电阻式触摸屏了,电阻屏与现在手机流行的电容优势在于,操作稳定性好,需要一定力度才能触发事件,适合控制工业场合。
TFTLCD自带的触摸屏属于电阻式触摸屏,下面简单介绍下电阻式触摸屏的原理。
电阻式触摸屏利用压力感应进行控制。
电阻触摸屏的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层、它的内表面也涂有一层涂层、在他们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘[8]。
当触摸屏幕时,两层导电层在触摸点位置就有了接触,电阻发生变化,在X和Y两个方向上产生信号,然后送触摸屏控制器。
控制器侦测到这一接触并计算出(X,Y)的位置,再根据获得的位置模拟鼠标的方式运作[9]。
这就是电阻触摸屏技术的原理。
电阻触摸屏的有,不怕灰尘、水汽和油污;
可以用任何物体来触摸,可以用来写字画画;
电阻触摸屏的精度只取决于A/D转换精度等优点。
触摸屏都需要一个AD转换器,一般来说是需要一个控制器。
触摸屏显示模块选择的是四线电阻式触摸屏,这种控制芯片的种类有比较多,如:
ADS7846AK4182、XPT2046、ADS7843、和TSC2046等等。
这几款芯片的驱动基本上是一样,且封装也一样,很方便实现替换。
触摸屏显示模块自带的触摸屏控制芯片为XPT2046。
XPT2046是一款4导线制触摸屏控制器,内含12位分辨率125KHz转换速率逐步逼近型A/D转换器[10]。
XPT2046支持从1.5V到5.25V的低电压I/O接口。
XPT2046能通过执行两次A/D转换查出被按的屏幕位置,除此之外,还可以测量加在触摸屏上的压力[10]。
内部自带2.5V参考电压可以作为辅助输入、温度测量和电池监测模式之用,电池监测的电压范围可以从0V到6V。
XPT2046片内集成有一个温度传感器。
在2.7V的典型工作状态下,关闭参考电压,功耗可小于0.75mW。
工作温度范围为-40℃~+85℃[10]。
2.6.3电路设计
TFT触摸显示屏电路如图2-6所示。
触摸屏和显示屏集成在一个模块中,模块接口如电路中LCD1接口。
引脚定义如下:
LCD_CS:
LCD_WR:
LCD_RD:
从触摸屏显示触显示CD读取数据。
LCD_D[15:
RESET:
LCED_RS:
LCD_BL:
触摸屏背光源的控制引脚。
T_MISO:
触摸屏串行数据输出端。
T_MOSI:
触摸屏串行数据输入端。
T_SCK:
触摸屏时钟信号端。
T_CS:
触摸屏片选端。
T_PEN:
触摸屏中断输出端。
图2-6触摸显示屏接口电路
LCD的控制信号线LCD_CS连接STM32的PC9管脚,LCD_RS连接PC8管脚,LCD_WR连接PC7管脚,LCD_RD连接PC6管脚。
触摸屏的数据总线T_MISO触摸屏串行数据输出端连接STM32芯片的PC2管脚,T_MOSI触摸屏串行数据输入端连接STM32芯片的PC3管脚,T_SCK触摸屏时钟信号端连接STM32芯片的的PC0管脚。
T_CS触摸屏片选端STM32芯片的的PC13管脚,T_PEN:
触摸屏中断输出端连接STM32芯片的的PC1管脚。
电路中C12、C13为3.3V和5V电源的滤波电路。
2.7控制电路设计
2.7.1PWM简介
PWM是PulseWidthModulation的缩写,中文意思就是脉冲宽度调制,简称脉宽调制[11]。
它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此研究基于PWM技术的正负脉宽数控调制信号发生器具有十分重要的现实意义[12]。
目前,运动控制系统或电动机控制系统中实现PWM的方法主要有传统的数字电路方式、专用的PWM集成电路、单片机实现方式和可编程逻辑器件实现方式。
2.7.2STM32的PWM模式
脉冲宽度调制模式可以产生一个由TIM1_ARR寄存器确定频率、由TIM1_CCRx寄存器确定占空比的信号。
在TIM1_CCMRx寄存器中的OCxM位写入“110”(PWM模式1)或“111”(PWM模式2),能够独立地设置每个通道工作在PWM模式,每个OCx输出一路PWM。
必须通过设置TIM1_CCMRx寄存器OCxPE位使能相应的预装载寄存器,最后还要设置TIM1_CR1寄存器的ARPE位使能自动重装载的预装载寄存器(在向上计数或中心对称模式中)。
因为仅当发生一个更新事件的时候,预装载寄存器才能被传送到影子寄存器,因此在计数器开始计数之前,必须通过设置TIM1_EGR寄存器中的UG位来初始化所有的寄存器。
OCx的极性可以通过软件在TIM1_CCER寄存器中的CCxP位设置,它可以设置为高电平有效活和低电平有效。
OCx输出通过CCxE、CCxNE、MOE、OSSI和OSSR位(在TIM1_CCER和TIM1_BDTR寄存器中)的组合控制。
在PWM模式(模式1或模式2)下,TIM1_CNT和TIM1_CCRx始终在进行比较,(依据计数器的计数方向)以确定是否符合TIM1_CCRx≤TIM1_CNT或者TIM1_CNT≤TIM1_CCRx。
根据TIM1_CR1寄存器中CMS位的状态,定时器能够产生边沿对齐的或中央对齐的PWM信号。
PWM边沿对齐模式
向上计数配置
当TIM1_CR1寄存器中的DIR位为低的时候执行向上计数。
当TIM1_CNT<
TIM1_CCRx时PWM参考信号,OCxREF为高,否则为低。
如果TIM1_CCRx中的比较值大于自动重装载值(TIM1_ARR),则OCxREF保持为“1"。
如果比较值为0,则OCxREF保持为“0"。
图2-7为TIM1_ARR=8时边沿对齐的PWM波形实例。
图2-7边沿对齐的PWM波形(APR=8)
向下计数的配置
当TIM1_CR1寄存器的DIR位为高时执行向下计数。
在PWM模式1,当TIM1_CNT>
TIM1_CCRx时参考信号OCxREF为低,否则为高。
如果TIM1_CCRx中的比较值大于TIM1_ARR中的自动重装载值,则OCxREF保持为“1"。
该模式下不能产生0%的PWM波形。
PWM中央对齐模式
当TIM1_CR1寄存器中的CMS位不为00时为中央对齐模式(所有其他的配置对OCxREF/OCx信号都有相同的作用)。
根据不同的CMS位的设置,比较标志可能在计数器向上计数时被置1、在计数器向下计数时被置1、或在计数器向上和向下计数时被置1。
TIM1_CR1寄存器中的计数方向位(DIR)由硬件更新,不要用软件修改它。
图2-8给出了一些中央对齐的PWM波形的例子,TIM1_ARR=8,PWM模式1,TIM1_CR1寄存器中的CMS=01,在中央对齐模式1时,当计数器向下计数时标志被设置。
图2-8中央对齐的PWM波形(APR=8)
2.7.3控制输出电路设计
在系统控制中,当检测到物料超过边缘线时,步进电机慢速运动,控制物料恢复到正常位置后步进电机停止运转。
这个过程中,STM32通过输出PWM波形来驱动步进电机。
定时器输出的PWM波形控制步进电机动作,步进电机带有驱动器,这里只需要一个方向信号Dir和PULSE信号,当Dir等于1的时候,步进电机正转,当Dir等于0的时候,步进电机反转。
输出的PULSE信号给步进电机驱动器驱动步进电机动作。
步进电机驱动器需要的电压为5V。
输出控制电路如图2-9所示,电路图中PULSE信号和Dir信号经过OC门反相器74LS06芯片,芯片的输出先经过R19和R20电阻上拉到5V,R22和R23电阻为限流电阻。
JP5为步进电机驱动器的接口。
图2-9控制输出电路原理图
第3章
系统编程环境搭建及软件设计
3.1系统软件设计
系统软件设计主要有主程序设计、人机接口软件设计和控制输出软件设计。
其中主程序设计的流程图如下图所示,首先初始化STM32的I/O管脚、处理器工作频率、定时器,接着初始化控制输出归零、TFT触摸屏初始化、显