【《某超声导波谐振测温仪软件系统设计分析案例》4800字】_第1页
【《某超声导波谐振测温仪软件系统设计分析案例》4800字】_第2页
【《某超声导波谐振测温仪软件系统设计分析案例》4800字】_第3页
【《某超声导波谐振测温仪软件系统设计分析案例》4800字】_第4页
【《某超声导波谐振测温仪软件系统设计分析案例》4800字】_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

PAGEPAGE1某超声导波谐振测温仪软件系统设计分析案例目录TOC\o"1-3"\h\u11114某超声导波谐振测温仪软件系统设计分析案例 1157811.1软件整体方案 1278411.2基于串口屏的人机交互界面开发 2161111.1.1人机交互界面总体设计 3140971.1.2UsartGPU串口屏开发 469361.3单片机程序模块 91071.1.1频率采集模块 9307661.1.2Flash读写模块 10178851.1.3UART模块 101.1软件整体方案超声导波谐振测温仪除了频率自跟踪功能是由硬件电路实现之外,系统其他功能均由软件设计来实现。前章介绍了测温系统的硬件设计电路,从数据处理的流程来分析,其超声谐振测温软件系统可分为以串口屏为核心的人机交互程序和以单片机为核心的测温程序两部分,其功能流程如图4-1所示。图4-1软件系统功能流程图Fig.4-1Thesystemflowchart其数据处理流程可概括为:1、串口屏和单片机上电后均执行复位操作,串口屏复位之后进入初始化,单片机复位之后进入等待命令状态;2、串口屏完成初始化后进入参数设置界面,用户可对激励脉冲数和延迟脉冲数进行相关设置;3、当完成参数设置后,点击开始按钮,串口屏通过串口将开始命令发送到单片机;4、单片机接收到开始命令后,依次进行频率测量(时序1)、超声激励(时序2)和脉冲延迟(时序3)功能的实现,之后将处理后的温度值通过串口上传串口屏;5、串口屏接收到数据后,在屏幕上显示当前测得温度场的温度值。频率自跟踪功能(时序4和时序5)由硬件电路实现,在单片机完成脉冲延迟功能后,硬件系统将分别对谐振回波和激励脉冲进行采样,产生的误差信号通过积分电路转换为电压Vint,之后经求和放大电路加载到脉冲激励电路中M3端,以此改变突发脉冲激励频率。当软件系统下一次执行程序后,单片机读取的频率值是激励电路已修正后的频率值。依据软件系统功能流程图,将从串口屏和单片机两方面,依次介绍其软件功能的实现。1.2基于串口屏的人机交互界面开发本论文在通过单片机来控制UsartGPU串口触摸屏,以此摆脱计算机这类庞大的上位机,实现仪器的小型化和便携化。串口屏是一种高度集成化的显示器件,具备数据存储、液晶显示、触控输入等多种功能。由计算机将图片和汉字点阵通过GpuMaker程序预先存储到串口屏的存储器中,然后由单片机通过串口发送指令调用显示即可,简化单片机编程[63,64];本文选用UsartGPU35DTP-DTF型号的串口触摸屏,其由单片机、存储器和液晶屏三部分组成,内置的单片机型号为STM32F030C8T6。串口屏内部已将图片调用和文字显示等一系列对触摸屏的操作封装为特有的字符指令。当超声测温的单片机与串口屏通信时,只需发送特定的字符指令到串口屏,其内置单片机将对接收到的指令做出相应的解读,之后对触摸屏执行相应的操作。本文中如无特别说明的情况下,提及的单片机均指超声谐振测温单片机F103,而串口屏内置单片机并不需要对其进行编程及其他任何设置,因此将其和串口屏视为一体,统一以串口屏替代。1.1.1人机交互界面总体设计UsartGPU串口触摸屏整体工作流程如图4-2所示,其包含以下几步:1)初始化:测温仪启动后,初始化其设置;2)设置参数:根据不同的温度传感器,可自行设置激励脉冲数、延迟脉冲数等参数;3)测温开始:设置参数后,点击开始按钮,串口屏将开始指令通过串口传到单片机,测温工作开始;4)温度值显示:通过单片机测定激励频率值,进行处理后得到温度值,将数据上传串口屏进行实时显示。如果无任何其他操作,串口屏将自动接收数据进行下一次温度值刷新;5)测温结束:按下屏幕停止键,测温仪将暂停工作;如需改动初始设备参数,只需再点击返回按钮,即可返回到参数设置界面中进行重新设定;图4-2串口屏工作流程Fig.4-2Theworkflowchartsofserial-portscreen通过以上流程可以看出,本论文中人机交互界面主要包含以下几个功能。1)设置系统参数:在参数设置界面,可对激励脉冲数、延迟脉冲数等参数进行设置;2)发送控制命令:串口屏可向单片机发送开始工作的指令,在测温过程中,串口屏可随时发送暂停、返回等指令;3)显示温度结果:对接收到的频率和温度值等数据,串口屏应对其进行实时显示;1.1.2UsartGPU串口屏开发(1)连接配置UsartGPU串口触摸屏有四个标准引脚,分别为:+5V、GND、RX和TX端。开发人机交互界面时,采用USB转TTL连接线将串口屏与电脑相连,其实物如图4-3所示。图4-3USB-TTL连接线Fig.4-3ThephotoofUSB-TTLcable人机交互界面开发完成后,串口屏与单片机通信时,同样通过串口与单片机相连接,其连接方式见图4-4,说明如下:1)+5V和GND——UsartGPU串口屏的供电引脚:设计开发时,分别接USB转TTL线的+5V和GND;与单片机相连工作时,分别接STM32单片机的+5V和GND;2)RX——串口屏的数据接收引脚:设计开发时,接USB转TTL线的TX引脚;与单片机相连工作时,接STM32单片机TX引脚;3)TX——串口屏的数据发送引脚:设计开发时,接USB转TTL线的RX引脚;与单片机相连工作时,接STM32单片机RX引脚;图4-4串口屏通信连接图Fig.4-4Thediagramofcommunicationconnectionbetweenserial-portscreenandSCM(orUSB-TTL)(2)界面设计GPUMaker是一款单一的exe文件,其无需安装,可直接在电脑上运行,内部配置了常用的背景图片和汉字点阵,同时用户也可以选择系统之外的图片和汉字点阵上传到串口屏中。串口屏与电脑相连接后,打开GPUMaker软件,点击自动连接,软件会自动识别串口屏。在利用软件进行界面开发设计时,运用串口屏特有的一套描述语言编写功能界面,包括:1)激励脉冲数、延迟脉冲数参数输入框:在此界面有小键盘,通过点击阿拉伯数字,来输入不同的脉冲数,其输入框设计见图4-5a中所示。2)开始、暂停、返回等功能按钮框:通过点击不同的功能按钮,单片机将执行不同的功能,其按钮设计见图4-5b中所示。3)频率值、温度值显示框:单片机测量谐振频率值后,会处理为温度值,之后将数据上传串口屏固定的显示框内进行显示,其显示框设计见图4-5b中所示。在超声导波谐振测温人机交互界面的设计中,参数设置需要自行输入,数据显示需要不断的定时刷新,除此之外界面中的文字、输入框、显示框、功能和键盘按钮框等不需要动态刷新,因此采用UsartGPU串口屏的批页面显示模式,将复杂的UI界面语句组合起来。每个批页面可储存1K字节的语句,系统共支持127个批界面显示。通过批页面设计,将复杂的页面提前储存到串口屏中,大大减小了系统运行时占用内存,同时也减小了单片机与串口屏之间的数据传输量。图4-5a为本谐振测温方案中的参数设置页面;图4-5b为GPUMaker软件的批页面设计界面,从图中可看到参数输入框、功能按钮框和数值显示框等。(a)页面设计(b)软件设计界面图4-5GPUMaker界面设计Fig.4-5Thedesignofuserinterface(3)代码设计完成UsartGPU串口屏的显示及触控界面设计后,需要编写相应的软件代码来响应串口屏的触控操作及界面切换操作等。为了便于程序的修改和调用,将串口屏不同批界面之间相同功能的执行代码进行统一设计,不同功能的执行代码进行独立设计,使程序层次分明,便于调试和修改。主要的独立模块包括:固定界面显示模块、触控消息解析模块、触控指令处理模块和显示模块。1、固定界面显示模块:在人机交互界面中,采用了串口屏特有的批界面模式,本论文中,一共设计了4个批页面,每个批页面存储了不同的显示信息,其显示代码如下:voidsetup(void){ switch(package) { case1://启动批界面1程序; GpuSend("SPG(1);"); GpuSend("\r\n"); Delay_ms(300); break; case2://启动批界面2程序;… break;}}执行setup程序语句,当赋予package值1时,即可在屏幕上调用存储在串口屏FLASH中的1号界面,当连续改变package值时,屏幕将依次显示对应的界面,实现屏幕界面切换功能。2、触控解析模块:将串口屏通过串口发送的数据解析为相应的触控指令。采用串口屏的热区及组态模式,当按下串口屏的某个按键时,串口屏会向串口发送格式为[BN:数字]的数据流,其中数字为批界面中设计时定义的每个按键的热区号,可识别用户的具体操作。解析模块主要的代码如下:externvoidrecvchar(unsignedintgc){ if(gc=='[')//①{ cjs=0; iscmd=1; } elseif(gc==']')//② { iscmd=0; iscmdok=1; } elseif(iscmd==1)//③ { if(cjs<8)cmd[cjs]=gc; cjs++; }}当检测到字符‘[’时,执行①代码程序,字符计数器cjs清零,标志位iscmd置1,表示已经检测到串口传入的按键命令。之后iscmd为1,程序执行③程序代码,通过cjs自加操作,依次将串口命令gc中的字符传递到cjs字符数组中。当最后检测到字符‘]’时,执行②程序代码,标志位iscmd置0,表示命令gc已识别,同时标志位iscmdok置1,表示命令已经识别,将作为触控处理模块的启动标志位。特殊地,在参数设置界面中,参数设置完毕后点击确定按钮,其传送的数据流格式为:{数字1}[BN:数字2],其中数字1为用户输入的参数数量,数字2为确定按钮的热区号。因此,添加一段对数据({数字})进行解析的代码,即可在触控解析程序执行的同时,对用户输入的参数数量进行解析,其代码与触摸解析模块代码结构类似,这里将不再进行赘述。3、触控处理模块:其建立在系统触控解析模块完成的基础上,系统得到用户指令后,不仅需要对命令进行识别,且需作出相应的具体操作。命令识别工作已经由触控解析模块完成,本模块只需根据指令执行不同的操作代码即可。其代码如下:switch(package){case1://界面1中按键作用…case4://界面4中按键作用{ if((cmd[0]=='B')&(cmd[1]=='N')&(cmd[3]=='1')) { number1=number1temp;//操作执行代码}} }触控解析模块执行的过程中,解析出的指令有可能是相同的,但在不同页面中具有不同的处理操作;比如同样是按键[BN:1]指令,页面1和页面2中对其的响应操作将完全不同;为了解决指令冲突问题,触控处理模块同样采用switch()分支结构,将不同界面的不同触控处理操作代码进行分离。4、动态刷新显示模块:单片机采集频率后,需要对其查表处理,之后将频率值和温度值进行上传串口屏显示,并在完成后重新检测和上传。每个页面对应的显示刷新模块不同,采用switch()分支结构,将不同界面的不同显示刷新代码进行分离,单个页面的显示刷新代码语句如下:switch(package){ case1://界面1刷新代码 break; case4://界面2刷新代码 if((number1!=0)&&(number2!=0)) { sprintf(buf1,"PS24(1,272,126,'%.2f',27,0);",f);//执行代码 }}1.3单片机程序模块STM32F103C8T6单片机采用Cortex-M332位的RISC内核,依据其丰富的内核资源,搭建了超声测温软件系统,包括:(1)测频模块(2)Flash模块(3)串口通信模块。1.1.1频率采集模块单片机进行测量频率的原理有两种:测频法和测周法。其原理分别为:测频法:在限定的时间内(如1秒钟)检测脉冲的个数。测周法:测试限定的脉冲个数之间的时间。在具体的频率测量中,选用何种测量方法有许多考虑因素,其中一个是被测频率的范围。当被测频率的范围比较低时,采用测周期的方法测量频率较为合适;而当被测频率比较高时,则测频法比较合适。同时,需要注意的是,被测频率的最高值一般不能超过测频单片机芯片系统时钟频率的1/2,因为当被测频率高于芯片系统时钟1/2后,其往往不能正确检测被测脉冲的电平变化[65]。前文中已介绍了谐振器谐振频率f常温下约为156kHz,激励脉冲由超声激励电路中窄激励脉冲进行分频后得到,因此本论文中单片机所测的窄激励脉冲(即前文电路图中的M3信号发送器)频率在常温下约为312kHz。因所测激励频率较高,所以本文采用测频法对激励脉冲进行测频,同时系统时钟采用经PLL倍频后的72M,满足被测频率的最高值不超过单片机系统时钟频率的1/2条件。本设计中采用一个系统定时器和一个高级定时器来实现测频功能,由系统定时器定时,当定时开始时,使

温馨提示

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

评论

0/150

提交评论