基于单片机的发动机转速的测量.doc_第1页
基于单片机的发动机转速的测量.doc_第2页
基于单片机的发动机转速的测量.doc_第3页
基于单片机的发动机转速的测量.doc_第4页
基于单片机的发动机转速的测量.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

学院 毕 业 设 计基于单片机的发动机转速的测量系别:专业名称:学生姓名:学号:指导教师姓名、职称:完成日期 20 年 月 日23学院本科毕业论文(设计)开题报告选 题基于单片机的发动机转速的测量院 系专 业学生姓名指导教师本选题的意义及国内外相关的研究状况: 1课题研究的意义: 汽车是现代文明的产物,尽管汽车的出现才100多年的历史,但汽车极大地影响和改变了我们的世界。电子控制技术.计算机技术.人工智能等高新技术的发展,对汽车技术和汽车工业的发展起了极大的推动作用。20世纪90年代以来,汽车技术尤其是汽车控制技术进入了一个全新的时代,利用计算机技术和电子技术的发展成果,可以解决汽车控制技术方面的很多难题。电子控制技术已成为未来汽车产品研发的关键,汽车产业的技术竞争实质上就是汽车电子控制技术的竞争。汽车电子控制技术是伴随着各国政府日趋苛刻的汽车管理法规和日益成熟的微电子技术.计算机技术逐步发展起来的。汽车电子控制技术就是以微处理机为核心,实时坚控发动机运转和车辆行驶过程中的各种运行参数,对全部工作过程进行动态控制。微电子技术和计算机技术以其控制过程精确.响应速度快的优势满足了这一要求。2国内外研究状况: 汽车电子控制技术的研究与应用始于20世纪60年代,而大规模的运用在20世纪90年代以后。从汽车电子化发展进程来看,可将其整个状况分为四个阶段。60年代中期到70年代末期,是汽车电子控制技术发展的初级阶段,汽车上运用电子技术主要是对汽车电器产品进行电子技术改造,以改善部分性能。19741982年,是汽车电子控制技术迅速发展阶段。这一阶段的主要特征是广泛采用机电一体化装置解决机械系统无法解决的复杂过程的自动控制问题,尤其是解决汽车的安全.污染及节能三大问题。19821990年,是微型计算机在汽车上应用日趋成熟并向智能化发展阶段。1990年以后预计到2010年,是汽车电子控制技术向智能化发展的高级阶段。这一阶段的特征是强调以人车环境为主线的系统工程整体优化,主要体现在智能化上。研究内容:汽车电子控制技术的应用经历了由单独控制向集中控制系统发展的过程,到现在汽车电子控制系统的ECU采用了数字电路及大规模集成电路,可以将多种控制功能集中到一个ECU上,所以在此只对基于单片机的发动机转速的测量方法做以研究。在某汽车发动机实验台经常需要测量发动机转速,以往常用的是指针式的转速表,指针的转动往往会有所延迟,且不能显示精确数值,给实验带来太大的误差,本文中我们将采用单片机内部的计数器来完成转速的精确测量研究方法、手段及步骤:系统的框架设计:本系统主要由8031单片机、程序存储器EPROM2716、数据存储器RAM6116和外接口芯片8155等组成,从传感器来的信号经放大、整形后,送入ADC0809进行模数转换,输出信号通过P1口送入8031单片机应用系统,测量结果由5位数码管显示。单片机程序设计:该转速测量软件包括主程序、中断服务程序。主程序完成系统初始化、开中断、等待中断。中断服务程序完成输入信号处理与定时、计数。为防止干扰,程序中采用了软件滤波法及设置软件陷阱。用单片机的T/C0作为定时器,用软件扩展方式。设定T/C0定时时间为50ms, 定时时间到, 溢出中断,在中断服务程序中, 对中断次数寄存器加1, 重复定时中断20次。系统的硬件电路设计:本系统使用霍尔传感器作为转速信号的检测转速信号前期处理由于测试环境的电磁干扰、传感器和放大器自身的影响会有噪音信号,为使系统的信噪比增加,在此选用了有源滤波器中的低通滤波器。用MCS - 51 的外部中断,对脉冲的上升沿或者下降沿进行中断处理,或者I/ O 脚, CPU 每隔一段时间就检查一次连接信号的I/ O 口上是高电平还是低电平,再根据高低电平的转换确定接受到的是上升沿还是下降沿,编写相应程序计算6 个高电平或6 个低电平的长度,求得主轴的转速。系统的误差估计:汽车发动机转速遥测系统相对传统的汽车发动机转速测量仪,在精确度上占有很大优势,但误差仍然是不可避免的。转速测量中,转速误差包括转速平均误差和转速测量误差,其中转速平均误差较大。另外,传感器和单片机的定时也存在误差。但由于转速信号的采集频率低,因此除了加、减速期间测得的误差较大外,发动机正常运转时系统仍可保持较高的测量准确度,能够满足测量要求。参考文献:1唐岚,等汽车测试技术 M北京:机械工业出版社,20062胡朝龙,汽车发动机实验M重庆:重庆大学出版社,20073钱一人,现代汽车发动机电子控制M上海:上海交通大学出版社,19994张立伟,汽车发动机电子控制技术M郑州:郑州大学出版社,20055南金瑞,汽车单片机及车载总线技术M北京:北京理工大学出版社,2005基于单片机的发动机转速的测量摘 要测量发动机转速常用的是指针式的转速表,指针的转动往往会有所延迟,且不能显示精确数值,给实验带来太大的误差。本文中我们将采用单片机内部的计数器来完成转速的精确测量本文介绍了利用单片机来实现发动机转速测量的设计思想和实现方法,给出了测量方案及原理,并设计了硬件电路部分,和单片机的汇编语言程序。结果表明,该方法不但可以提高了测量精度和测量效率,而且大大提高了测量的客观性,系统对于改进目前的测量手段,提高测量的客观性和精度有很大帮助。关键词:单片机;转速测量;汇编语言Single-chip Microcomputer-based Measure of Enginerotating SpeedAbstractThis paper describes the design concept and measurement method of measuring engine speed using SCM, presented the measurement scheme and principles, and also presented the hardware design of the circuit and assembly language program on single chip. The results showed that this method can not only improve the accuracy and efficiency of the measurement, and greatly improving the objectivity of the measurement. It is helpful to improve the measuring means of the current system and the objectivity and accuracy of the measurement.Keywords: single-chip microcomputer; rotating speed measure; assembly languageII目 录绪论 11 章 MCS - 51 单片机简介 22 章 转速信号的采集与处理 22.1 转速采集原理22.2 转速信号来源22.3 转速信号前期处理32.4 转速信号的采集方法32.5 单片机采样处理的工作流程4 3章 系统基本工作原理及组成63.1 软件系统的设计 63.1.1 PC机程序设计63.1.2 单片机程序设计 73.2 硬件系统的设计 93.2.1 转速测量原理123.2.2 定时器/计数器的设置 133.3 系统的调试15 3.3.1 测速信号的滤波 153.3.2 脉冲计数测量法的精度分析 15结束语17 参考文献18 致谢19 绪论 随着汽车技术和电子技术的迅速发展,汽车电子控制系统的集成化程度越来越高,汽车电子控制技术也已经发展成为一门新的学科。其中,汽车发动机电子控制技术占有极为重要的地位。首先,因为发动机是汽车的动力,它的性能好坏直接决定了车辆的整体性能。同时,汽车电子控制技术一开始就是从发动机的控制研究发展起来的,而车辆底盘和车身方面的电子控制技术的发展又向发动机的控制提出了新的要求,为发动机电子控制技术提示了新的研究方向和研究课题。现在,发动机的控制不仅要满足车辆动力性、经济性和排放性的要求,还要综合考虑安全性、操纵性、稳定性和舒适性的需要。转速是发动机的重要参数之一,转速信号的采集和处理是发动机的一项重要工作。以发动机转速信号为核心的数据采集分析测试系统,主要是使用单片机采集转速数据并将其在功能更为强大的PC 机上进行测试分析,以方便研究发动机的工作状态和转速之间的内在关系。本系统使用霍尔传感器作为转速信号的检测转速信号前期处理由于测试环境的电磁干扰、传感器和放大器自身的影响会有噪音信号,为使系统的信噪比增加,在此选用了有源滤波器中的低通滤波器。用MCS - 51 的外部中断,对脉冲的上升沿或者下降沿进行中断处理,或者I/ O 脚, CPU 每隔一段时间就检查一次连接信号的I/ O 口上是高电平还是低电平,再根据高低电平的转换确定接受到的是上升沿还是下降沿,编写相应程序计算6 个高电平或6 个低电平的长度,求得主轴的转速。1 MCS - 51 单片机简介MCS - 51 单片机是Intel 公司1980 年推出的8 位可编程控制器,其功能丰富,使用灵活,性价比高,是我国8 位机的主流机型。与MC S - 51 单片机配套的芯片、器件和开发装置很多,使用十分方便。对MCS - 51的编程可以使用汇编语言进行编写,也可以使用高级语言编写,然后使用编译器将其代码编译为机器码使用。高级语言的可读性强,修改方便,适合编写比较复杂的程序。在写入程序存储器前还可以在PC 上使用仿真器对程序进行仿真运行调试,可以缩短系统的开发时间和开发成本。基于以上特点,本系统选用MCS- 51 单片机作为数据采集的核心部件,程序的编写使用C 语言和Cx51 编译器共同完成,并且在仿真器上进行测试修改。2转速信号的采集与处理2.1 转速采集原理发动机的转速传感器信号盘安装在曲轴上,工作时传感器输出信号经整形后可得到相应的方波脉冲信号。利用MCS - 51 单片机的输入捕捉功能,可得到相邻的两个上升沿的时间差,即可算出当前转速n 。公式为 n = j 2000000 60/ ( I T)= 1. 2 10 j/ ( I T) (r/ min)其中I 为转速信号盘每转输出信号数; j 为信号盘转1 圈发动机转的圈数(信号盘安装在曲轴上时j =1, 装在凸轮轴上则j = 2);T 为单片机输入捕捉所计算出的相邻两个上升沿之间的时间差值。2.2 转速信号来源本系统使用霍尔传感器作为转速信号的检测,其转速盘的结构如图1 所示,信号盘可用一般钢板制成,这个信号盘就是发动机实际实验时所用的信号盘,盘上共有六个齿,其中有一个40的宽齿(作为喷油正时基准信号) ,五个20的窄齿;围绕盘中心有四个均布(相隔90) 的孔, 两个大孔为21 , 另两个小孔为10. 6 ,盘中心还有一个52 的中心孔。我们把宽齿齿边与盘中心连线对应的大孔作为特殊孔,这几个孔在发动机上主要用于定位。在这儿用双速电机代替发动机,信号盘与电机安装在一起,随电机转动,传感器固定在支架上,垂直于转速盘,与其相对的位置安装一块永久磁铁,当转速盘旋转时,霍尔传感器就输出矩形脉冲信号,输出六个脉冲,对应发动机一个工作循环每个信号对应一个缸,其中的两个宽脉冲信号配合上止点信号精确确定上止点的位置。图1 转速盘的结构2.3 转速信号前期处理经传感器转换和放大器放大的电信号,由于测试环境的电磁干扰、传感器和放大器自身的影响,往往会含有多种频率成分的噪音信号。严重时,这种噪音信号会淹没待提取的输入信号,造成测试系统无法获取被测信号。在这种情况下,需要采取滤波措施,抑制不需要的杂散信号,使系统的信噪比增加,在此选用了有源滤波器中的低通滤波器。根据低通滤波器幅频特性,确定有限增益低通滤波器的线路图 。2.4 转速信号的采集方法由于传感器传送来的信号是以6 个脉冲为一周期的方波电压信号,因此可以使用两种方法采集该信号:1) . 用MCS - 51 的外部中断,对脉冲的上升沿或者下降沿进行中断处理,编写中断处理程序,计算发生6次中断的时间便可以计算出主轴的转速。2) . 使用MCS - 51 的I/ O 脚,CPU 每隔一段时间就检查一次连接信号的I/ O 口上是高电平还是低电平,再根据高低电平的转换确定接受到的是上升沿还是下降沿,编写相应程序计算6 个高电平或6 个低电平的长度,求得主轴的转速。以上两种方法各有优缺点:方法1 CPU 开销小,速度更快,但是单片机外部中断源有限,扩展其他传感器受限制;方法2 则可以连接多个传感器,但是CPU 利用率不高,速度较慢。为解决以上矛盾,使数据采集卡的效率和扩展性能都比较合理,使用了一种中断与查询相结合的方法,将每一中断源用同线非的方式连到同一个外部中断源的输入端,同时还分别连至各I/ O 脚。其电路如图2所示。无论哪路信号申请中断都可以触发中断,由软件查询出申请中断的信号,并按照其优先级做出相应处理。图2 单片机采样处理的工作流程图2.5 单片机采样处理的工作流程转速测量电路传来的数字脉冲信号中每个脉冲表示转速盘的一个齿。六个脉冲为一个周期,代表主轴转过一周。这个信号被分为两路(如图2) :一路直接送至单片机的P1. 0 口,另一路通过线非的方式接到单片机的INT0 端,而单片机外部中断0 设置为后边沿触发方式,这样当高电平到来时INT0 端产生由高电平到低电平的电压跳变,向CPU 发出外部中断请求。CPU响应中断后检测P1. 0 口的电平,以确认信号是否正确。然后单片机内部的定时器开始记时,计数器开始计算脉冲数量。当计数器记数到达6 次时说明主轴已经旋转一周,则定时器停止记时,记时器所记录的时间就是一个周期的时间长度。采样具体工作流程如下:1) 传感器电路的低电平信号跳变为高电平信号,经过非门后在INT0 端产生高电平到低电平的跳变,因此产生下边沿触发中断。外部中断0 向CPU 请求外部中断,CPU 响应后暂停主程序转入外部中断处理程序。2) 外部中断处理程序对P1 口各个引脚依次查询,判断是哪个引脚发出的中断信号(在本实验系统中只使用了P1. 0 口,其他未使用引脚一律接地) ,再转入相应处理子程序。3) 在转速脉冲信号处理子程序中,首先检查计数器的数值,如果该数值为0 则说明这是第一个脉冲信号,如果这个数值大于0 小于5 则说明这是个中间的脉冲信号;如果该数值为5 则说明这是第六个脉冲信号,也就是一个周期的最后一个脉冲。4) 若计数器为0 ,则启动定时器T0 ,计数器加1 ,返回外部中断处理程序;若计数器为14 ,则仅仅将计数器加1 ,返回;若计数器为5 ,则定时器T0 停止记时,计数器清零,进入转速计算子程序。5) 转速计算子程序将定时器T0 中的内容取出,将定时计数器记录的溢出次数乘以定时器最大定时时间(本系统中定时器T0 工作于状态1 ,最大定时时间为65. 536ms) 再加上T0 中寄存器的数值,就可以求得整个周期的长度。计算公式如下: T0 0. 001 + 定时计数器65. 536 = T(ms)把周期长度数值存放在数据存储器中覆盖旧的周期长度数据,以备在需要向PC 机发送的时候调用。将T0 和定时计数器的内容清零,计数器清零,返回外部中断处理程序。6) 外部中断处理程序结束,返回主程序。3系统基本工作原理及组成3.1 软件系统的设计3.1.1 PC机程序设计串行通信过去在DOS 操作系统下一般都是采用汇编语言开发 ,汇编语言的特点是功能强 、运行速度快 、但编程复杂、 调试难。 随着 Windows操作系统的普及应用, 数据采集和工业控制等软件的开发也上升到Windows 环境下 ,采用高级语言开发, 高级语言具有良好的可读性和简便的调试手段。Windows环境下的串口通信程序是基于Visual Basic6.0开发平台开发的 ,利用MSComm串行通控信件, 采用事件驱动的串行通信方式。 要完成正常的通信功能, 首先要正确设置通信控件的通信参数, 包括串行端口号、 波特率 、数据接收格式等 ,单片机适合处理二进制数据 ,因此接收数据格式参数设为二进制格式, 另外还要正确设置通信端口的接收阀值参数, 因为单片机每次向PC机传送2 个字节( 高位和低位), 接收阀值参数设为2, 读字符串长度Inputlen 参数设为1, 每次从接收缓冲区读取一个字符。参数设置程序如下:MSComm1.CommPort=1; 串口1MSComm1.Settings=9600,N,8,1MSComm1.InputMode=comInputModeBinary以二进制方式读取缓冲区数据MSComm1.Rthreshold=2 每次向PC机传两个字节,设2MSComm1.Inputlen=1; 每次读取一个字节MSComm1.PortOpen=Ture; 打开串口采用事件驱动的串行通信方式, 就要正确设置通信控件的通信事件,OnComm 事件是 MSComm控件的唯一通信事件, OnComm事件可以捕获通信时发生的各种通信事件和通信错误, 如果有通信事件或错误发生 , MSComm通信控件就会立即触发一个OnComm事件, 程序进人OnComm 事件处理过程, 接收并分离出定位信息或者进入错误处理程序。 在各种通信事件中 ,大多数都是需要处理接收通信事件,接收阀值参数RThreshold 设为2 每接收到两个字符 就会触发一个OnComm 事件 , OnComm接收事件。处理程序如下:Privat Sub MSComm1_OnComm(); 每次读取一个字节,放入字节变量Arr()中Var=MSComm1.InPut; 变体变量接收串行口数据Arr(1)=var(0)var= MSComm1.InPutArr(2)=var(0)Text1.Text=Arr(1)*256+Arr(2) 显示End Sub3.1.2 单片机程序设计用单片机的T/C0作为定时器,设定定时时间为1s,由于单片机最大允许定时时间只有65.5536ms,需要扩展定时时间, 一般有硬件扩展和软件扩展方式, 这里用软件扩展方式, 设定T/C0定时时间为50ms, 定时时间到, 溢出中断,在中断服务序中,对中断次数寄存器加1,重复定时中断20次,即1S,1S 定时时间到, 读取T/C(P3.5)引脚输人的脉冲数即为频率值, 通过串行口发送给PC机。在 T/C0定时中断服务程序中,首先判断定时时间1S是否到达,定时时间到 ,读取计数器T/C1的计数值 ,通过串行口发送给PC机 ,中断服务程序如下:DVTO: INC R3; 中断次数寄存器加1 MOV THO,#3CH; 重置定时器初值(15536) MOV TLO,#OBOH CJNE R3,#14,NEXT; 不到20次,中断返回 MOV R3,#OOH; 到了20次,中断次数寄存器清0为下次做准备READ: MOV A,TH1; 读计数器高位 MOV R7,TL1; 读低位,放到R7中 CJNE A,TH1,READ; 再读高位,和上次读的不同,重新读;防止低位向高位溢出时读错 MOV R6,TH1; 把高位放到R6中 MOV TL1,#OOH; 把计数器T1清0 MOV TH1,#00H MOV SBUF,R7; 把计数器低位发送给PC机LOOP: JBCT1,NEXTONE; 发送完,把T1清0再转发高位 AJMP LOOP; 没发送完,继续等待NEXTONE: MOV SBUF,R6; 发送高位LOOP:JBC T1,NEXT; 发送完清T1,中断返回 AJMP LOOP1NEXT:RETI 中断返回中断次数计数器加1 重装计数器初值到1S了吗? N 清中断次数计数器Y度计数器T1并清0 向PC机发送计数器中 断 返 回 图8 中断流程图和PC 机通信 ,单片机就要有定时计数器工作于波特率发生器工作方式, 这里选用 AT89C52系列单片机。AT89C52 单片机是Atemle 公司生产的一种高性能低功耗的8位并行微型单片机, 它的引脚和指令一系统与MCS-51系列单片机完全兼容。52 系列单片机比 51系列单片机多了一个定时/ 数器2, 定时 /计数器2 由 TH2,TL2,RCAP2H,RCAP2L等电路组成 。定时 /计数器2 可工作于自动重装载、 捕捉 、串行口波特三率发生器 三种工作方式, 工作方式由控制寄存器T2CON控制。T/C2 就作为和PC 机通信时的波特率发生器, 置控制寄存器T2CON 控制字00110000B, 波特率设定为9600bps, 置初值寄存器RCAP2H、RCAP2L初值FFD9H。单片机使用12MHZ 晶振,置初值FFD9H对设定的波特率 9600bps可能会产生误差,但只要误差在4% 内, 通信就可以正常进行。这里值得一提的是;在汇编语言中,并没有对T2CON 的语言说明, 控制T2CON的波特率发生器工作方式是直接对地址赋值,例如设定T2CON的波特率发生器工作方式要用 MOV OC8H,#00110000B,而不能MOV T2CON,#00110000B, 否则在编译时就会出错, 同样启动波特率发生器也是用SETB OCAH, 而不能SETB TR2。3.2 硬件系统的设计本系统采用了Intel公司的8052AH单片机,内有8K的ROM,256字节,其串行口通过移位寄存器锁存数据,驱动LED实现静态显示。本设计硬件电路组成框图如图3所示: 图3 硬件电路框图本系统采用M/T法 ,8051单片机内有两个独立的16位增量计数器 T0,和T1, 将 T0和T1分别用控制字设定为 T0定时器状态 ,T1设定为对外脉冲计数状态, 晶振f=6MHZ,另在内部RAM中用软件设一定时器, 该定时器的计时可以设为外部脉冲的周期数 ,量值根据所测对象而定。 图4 硬件电路图将外部通过光电耦合, 并经整形处理后的转速脉冲信号加到 T输入端 ,并用该脉冲经反相加到INT1启动T1, 同时打开T0, 内部 RAM计数 ,此时 ,CPU等待中断, 当设定的时间到时, CPU响应中断,执行中断服务程序, 将 T0和T1中的数据进行运算, 得出转速值 ,同时对T0,T1清零 ,开始第二次测量。 m2图5 脉冲时间图谱图5中 m1反映转角 ,m2 反映测速时间, 测速时间Td与RAM 计数同步。 从 a点开始,计数器对 m1 m2 计数, 到达b点 预定的测速时间到, CPU 发出停止计数的指令, 因为TC不一定恰好等于整数个脉冲周期, 所以计数器仍然对高频脉冲计数, 到达c点 ,外部脉冲的上升沿使计数器停止, 这样m2 就代表了 m1个脉冲周期的时间, 则所测转速为 n=60m1/pm2第二次同样测得转速后与第一次的转速值比较,据转速的大小及时调整 RAM的值,以提高高转速和低转速的精度。由CPU计算得出的转速向 8279 写入命令 将结果写入 8279的显示 RAM中, 经 8279的 A, B 口输出段选码驱动后由数码管显示转速结果。程序流程图如图6所示。 图6软件流程图 3.2.1 转速测量原理根据脉冲计数来实现转速测量的方法主要有:M法(测频法),T法(测周期)和M/T法。M法通过测量在设定的时间间隔Tx内脉冲发生器所产生的脉冲数来获得被测速度值的方法,一般应用于高速测量。T法通过测量脉冲发生器相邻两个脉冲的时间间隔(即周期)来确定被测速度的方法,一般应用于低速测量。当需要测量的转速范围较宽时,单独采用M法或者T法都很难达到精度要求。这时,可以使用M/T法,所谓M/T法,实际上时M法与T法的结合。实现该方法是指在测速过程中,不仅测取转速脉冲的个数N,而且同时测取高频时钟脉冲的个数Nc。由于该发动机转速为500转/分,我们采用M法,即在一定的测量时间Tx内,测脉冲发生器产生的脉冲数为N,则发动机转速应为: n=60N/MTx (1)其中,n为发动机转速,M为发动机转一周脉冲发生器产生的脉冲数。本设计采用霍尔开关作为脉冲发生器,在发动机的主轴上安装一个非金属圆形薄片,将磁片均匀的嵌在薄片圆周上,注意辨别每个磁片的N S极,(N极贴向转动轴,S极朝向霍尔传感器)在连动轴附近固定霍尔传感器,主轴转动一周,每个小磁片经过霍尔传感器时,霍尔传感器便产生一个脉冲,要提高测量精度,应适当增加发动机旋转1周时产生的脉冲数,即增加粘贴的磁片个数,从而使间距变小,但是间距不能太小,否则会影响到霍尔传感器的输出脉冲。本系统均匀的粘贴了10个铁片,则发动机每转动一周就会产生10个脉冲,定时1秒钟测出的脉冲个数为N,就可以得到发动机转速 n=6N(转/分) (2)注意霍尔元器件输出脉冲后,必须经过光电耦合器才能作为转速计数的计数脉冲,光电耦合主要起隔离作用,光耦两侧的电源与地应分开,否则起不到隔离作用。电路图如图7所示图7 电路图3.2.2 定时器/计数器的设置本系统中,以单片机T0作为计数器,工作于模式1,T1作为定时器,用单片机T1定时加软件计数来实现1秒定时。即T1每定时50ms后溢出,用工作寄存器组2中的R7来实现软件计数20次,计满后,1秒定时到,当检测到P3.4的下降沿到来时同时启动定时器T1,计数器T0,直到1秒到,关计数器,记下1秒钟所测的脉冲数,如此连续测3次后再进行数字滤波,得出1秒的脉冲数N,在转速的计算中要用到乘法运算,(见式2),最后得出转速n。T1计数初值 则 即 下面是计数器T0,工作于模式1,定时器T1,工作于模式1实现定时1秒计脉冲数的部分子程序:ORG 0000JMP MAINMAIN: SETB TR1 ,用工作寄存器2CLR RSOMOV R0,#40H 存放1秒脉冲数的首地址MOV R7,#20 软件计数MOV TMOD,#15H T0用于计数,T1用于50ms定时MOV TLO, #00H 计数器T0初始化MOV THO,#00HMOV TL1,#00H 定时器T1定时50ms初值MOV TH1,#4CHCLR EA 屏蔽所有中断JB P3.4 等待下降沿的到来SETB TR1 启动定时器T0,T1SETB TR0LOOP: JBC TF1,LP1 查询T1的溢出标志,为1则定时50ms到 SJMP LOOPLP1: MOV TL1,#00H T1重装初值 MOV TH1,#4CH DJNZ R7,LOOP 软件计数20次到没?到则1秒时间到 CLR TRO 关定时器T0,T1 CLR TR1 MOV R0,TL0 送计数值到40H,41H单元 INC R0 MOV R0,TH0 END3.3 系统的调试3.3.1 测速信号的滤波在电机转速的测量中,由于转速本身的脉动、随机干扰的存在,滤波环节是不可缺少的。在微处理器控制系统中可以用数字滤波方法。这里采用中值平均值滤波方法。首先讨论平均值滤波方法,它是将当前的采样数据与在此之前采集的共h个数据求平均值来作为当前采样结果。即t=kTx时刻的测量数据n(t),用采样数据n(k-h+1),n(k-1),n(k)的平均值n(t)来代替,即 (7)h值决定了信号的平滑度与灵敏度,随着h的增大平滑度提高,而灵敏度降低。该方法适合于对转速脉动的滤波。在脉冲计数法的基础啊上增加平均值滤波。将式(1)代入,得到 (8)式中,为时刻的计数值。由式(8)可见,采用平均值滤波后,将多次测量转速求和取平均值。能够进一步减小误差,提高测量精度。中位平均值滤波是平均值滤波算法的改进。将采样的h(h3)个数据按大小次序排列后分为3组。设h1为小值,h2为中值,h3为大值。滤波中去掉大值组h3和小值组h1,将据中的一组h2的数据采用平均值滤波算法,求平均值后作为当前采样值。中位值滤波法能有效地滤去由于偶然因素引起的尖峰以及采样开关等引起的脉动干扰。3.3.2 脉冲计数测量法的精度分析 在脉冲计数法的速度测量中,计数脉冲数N与采样周期Tx,每转产生的脉冲数有关,当计数脉冲从N变化到N+1时,根据(1)脉冲计数法的速度误差为 (2)得到相对误差为 (3)显然要提高转速相对测量精度可以采用较大的采样周期Tx,以及增加每周脉冲数,并且与发动机转速n成反比。但是磁片个数并不是越多越好,因为霍尔脉冲发生器产生脉冲的原理是:当磁性物体移近霍尔开关时,开关检测面上的霍尔效应而使开关内部电路状况发生变化,由此识别出附近有磁性物体存在,进而控制开关的通与断,作为接近开关,除了满足一定的电气参数外,还需满足一定的计术指标,即响应频率:按规定在1秒的时间间隔内,允许霍尔开关动作循环的次数。回差距离Bh:动作距离与复位距离之间的绝对值。霍尔接近开关的工作特性图。 图8 霍尔接近开关工作特性回差 Bh=| (4)式中,Son表示接近开关的动作距离,即从规定的基准面(检出面)到开关动作处的距离;Soff表示接近开关的复位距离,即从规定的基准面到开关复位处的 距离。差程:动作距离与复位距离之差与动作距离之比的绝对值,即差程= (5)选择霍尔开关作为脉冲发生器测转速时,其差程的大小应尽量小,差程值有5%,10%,15%,20%几种。否则,当发动机高速旋转时,而磁片又很多,就容易产生磁场湣叠现象,即霍尔开关没来得及退出上一个磁片的磁场区又进入了下一个磁场区,霍尔开关就一直处于导通状态,失去了开关作用,就不能产生脉冲。 结 束 语本系统基于单片机完成发动机

温馨提示

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

评论

0/150

提交评论