《某电容式燃油液位传感器的软件设计案例》4200字_第1页
《某电容式燃油液位传感器的软件设计案例》4200字_第2页
《某电容式燃油液位传感器的软件设计案例》4200字_第3页
《某电容式燃油液位传感器的软件设计案例》4200字_第4页
《某电容式燃油液位传感器的软件设计案例》4200字_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

某电容式燃油液位传感器的软件设计案例综述目录TOC\o"1-2"\h\u13451某电容式燃油液位传感器的软件设计案例综述 1301911.1编程环境与编程语言 1242711.2总体设计 156871.3主要功能程序设计 228241 211712 54139 524307 718421 71.1编程环境与编程语言单片机是整个液位测量系统的核心,振荡工作电路输出的数据信息运用单片机芯片展开综合处理,并且操作控制自动输出,所以控制软件综合设计通常都是单片机芯片的程序语言综合设计。由于要实现单片机采集脉冲信号,然后通过单片机内部通过数据处理转换成相应的频率信号;数据处理思想是两点之间确定一条直线,根据用户需要将输出分成多段直线,每一段线性输出。截至当前,PIC单片机芯片应用程序研发运用的编程语言通常包括:汇编编程语言、C编程语言。C编程语言具备应用功能超强、应用灵活多样、程序代码小、运行工作速率快等先天性的优势,与此同时,C编程语言能够很轻易的实现全面翻版复制,缩短单片机芯片应用程序的研发时间。支持单片机设备的C编程语言编译处理器设备通常包括:PICC、MPLAB等。PICC是一类满足ANSI参考标准的C编程语言研发设备,作用功能适合、运用便利、专业技术支持好。该工具将编辑器单元与工程管理器单元进行集成,在集中的工作环境平台(IDE)下运行,源资料文件都在项目工程之中,资料文件的编辑与项目工程的构筑同时也在这一环境里实现了。通过工程管理器单元可以直接自动生成HEX储存格式资料文件,该格式文件能够直接运用,可以通过下载控制器把文件下载保存到单片机芯片里运行工作。总体的软件系统设计运用PICC作为程序编译环境,运用C编程语言作为系统编程语言。1.2总体设计总体软件设计过程中,采用功能模块化设计模式,自顶朝下进行设计应用。研究分析所要达到的各个要求,将需要处理和解决的主要问题,经过分割,从一个总的整体结构性问题,分割成一个一个独立的部分,然后对每一个独立的部分提出解决处理方案。这样的模块化设计便于设计任务的划分,以及模块化程序的相互调用,整个程序结构清晰,便于调试查找问题,维护灵活方便。单片机设备实现了如下作用功能:(1)单片机整个系统的初始化处理:主要包含:单片机芯片I/O端口的初始化处理,中断程序的初始化处理,定时器单元初始化处理,看门狗初始化处理,EEPROM存储数据获取。(2)通过捕获端口,采集振荡电路频率信号,定时器计数。(3)修正数据,控制输出。1.3主要功能程序设计主应用程序的重要运行工作流程图如下图1.1所示。主程序的首要任务是对单片机芯片的上电复位清零,运行系统的初始化处理应用程序,然后通过CCP1模块检测引脚状态,开中断进行计数,对采集到的数据进行处理,通过PWM控制输出。上电复位上电复位初始化定时器初始化函数采集信号脉冲调制,去抖动输出图1.1软件控制流程图定时器选取外部12MHz晶振作为时钟源,选择增加计数模式,即增加到某一初值后溢出。若要实现该功能,就需要首先设定定时器的初始值,经过程序指令的不断运行,增加计数达到累计溢出后执行中断程序,输出高电平或者低电平。以TMR0定时器为例,TMR0是一个8位的定时器,所能代表的数值是从0至255,换句话说定时设备能够从0开始一直加到255,到255之后再加一就又转化为0。这个时候TMR0定时设备间断标记位(TMR0IF)自动置位为1。下面以两个流程图的形式,分别以频率和周期的模式而言明从控制时钟频次一直发展到定时设备间断溢出超过相互之间的联系。假定控制时钟频次是4.0兆赫兹,定时设备预分频数值是2,定时设备初始数值是0。图1.2时钟频率到定时器溢出中断流程图从图1.2可以看出,整个流程期间经历了三个操作应用步骤:第一步4.0兆赫兹的控制时钟频次4分频后转化为1.0兆赫兹的程序指令频次;之后预分频控制器设备2分频后转化为0.5兆赫兹的频次供应定时设备;定时设备通过256分频后转化为大概1952Hz的频次溢出超过间断。图1.3时钟周期到定时器溢出中断流程图同图1.2一样,整个流程期间也经历了三个步骤:首先0.25μs时钟周期4分频后变成1us指令周期;然后预分频器2分频后变成2μs周期供给定时器;定时器每隔2μs加一,加到256次,256×2μs=512μs溢出中断。结合上述内容,以时钟晶振4MHz为例,要求每间隔50ms输出一个高电平,50ms输出一个低电平,即要得到周期为100ms的方波信号,需要经过的过程则有:(1)首先得到指令周期tt=1式中,t为指令周期;F为晶振时钟的振荡频率,4MHz。由式5-1可以计算得出,指令周期t=1μs。(2)得到预分频定时设备能够定时的最大作用时间要求已经超过50mS,因此预分频控制器设备要选用256,则能够获取的最高的定时控制时间就是256倍的预分频,大约61.536ms,才能满足大于50ms的要求。(3)定时器初始化值从上述分析中,可以推算出,定时器的初始化值设为T0,应是定时器最大值加一后,与定时时间经过预分频后的差值,即T0经过计算可得,定时器的初始化值T0为60.6875,四舍五入后应为61。(4)设置相关的寄存器OPTION_REG寄存器设备里我们通常要求设立三处,PS<2:0>主要用于预分频作用范围从2~256的设置,PSA设立成0,是把预分频控制器设备调配给Timer0功能模块,TMR0CS设立成0,使用内部程序指令周期控制时钟。代码如下例:voidInitT0(void){ PSA=0; PS2=0; PS1=0; PS0=0;INTCON|=0x20;TMR0=0x00;}主程序调用函数前,函数初始化,进行标志位配置。延时函数的作用,就是为了可以操作控制数据信息收集速率,在采集一次数据之后要求延时作用一定的有效时间,但是假如运用旧有传统类型的软件程序延时的方式,不仅仅会使单片机工作效率降低,耗用单片机设备资源,并且准确度也会出现较大误差。所以应用单片机芯片自带的定时模块,结合中断程序使用,定时控制时间到达中断条件后中断,并对中断标志位置位,这类模式能够方便快捷的处理定时或者其他事务,而且可以获取比较准确的延时作用。PIC单片机芯片配置设计有CCP(捕捉/比较/振荡脉宽调节控制)功能模块,也就是CCP1,有相对独立的十六位寄存器设备CCP1。CCP功能模块的作用功能主要包含:外界数据信号捕捉、内部比较自动输出以及PWM自动输出,和定时设备/计数控制器配合运用。CCP功能模块可运行工作在3类方式下:捕捉模式、比较模式与振荡脉宽调节控制模式。(1)捕捉模式:指的是测试管脚上自动输入数据信号的工作状态,当数据信号的工作状态满足设立的基本条件时调用中断子程序产生中断,并且自动记录中断时的定时设备/计数控制器数值,当CCP功能模块运行工作在捕捉模式的时候,TMR1操作控制寄存器设备需要运行工作在定时设备或者同步计数统计模式下。例如,在t1时间点到来之前将CCP1寄存器工作方式设置成捕捉信号脉冲上升沿后中断。当数据信号脉冲上升沿到来的时候,满足中断条件产生CCP中断,在中断子程序里记录这个时间寄存器设备TMR1里的十六位数值time1,然后将CCP1转而设置成捕捉信号的下降沿后中断。当这个数据信号脉冲下降沿到来的时候,满足中断条件形成CPP中断,在中断子程序里记录这个时间寄存器设备TMR1里的十六位数值time2,然后再将CCP1设置成捕捉信号的上升沿后中断。当捕捉到数据脉冲信号的下一个上升沿,满足条件继续执行中断程序,在中断子程序里记录此刻TMR1寄存器设备里的十六位数值time3,则整个捕捉中断的过程中数据脉冲信号的工作周期T=(time3-time1)微秒,数据信号频次f=1/T,信号脉冲有效宽度P=(time2-time1)微秒,占空比D=P/T×100%。因为在CCP捕捉工作模式下,计数的误差可能达到±1微秒,如果要满足上述误差要求,就需要重复多次以上捕捉中断、再捕捉再中断的过程,最终将各次记录的平均有效数值作为最后的测量确定数值。图1.2捕捉模式原理示意图假如要求测量确定的最大频次是1000Hz,工作周期仅有1000微秒,并且信号脉冲的占空比有10%~90%宽度的作用范围,那么高电平状态能够持续的最短时间为100微秒,仍然能够有足够的有效时间执行中断子程序。但在实际的使用过程中发现,存在两次捕捉中断的有效时间间隔少于一次中断子程序的作用时间,这样就只能通过合理的设置寄存器设备CCP1CON的数值,可以使CCP功能模块每隔四个信号脉冲捕捉一次上升沿,这样一来两次中断之间的有效时间间隔就能够符合设计需要。(2)比较模式:指的是把事先设立好的数值和定时设备或者同步计数统计模式下的数值互相比较,当两个数值相同的时候,进入中断子程序执行程序中已经设定的程序动作。(3)振荡脉宽调节控制模式:可以设置输出引脚输出信号脉冲有效宽度实时可以调控的PWM数据信号,来完成方波数据信号的操作控制自动输出。PWM自动输出是运用定时设备1(Timer1)与定时设备2(Timer2)作为程序执行的时钟基准,利用Timer1与Timer2两个八位加法定时设备中的工作周期寄存器设备,PR1与PR2,并且设置溢出中断,作为两个八位定时设备/计数控制器运用。若使PWM输出信号,需要通过将P1M<1:0>和CCP1M<3:0>位(分别为CCP1CON<7:6>和CCP1CON<3:0>)置1来选择合适的PWM模式。相应的TRISC位也必须设置为输出。PWM1自动输出信号周期是通过Timer1与工作周期寄存器设备(PR1)比较判断,通过软件程序可以设置PWM2自动输出信号周期,并且用Timer1与Timer2作为时基。当TM2PWM2位数据(PW2DCL〈5〉)被清零,时基是由Timer1和PR1决定,当TM2PWM2被置1,时基是由Timer2与PR2判断。当两个PWM同时工作运行,自动输出的时候,两个个定时设备能够形成两个不相同的PWM信号周期。在振荡脉宽调节控制数据信号里,数据信号工作周期一般是维持恒定的,而振荡脉宽是可变化的。以PWM1自动输出为例来说明如何确定输出的信号频率,将Timer1应用在时基,应用内部控制时钟,则:PWM1输出周期=[(PR1)+1]×4tosc(5-1)式中,tosc为振荡周期。对于12MHz的振荡频率,振荡周期tosc=1/(12×106)=83.3ns,如果PR1=24,则PWM的输出周期为:25×4×83.3×10-9=8.33μs,频率为1/(8.33×10-6)=120kHz,改变时基的周期值(PR1)可以控制PWM的输出频率。振荡脉宽寄存器设备是双缓冲作用的,当对这两个寄存器设备展开写操作应用的时候,他们第一步被保存在主储存设备里,当Timer1(或者Timer2)溢出,并且开始一个新的PWM信号周期时,将主储存设备里的数据传送至从储存设备里,预防新的振荡脉宽录入引发的误操作应用,PWM功能模块使用TMR1或者TMR2作为间断,当TMR1或者TMR2等同于它的工作周期寄存器设备数值,定时设备形成中断并且被归

温馨提示

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

评论

0/150

提交评论