基于stm32超声波测距(9篇)
1.基于stm32超声波测距 篇一
摘要
随着科技的快速发展,人们对于超声波的认知已经变的越来越普遍,在近几年来超声波应用技术已经变得成熟起来了,超声波具有定向性、穿透性、反射性以及对于某一方向的集束性等特点。所以,超声波测距技术在此应运而生,超声波测距技术是运用超声波在空气中、水中、固体之间的传播特性来对周围环境的进行测量。本文对超声波测距进行了简介,通过单片机在空气中发射超声波,并且反射回收,分析声波的状况,然后得出障碍物的信息,还介绍了单片机的性能和特点,及超声波测距构想的主要参数和设计,通过一系列的子程序的运算得出被测物体的距离。
关键词
单片机;
超声波;
测距
目录
摘要
第一章:绪论
1.1超声波简介
1.2对于测量方面的简介
1.3 单片机简介 第二章:基本构造
2.1测距原理
2.2 常见超声波传感器
2.3系统参数
2.3.1工作频率
2.3.2 超声波的速度
2.3.3 脉冲的宽度
2.3.4 测量盲区
第三章:硬件的设计
3.1 发射电路
3.2 接收电路
3.3 单片机系统和显示电路
第四章:软件的设计
4.1算法设计
4.2主程序
4.3发射中断程序
4.4接收中断程序
4.5 显示子程序
4.6 距离计算子程序
结束语 参考文献
谢辞
绪论
超声波是一种频率高于2000hz的声波,它具有方向性好,穿透力强,集束性好等众多优点,因此,在近十年的时间中,超声波应用技术得到了很大的发展,超声波是一种基于物理,电子,机械的技术,超声波通过声波的发射、传递、反射、接收的过程完成对物体的测距技术,它可以利用超声波在介质中的传播特性来对密度、湿度、强度、缺失的物体进行测量,其实际原理主要是声波在传播过程中遇到不同的物体,产生了反射、折射、衰减等现象,从而使传播的超声波振幅、波形、频率发生了变化,通过测量这些变化数据,便可得到物体的内部构造情况或距离。它与以前的超声使用技术完全不一样,这种超声波测距技术拥有很多优秀的特点:它可以在不破坏物体结构的情形下进行一种非接触式的测距,探测环境能力极佳,同时也可以进行距离测量。
1.1超声波简介
普通人耳可听到的声波是一种频率为20Hz~20kHz的声波,即为可听声波,对于超出此频率范围的声音,我们把频率高于20000hz的声波称为“超声波”,频率低于20hz的声波称为“次声波”,超声波主要有一下几个优点:
(1)超声波可在气、液、固中传播。在传播的时候,有较强方向功能和能量。
(2)超声波可以传递很强的能量,并且可以对于一些物体进行粉碎处理。
(3)超声波容易产生反射、衰落、等现象,并且容易携带有关物体内部情况的信息。
因此,我们可以利用用超声波共振的特性做成超声波传感器。声波在空气中的速度约为每秒340 米,所以超声波的应用技术在生活中会变得非常简单。
1.2 对于测量方面的简介
超声波测量技术近代在物理、医学、航空、工业、生活等诸多方面有了广泛的运用,它不仅能检测潜藏的安全隐患,还可以为人们治愈疾病,并节约能源、降低成本的作用。超声波和其他的电磁波、光波等的区别,是它拥有了超强的穿透功能。正因为超声波的频率大于20khz,所以超声波成为了一种特殊声波,不仅具有普通声波的反射、传播、扩散、衰减等特性,还具有穿透里强,集向性好的特点,在遇到不同介质可以反射大部分能量,可以是声波检测变得更加方便、迅速。于是,超声波测量技术广泛地在汽车入库、B超检测、方向测距或者施工工地等场合进行使用。
超声波传播时,通过不同物体对声波的反射,用来测量和检验的技术称为超声检测。超声波以脉冲的形式在介质中传播时,会有反射的现象出现,利用这一原理可以对钢材等固体介质进行探测检验;在医学上,可以用于人体的检测,并对疾病进行治愈(如:胆结石)。超声波的共振特性,它可以用于测量轮船底部的腐蚀程度。超声波的衰减特性,可以测出各种材料的特性和功能。若超声波探测到物体时,它可以用来测量运动速度。若以超声波为载体时,可以将它制成水中电话。超声波还可以利用他的特点来检测温度和不合格的物体等。
由于超声波可以在任何介质中传播,我们可以用来了解一些特殊物体的变化,运用超声波技术的设备会变得结构更加简便、成本低廉、使用方便,随着科技的发展,超声波技术会得到广泛的运用。
1.3 单片机简介
计算机迅速的发展,单片机技术也得到了一定的研究,并且逐步称为一门新的技术,对于它的运用也变得成熟起来,特别在这几年中单片机在生产方面形成了重量级的作用。
单片机是一种微型计算机,主要用于控制技术,所以也可称为微型控制器(Microcontroller Unit)。单片机是一块集成电路芯片,它将所有功能集成在一块芯片上,称为单片机(Microcontrollers)。
单片机基本组成部分是中央处理单元、存储器、输入/输出接口、总线、中断系统。
单片机封装图 基本构造
2.1 测距原理
单片机超声波测距是通过不断对发射出的超声波的反射回波的检测,从而测出发射和回收的平均时间差t,然后根据S=Ct/2(C为超声波实际波速),在测量过程中有很多因素影响测距结果:超声波幅度、反射的地域、声波之间的夹角和接收器的灵敏度。
表2-1 温度与波速的关系表
超声波属于声波其中对于声波影响最大的当属于温度的变化。所以当测距的时候必须根据不同的温度来对应出不同的速度,然后可以得出较为精确的距离。
2.2常见的超声波传感器
超声波传感器是一种能将其他能量转变成特定频率的超声波或者将其转化成同频率的其他能。现在的超声波传感器主要分为两种:电声型和动力型。其中压电传感器和静电传感器,属于电声型,动力型可以分为气体和液体。因为传感器工作目的的不同,所以超声波传感器的具体结构可以是不一样的的,各自的器材名称也可以是多样化的。
压电传感器是电声型,零件包括是压电晶片、楔块、接头,是超声波检测中经常见到的电能和声能相互转换的传感器。其中组成压电传感器的材料又可以分为压电陶瓷和近体两种,前者属于锆钛酸铅。而近体则由石英组成。
传感器中的压电晶片受到脉冲激发后产生震动,发出声波脉冲产生逆压电效应,从而用于超声波的发射。当超声波作用时,晶片受到震动引起形变转化成电信号,这就是压电晶体的正压电效应,用于超声波的接受。超声波传感器通常采用双压电陶瓷晶片制成,因为它的耗材少,价格便宜,且对于气体和液体有较强的实用性。
双压电晶体适用与超声波传感器,由AB两个部件构成,当AB之间有交流电压时,若电场方向与极化方向相同时,则方向相反,因此,AB伸缩,形成超声波振动如图 2-1 所示。
内部电路图
传感器内部的压电陶瓷晶片有一个中心频率,在超声波发射时,交流电
压会与他的震动频率相同。
2.3 系统参数
2.3.1 工作频率
传感器的工作频率是测距的主要参数,它的变化影响了声波的传播、反射、吸收等因素。
工作频率大部分由这几点决定的:
(1)当测距要求过高时,声波的损失就会增大,因为介质的吸收和声波的频率比例成正比,所以要降低工作频率。
(2)工作频率变得高,对传感器的方向性,要求是越尖锐则测量结果越准确,因此测量复杂的物体,工作频率要提高。
(3)频率越低对于传感器的尺寸变得越大,技术也越困难,安装的地方也需要更多的空间。
所以,超声波传感器应选择量程中等,工作频率40khz的传感器。
2.3.2 超声波的速度
声速的精确性决定了测距仪的数值的准确,声波随着介质的温度、压力而改变。声速的计算公式为V=331.4+0.607T(mm/ms),T代表了温度的变化,由于实验是在室内,所以超声波的传播速度通过计算公式得出340m/s。
2.3.3脉冲宽度
测距仪的发射脉冲有了一定的测量盲区,同样影响了测量的精度,如果减小发射脉冲宽度,可以提高测量精度,减小测量盲区,同时存在着回收的不便。反之,增大脉冲宽度,则可以使回收变得越发容易。
但在具体的实验中,通过比较了三种脉宽:24μs(1 个 40KHz 脉冲),48μs(2个 40KHz 脉冲),240μs(10 个 40KHz 脉冲),实验结果得知,还是48μs(2个 40KHz 脉冲)的脉冲宽度对于实验更准确。
2.3.4测量盲区
由于脉冲发射器的本身具备了一定的宽度,还有放大器的阻塞,在接近发射脉冲的一段时间内,有一定的缺陷不能呗发现,这被称为盲区。
3硬件的设计
测距仪硬件部分由系统和显示电路、发射电路和接收电路组成。单片机采用的是89S51系列。采用了高精度的晶振,用来获得较为稳固的频率,减少测量误差。单片机用P1.0接口,输出超声波换能器需要的40KHz的信号,使外中断0口监测接收电路输出的返还信号。显示电路则采取4为LED共阳数码管,段码采取74LS245驱动,位码采取PNP三极管9012驱动。
3.1 发射电路
发射电路图如3-1所示,发射电路由反向器74LS04和换能器T所组成,单片机P1.0端口输出40kHz信号,途经一级反向器然后送到超声波换能器的一个电极,另一路经过两级反向器后送到超声波换能器的另一个电极。用这种形式将方波信号送到换能器两端,从而提高了超声波发射的强度。为了提高效率,可以让俩个输出端并联,电阻R10、R11可以提高反向器74LS04输出高电平的驱动效果,还可以提高了超声波换能器的阻尼效果,使其缩短自由振荡的时间。
发射电路原理图
3.2 接收电路
接收电路图
超声波在遇到障碍物反射时,进过接受放大器后,产生了一个低电平信号,通过这个信号触发了单片机的外部中断,然后停止计时,并计算出超声波在介质中的传播时间。
图中的接受电路主要由集成电路、电阻、电感组成。可以按照用处的不同转变电阻、电容,从而改变了电路的灵敏度。
3.3 单片机的系统和显示电路
单片机采取的是AT89S51系列。采用12MHz高精度的晶振,从而有了较为稳固的时钟频率,减少了测量误差。单片机用P1.0端口输出超声波换能器所需的40KHz方波信号,然后利用外中断0口检测超声波接收电路的返回信号。显示电路采取了4位共阳LED数码管,段码采用74LS245驱动,位码采用PNP三极管9012驱动。如图3-4所示 软件的设计
超声波测距器的软件部分由主程序、超声波发生子程序、超声波接收中断程序和显示子程序构成的。因为汇编语言程序有很高的效率,而且可以准确的计算出程序运行的时间,所以可以运用它计算出准确的距离和实际的运行时间。
4.1 算法设计
超声波测距的原理是超声波的发出器t发出一个超声波信号,声波遇到被测物体然后反射回来,被接收器收到,单片机测出超声波的在外发射的时间,从而算出与物体与测距一起的距离,具体的计算公式为d=s/2=(c×t)/2。D为实际距离,S为来回的路程,C为外界温度下的声速,T为来回接收的时间。
4.2 主程序
主程序首先对系统进行初始化,t0设置为16位计数模式,总是允许中断为清零,之后超声波子程序发出一个脉冲,避免超声波通过接收器进行直射波的触发,从而需要延迟0.1ms,才可以打开外中断,其中计数器T0中的数值可以用公式d=s/2=(c×t)/2=172T0/10 000 cm 计算,T0为计数器T0的计数值,测出结果后传送到LED显示,0.5s后再次发出超声波进行重复测量,如图4-1所示。
开始系统初始化开启T0调用显示子程序测距成功标志位为1?Y禁止中断N调用计算距离子程序允许中断标志位清零显示结果0.5秒开启T0
4.3 发射中断程序
超声波发生子程序是通过P1.0端口发出2个超声波脉冲信号(一种具有40kHz的方波信号),脉冲宽度12μs,同时T0当即进行计时。如图是T0中断程序和T1中断程序的流程图。
保护现场重写TO开T1中断开启TO,T1返回
T0中断程序流程图
P1.0取反R4-1→R4NR4=0?Y关闭T1R4←4开启外部中断0返回
T1中断程序流程图
4.4 接收中断程序
超声波测距仪应用外中断检测返回的超生波信号,一旦接到信号,当即进入中断程序,计时器终止计时,并将测距标记位为1。表示是成功的。
如果没检测到回返信号,T0溢出中断会关闭,系统自动标记为2,表示是失败的。
关闭计数器读取TO的值置测距成功标志位为1返回
4.5 显示子程序
首先进行动态显示初始化,然后指针进行选位,选取显示的数,将其变成段码,然后送入段控制器,再进行延时,判断是否是最后一位和是否显示完毕,如果没有则继续修改缓冲区的指针和位码。
动态显示初始化位选-7FH选通数码管读要显示的数位选字右移一位送位选码到数码管修正地址指针显示完毕Y返回N 显示子程序流程图
4.6 距离计算子程序
为了降低编写程序的难度,将计算公式d=(C×t)/2=172×T0/10000 cm,简化为d=17×T0/1000 cm,然后进行两字节无符号数乘法程序,然后调用两次四字节/两字节无符号数除法程序,最后将数据转换成BCD码进行显示。
将要计算的数移入处理单元调用两字节无符号数乘法程序调用两次四字节/两字节无符号数乘法程序将计算所得数转化成十进制BCD码将BCD码移入被显示的单元返回
计算距离子程序
5结束语
近年来,超声波测距技术已经进入了普遍化的应用,国内的测距技术多数使用的是集成电路,这使得仪器的成本价值变得很高。然而以单片机为中心的测距仪可以弥补这一缺陷,并且可以进行显示和报警等多种功能的应用,并且操作十分简单,稳定,本文通过具体的介绍了一种基于单片机的超声波测距仪,简述了,超声波的原理、应用和具体的实现方式。使单片机技术得到了充分的利用,体现了它在控制、操作等领域的优点。
在一个学期的学习过程中,我逐步的了解了单片机的原理,对于超声波的认识,并且在设计的过程中得到了很多的知识,不仅让我将书本上的东西得以应用,还锻炼了我思考问题的能力,并且开扩了我的视野,使我以后学习的过程中具有了一定的经验。
6谢词
首先感谢我的指导老师陈远老师,在设计的过程当中,给予了我悉心的引导和耐心教导。当我遇到问题时,陈老师会指导我如何解决问题的方法,提供我很多思路和专业方面的知识。陈老师会提供我一些资料,也会指点我在哪可以找到更多的资料源。
在探讨问题和解决问题时,老师给了我悉心指导,在他的帮助下,我的毕业设计得以顺利完成。在整个毕业设计中,老师细心的教导,严谨的治学态度,和丰富的专业知识深深的感染我,在我心中留下深刻印象。
在以后的工作与生活中,我将时刻铭记老师的教导,并且会更加积极、努力的学习的。
2.基于stm32超声波测距 篇二
关键词:运动物体,图像跟踪,单片机,STM32
运动目标的图像识别与跟踪是基于动态图像分析的基础上结合图像识别和图像跟踪方法对图像的序列中的目标进行检测识别跟踪的过程, 它是图像处理与机器视觉领域中一个非常活跃的分支, 在最近的二十年间, 随着计算机技术、V L SI技术与高分辨率传感器技术, 图像处理技术的迅速更新, 它在国民经济和军事领域的许多方面有着广泛的应用[1]。
目前图像跟踪的硬件平台主要基于PC、DSP、FPGA, 其中大多用PC机仿真, 而实际的图像跟踪也多用DSP、FPGA或两者结合来实现, 而采用单片机实现图像跟踪很少。PC、DSP、FPGA有着速度快的优势, 但也存在成本高、不便于升级的不足。近年来单片机的应用越来越广泛, 且价格不断下降, 性能更强、功耗更低, 将其运用在图像跟踪上是一个大胆的尝试。基于32位单片机的图像跟踪系统具有成本低廉、低功耗、便携的优点。本文将介绍一种用STM32单片机实现的图像跟踪系统, 以较低的成本实现了慢速物体的简单跟踪, 使得图像跟踪系统成本低廉、扩展性好。可应用于对速度、图像质量要求不高的场合[2]。
1 系统总体设计
1.1 总体结构
系统由硬件和软件组成。硬件包括三大部分:传感器、控制板、执行机构, 是实现系统功能的平台。软件包括图像获取显示程序、图像处理与跟踪程序、云台控制程序, 他们协调各部分硬件使之正常运作。
1.2 硬件设计
图像系统的硬件有:作为控制中心的控制板、作为传感器的数字摄像头、作为执行机构的云台, 同时为了便于调试和观察实验效果, 控制板还应配有LCD模块。摄像头和云台通过接口连接在控制板上, 而控制板上微控制器IO口与外设接口及LCD相连。
1.3 软件设计
系统的软件主要有图像获取显示程序、图像处理识别程序、云台控制程序。主函数执行如下步骤:初始化-进入死循环-更新一帧的图像显示-执行跟踪算法-控制云台-更新下一帧图像显示……, 如此循环实现对运动图像跟踪的实时控制。
2 硬件及机械平台搭建
2.1 控制电路板
2.1.1 单片机最小系统
单片机最小系统由必需微控制器芯片、复位电路、时钟电路组成。控制板的核心微控制器需要速度较高、容量够大的32位单片机系, 该单片机负责给摄像头、云台、LCD发送命令, 接收图像信号并将其显示在LCD上, 最主要的工作还是对图像数据的处理。
STM32F103系列微处理器是首款基于ARMv7-M体系结构的32位标准RISC (精简指令集) 处理器, 提供很高的代码效率。作为最新一代的嵌入式ARM处理器, 它为实现MCU的需要提供了低成本的平台、缩减的引脚数目、降低的系统功耗, 同时提供了卓越的计算性能和先进的中断响应系统[3]。综合性能、成本、功耗考虑, 选用STM32F103系列的STM32F103RBT6作为主控芯片, 该单片机内核为Cortex-M3 CPU, 最高工作频率72 MHz, 1.25DMIPS/MHz, 含单周期乘法和硬件除法, 可应付简单的图像处理运算;供电电压2.0~3.6 V, 功耗低。
2.1.2 系统电源
系统需要两种电压供电, 5 V和3.3 V, LM2596-5.0输出5 V电压给舵机供电;AS M1117-3.3输出3.3 V, 给单片机、LCD、摄像头供电。LM2596-5.0为开关稳压电源芯片, 最大可输出3A电流, 可为舵机提供充足电流;ASM1117-3.3为线性稳压芯片, 最大输出1A电流, 可为单片机等设备提供稳定的电源。
2.1.3 通信电路
通信电路包括P L 2 3 0 3串口通信电路和JTAG仿真接口, 串口通信电路可连接至US B用于下载程序或发送信息至电脑显示, JTAG接口用于连接JLINK V8仿真器观察系统的运行状况。
2.1.4 外设接口
外设接口有:LCD接口、摄像头接口、云台接口, 用于连接其他必需外设。
2.1.5 LCD模块
LCD采用2.8寸320×240分辨率的真彩液晶显示屏 (TFT_LCD) , 该LCD自带显存, 显存总大小为172800B (240×320×18/8) , 可保存一帧完整的RGB图像, 通过16位的并口与单片机传输数据。
2.2 图像传感器
图像传感器采用型号为O V 7 6 7 0的CMOS数字摄像头, 它体积小, 工作电压低, 功能强大且使用方便灵活。其通过SCCB总线接口编程实现伽玛曲线、白平衡、饱和度、色度等图像处理功能, 其中Ommi Vision图像传感器应用独有的传感器技术, 通过减少或消除光学或电子缺陷如固定图案噪声、托尼、浮散等, 提高图像质量, 得清晰的稳定的彩色图像, 同时其外部硬件电路配置灵活[3]。在实际使用中将其设置为自动白平衡模式, 输出分辨率为320×240的RGB格式的图像数据。
OV7670的像素时钟达到2 4 MHz, 单片机IO口速度很勉强, 为此给摄像头加上FI FO, FI FO芯片采用AI A22。一帧的彩色图像信息包含320×240×2个字节, 而AIA22容量为384 KB, 可存储一帧完整的图像数据, 并且能够自行刷新数据, 工作频率可达50 MHz, 具有较高的存储速度, 作为FIFO非常理想。
2.3 云台机构
两个MG995舵机和两个金属支架构成一个二自由度云台, 该云台结构简单, 将摄像头装在上面可实现摄像头视野在一个二维平面上的移动。MG995舵机扭矩10 kg/cm, 速度0.2sec/60degree, 可满足系统要求。
3 程序编写及算法实现
3.1 图像读取与显示程序[4,5]
摄像头的图像数据首先会被暂存在FIFO中, 单片机连续读取FIFO中一帧的图像数据, 并立即送至LCD的显存内, 图像就会显示在LCD上, 送完一帧图像后, 再执行跟踪程序, 然后又重复以上步骤获取下一帧图像。
3.2 图像跟踪程序
首先将从LCD显存中读取的RGB格式图像转换为HSL格式, HSL更接近人眼对颜色的感知。通过预先设定H (色调) 、S (饱和度) 、L (亮度) 的阀值作为某像素匹配的依据, 若实际的像素的HSL值介于设定的最小最大HSL值之间, 那么该像素就为目标图形像素。如果想跟踪其他颜色的物体, 只需更改HSL的阀值即可。
首先搜索腐蚀中心, 即按照先前设置的匹配规则寻找320×240区域内的各小区域, 找到一个满足要求的小区域后以该区域集几何中心作为目标图像的中心。然后继续向该点的上下左右四个方向分别寻找满足要求的像素点。在某一方向搜索直到不匹配的像素超过容错率, 即表明这些像素已不属于目标物体, 记下此时坐标, 这个坐标即为目标图形的其中一个边缘坐标。同理最后得到的四个像素坐标即为矩形目标的四个边缘坐标。通过简单计算可得出目标图形的大小和中心坐标。如果成功找到目标后, 则继续在刚才的目标中心点处进行下一帧的搜索, 否则重新搜索腐蚀中心。
3.3 云台控制程序
云台所使用的舵机需要一个周期为20 ms、占空比为0.5~2.5 ms的PW M来控制, 当PWM脉宽1.5 ms时, 舵机处于中间位置, 利用单片机定时器的PWM模式产生两路PWM输出。改变定时器的输出比较值就改变了PWM的脉宽, 从而实现控制舵机的不同角度。
设液晶显示屏的中心位置 (120, 160) 为中心坐标, 根据跟踪到的目标的XY坐标决定云台两个舵机的转动方向, 即实际物体偏离中心坐标一边, 舵机向另一边偏转。为避免由于跟踪误差导致舵机频繁转动, 舵机的控制程序中设置了死区, 实际坐标与中心坐标偏差很小时, 舵机不动。
4 实验结果与分析
实验表明该MCU能达到每秒4~5帧的图像显示与跟踪, 可以跟踪实验中的一个矩形绿色卡片的位置, 该卡片以大约1 cm/s的速度移动, 摄像头也能跟着移动, 能基本达到要求。修改程序中的参数还可实现其他颜色物体的跟踪。白色的KT板上的绿色为目标物体, 单片机根据跟踪结果而绘出的矩形框标注出目标的大体位置。
5 结论
该图像跟踪系统能对慢速的、形状规则的物体进行跟踪, 整个系统硬件结构简单, 程序效率高。不过由于单片机处理速度的原因还存在跟踪速度慢、受环境影响偶尔跟丢的问题, 这些问题可通过更换更高速的处理器、优化算法来解决。
参考文献
[1]杨耿.运动目标的图像识别与跟踪研究[D].江苏:江苏大学, 2005.
[2]沈胜红, 韩月秋.基于多DSP和FPGA的高速并行互相关图像跟踪技术[J].北京理工大学学报, 2000, 20 (1) :98.
[3]孙书鹰, 陈志佳, 寇超.新一代嵌入式微处理器STM32F103开发与应用[J].微计算机应用, 2010, 30 (12) :60.
[4]刘祺, 王银玲, 吴林恒.基于STM32的图像采集与显示系统的研究与设计[J].数字技术与应用, 2012 (2) :94.
3.基于stm32超声波测距 篇三
关键词:STM32;行车安全;微波测距;灯光控制
中图分类号:TP368 文献标识码:A 文章编号:1674-098X(2015)06(b)-0000-00
驾驶员在行车时,难免会遇到会车、超车的情形,特别是在夜间行车时,相向行驶的汽车灯光和超车时反光镜里的反射光会严重影响驾驶员的视觉,从而容易引发交通事故。本文介绍了一套智能测距及自动切换远近光灯的系统,如果汽车行驶前方有物体迅速靠近,该系统会立刻警示驾驶员进行规避以免相撞,当夜间相向行驶的汽车达到一定距离或者司机有超车意向时,该系统还可以自动将远光灯调节为近光灯,以免对对方驾驶员视觉造成影响,从而降低事故发生率。
1行车安全及照明系统原理图
系统原理图如图1所示,该系统以STM32F103C8T6为核心,通过检测光线以及相对速度进而判断是否进行声光报警以及灯光切换操作。
图1 系统原理图
2 系统硬件设计
2.1 Cortex-M3主控芯片
主控芯片采用意法半导体公司推出的高性能、低成本、低功耗的微处理器芯片STM32F103C8T6,该芯片最高工作频率可达72MHZ,具有12道DMA并支持定时器、ADC、DAC、SPI、IIC和UART等外设,资源丰富,完全可以满足本系统的设计要求。
2.2 微波测距方案
测距部分采用微波传感器[1],安装在车前,用来检测本车前方是否有障碍物,在夜间行驶中,微波传感器发射微波信号,遇到障碍物时,微波信号可以反射回来,微波传感器接收到反射回来的微波信号,经过合理的信号处理电路处理,进而判断车辆与障碍物的的相对运动状态,做出相应的措施。如果对方车辆开启远光灯导致本车驾驶员无法看清前面道路状况,则微波测距传感器会检测前方是否有障碍物快速接近,如果有则会提醒驾驶员小心驾驶,减速行驶或者缓慢停车,从而能够降低相关事故的发生率。
2.3 光线强度检测电路
夜间行车时,如果对方车辆是利用远光灯行驶,则会对自己的视觉造成严重影响,进而容易发生交通事故。所以,本系统会频繁切换远近光灯,以此给对方一个提醒作用,提示对方切换为近光灯行驶,如果对方变为近光灯,则本系统将会打开近光灯行驶。
灯光检测电路原理如图2所示
图2 系统原理图
当对方车辆为远光灯时,入射光线近似平行光,经反光环汇聚到硅光电池上,从而判断出对方为远光灯[2],并进行相应的灯光切换动作。
2.4 声光报警及灯光自动控制
声音信号利用蜂鸣器来产生,并利用S8550三极管进行驱动;光信号利用红色LED产生。在汽车行进时,微波雷达不停的探测前方物体与本车的相对速度,当相对速度超过50Km/h时,即将要发生撞车危险,此时主控器发出信号使三极管导通,从而使蜂鸣器开始工作进行声音警示,同时LED急促闪烁提供视觉警示。
3 系统软件设计
系统工作时为保证雷达测量精度,微波的发射和接收全部利用STM32F103C8T6的通用定时器进行定时计算。利用定时器2每隔1秒钟中断一次,并在中断中进行微波发射操作,利用定时器3测定反射波的频率。定时器2的初始化函数如下:
void TIM2_Int_Init()
{
RCC->APB1ENR|=1<<0;//TIM2定时器使能
TIM2->ARR=10000; //设定计数器自动重装值
TIM2->PSC=7199; //预分频器设置
TIM2->DIER|=1<<0; //允许更新中断
MY_NVIC_Init(2,2,TIM2_IRQn,2);//抢占1,子优先级2,组2
}
4 测试结果
测试结果见表1,光线强度:夜间行车时,模拟的夜间道路光线强度;本车车速:模拟夜间行车时的车速;相对速度:模拟夜间行车时,会车和超车时的相对速度;探测距离:当本车车灯发生改变时,两车的距离。
表1 测试结果
光线强度(cd)本车车速(m/s)相对速度(m/s)探测距离(m)测量次数
200.50.50.3810
201.00.50.4010
201.51.00.3710
300.50.50.3410
301.00.50.3510
301.51.00.3310
400.50.50.3210
401.00.50.3410
401.51.00.3110
5 结束语
该作品是根据速度和雷达信息,判断汽车与汽车、汽车与行人之间的相互状态,并控制灯光切换,实现对远近灯光的自动控制。可以有效避免驾驶员主观不规范使用灯光,造成的事故。样机采用先进的嵌入式系统技术,功能扩展和集成能力很强。可以在汽车领域进行大力推广,并可以把该技术集成到汽车现有灯光控制系统中,提高汽车灯光控制的自动化水平。
参考文献
[1] 吕光辉. 基于单片机技术的汽车远近光自动切换装置的研究[J].汽车与配件,2013(35):12-15.
4.如何系统有效的学习stm32 篇四
嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。
1、硬件层,是整个嵌入式系统的根本, 如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师 是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。
硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口_技术、微机原理及接口_技术、C语言。
2、驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通, 以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导 至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的 驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不 就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可 是最高的。
嵌入式的驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
3、操作系统层,对于操作系统层目前可能只能说是简单的移植, 而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而 嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系 统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。
5.基于stm32超声波测距 篇五
随着科技的发展和资源不断利用,风力发电在能源发展趋势的影响下得到了广泛的应用。目前我国风电机组累计装机容量114 609 MW[1]。而大多数风电机安装在偏远风口地区上,远离人群,一旦出现火灾情况,无法依靠人力及时对火情进行控制,风电机往往全部被烧毁,造成巨大的损失。现在大多数风机的机舱内基本没有配备消防监控系统,消防设施及其缺乏,当单个风机起火时,救援人员无法及时进入风机塔内实施灭火。另外,火灾自动探测报警设备中常用的装置,如感烟、感温等智能点式探测器、线型感温探测器等,也大多针对火力发电厂或变电站使用的,很难满足风力发电机组的特殊要求[2]。
风力发电机组自身及其所处环境条件的特殊性和复杂性,对消防系统应用的可靠性、有效性和适应性都有很大的影响。因此,对于风力发电机组火灾必须立足自救,采用自动探测、及时报警、自动灭火的防范策略,研制一套新型的、更为完备的风力发电机消防安全保护系统势在必行。
1 系统总体方案设计
本设计的数据终端部分以STM32为控制核心,具备振动数据采集、烟雾采集、温湿度采集、图像采集及手动功能,获得这几种环境参数后封包为数据帧格式并通过串口通信的方式,传至PC端,PC端由上位机软件对实时回传的温湿度、烟雾、振动及远程图像进行分析、曲线绘制及数据显示,PC软件为工作人员提供直观的操作界面。图1为系统的总体设计结构框图。
从功能模块上分析,本系统主要由7个主要模块构成,分别是STM32最小系统模块、振动采集模块、烟雾探测模块、温湿度模块、摄像头模块、串口模块及PC端软件,各传感器负责将模拟信号转换为数字信号,以便与STM32的信号口对接。当风机轴发生剧烈振动时,振动传感器探测到振动信号后由STM32的内部自带AD转换口,对振动数据进行AD转换并实现振动信号的采集。而在东西达到着火点前,通常产生较大的烟雾,由烟雾探头探测到的烟雾信号以TTL电平形式送给STM32的I/O口,STM32以此判断是否有烟雾发生。环境的温湿度利用专门的温湿度传感器进行转换,以单总线的形式回传当前温湿度数据。图像采集则利用摄像头模块采集信号,并以SCCB协议方式回传图片中的所有像素点,这些数据都被封包为数据帧,利用STM32的RAM开辟缓存区进行临时存储,响应上位机软件的下发指令,通过串口转换,将数据帧传输到上位机,上位机解包后显示,完成整个监测过车个,为了应急,增加了手动报警,方便进行远程报警。
2 硬件方案选型与电路设计
总体方案主要分为传感器采集部分、核心控制板与串口通信,传感器采集包括温湿度采集DHT11、振动采集、摄像头OV7670图像采集以及烟雾采集。如图2所示。
2.1 STM32
STM32系列主要专为要求高性能、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36 MHz,以16位产品的价格得到比16位产品大幅提升的性能,是32位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72 MHz时,从闪存执行代码,STM32功耗36 m A,是32位市场上功耗最低的产品,相当于0.5 m A/MHz。
STM32作为数据终端的控制核心,主要包括传感器的信息获取及传感器信息的上传,是连接传感器与PC机的重要桥梁,STM32协调各个传感器的采集任务,并对传感器信息进行初级处理后以串口的形式,遵循串口协议往PC机发送数据帧,完成数据终端的数据采集。
2.2 摄像头OV7670
图像的采集由传感器OV7670完成,OV7670图像传感器,体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影响数据。VGA图像最高达到30帧/秒。可以完全控制图像质量、数据格式和传输方式[3]。所有图像处理功能过程包括伽玛曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程。Ommi Vision图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。
OV7670摄像头以SCCB总线的方式与STM32进行通信,SCCB兼容IIC却又与IIC存在着细微的差别,故STM32采用GPIO模拟SCCB,OV7670数据口分别接到STM32的PA0~PA7口,控制线CS接PB8、RST接PB9、LSET接PB11、RD接PB10、VSYC接PB14,SCCB总线通信协议支持100Kbs或400Kbs的传输速度,可以满足图像传输。
2.3 振动信号采集电路
由于振动信号幅度和频率范围较宽,振动信号的获取需通过前级电路进行处理后再送入AD转换,才能获得较高的信噪比,振动信号的前级电路如图3所示。
振动信号由声电传感器LS1将振动信号转换为电信号,而LS1属于无源器件,需要对LS1提供偏置直流,原理是不同的频率使LS1的电阻随之变化,R28与LS1的节点电压由分压原理得到变化的交流信号,该交流信号通过电容C3耦合到低噪声放大管的基极,C3的作用是隔离信号中的直流成分,交流信号直通。由Q1、R26、R27构成的单管共射极放大电路中,信号从Q1的基极输入,输出信号从Q1的集电极获得,实现对弱小信号的放大作用,其中R27为Q1提供静态工作点,R26的作用是实现电流电压的放大,将Q1基极的电流放大后,在Q1的集电极以电压的形式输出,输出信号接到STM32的PB0进行AD转换。
2.4 温湿度转换DHT11
温湿度的采集利用DHT11传感器,DHT11是一款有已校准数字信号输出的温湿度传感器。精度湿度±5%RH,温度±2℃,量程湿度20%~90%RH,温度0℃~50℃。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。它的电路如图4所示。
DHT11采用单总线通信的方式,STM32的指令下发与温湿度数据回传以半双工的形式共用一条信号线,DHT11的DATA引脚连接到STM32的PB2管脚,在DHT11的串行通信协议下操作DHT11的温度采集、转换以及回传,为了提高数据传输的稳定及准确率,需要在DHT11的DATA引脚增加4.7k的上拉电阻。
2.5 烟雾探测
烟雾探测使用市场上普通烟雾探测器成品进行改造,经过剖解分析内部电路,探测烟雾部分主要采用光电式传感器,当空气中的烟雾达到一定的浓度阈值时,光电传感器的接收端信号减弱,电平发生变化,触发IC进行蜂鸣器报警动作,由于该成品在内部电路中无触发信号输出,故从蜂鸣器的一端引脚进行电压采样,当蜂鸣器鸣叫时,测量到最高电压为9 V,与STM32的GPIO口不匹配,故对采样电压进行分压转换,使输出电压最高不超过3.3 V,转换电路如图图5所示。
R2为可调电阻,采样电压由P6输入,由R2的抽头端获得采样电压,采样电压端连接到STM32的PB1口,进行烟雾信息的判断,当探测到一定浓度的烟雾时,PB1高电平,正常状态下,PB1为低电平,STM32则根据PB1的电平状态来判决是否有烟雾。
2.6 手动报警装置
系统提供手动报警装置,可以在应急情况下人为启动报警,手动报警电路由手动触发开关构成,开关信号连接到STM32的PC13管脚,如图6所示。
2.7串口通信
上位机跟数据终端的通信采用STM32的串口资源,串口波特率最高支持921 600 bit/s,使用2根线进行数据收发,它能够简单的进行远距离通信,一根线在进行发数据时,另外一根线可以同时的进行收数据,最远通信距离达1 200 m,在本系统设计中,STM32利用串口通信,将传感器信息封装为数据帧后,响应上位机指令进行数据的上传,完成数据终端的信号采集。
3 硬件程序设计流程
STM32的程序开发在Keil uVision4上进行,Keil uVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。
3.1 整体程序流程
STM32工作前对所有资源、外设等进行初始化,为了使STM32能快速协调好各个任务,系统初始化工作频率通过PLL倍频在72 MHz,在外部晶振25 MHz的情况下,STM32支持最大的倍频频率为72 MHz。初始化完毕对模块对应的GPIO口进行初始化,初始化ADC,通道为8,对应PB0,采集振动信号。串口初始化挂接到PD5和PD6,作为USART2的收发端口,初始化波特率为921 600 bit/s,8位数据位,1位起止位以及无校验模式。摄像头的初始化先配置SCCB,即对GPIO进行初始化模拟SCCB通信协议,再配置摄像头的相关寄存器,包括亮度、对比度、RGB传输格式、采样点顺序等初始化。初始化流程图如图7所示。
初始化工作完毕,系统进入任务执行流程,优先响应串口数据,串口的传输周期为1 s,当系统检测到串口数据为ACH时,将上一次的采样数据放入缓存变量,并通过串口发送到上位机,发送完毕继续监测串口数据。当系统未检测到任何串口数据时,进行振动数据采样、手动报警状态检测、烟雾状态检测、温湿度数据采集,每一次采集的结果都通过临时变量缓存,等待上位机的获取指令[4]。当系统检测到串口数据为55H时,系统进入摄像头图像采集,摄像头每采集完一幅完整的图并产生一个中断,STM32以数据流的形式向串口传送数据,整体的任务逻辑协调过程如图8所示。
3.2 串口通信
串口通信采用异步串行通信,抗干扰能力较强,在本次设计中未使用校验字节[5],具体的数据包格式如表1所示。
整个数据包共37个字节,包含帧头、数据及帧尾。帧头代表每一帧的起始字节帧,共2个字节,分别为A5H、BCH;帧尾代表每一帧的结束,共2个字节,分别为A8H、D0H;振动数据共32个字节,从字节3到字节33,温度、湿度、烟雾、手动报警状态共占1个字节。
3.3 摄像头信号采集
摄像头信号采集利用OV7670的SCCB总线进行通信,在本次设计中,采样的图像大小为320×240像素,像素点扫描的方式是逐行扫描,从上到下、从左到右,每一个像素点用两个字节表示RGB数值,在时钟线RCLK每一次的上升沿读出1个像素点,保存为RGB565格式,共2个字节,由于串口传输的速率有限,为了获得较高的图像传输速率,故将RGB565格式转化为YUV格式,输出共1个字节代表1个像素点,RGB565转化为YUV的公式为:
经过转换后,图像显示为灰度,利用人眼对颜色的深浅识别特性,不同波长的光线进入视网膜时,将产生某种颜色的感觉,通过该转换可以在尽可能还原现场的情况下获得传输速率的提升。
3.4 振动信号采集
为了真实的表达原来的振动信号,又兼顾STM32的计算能力,根据Shannon采样定理知道最低的采样频率为:
影响振动信号精度的信号主要是采样方式、采样周期和量化的精度,在本设计中的采样频率为1 k Hz,故适合采样的振动频率范围为0~500Hz,AD采样取14位,采样间隔Δt=1 ms,采样长度为32个数据,放至数组ADArray中,等待下一次的封包并串口发送[6]。
4 PC端软件设计
PC端软件采用VC6平台,它是Microsoft公司推出的以C++语言为基础的开发Windows环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2.0,Win Sock网络、3D控制界面。
该界面主要负责温湿度、振动数据显示,报警状态、振动波形、温湿度阈值设置以及图像显示。
连接硬件系统,打开串口后,软件主动下发ACH指令,串口以921600的速率进行通信,收到串口数据时,首先判断帧头帧尾,利用鸵鸟算法,当不满足指定的帧头帧尾时,直接丢弃该数据帧,等待下一次数据帧到来,显示的数据如图10所示。
通过温湿度报警设置,选择合适的报警阈值,当温湿度达到该阈值时,温湿度报警状态由绿色切换为红色,同时,可以在灭火器状态框中控制灭火器的开启与关闭,温湿度也可以从曲线图中直观的了解到,红色波形为温度数据,绿色波形为湿度数据,蓝色为振动数据,显示周期为300 s刷新一次。
当点击获取图像时,下发指令55H,收到串口的图像数据流,每3秒获取一帧,了解现场情况,图像效果如图11所示。
5 结语
本文设计的基于STM32远程消防监测系统主要应用于对远处的火灾的预警,以STM32为控制核心,利用温湿度数据、烟雾数据、振动数据、实时图像等环境参数实现远程监控,利用串口通信使数据终端与PC端进行远程连接,在电脑界面上实时掌控远程环境,在无人职守时能够自动预警并及早做出防范措施,降低损失,文章重点阐述了硬件设计及程序软件设计思路,实现远程监控的目的。
参考文献
[1]中国可再生能源学会风能专业委员会(CWEA).2010年中国风电装机容量统计[J].风能,2011(3):34-37.
[2]武在前.关于风力发电机组加强火灾探测报警系统与消防系统设计的研究[J].中国勘察设计,2011(12):98-99.
[3]吕俊芳.传感器接口与检测仪器电路[M].北京:北京航空航天大学出版社,1994.
[4]王文中,郭楠,葛庆平.PC机与单片机串口通信模型的设计与实现[J].首都师范大学学报:自然科学版,2004(S1):32-35.
[5]席东河,马磊娟,杜娟.单片机串口通信的调试方法与技术[J].武汉职业技术学院学报,2010(03):41-44.
6.基于stm32超声波测距 篇六
收稿日期: 20131219
作者简介: 陈若雷(1958),男,高级工程师,主要从事精密科学仪器的软件编制方面的研究。
摘要: 旋光度是反映物质旋光性质的指标,通过测定旋光度,可分析物质的浓度、含量、纯度等。SGW5多波长自动旋光仪利用平面偏振光和法拉弟磁光效应测量旋光物质在特定检测波长和温度下的旋光度。为了满足SGW5的功能需要,采用了带WINCE嵌入式系统的平板电脑和STM32单片机相结合的硬件系统,并对该系统进行软件设计。该软件设计在几个方面有一定特点,达到了仪器的性能指标要求。
关键词: WINCE; STM32; 旋光度; 多波长
中图分类号: TH 744文献标志码: Adoi: 10.3969/j.issn.10055630.2014.03.013
Software design for multiwavelength automatic polarimeter
based on a tablet PC and STM32
CHEN Ruolei
(Shanghai Instrument Physical Optics Instrument Co., Ltd., Shanghai 200233, China)
Abstract: Optical rotation is the reflected material optical properties. The substance concentration, content and purity can be analyzed through the determination of optical rotation. SGW5 multiwavelength automatic polarimeter uses a plane polarized light wavelength and measuring optical rotation Faraday magnetooptical effect materials in a particular rotation of the test wavelength and temperature. In order to meet the need of SGW5 function, it adopts hardware system with WINCE embedded system flat computer and STM32 microcontroller combination, and software design of the system. This software design has certain characteristic in several aspects, and achieved the performance requirements of the instrument.
Key words: WINCE; STM32; optical rotation; multiwavelength
引言旋光仪是测定物质旋光度的仪器,通过旋光度的测定,可分析物质的浓度、含量、纯度等,广泛应用于制糖、制药、石油、食品、化工等工业部门及有关高等院校和科研单位。SGW5多波长自动旋光仪利用平面偏振光和法拉弟磁光效应测量旋光物质在特定检测波长和温度下的旋光度。随着技术的发展和人们对旋光仪功能、性能要求的不断提高,研制了SGW5多波长自动旋光仪。为了满足多波长自动旋光仪的设计要求,SGW5采用了带WINCE嵌入式系统平板电脑和STM32单片机结合控制仪器。本文主要探讨基于WINCE嵌入式系统和STM32单片机的软件设计。1测量原理光学零位原理:若使自然光依次经过理想起偏器和检偏器,以起偏器和检偏器的通光方向正交时作为零位,检偏器偏离正交位置的角度与入射检偏器的光强I之间的关系,由马吕斯定律可表示为I=Kcos2α(1)当法拉弟线圈两端加以频率为f的正弦交变电压u=Usin2πft时,按照法拉弟磁光效应,通过的平面偏振光振动平面将迭加一个附加转动α=βsin2πft(2)其中β为物质的磁光系数。仪器上电后,自动停在正交位置上。若有样品放进试样室则检偏器相对于起偏器偏离正交位置,出现频率为f的交变光强信号,相应地有频率f的电信号,此电信号经过选频放大,功率放大,驱动伺服电机通过机械传动带动检偏器转动,使检偏器向正交位置趋近直到检偏器到达正交位置,频率为f的电信号消失,伺服电机停转。角度检测器检测出检偏器转过的α角度数,就得到了待测样品在特定的检测波长和温度下的旋光度[1] 。根据上述测量原理进行旋光度测定的SGW5多波长自动旋光仪的仪器结构总框图如图1所示。光学仪器第36卷
第3期陈若雷:基于平板电脑和STM32的多波长自动旋光仪软件设计
图1SGW5结构总框图
Fig.1General diagram of SGW5 Structure
2基于仪器控制系统的软件设计
2.1SGW5软件的总体设计根据多波长自动旋光仪多种输入输出的功能要求和实时性很强的性能需求,SGW5采用了带WINCE嵌入式系统的平板电脑和STM32单片机相结合的硬件系统(SGW5硬件系统见图2),并对该系统进行软件设计。SGW5软件总体上分平板电脑和STM32两部分设计,平板电脑程序框图见图3,STM32程序框图见图4,图5是平板电脑的主操作界面。从这些图中可以看到:平板电脑的功能主要是输入(按键响应)和输出(显示数据、保存数据、导出文件等)。输入响应可分两个方面:(1)响应触摸屏按键,然后向STM32发控制命令。主要响应“复测”、“清零”、“温控”及“测量参数”和“校正参数”页面上的按键操作。(2)响应触摸屏按键,然后执行操图2硬件系统框图
Fig.2Block diagram of hardware system作。完成“报告”、“记录”、“信息”及“帮助”页面上的功能。包括数据记录的储存、浏览和删除、多种格式文件的导出、中英文信息的手写和软键盘输入、与PC机的通信等,并且在完成这些功能时,不影响测量的正常进行。平板电脑的程序设计满足了用户的功能要求。STM32程序完成的是实时性要求很高的脉冲记数、温度控制、温度读取等操作,这直接决定了SGW5的示值误差、重复性、控温准确度等性能指标的实现。本文主要讨论STM32、平板电脑和PC机的软件设计。
图3平板电脑程序框图
Fig.3Block diagram of flat computer图4STM32程序框图
Fig.4Block diagram of STM32
2.2SGW5几个有特点的软件设计
2.2.1STM32软件设计STM32软件设计的关键是:(1)脉冲计数不能发生漏记或多记的情况,这是仪器测量是否可靠的基图5平板电脑主页面
Fig.5Main operating page of flat computer础。因此,STM32的中断资源必须用于脉冲计数,其他的功能不能和脉冲计数争资源。(2)尽量简化仪器结构系统。DS18B20温度传感器是单总线器件,具有体积小,硬件开销低,抗干扰能力强,精度高的优点。但时序要求高,使用DS18B20温度测量时,一般关闭中断系统,将单片机的所用资源交给它,直到测量完成后才开中断系统允许处理其它事情。由于SGW5有脉冲计数、控温过程、RS232实时通信等功能,实时性要求都非常高,不可能在DS18B20读温度期间不工作,所以只能采用非中断方式读取DS18B20值完成了功能。采用这种方式的关键在于延时程序和DS18B20初始化程序的编制,SGW5的程序采用非中断方式成功地读取了多种型号的DS18B20。图6步进电机控制程序框图
7.基于stm32超声波测距 篇七
越来越多的电子产品采用意法半导体芯片STM32系列(简称STM32)作为其核心控制单元,随之便产生了产品的软件升级问题。由于电子产品具有区域分散性,不利于企业进行集中式升级。所以如果需要升级主机硬件上的芯片程序,以前的办法是直接把硬件主机打包快递到企业总部,然后再修改刷新程序,并测试完了再发回去。这种方式费时费力,而且难免忙中出错。
为进一步提高工作效率,降低由此而产生的快递费、人工费等额外的支出,减少时间损失,特开发基于STM32芯片的远程升级系统。该系统有效利用了因特网的方便快捷,避免了传统物流模式的各种缺点,并且可以保护企业的知识产权,防止程序源文件泄露。
本系统属于服务器/客户端模式,用户界面均采用VB.NET设计。服务器端后台运行的是MYSQL数据库,客户端则只需要匹配一条专用串口下载线。维护人员只在能上网的电脑上使用这条下载线,就能通过客户端登陆到服务器,进行STM32芯片的软件升级操作。
1 工作原理
客户端通过因特网,从服务器端获取程序源文件的数据,然后使用串口下载线擦除STM32芯片的FLASH,并把已获取的数据写入到FLASH,即可实现远程更新。
本节介绍该系统涉及到的相关技术内容,如ISP协议/ISP硬件电路、客户端/服务器工作流程、数据库MYSQL设计等。
1.1 ISP协议/ISP硬件电路
STM32芯片具有开放式的在线烧录ISP协议[1],允许第三方根据该协议编写ISP下载软件,对STM32芯片进行FLASH的更新操作。该协议采用串行通信方式,有两个握手信号(nRST/BOOT0),能够自动识别最高可达115200bps的串口波特率,可达到较快的下载速度。该ISP协议已经包含在STM32芯片的内置Boot Load固件中。
ISP下载过程只需要简单的硬件电路支持。如图一所示,左侧板载端为STM32芯片端,预留6PIN的下载线接口,分别为电源线(VDD/GND)、串行通信线(TXD/RXD)、握手线(nRST/BOOT0);右侧下载线端采用USB转串口芯片PL2303,握手电路是由nDTR/nRTS和两个三极管组成的硬件逻辑电路,客户端软件通过控制nDTR/nRTS的输出来实现ISP握手过程。
1.2 客户端/服务器工作流程
客户端/服务器采用微软的VB.NET编程语言,在VS2010开发环境上,基于.NET 4.0编写而成。客户端与服务器之间通过套接字Socket方式进行通信及传输文件。
服务器端的Socket进程用于侦听客户端连接,示意代码如下:
'创建Socket,使用TCP协议
'指定服务器端IP地址和Port端口号
s.Bind(localEndPoint)'绑定到该Socket
s.Listen(100)'侦听,最多接受100个连接
服务器端的Socket自从创建之后就一直处于侦听状态,直到侦听到客户端的Socket连接。然后服务器端立即开辟新的线程,并执行以下代码与客户端进行连接,自此Socket连接过程成功完成。
'接收到客户端请求,则创建新的Socket连接
'接收客户端信息
使用Socket套接字的Receive方法可以接收客户端发来的信息,使用send方法可以发送信息到客户端。
客户端的Socket不需要侦听,在创建Socket之后直接连接服务器端即可,客户端同样可以使用Receive方法和send方法实现与服务器的通信。示意代码如下:
'创建Socket,使用TCP协议
Dim RemotEndPoint As New IPEndPoint(IPAddress.Parse("10.0.0.6"),11126)
'服务器端IP地址和Port端口号
'连接到服务器的指定IP地址和Port端口号
当然在实际应用中,客户端与服务器处于不同局域网络,无法直接通过固定的IP地址进行通信。应该根据实际情况设置IP地址及端口号,配置服务器的网络域名。还需要对服务器端的网络防火墙、路由器、网关等进行相应修改,设置端口映射、域名访问等。鉴于内容较多,文章中不予详细说明。
服务器最主要的工作是接收信息、文件发送、信息记录,即接收客户端的信息,发送客户端指定的文件,并记录客户端的操作。当然服务器还有其它重要的工作,如数据库维护、用户名管理、文件系统管理等,不予详细描述。
客户端接通过查询数据库,找到适合的文件之后就发送指令到服务器,要求服务器发送相关文件。接收到文件之后就立刻读取文件到内存缓冲区,然后删除该文件并启动STM32下载流程如图二所示。除此之外,客户端还提供其他重要服务,如用户登录、信息查询、文件处理、烧写FLASH等。
图二客户端界面
1.3 MYSQL数据库设计
MYSQL作为一款开放源代码的小型关系型数据库,由于体积小、速度快、配置低而被普遍使用。本系统采用MYSQL作为后台数据库,实现了整个系统信息的快速、集中存储功能。
采用标准化的SQL语言,客户端和服务器的界面可以轻松访问MYSQL数据库,并进行查询、删除、添加、修改、合并等操作,如对MYSQL数据库的查询操作:
在该远程升级系统中,一共设置了6张关系型的数据表,分别为用户信息表、文件信息表、操作记录表、硬件序列号表、远程升级记录表、库存及出库统计表。各数据表之间通过关键字互相关联,服务器端可以通过这些关键字串联起所有信息,实现多样化信息处理功能。
该数据库具有独立的网关及安全管理策略。经过大量实践表明,因WINDOWS系统安全漏洞比较多,MYSQL服务器容易招到恶意攻击、端口扫描、病毒木马等,因而导致MYSQL服务下线。为保证系统安全及防止黑客攻击,系统应用时需要修改该数据库的默认端口号(3306),设置较为复杂的ROOT密码,并且适当提高数据库主机的系统安全等级。
2 结束语
根据企业实际经验,并结合现有技术,该远程升级系统实现了高效的远程升级过程,有效增加了产品的附加值,并提升了实际工作效率。通过修改相关ISP协议及ISP硬件电路,可以增加该系统对AT-MEL、STC、NXP等主流芯片的支持,增强该远程升级系统的兼容性。
参考文献
[1]意法半导体http://www.st.com.《AN2606》STM32FXX system memory boot mode,2010.
[2]意法半导体.http://www.st.com.《AN3154》CAN protocol used in the STM32?bootloader.2009.
[3]潘凯华,等.MYSQL快速入门[M].北京:清华大学出版社,2012.
8.基于STM32智能断路器的设计 篇八
智能化断路器综合了电子技术、电气自动化、通信及软件等先进技术, 采用模块化结构, 集保护、测量与监控于一体。除了具备基本的三段保护、接地故障保护功能, 还可提供电压、功率、频率等故障保护、报警功能。同时还具备人机交互、参数存储、区域联锁、自诊断及网络通信等功能。能够通过网络远程监控现场, 便于其在网络自动化控制中的应用。断路器的智能控制技术在不断更新、进步, 本文简单介绍了以单片机为控制核心的智能断路器设计。
1智能断路器主要功能
Adapt Can系列塑壳智能断路器的主要功能:
1) 保护功能
过载长延时保护、短路短延时保护、瞬时动作保护这三段保护是最基本的保护, 一般机型都具备, 高端机型还有接地故障保护、电流不平衡保护、中性线保护、过压保护及欠压保护等保护功能, 电动机型还具有堵转保护、低载保护、长启动保护及相序保护等保护功能。
2) 测量功能
电流测量:各相电流、接地故障电流、电流不平衡率等电流参数;
电压测量:各相电压、线电压、电压不平衡率等电压参数;
功率测量:有功功率、无功功率、视在功能、功率因数;
频率测量:电网频率。
3) 人机交互功能
按键、旋钮调节、设置功能, LED指示、LCD汉字显示操作界面。
4) 其他功能
区域联锁、通信功能、故障信息、断路器状态监控、自诊断功能等。
2需求分析
针对断路器功能要求首先需确定设计将会用到哪些资源:
1) 实时性需求
(1) 断路器要求能迅速地切断故障电流, 对瞬动保护要求在20ms内切断电流, 这就要求控制单元能快速判断出故障电流, 并发出脱扣指令。
这项需求既可通过硬件电路实现, 也可用软件的方式来实现。由硬件方式实现速度快, 但是会增加成本、功耗, 灵活性也差, 而且会占用PCB空间, 这对于由互感器速饱和绕组供电且空间有限的塑壳断路器而言并不是最好的选择。
而用软件方式处理灵活, 成本低, 但是相对硬件方式速度稍慢。要提高响应速度对MCU的性能要求较高, 它要求MCU要能快速地对各通道的电流信号进行采样, 并完成计算、判断, 以最快的方式发出断路器动作指令, 当然前提得保证不能误判。
(2) 智能型断路器的功能较多, 而且需求也在不断地增加, 对于MCU的处理能力也有较高的要求。系统设计中接地故障电流采用各相电流的矢量和方式计算得到, 需要用到电流间的相位差;线电压是由相电压的矢量和计算得到, 需要用到电压间的相位差;功率计算中的有功功率、无功功率等的计算需要得到电流、电压的相位差。这些都需要用到浮点运算、FFT运算, 需要占用大量的MCU指令处理周期, 这些都需要MCU来进行快速的运算, 如果MCU运算速度太慢, 势必会影响断路器的响应速度。
当然, 可以采用DSP器件来提升运算处理能力, 但成本也会相应的增加, 需要平衡选择。
(3) 在软件架构设计上, 一般分前后台系统和带实时操作系统 (RTOS) 的架构设计。
前后台系统就是顺序执行的系统, 其程序进程中只有一个main线程, 程序功能的实现是依靠死循环实现, 实时性主要靠硬件中断来实现, 这对于一般的应用是可以满足要求的。但对于存在需要大量运算, 运算时间较长, 且对实时性要求较高的场合就不适用了。如果系统功能较多, 则前后台系统的可维护性会比RTOS差。
RTOS是指当外界事件或数据产生时, 能够接受并以足够快的速度予以处理, 其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应, 并控制所有实时任务协调一致运行的操作系统。
2) ADC通道需求
根据断路器的功能参数可知, 需要ADC采样转换的交流信号有三相电流I1、I2、I3, 中性线电流IN、三相电压U1、U2、U3, 这需要占用7个ADC通道;考虑到电流测量的范围从0.2Ir~20Ir都有精度要求, 用一个通道无法满足整个电流跨度范围的精度要求, 设计采用两个运放电路对同一路的电流信号进行不同倍率的放大处理, 再送给两路ADC通道进行采样处理, 以满足小电流与大电流的测量精度要求 (电流采样回路如图1所示) 。
设计中还会对其他的模拟信号进行模数转换, 如温度、参考电压等, 因此整个系统的ADC通道需要多达十几路。当然可以采用一个ADC通道结合模拟转换开关的方式进行处理, 但这样会降低采样的速率, 同时也会增加硬件的复杂度, 增加故障出现的几率。
3) ROM、RAM需求
设计中为了使用户能操作更快捷方便, 提供以旋钮方式或按键方式来查询、设置系统各参数;以LED指示灯直观的指示断路器运行状态;以点阵LCD显示各种测量、设置、故障信息。
由于系统提供的显示信息较多, 不带字库的LCD屏, 随着显示字符的增加其所占用MCU的ROM空间也会跟着增加。以显示300个汉字的16×16点阵计算, 基本的字模数据会占用约10K的ROM空间。可以采用带字库的LCD屏来设计, 但这样会增加产品的成本, 同时更换字体也不方便, 在灵活性上不如前者。
LCD显示界面编程所需的ROM空间也较大, 根据显示界面的复杂度, 从几KB~几十KB不等。
若采用RTOS进行系统软件设计, 对MCU的ROM、RAM开销也大, 如:基于STM32芯片的实时操作系统UCOS, 最小系统占用约10K的ROM, RAM的占用空间与任务数和任务堆栈大小有关, 任务数越多, 堆栈越大, 占用的RAM空间也就越多。
4) 其他资源
系统需要检测电源的频率、对各种保护进行延时计算、对各输入输出口线进行检测控制, 因此MCU基本的定时器、中断等资源需满足设计需求。
由于系统需要对多路ADC通道 (假设为12路) 进行连续的快速采样处理, 以一个周期 (50Hz) 64点采样为例, 每个点的采样间隔时间为312.5μs。如果MCU只有一路ADC, 那么每312.5μs需要进入ADC中断12次, 每次进入中断后需将转换完成的数据保存起来, 以便周期采样结束后处理。这样频繁的进入中断, 大大降低了中央处理器 (CPU) 的效率, 不利于系统性能的提升。
如果这些事情能够交给硬件自动去实现, 那将会大大的提升CPU的效率, 现在很多高效能的MCU都提供DMA控制器, 可以方便的实现需求。
同样, 其他功能需求, 比如通讯功能需要用到的串行接口模块、存储需要用的IIC模块、LCD显示需要用到的SPI模块等, MCU带有这些外围模块将会大大的提升其性能, 当然成本也是要考虑的。
3控制芯片简介
20世纪末, 电子技术获得了飞速的发展, 单片机从8bit到16bit, 再到32bit, 处理速度一直在提升, 外围模块也是越来越丰富, 性价比也在不断地提升。
基于前面的需求分析, 再结合目前的市场资源来看, 一般的8bit的单片机是很难满足要求的, 16bit单片机若能达到要求, 则失去了价格优势, DSP也能实现需求, 但同样的性价比不高。虽然32bit单片机的价格一直比较高, 但自从ARM公司推出Cortex-M3后, 其价格优势就比较明显了, M3主要是面向低成本和高性能的MCU应用领域, 其可选的型号也很丰富, 价格从几元至几十元都有。
Adapt Can系列智能断路器采用的是TI公司的STM32F10x系列MCU, 下面对其中部分对设计比较重要的资源进行说明。
1) 内核
最高72MHz工作频率, 单周期乘法和硬件除法, 保证了基本指令执行、运算的速度。
2) 存储器
从32KB~512KB的闪存程序存储器, 可选择的型号很多, 可兼顾产品的成本控制和后期扩展。
3) 模数转换器
(1) 1~3个12bit模数转换器 (多达16个输入通道) , 满足多路通道采样的需求。
(2) 12位分辨率, 保证了产品测量的精度。
(3) 规则通道转换期间有DMA请求产生, 可设置为在规则组所有通道都采样转换完成后产生DMA中断, 以便集中对所有通道的数据进行处理, 避免了每个通道转换完成后都需要进入中断处理数据。
(4) 从通道0~n的自动扫描模式, 可结合模数转换器的规则组转换与DMA功能一起实现转换数据的自动存储, 无需浪费CPU的时间。
(5) 双采样和保持功能:2路通道同时采样转换, 可提高多路通道采样转换效率。
(6) ADC转换时间, 最快达到1μs。
4) DMA控制器
7通道DMA控制器, 可将ADC转换, 串口通信、SPI数据传输等配置为DMA操作, 节约CPU资源, 提示CPU的处理能力。DMA框图如图2所示。
5) 外部中断
16个外部中断, PA口~PE口均能映像到外部中断, 几乎所有的端口均可接受5V信号。
6) 调试口
串行单线调试 (SWD) 和JTAG接口, 方便软件开发、调试。
7) 定时器
多达7个定时器:3个16位定时器, 每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入;2个看门狗定时器 (独立型和窗口型) ;系统时间定时器:24位自减型计数器。
8) I2C接口
多达2个I2C接口 (支持SMBus/PMBus) 。
9) USART接口
多达3个USART接口 (支持ISO7816接口, LIN, Ir DA接口和调制解调控制) 。
10) SPI接口
多达2个SPI接口 (18Mb/s) 。
4软件设计
智能控制器的主要控制功能都是通过软件控制实现的, 基于MCU的软件设计需要针对其资源和系统需求进行合理的设计, 充分发挥MCU的性能, 保证整个产品的可靠、稳定。
为保证产品的实时性及方便后期的维护, Adapt Can系列智能断路器软件设计是基于RTOS设计的。
软件架构主要由TASK_Control PRO任务、TASK_FFTPRO任务、TASK_UARTPRO任务、TASK_Display PRO任务、TASK_Key PRO任务及各中断服务程序组成。
软件主要流程框图见图3。
1) TASK_Control PRO任务
对周期采样信号进行计算, 采用均方根方式计算出信号对应的ADC均方根值, 结合校准参数可计算得到输入的各相电流、电压信号、不平衡率等参数;再根据TASK_FFTPRO任务得到的相位参数, 计算得出接地故障电流、线电压等参数。接地故障电流计算公式如式 (1) 所示, 相电压与线电压转换图由图4所示, 计算公式如式 (2) ~ (4) 所示。
图4中线电压为UAB、UBC、UCA, 相电压为UA、
在TASK_Control PRO任务中还将通过软件方式模拟故障电流的热效应, 当故障电流产生的能量达到设定限值后, 发送跳闸或报警信号触发断路器跳闸或报警输出。
由于该任务的优先级最高, 其响应时间为一个信号周期, 其保护延时精度可控制在1~2个信号周期内, 加入特殊的补偿处理后, 在各延时设定条件均可确保10%的延时误差精度要求。
2) TASK_FFTPRO任务
对周期采样信号通过快速傅立叶变换 (FFT) 算法计算得到各电流、电压信号间的相位差, 判断电源相序。
由于电源相位的变化比较慢, 对响应时间的要求相对偏低, 因此将其独立出来作为一个任务, 这样可以避免因其长时间的运算, 影响TASK_Control PRO任务中其他需要快速响应的功能的实时性。
3) TASK_UARTPRO任务
串口通信任务, 收到串口通信消息后对通讯指令进行分析、解码, 并根据指令内容执行相应的操作, 需要上传数据时, 启动DMA发送数据。实现断路器的‘四遥’功能:遥信、遥测、遥控和遥调。
4) TASK_Display PRO任务
显示任务, 主要负责LED指示灯、LCD显示屏的显示。根据断路器状态控制各LED指示灯的亮灭;根据断路器的状态和按键操作控制LCD显示屏显示的内容, 提供友好的人机交互界面。
由于LCD接口采用的是SPI接口, 当传输数据量大时可启动SPI的DMA功能, 由DMA自动发送显示数据。
5) TASK_Key PRO任务
按键扫描任务, 主要负责按键状态检测, 其他开关状态输入信号的检测。根据按键输入的内容控制LCD屏显示的界面, 查询断路器测量信息、状态信息、设置信息及故障信息等内容, 设置各项保护参数。
6) 中断服务程序
(1) DMA1_Channel1_IRQHandler中断服务程序
系统要求能对多达12路的模拟信号进行采样处理, 并需保证采样的同步性和实时性, 可利用STM32芯片提供的多路ADC通道, 将其配置成ADC转换的规则组, 采用单次转换模式, 并使用双ADC转换功能, 提升多路通道的采样速率。
用一定时器定时触发规则组转换, 定时时间由信号周期和每周期采样数决定, 以50Hz信号64个采样点为例, 定时时间为20 000μs/64=312.5μs。
使用能够进行ADC转换的DMA功能, 使每次转换完成后数据由硬件自动保存到指定的存储单元, 无需CPU介入。当整个规则组通道数据都转换完成后产生DMA中断, 在中断里面可将得到的12组数据进行处理, 当周期采样完成后发送消息通知相关任务处理数据。
该DMA中断还需要执行一个重要的功能, 就是瞬时电流的判定, 由于瞬动保护对实时性要求非常高, 一般要求要在20ms左右断开断路器。如果等周期采样完成后再进行判定则无法保证其速度, 因此将瞬动保护功能放置在中断里面, 将每个电流采样点数据与瞬动保护限值进行比较, 当判定越限后认为存在瞬动电流, 立即启动端口断路器, 为确保不产生误动作, 可增加判定次数。
(2) 串口通信相关中断
设计中串口通信采用标准的Modbus协议, 用到了3个中断, 其中串口数据接收由于其数据长度的不确定性, 采用串口中断来接收, 数据帧的结束和通讯超时判定由定时器中断负责, 在定时器中断里面检测到协议规定的帧结束时间后, 发送消息通知TASK_UARTPRO任务处理数据。串口数据发送由DMA自动执行, 只需在TASK_UARTPRO任务启动DMA传输功能。
5结束语
9.基于stm32超声波测距 篇九
我国是一个以农业为基础的国家。目前从国外引进的土壤快速水分测量仪功能单一,只能测量土壤的含水率,不能反映测量点的位置信息。基于GPS、GPRS技术建立农情监测系统,进行田间作业管理等研究越来越深入[1]。在节水农业领域中,利用3S技术建立旱情监测系统,不仅可以对土壤墒情进行监管,更有利于按作物需水量进行精确灌溉[2]。本采用SHT11进行农田土壤的实时温湿度采集,采用GPS模块采集农田的经纬度信息,并通过GPRS模块与PC机进行通信,在PC端上位机中显示采集信息,从而达到实时采集、无线传输与在线监控的目的。
1 系统结构和工作原理
本系统实物图由图1所示。采集系统由STM32单片机、温湿度传感器SHT11、GPS模块、电源模块,以及GPRS通信模块组成。由温湿度传感器SHT11分别对温湿度进行实时采集,由GPS模块采集经纬度信息,采集的数字信号经过主控芯片STM32单片机的处理,经过GPRS模块进行通信使数据进入PC机,由MFC上位机存储相应数据至数据库中,并实时在上位机界面中显示。
2 上位机
系统采用VS2013中的MFC作为上位机开发软件。温湿度数据、经纬度数据经过STM32单片机的解析后,通过GPRS模块传送给PC上位机,上位机将数据存储到数据库中并实时显示采集信息。
编译上位机程序,测试功能的运行情况。上位机可实现监测指定经纬度农田土壤水分、环境温湿度的空间分布的功能。
3 系统测试
打开采集系统电源,等待系统采集到稳定数据,观察上位机中显示。
4 结论
试验结果表明,基于STM32的农田土壤信息采集系统,具有采集数据稳定可靠,操作方便,结构简单,且无线接收,可大幅降低成本,能够基本满足采集要求,具有较好的应用前景。
摘要:系统以STM32单片机作为控制器的核心部件,采用数字温湿度传感器SHT11进行农田土壤的实时温湿度采集,采用GPS模块采集农田的经纬度信息,并通过GPRS模块与PC机进行通信,在PC端上位机中存储并实时显示采集信息。该系统具有实用性强、稳定可靠的优点。
关键词:STM32,温湿度,上位机
参考文献
[1]周国祥,周俊,苗玉彬,等.基于GSM的数字农业远程监控系统研究与应用[J].农业工程学报,2005(6):87-92.
【基于stm32超声波测距】推荐阅读:
基于psoc的超声波测距07-20
超声波检测公式10-03
超声波检测行业标准表07-14
超声进修个人总结06-25
超声刀操作流程07-06
超声进修总结汇报09-25
年超声科工作总结06-12
超声检测技术论文07-26
超声影像科工作制度08-14
超声导波检测技术08-30