1、毕业:基于嵌入式linux视频监控系统毕业设计汇编(完整版)资料(可以直接使用,可编辑 优秀版资料,欢迎下载)基于嵌入式Linux的视频监控系统的软件设计1、引言随着计算机技术及网络技术的迅猛发展,公安、安防行业的发展趋势必然是全面数字化、网络化。传统的模拟闭路电视监控系统有很多局限性:传输距离有限、无法联网,而且模拟视频信号数据的存储会耗费大量的存储介质(如录像带),查询取证时十分烦琐。 基于个人计算机的视频监控系统终端功能较强,但稳定性不好,视频前端(如电压耦合元件等视频信号的采集、压缩、通讯)较为复杂,可靠性不高。基于嵌入式Linux视频的网络监控系统不需要用于处理模拟视频信号的个人计算
2、机,而是把视频服务器内置一个嵌入式Web服务器,采用嵌入式实时多任务操作系统。 由于把视频压缩和Web功能集中到一个体积很小的设备内,可以直接连入局域网,即插即看,省掉复杂的电缆,安装方便(仅需设置一个IP地址),用户也无需安装任何硬件设备,仅用浏览器即可观看。 基于嵌入式Linux的视频网络监控系统将嵌入式Linux系统连接上Web,即视频服务器内置一个嵌入式Web服务器,摄像机传送来的视频信号数字化后由高效压缩芯片压缩,通过内部总线传送到内置的Web服务器上。2、绪论视频监控系统是安全防范系统的组成部分,它是一种防范能力较强的综合系统。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场
3、合。近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,涌现出大量的嵌入式视频监控系统。21视频监控系统概述视频监控是利用机器视觉和图像处理的方法对图像序列进行运动检测、运动目标分类、运动目标跟踪以及对监视场景中目标行为的理解与描述。其中,运动检测、目标分类、目标跟踪属于视觉中的低级和中级处理部分,而行为理解和描述则属于高级处理。运动捡测、运动目标分类与跟踪是视频监控中研究较多的三个问题;而行为理解与描述则是近年来被广泛关注的研究热点,它是指对目标的运动模式进行分析和识别,并用自然语言等加以描述。22视频监控系统发展视频监控技术的发展大致可分为四个阶段:闭路电视系统构建的模拟系统、数字信
4、号控制的模拟视频监控系统、数字硬盘录像设备为核心的视频监控系统和现在的数字网络视频监控系统。第一代视频监控系统是采用闭路电视系统构建的模拟系统,通过摄像机、监视器、磁带录像机等构成I甜。由于模拟矩阵很难做到数十路的切换,不能与报警系统联动,不能对前端进行控制且价格昂贵、操作管理复杂、很难实现较大系统的要求,已经逐渐被淘汰。第二代视频监控系统是数字信号控制的模拟视频监控系统。数字信号控制的模拟视频监控系统又分为基于微处理器的视频切换控制加PC机的多媒体管理和基于PC机实现对矩阵主机的切换控制及对系统的多媒体管理两种类型。第三代视频监控系统是以数字硬盘录像设备为核心的视频监控系统。90年代末,随着
5、多媒体技术、视频压缩编码技术、网络通讯技术的发展,数字录像监控系统迅速崛起。数字监控录像系统通常分为两类:一类是基于PC机组合的计算机多媒体工作方式;另一类是嵌入式数字监控录像系统。1基于PC的视频监控录像系统的组成结构为:兼容工控PC机+视频采集卡+普通较可靠的操作系统平台+应用软件从系统的组成结构来分析:a、PC机兼容PC机用于24小时不间断工作时,其性能通常是不可靠的,工控PC机相对兼容Pc机的稳定性有一个档次上的提高,适用于较复杂的工作环境;b、操作系统以Windows 98为操作平台的系统:一般来说,Win98的稳定性是有一定问题的,如果同时应用软件又不是很规范,这样就容易在使用过程
6、中出现工作稳定、死机等问题,而基于PC机的视频监控录像系统其软件的实现是在Windows 9598NT等通用操作系统上,同时系统文件、应用软件和图像文件都存储在硬盘上,视频处理必须高密度输入大量数据,同时硬盘要进行多工工作,普通的硬盘逻辑(如Windows的FAT32)已无法适应,以致极易产生系统的不稳定性,造成死机现象;c、应用软件采用简易应用软件的系统是不能够应用安防领域的,视频监控系统的应用软件能力上应支持多任务并发处理,如监视、录像、回放、备份、报警、控制等的多工处理能力;d、视频采集卡视频监控录像系统通常均为多路输入系统,视频采集卡可采用多卡方式,也可采用单卡方式。一般说,单卡方式集
7、成度高,稳定性会优于多卡方式,很多采用一路一卡的方式很容易形成硬件冲突,其稳定性会有较大的影响。目前市场上也有部分为追求高帧数而设计采用多卡进行迭加的多路单卡设备,但其仍在计算机的总线上进行传输、处理,PCI总线将是系统的瓶颈,不可能会有质的飞跃。22嵌入方式的数字监控录像系统嵌入式系统的优缺点a、系统为专用系统,所以系统小,指令精简,处理速度快b、系统数据置于ROMFLASH MEMORY,调用速度快,不会被改变,稳定性好C、系统处理实时性好,性能稳定d、文件管理系统更适合于大量的视频数据e、该类系统目前四路以上机型还较为少见f、在网络功能、音视频同步等方面也难令人满意。第四代视频监控系统一
8、数字网络视频监控系统1数字网络视频监控系统的原理数字网络视频监控系统16J的关键设备是网络视频信号采集终端(也被称为视频服务器),网络视频信号采集终端采用嵌入式实时多任务操作系统。摄像机送来的视频信号在网络视频信号采集终端数字化后由高效压缩芯片压缩,通过内部总线送到网络接口发送到网络上l刀,网络上用户可以直接用在PC机上用浏览器观看网络视频信号采集终端传送过来的摄像机所拍摄的图像,授权用户还可以通过计算机网络透过网络视频信号采集终端控制摄像机镜头和云台的动作或对系统进行配置操作。由于把视频压缩和网络功能集中到一个体积很小的设备内,可以直接连入局域网,达到即插即用,省掉多种复杂的电缆,安装方便(
9、仅需设置一个坤地址),用户也无需安装任何硬件设备,仅通过PC机用浏览器即可观看。2数字网络视频监控系统与其它监控系统的比较a、布控区域广阔 数字网络视频监控系统的网络视频信号采集终端直接连入网络,没有线缆长度和信号衰减的限制,同时网络是没有距离概念的,彻底抛弃了地域的概念,扩展布控区域。b、系统具有几乎无限的无缝扩展能力所有设备都以IP地址进行标识,增加设备只是意味着口地址的扩充。c、可组成非常复杂的监控网络采用基于网络视频信号采集终端为核心的监控系统,在组网方式上与传统的模拟监控和基于PC平台的监控方式有极大的不同,由于视频信号采集终端输出已完成模拟到数字的转换并压缩,采用统一的协议在网络上
10、传输,支持跨网关、跨路由器的远程视频传输。d、性能稳定可靠,无需专人管理视频信号采集终端实际上基于嵌入式电脑技术,采用嵌入式实时多任务操作系统,又由于视频压缩和网络功能集中到一个体积很小的设备内,直接连入局域网或广域网,即插即看,系统的实时性、稳定性、可靠性大大提高,也无需专人管理,非常适合于无人值守的环境。e、当监控中心需要同时观看较多的摄像机图像时,对网络带宽就会有一定的要求。2视频监控系统的应用概括来说,目前视频监控系统应用领域主要有以下一些方面:教育系统主要是校园安全监控、电子考场监控、网络教学、远程教育等;电力系统主要是机房无人值守、变电站无人值守、发电厂安全生产管理监控等;公检法系
11、统主要是社区监控、城市安全监控、监狱安全监控、庭审直播等;部队系统主要是通信机房监控、作战指挥系统、仓储物资监控、基层连队的日常管理监控系统等;石化系统主要是油井监控、储油库监控、加油站监控、石化工厂安全生产监控等;银行系统主要是银行监控系统的联网、储蓄监控、金库监控等;铁路系统主要是站内调度管理系统(视频部分)、站内安全管理、应急指挥系统等;税务系统主要是报税服务大厅监控;钢铁系统主要是安全生产管理监控系统;医疗系统主要是特护病房视频监控、手术直播及教学系统、日常安全管理监控等。本文主要研讨该系统的软件实现部分3、总体设计 嵌入式Linux视频网络监控系统是电工电子装置、计算机软硬件以及网络
12、、通信等多方面的有机组合体,它以智能化、网络化、交互性为特征,结构比较复杂。如果利用OSI七层模型的内容和形式,把相应的数据采集控制模块硬件和应用软件以及应用环境等有机组合,可以形成一个统一的系统总体框架,其系统总体框架示意图如图l所示。系统总体框架示意图摄像机传送来的视频信号数字化后,经过压缩,通过RS-232/RS485将数据送到内置的Web服务器,嵌入式LJnux系统的 10/100M以太网口实现接入Internet网络,将现场信号送到客户端。整个系统的核心是嵌入式Linux系统。监控系统启动后,嵌入式Linux 系统启动Web Server服务程序,接收授权客户端浏览器的请求,Web
13、Server将根据通信协议完成相应的监测。3.1硬件设计方案系统硬件结构如图1 所示,该系统采用Samsung 公司的ARM9 内核芯片S3C2440作为硬件平台的中央处理器,该处理器主频可达400MHz,硬件接口和资源丰富,存储单元包括Flash 和SDRAM,Flash 具有掉电保持数据的特性,用于存储Bootloader 启动程序、Linux 内核映像、文件系统以及用户应用程序等。SDRAM 数据存取速度大大高于Flash 存储器,用于为操作系统和应用程序提供运行空间。平台利用RS232 接口输出调试信息,通过以太网控制器芯片DM9000 扩展了一个网口,用于与外部网络进行通信,通过US
14、B HOST 接口连接USB 摄像头采集图像数据,经处理器压缩并打包成视频流后经以太网进行传输,终端用户接收到视频流,解码后即可把视频图像显示出来。图1 系统硬件结构图3.2软件设计方案软件平台采用的嵌入式操作系统为Linux ,Linux 具有内核小、效率高、源码开放、内核直接提供网络支持等优点,但嵌入式系统的硬件资源有限,因此需根据实际需求对内核进行裁剪,配置所需的功能模块,然后再移植到硬件平台上。嵌入式系统的软件开发采用交叉编译调试的方式,在宿主机上安装Linux 系统,建立交叉编译环境,在宿主机编写程序代码,再利用交叉编译工具生成目标机上可用的可执行文件,最后向目标机平台移植。3.2.
15、1 视频采集模块视频采集模块通过嵌入式Linux 操作系统调用Video4Linux(V4L)5和底层设备驱动程序来完成视频捕获。V4L 是Linux 中关于视频设备的内核驱动,它为Linux 下的各种视频设备提供了统一的编程接口,应用程序通过这些接口函数就可以操纵各种不同的设备。视频采集流程如图2 所示。图2 视频采集流程(1)打开视频设备。Linux 下的视频设备文件一般为“/dev/video0”,通过调用函数v4l_open( ),利用vd-fd=open(“/dev/video0”,O_RDWR)打开设备并获得设备文件描述符vd-fd。(2) 获取设备和图像信息。通过v4l_get_
16、capability( ) 函数获取设备信息, 通过v4l_get_picture( )函数获取图像信息。(3)内存映射。获取图像的方式有两种:read( )直接读取和mmap( )内存映射。直接读取方式通过内核缓冲区来读取图像数据,而本文使用内存映射方式mmap( ),内存映射方式可以直接把设备文件映射到内存中,进程可以像访问普通内存一样对文件进行访问,读取效率更高。初始化内存映射时,需在内存中开辟一块空间,利用ioctl(vd-fd,VIDIOCGMBUF,&(vd-mbuf)操作取得需要映射的内存空间大小vd-mbuf.size,利用mmap( )函数,即vd-map=(unsigned
17、 char*) mmap(0, vd-mbuf.size, PROT_READ | PROT_WRITE,MAP_SHARED, vd-fd, 0)操作,把设备文件的内容映射到内存,vd-map 指针所指向的内存区即为采集的图像数据,且此内存区具有可读写和共享属性。(4)初始化采集参数。设置采集视频图像的宽度、高度、格式等信息。(5)采集视频数据。利用ioctl(vd-fd, VIDIOCMCAPTURE, &(vd-mmap)操作采集一帧图像并存放到内存映射区,采集一帧图像后要进行同步操作,利用ioctl(vd-fd, VIDIOCSYNC,&(vd- frame_current)操作判断该
18、帧图像是否获取完毕。对于获取到的视频图像,通过视频压缩模块压缩成MPEG-4 视频流,再通过视频传输模块把数据发送到以太网进行传输。3.2.2 视频压缩模块从摄像头直接采集过来的图像由于数据量较大,不利于进行网络传输,因此需先对其进行压缩编码。MPEG-4 是目前网络多媒体传输的主要格式,具有高效的压缩率,它利用很窄的带宽,通过帧重建技术来压缩图像数据,以求利用最少的数据获得最佳的图像质量,可满足实时视频传输的要求。本文用软件方式进行视频编码,选择开源高效的Xvid 视频编码器对采集的视频图像数据进行MPEG-4 压缩编码。Xvid 视频编码器选用 版本,因为该版本已经实现了MPEG-4 的S
19、imple Profile(SP)特性,而1.0 以后的版本增加了很多Advanced SP(ASP)特性及其他功能,ASP 特性的加入会增加运算复杂度,降低编码速度,由于嵌入式系统的处理能力有限,一般只使用Xvid 的SP 特性,因此实验选用Xvid 编码器,交叉编译并移植到嵌入式系统内。在宿主机Linux 操作系统中对Xvid 进行交叉编译的步骤如下:(1) 解压缩Xvid 源码:tar xzvf xvidcore- .tar.gz(2) 进入build/generic 目录,创建编译配置文件。由于Xvid 没有针对ARM 的汇编优化,因此编译时需将汇编关闭;还需指定程序所运行的平台为ar
20、m-linux。执行命令:./configure -disable-assembly -host=arm-linux(3) 编译:make; make install 。(4) 交叉编译完成后会生成静态库libxvidcore.a 和动态库,用户程序可利用库文件所提供的编程接口调用Xvid 里面的函数。摄像头采集的视频帧为YUV420 格式,通过Xvid 编码器的encoder_encode 函数实现视频压缩,该函数定义如下:int encoder_encode(Encoder * pEnc, XVID_ENC_FRAME * pFrame, XVID_ENC_STATS *pResult);
21、其中,pEnc 为编码器实例的句柄;pFrame 是XVID_ENC_FRAME 类型的结构体变量,负责传递参数信息给编码器,这些信息包含色彩空间、编码质量、输入输出数据缓冲区指针等;pResult 是XVID_ENC_STATS 类型的结构体变量,可以返回编码操作执行的状态信息。3.2.3 视频传输模块视频传输模块负责把压缩后的视频流传输到以太网,对实时性要求较高,本文使用实时传输协议(Real-time Transport Protocol,RTP),它可以在一对一或者一对多的网络环境中实现流媒体数据的实时传输。JRTPLIB7是一个利用C+语言实现的开源RTP 库,它完全遵循RFC 18
22、89 设计,使用SOCKET 机制实现网络通讯,可运行于包括Linux 和Windows 在内的多种不同操作系统上。本文使用JRTPLIB 进行实时流媒体编程,发送端操作系统为Linux,接收端为Windows。在Linux 平台上用JRTPLIB 进行实时多媒体编程前,需先对JRTPLIB 进行交叉编译。(1) JRTPLIB 初始化通过调用RTPSessionParams 类的SetOwnTimestampUnit( )方法设置一个恰当的时间戳,调用 SetMaximumPacketSize( )方法设置允许传输的最大RTP 包字节数(默认为1400 字节);通过调用RTPUDPv4Tra
23、nsmissionParams 类的SetPortbase( )方法设置发送端数据传输所用的端口号(需为偶数)。初始化完这两个变量后,通过RTPSession 类的Create( )方法创建一个RTP 会话。(2) JRTPLIB 数据传输RTP 会话创建完成后,还需指定数据发送的目标地址,RTP 协议允许一个会话包含多个目标地址, 增加或删除目标地址可通过RTPSession 类的AddDestination( ) 、DeleteDestination( )、ClearDestinations( )方法来实现。目标地址指定之后,通过RTPSession 类的SendPacket( )方法即可
24、向指定的目标地址发送流媒体数据。SendPacket( )是一个重载函数,具有多种形式,本文使用的形式为:int SendPacket(const void *data, size_t len, uint8_t pt, bool mark, uint32_t timestampinc);当一帧数据所占字节数大于允许传输的最大RTP 包字节数MaxPacketSize 时,需对一帧数据进行分割传输,使每次发送的字节数不大于MaxPacketSize,可使用SendPacket( )的mark参数来标识传输的RTP 包是否属于同一帧数据,若一帧数据需分成N 次发送,则前N-1 次发送的RTP 包的
25、mark 标志设为0,第N 次发送的RTP 包的mark 标志设为1,即以mark=1来判断分割传输的数据是否发送完成。实现过程如下:doif(lengthMaxPacketSize)mark=0;发送长度为MaxPacketSize 的RTP 包;length=length-MaxPacketSize;elsemark=1;发送长度为length 的RTP 包;break; /一帧数据发送完成while(1);(3) JRTPLIB 数据接收接收数据时,以BeginDataAccess( )函数开始,以EndDataAccess( )函数结束。为了能正确接收同一数据源的数据报,必须先对数据源
26、表(source table)加锁,BeginDataAccess( )函数可实现这一加锁操作,确保在使用数据源表的同时轮询(poll)线程不能访问它,此时可进行数据接收操作,当正确接收一个数据报后,调用EndDataAccess( )函数即可实现对数据源表的解锁。图3 RTP 发送与接收流程图RTP 发送与接收流程图如图3 所示。对于分割传输的RTP 包,根据RTP 包的mark 标志来判断一帧数据是否接收完成,若mark=0,则表示此RTP 包为分割传输的数据包,需循环接收直到mark=1 为止,然后把这些RTP 包重新组合成完整的一帧数据。3.2.4 视频解码与回放接收到的视频流数据经过
27、Xvid 解码器的decoder_decode 函数进行解码,该函数定义如下:int decoder_decode(DECODER * dec, XVID_DEC_FRAME * frame);其中,dec 为解码器实例的句柄,frame 为XVID_DEC_FRAME 结构体变量,包含解码前后图像数据的缓冲区指针、码流长度等信息。解码后的图像可在客户端软件上显示出来。4、展望与小结在今后的工作中,需要对视频采集模块继续优化,因为摄像头采集的图像信息还不是很流畅,希望通过移植QT界面,来优化图像的传输,其次,网络摄像机是当今比较热门的产品,我们虽然实现了远程监控,但是相关技术还有待与优化,对服
28、务器、客户端之间的编程模式还不是很熟悉,需要进一步学习,另外,设计中采用的ARMg芯片功能比较强大,接口比较丰富,在以后的实际工作中可以根据自己的需要,可以进行更加有效的扩展。未来的视频监控系统应该具有智能化的特点,能够自行对异常情况进行判断,并发出报警,这就需要合适的运动检测算法对监控图像进行分析判断。另外未来的视频监控系统还可具有安防互动功能,与各种传感器、控制器连接,实现自动目标跟踪等功能。在网络视频监控系统的未来发展空间中,这些功能的实现是有充分技术保障的。而且随着技术的发展和成熟,视频监控系统的成本也应该进一步的降低,一世英更广泛领域的需要。由于我们都属于初学者,虽然最终实现了这些功
29、能,但是对中间相关的一些模块开发,比如驱动等等还不太了解,只是做了部分修改,还有待于进一步学习掌握,论文的撰写可能有某些不足,望老师指正。摘 要在控制领域中,经常需要进行各种角度、位移量的测量。当前,世界上正面临着一场新的技术革命,这场革命的重要基础之一就是测量技术。测量技术的发展给人类社会和国民经济的各个部门及各个领域带来了巨大的、广泛的、深刻的变化,带动着传统工业和其他新兴产业的更新和变革,是当今人类社会发展的强大动力。本设计为码盘转速测量系统,用来测量来自外部的不同的转速值。实现转速的实时测量,显示。具体应用AT80C51单片机为核心,旋转编码器实时轴转速测量,同时以八位串行段码式LCD
30、显示模块显示。旋转编码器输出4.25V,8位二进制自然码送入单片机处理经过计算处理,再查表转换为10进制数,送LCD模块显示。本文从转速测量原理入手,详细阐述了转速测量系统的工作过程,以及硬件电路的设计、显示效果。本文吸收了硬件软件化的思想,实现了题目要求的功能。关键词:转速测量,旋转编码器,单片机,LCD显示模块AbstractIn the control field, a variety of angles and displacement measurements often need to be carried out. At present, the world is facing
31、a new technological revolution; one of the most important bases of the revolution is measurement. The development of measurement technology brings extensive,tremendous and profound changes to human society and all sectors of the national economy, changes the traditional industries and other emerging
32、 industries, becomes todays strongest driving force for development of human society .The encoder speed measurement system is designed to measure a different speed from the outside values,to achieve real-time speed measurement and display. Specific application use AT80C51 microcontroller as its core
33、, rotary encoder measures real-time shaft speed, in both 8 serial Segment type LCD display module display. Rotary encoder output a 4.25V, 8-bit binary natural code into the MCU processed and computed, and then look-up table converts to 10 decimal number, sent to LCD display module. In this paper, de
34、tailed working process of speed measurement system is started with principle of speed measurement, and hardware circuit design and display. This paper has absorbed the idea of hardware and software to achieve with the subject required functionality. Key words: rotational speed measurement, rotary en
35、coder, microcontroller, LCD display module目 录第一章 绪论11.1国内外转速测量技术简介1第二章 原理说明及方案选择22.1 转速测量理论的简要介绍22.2 方案选择32.3 方案原理32.4 转速测量参数及电路参数分析4的定时器/计数器简介4定时器模式选择位5第三章 硬件电路的设计73.1 单片机的选择7的介绍103.2 旋转编码器的选择13简介13编码器的应用14第四章 显示部分154.1 LED显示器154.2 LCD显示器15的分类及特点15笔段式LCD液晶显示器的驱动15显示模块LCDM(Liquid Crystal Display Mod
36、ule)154.3 LCD显示器的驱动接口17结论19谢辞20参考文献21附录一 系统电路图22附录二 程序清单23第一章 绪论1.1国内外转速测量技术简介1测量角位移的数字编码器,它具有分辨能力强、测量精度高和工作可靠等优点,是测量轴转角位置的一种最常用的位移传感器。光电轴角编码器通常按照光栅码盘团的编码方式进行分类。目前常用的类型为增量式光电轴角编码器和绝对光电轴角编码器。光栅式光电编码器正向着高分辨力的方向发展。如日本尼康公司生产的2HR32400 轴角编码器, 每转可输出1296万个脉冲(0.1),可谓日本的最高分辨力。我国在光电轴角编码器的开发方面上也已经取得了长足的进展,1985年
37、航天部一院计量站研制的精密数显转台,分辨力0.01;1995年中科院长春光机所和中国计量科学研究院联合研制出的角度基准,分辨力0.001,精度P+V=0.05(误差修正后);成都光电所研制的JC21精密测角仪的增量式光电轴角编码器分辨力达到了0.02,测角精度R0.042。随着科学技术的发展,形形色色的转速测量仪不断出现。它们的结构不同,性能各异。至今没有系统的分类方法,在这里只按测量原理和主要元件性质进行分类说明。按照测量原理主要分为测频法、测周法两种基本的方法,以此提高测量精度。由于电子计数器所特有的1个数的误差的存在,应根据转速脉冲频率的大小恰当选择测量方法。所谓测频法就是测量转速脉冲频
38、率的方法,它用基准时间信号发生电路的脉冲来控制计数门的开闭,在单位时间内对来自转速传感器的脉冲进行计数。所谓测周法就是测量转速脉冲周期的方法。它用传感器的脉冲来控制计数门的开闭,在转速脉冲周期内对基准时间信号发生电路的脉冲进行计数,然后按f=1/T公式换算成转速脉冲的频率。目前按现有产品的主要构成元件分类,可分为晶体管式、集成电路式和单片机式。晶体管式所采用的元件主要是晶体管,有的晶体管式转速测量仪设有记忆电路,其数码管无闪烁现象,显示效果较好,而且测量速度较高。顾名思义集成电路式转速测量仪,所采用的元件是集成电路元件。由于集成电路具有重量轻、体积小、功耗小等优点,而且集成电路元件内设有显示电
39、路,这使得转速测量仪实现小型化。单片机的出现使得这种仪表的设计变得更加灵活3。第二章 原理说明及方案选择2.1 转速测量理论的简要介绍转速测量的应用系统在工业生产、科技教育、民用电器等各领域的应用极为广泛,往往成为某一产品或控制系统的核心部分,其各种参数在不同的应用中有其侧重,但转速测量系统作为普遍的应用在国民经济发展中,有重要的意义。转速测量的方法有很多,根据工作原理可分为计数式、模拟式、同步式。计数式方法是用某种方式读出一定时间内的总转数;模拟式方法是测出由瞬时转速引起的某种物理量的变化;同步式是用利用已知的频率与旋转体的旋转同步来测量转速4。一般的转速测试可用机械式转速表、发电机式转速表
40、以及频闪式转速表,但在有些情况下,其测量精度,瞬时稳定度不能满足更高的要求,因此,在测量方法和传感器的选择上显得尤为重要。常用的传感器种类有光电传感器、电磁式传感器、电容式传感器等,而测量方法上有测量转速周期、转速频率等。如表2-1所示表2-1 各种测速方法比较5形式测量方法适用范围特点备注计数式机械式通过齿轮转动数字轮中、低速简单、价廉光电式来自被测旋转体上的光线使光电管产生电脉冲中、高速数字式电磁式利用磁电转换器将转速变换成电脉冲中、高速数字式模拟式机械式利用离心力与转速成平方成正比的关系中、低速简单发电机式利用电机电流或交流电压与转速成正比关系高速可远距离指示测速发电机电容式利用电容充、
41、放电与转速成正比的关系中、高速同步式机械式转动带槽的圆盘,观察旋转体的同步关系中速闪光式用已知频率闪光测出旋转体同步的频率中、高速2.2 方案选择就转速测量原理而言,大体可分为二大类,一是用单位时间内测得物体的旋转角度来计算速度,例如在单位时间内,累计转速传感器发出的N个脉冲,即为该单位时间的速度。这种以测量频率来实现测量转速的方法,称测频法。即“M”法;另一类是在给定的角位移距离内,通过测量这一角位移的时间来进行测速的方法,称测周法,即“T”法,如给定的角位移AO,传感器便发出一个电脉冲周期,以晶体震荡频率而产生的标准脉冲来度量这一周期时间,再经换算可得转速。这两种测速方法各有优缺点,“M”
42、法一般用于高速测量,在转速较低时,测量误差较大,而且,检测装置对转速分辨能力也变差;而“T”法一般用于低速侧量,速度越低测量精度越高,但在测量高转速时,误差较大。 从测速设备的工作性质考虑,本设计使用测频法,即“M”法。2.3 方案原理在一定测量时间T内,测量脉冲发生器(替代输入脉冲)产生的脉冲数m1,来测量转速。如图2-1所示图2-1“M”法测量转速脉冲设在时间T内,转轴转过的弧度数为X,则的转速n可由下式表示: n=60X/2T (2-1)转轴转过的弧度数X,可用下式所示X=2m1/p (2-2)将(2-1)式代入(2-2)式,得转速n的表达式为:n=60m1/Tp (2-3)n转速单位:
43、 (转/分)T定时时间单位:(秒)在该方法中,测量精度是由于定时时间T和脉冲的不能保证严格同步,以及在T内能否正好测量外部脉冲的完整的周期,可能产生的1个脉冲的量化误差。因此,为了提高测量精度,T要有足够长的时间。定时时间可根据测量对象情况预先设置。设置的时间过长,可以提高精度,但在转速较快的情况下,所计的脉冲数增大(码盘孔数已定情况下),限制了转速测量的量程。而设置的时间过短,测量精度会受到一定的影响。2.4 转速测量参数及电路参数分析选定方案中m1的值为旋转编码器前后两次读数之差,定时时间初步选定为100ms。2.4.1MCS-51的定时器/计数器简介2个16位的定时/计数器,有多种工作方
44、式。定时/计数器工作在定时模式时,计数脉冲信号来自单片机的内部,计数速率是晶振频率的1/12,当计数器启动后,每个机器周期计数器自动加1。 定时/计数器工作在计数模式时,计数器对外部脉冲进行计数,计数器计P3.4(T0脚)P3.5(T1脚)负跳变次数。每产生一次负跳变,计数器自动加1。如图2-2及表2-2图2-2 TMOD寄存器用于定时/计数的操作方式及工作模式指令格式表2-2操作方式选择位M0 M1说 明0 0013位定时器/计数器,由TL0低五位和TH0高八位组成工作方式0 1116位定时器/计数器,由TL0低八位和TH0高八位组成1 0 28位定时器/计数器,由TL0低八位组成1 1 3
45、TL0低八位和TH0高八位分别位8位定时器/计数器2.4.2定时器模式选择位C/T0,定时器模式,每一个机器周期计数器自动加1。C/T1,计数器模式,在单片机T0引脚上每发生一次负跳变,计数器自动加1。GATE0,定时/计数器工作不受外部控制。GATE1,定时/计数器T0的起停受INT0引脚的控制。1.计算计数初始值 因为系统的晶振频率为fosc=12MHz,则机器周期Tm=12/fosc=1s。设计数初始值为X:X=216-td/Tm=216-1105/1=15535则(TH0)=00111100B3CH,(TL0)=B=AFH2.设置工作方式方式0:M1M0=01; 定时器模式:C/T=1
46、;定时/计数器启动不受外部控制: GATE=0;因此,(TMOD)=05H。关于测速电路的参数,本次设计采用了如下方案:AT80C51单片机属于CMOS型8位单片机,其在片内的振荡器电路由晶体控制的单极线性反相器组成,同HMOS型所用方法一样,要求用晶体控制的感性阻抗方波振荡器,但也存在一些差别,其一为80C51可在软件的控制下关闭振荡器,其二为80C51的内部时钟电路由XTAL2引脚上的信号来驱动。本次设计中的振荡器可用晶体作为感性电抗与外部电容组成并联共振槽路。晶体的特性与电容值的大小(C1、C2)并不严格,高质量的晶体对任何频率都可取用30pF的电容,对于廉价应用中,可采用陶瓷共振器,这时C1、C2一般取47pF;这里选取频率12MHZ晶振,电容C1、C2为30pF。看门狗电路电路参见图2-3图2-3 MAX813L看门狗电路图中,电阻R1和R2分压产生1.25