《单片机课程设计(论文)基于语音识别技术的门禁系统.doc》由会员分享,可在线阅读,更多相关《单片机课程设计(论文)基于语音识别技术的门禁系统.doc(20页珍藏版)》请在三一办公上搜索。
1、目录第一章 绪论21.1概述21.2语音识别的研究历史及现状31.3语音识别技术及其原理31.4语音识别的分类41.5语音识别技术的前景展望41.6语音识别芯片AP7003简介41.7系统总体方案5第二章 硬件电路设计72.1 AT89S52单片机电路设计72.1.1 AT89S52简介72.1.2AT89S52引脚说明72.1.3基于AT89S52的语音识别模块电路设计102.2 S3C2410硬件设计122.2.1 S3C2410芯片简介122.2.2 S3C2410引脚图142.2.3 S3C2410硬件设计142.3电机电路设计15第三章 系统软件设计153.1 linux和QT153
2、.1.1 嵌入式linux 简介153.1.2 QT简介173.2 系统软件的实现183.2.1 S3C2410的软件实现183.2.2单片机软件的软件实现19第四章 总结21基于语音识别技术的门禁系统摘要:通过对语音识别原理的系统分析,结合特定人语音识别的具体情况,阐了基于语音识别的门禁系统的设计思路,介绍了其中的几个关键性技术要点。应用ARM芯片S3C2410,51单片机 ,从硬件、软件、算法优化等方面实现了基于语音识别门禁系统的总体设计,在S3C2410-S平台上完成了原型系统的开发,并从应用的角度阐明了本系统理论上的合理性与可行性。关键词:语音识别 s3c2410 ARM 门禁系统 单
3、片机第一章 绪论1.1概述 综合集成计算机、通讯、自动识别、机械工程和安全管理系统等相关技术的门禁系统有效地解决了重要部门和场所的安全访问控制问题,已得到广泛的应用,成为日常工作和生活中的电子门卫。目前,门禁系统采用较多的是非接触式RF卡、生物识别技术、IC卡、密码输入等方式。然而随着科学技术的发展,综合应用语音识别、指纹识别、虹膜识别、红(热)感应等最新生物识别技术,结合电磁锁等技术的门禁系统已广泛吸引了人们的注意,并将逐步成为门禁系统发展的主流与最终目标之一。利用语音识别技术来实现门禁系统不用像其他方式一样需要触摸,具有方便、安全、准确、信息完整、独立性强、反应速度快等优点。因此,基于语音
4、识别技术的门禁系统有着非常独特的优势和发展前景。1.2语音识别的研究历史及现状 语音识别的研究工作始于20世纪50年代,1952年Bell实验室开发的Audry系统是第一个可以识别10个英文数字的语音识别系统。1959年,Rorgie和Forge采用数字计算机识别英文元音和孤立词,从此开始了计算机语音识别。60年代,苏联的Matin等提出了语音结束点的端点检测,使语音识别水平明显上升;Vintsyuk提出了动态编程,这一提法在以后的识别中不可或缺。60年代末、70年代初的重要成果是提出了信号线性预测编码(LPC)技术和动态时间规整(DTW)技术,有效地解决了语音信号的特征提取和不等长语音匹配问
5、题;同时提出了矢量量化(VQ)和隐马尔可夫模型(HMM)理论。80年代语音识别研究进一步走向深入:HMM模型和人工神经网络(ANN)在语音识别中成功应用。1988年,FULEE Kai等用VQ/I-IMM方法实现了997个词汇的非特定人连续语音识别系统SPHINX。这是世界上第1个高性能的非特定人、大词汇量、连续语音识别系统。进入90年代后,语音识别技术进一步成熟,并开始向市场提供产品。许多发达国家如美国、日本、韩国以及IBM、Apple、AT&T、Microsoft等公司都为语音识别系统的实用化开发研究投以巨资。同时汉语语音识别也越来越受到重视。IBM开发的 ViaVoice和Microso
6、ft开发的中文识别引擎都具有了相当高的汉语语音识别水平。进入21世纪,随着消费类电子产品的普及,嵌入式语音处理技术发展迅速2。基于语音识别芯片的嵌入式产品也越来越多,如Sensory公司的RSC系列语音识别芯片、Infineon公司的Unispeech和Unilite语音芯片等,这些芯片在嵌入式硬件开发中得到了广泛的应用。在软件上,目前比较成功的语音识别软件有:Nuance、IBM的Viavoice和Microsoft的SAPI以及开源软件HTK,这些软件都是面向非特定人、大词汇量的连续语音识别系统。 我国语音识别研究一直紧跟国际水平,国家也很重视。国内中科院的自动化所、声学所以及清华大学等科
7、研机构和高校都在从事语音识别领域的研究和开发。国家863智能计算机专家组为语音识别技术研究专门立项,并取得了高水平的科研成果。我国中科院自动化所研制的非特定人、连续语音听写系统和汉语语音人机对话系统,其准确率和系统响应率均可达90%以上。1.3语音识别技术及其原理 语音识别技术的关键在于准确地分辨出不同人的语音特征及其信息内容,并以此控制其他设备来满足人们的各种需要。语音识别根据应用场合、使用对象、语音词汇量、算法模型等同的分类依据,可分为不同的类型。针对办公室、家庭等私人小型场所,门禁系统涉及到的主要是特定人语音识别的特殊要求。本文拟采用对用户的依赖性分类的形式,将相关语音识别分为两类:对用
8、户声音特征的辨识和对用户发出的命令的确认。基于对声音特征辨识的特定人语音识别在对安全要求很高的部门门禁系统中得到了较为广泛的应用。其基原理:当系统接收到外界语音信息后,从事先训练好的语音库中找出惟一匹配的声音特征模型进行辨识,如果匹配成功则执行下一步操作;反之,如果元法匹配将会拒绝执行任何操作。特定人语音识别应用较简单,不需要预先采集过多的样本,对硬件资源要求也较低,因此降低了系统运行中的前期成本;此外,其训练过程可以根据用户习惯,由用户任意定义控制项目的具体命令语句,因而适合大多数中小型以下企业或部门的各类应用。1.4语音识别的分类 由于语音识别的目的和作用不同,识别又分为说话人识别和语音识
9、别。其中说话人识别,可分为与文本有关和与文本无关两类。与文本有关的语音识别系统要求用户按照规定的内容发音,每个人的语音模型逐个被精确地建立,而识别时也必须按规定的内容发音,因此可以达到较好的识别效果;而与文本无关的识别系统则不规定说话人的发音内容,模型建立相对困难,但用户使用方便,应用范围较宽。从用途上看,可分为说话人识别和说话人确认。前者判定某一待识别的声音是多个话者中的一个,是多选一的问题,属于闭集识别范围。后者判定一个待识别的声音“是或不是”某一特定说话者的语音,其输出只有两种结果,为肯定或否定的问题。该系统的语音识别芯片是AP7003,并在其上实现与文本有关的说话人的确认,然后执行相应
10、的命令与操作。该系统主要由说话人识别模块、门锁控制电机以及门锁等部分组成。在训练时,说话人的声音通过麦克风进入说话人语音信号采集前端电路,由语音信号处理电路对采集的语音信号进行特征化和语音处理,提取说话人的个性特征参数并进行存储,形成说话人特征参数数据库。在识别时,将待识别语音与说话人特征参数数据库进行匹配,通过输出电路控制门控电机,最终实现对门锁的控制。1.5语音识别技术的前景展望 语音作为当前通信系统中最自然的通信媒介,语音识别技术是非常重要的人机交互技术。随着计算机和语音处理技术的发展,语音识别系统的实用性将进一步提高。应用语音的自动理解和翻译,可消除人类相互交往的语言障碍。国外已有多种
11、基于语音识别产品(如声控拨号电话、语音记事本等)的应用,基于特定任务和环境的听写机也已经进入应用阶段。这预示着语音识别技术有着非常广泛的应用领域和市场前景。随着语音技术的进步和通信技术的飞速发展,语音识别技术将为网上会议、商业管理、医药卫生、教育培训等各个领域带来极大的便利5,其应用和经济、社会效益前景非常良好。1.6语音识别芯片AP7003简介AP7003是一款新型、低成本语音识别专用集成电路,内置有麦克风放大器、A/D转换器、语音处理器和I/O控制器,经预处理后可识别12组不同的字词,每组1.5秒时长,可连词或单词识别。AP7003包括AP7003-01(由CPU串行控制)和AP7003-
12、02(由按键直接控制)两种型号,且具有高度的I/O可编程性,使用简单方便,可广泛应用于玩具、识别转控、自动答录等领域。 其主要特性如下: 内置麦克风放大器 内置A/D转换器; DIP40双列直插式封装; 识别12组1.5秒时长字词; I/O口具有2个普通输入、4个触发输入、2个输出口(分别有4个和12个输出)、2个LED动; 指令优化以方便用户使用; 2.4V4.5V工作电压,且具备低功耗模式。AP7003具有两种工作模式,即录音模式和识别模式。在使用识别模式之前,应先将目标词录入芯片内。AP7003内有12个存储体用于存储12组不同的字句,每个存储体可存储1.5秒时长的字词,可通过键盘或按程
13、序编制的顺序选择存储体录入及存放目标词。语音可通过外部麦克风或其它媒体录入芯片内,经内部处理后以不同的数字特征信号保存于存储体中。目标词录入芯片内后即可将工作模式转换到识别模式,工作时芯片将当前语音与事先已录入存储体的目标词语音相比较,如果有语音特征相匹配,则在芯片的相应输出端口输出高电平或低电平。需要时可以将芯片编程为省电模式以节省电能,当有按键信号时芯片将被唤醒。 系统上电后必须先给AP7003-01发清除指令Clear Word以清除12个存储体内的内容,然后发出一个存储指令(Store Word1Store Word12之一)将目标词录入芯片相应的存储体内。当LED1有效时表示芯片准备
14、好录入目标词。通过指令Set R_Model或Set R_Mode2可选择两种识别模式:Set R_Model为单词识别模式,该模式下识别操作完成后芯片进入省电状态以等待新的指令;Set R_Mode2为连词识别模式,该模式下识别操作完成后芯片返回语音录入状态。 进入语音识别状态前必须通过指令Set R_LevellSet R_Level4设置识别时要求的匹配度,Set R_Level4要求匹配程度最高,而Set R_Level1最低,可以根据经验设定为中间某一个值。跟在一个Store Word112指令之后的Store Flag指令将前面录入的语音存入指定的存储体以作为目标词。Clear O
15、utputs指令用于清除A端口输出状态(POA1POA12)。Shut Down指令将芯片转入关闭模式以节省电能。 当数据格式或时序出现在串行数据(SERIAL DATA)输入口PIT3、PIT2、PIT1时,芯片将发送错误代码到串行数据输出口POB4,同时将数据、时钟发送到串行数据输出口POB2、POB3。指令Store Word112、Store Flag、Clear Word、Set R_Level14和Clear Outputs执行完成后芯片将输出一个Done代码。芯片每次执行完语音识别后,输出一个匹配指示代码(Match Word1Match Word12或NO Match)。当有一
16、个语音匹配时,LED2有效,如果PIM2被拉高(端口A使能),则A端口相应的引脚变为有效。如果PIM1引脚被拉低,芯片的语音识别功能被禁止。1.7系统总体方案该系统的核心处理器是单片机89s52和ARM芯片S3C2410,并在其上实现与文本有关的说话人的确认,然后执行相应的命令与操作。该系统主要由说话人识别模块、门锁控制电机以及门锁等部分组成。在训练时,说话人的声音通过麦克风进入说话人语音信号采集前端电路,由语音信号处理电路对采集的语音信号进行特征化和语音处理,提取说话人的个性特征参数并进行存储,形成说话人特征参数数据库。在识别时,将待识别语音与说话人特征参数数据库进行匹配,通过输出电路控制门
17、控电机,最终实现对门锁的控制。本系统的硬件部分由单片机89S52、ARM芯S3C2410、无线发送模块、音频输入电路、语音识别电路、门锁控制电路、等部分组成。系统框图如图1所示。硬件系统主要完成的任务是将语音信号数字化,实现语音数据的采集、上传、保存、识别。系统框图如图1所示麦克风开关电路门锁电机电路 S3C2410语音识别芯片AP7003无线发送模块89S52 图1-1 系统硬件框图 发出语音命令单片机向S3C2410发送指令识别成功语音处理与识别NYS3C2410判断哪一个门 控制电机转动图1-2 系统流程图第二章 硬件电路设计2.1 AT89S52单片机电路设计2.1.1 AT89S52
18、简介 AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,
19、 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。2.1.2AT89S52引脚说明AT89S52系列单片机各引脚如图2-1所示。 图2-140个引脚中, 4组8位共32个I/O口,正电源和地线两根,外置石英振荡器的时钟线两根,现在对引脚的功能加以说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管
20、脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻
21、拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3.0 RXD(串行输
22、入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以
23、完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P
24、3口都还有其他的功能 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
25、 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.1.3基于AT89S52的语音识别模块电路设计 图2-2 电源电路
26、图2-3振荡电路 图2-4 复位电路 注:语音识别成功在D1输出信号,信号传输到单片机 图2-5语音芯片驱动电路 注:无线模块连接单片机,单片机接收到语音识别芯片的信号后通过此模块发送信号到S3C2410 图 2-6 无线发送电路 图2-6 单片机接口电路2.2 S3C2410硬件设计2.2.1 S3C2410芯片简介S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PW
27、M的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2410处理器最高可运行在203MHz。 核心板的尺寸仅相当于名片的2/3大小,尺寸如此小巧的嵌入式核心板是国内首创。开发商可以充分发挥想象力,设计制造出小体积,高性能的嵌入式应用产品。 (1) S3C2410芯片集成了大量的功能单元,包括: (2) 内部1.8V,存储器3.3V,外部I/O3.3V,16KB数据Cache,16KB指令Cache,MMU。 (3) 内置外部存储器控制器(SDRAM
28、控制和芯片选择逻辑)。 (4) LCD控制器,一个LCD专业DMA。 (5) 4个带外部请求线的DMA。 (6) 3个通用异步串行端口(IrDA1.0,16-Byte Tx FIFO and 16-Byte Rx FIFO),2通道SPI (7) 一个多主I2C总线,一个I2S总线控制器。 (8) SD主接口版本1.0和多媒体卡协议版本2.11兼容。 (9) 两个USB HOST,一个USB DEVICE(VER1.1)。 (10) 4个PWM定时器和一个内部定时器。 (11) 看门狗定时器。 (12) 117个通用I/O。 (13) 56个中断源。 (14) 24个外部中断。 (15) 电源
29、控制模式:标准、慢速、休眠、掉电。 (16) 8通道10位ADC和触摸屏接口。 (17) 带日历功能的实时时钟。 (18) 芯片内置PLL。 (19) 设计用于手持设备和通用嵌入式系统。 (20) 16/32位RISC体系结构,使用ARM920T CPU核的强大指令集。 (21) 带MMU的先进的体系结构支持WinCE、EPOC32、Linux。 (22) 指令缓存(Cache)、数据缓存、写缓存和物理地址TAG RAM,减小了对主存储器带宽和性能的影响。 (23) ARM920T CPU核支持ARM调试的体系结构。 (24) 内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB
30、)。(25) 小端/大端支持 (26) 地址空间:每个BANK128MB(全部为1GB)。 (27) 每个BANK可编程为8/16/32位数据总线。 (28) BANK0到BANK6为固定起始地址。 (29) BANK7可编程BANK起始地址和大小。 (30) 一共8个存储器BANK。 (31) 前6个存储器BANK用于ROM、SRAM和其它。 (32) 两个存储器BANK用于ROM、SRAM、和SDRAM(同步随机存储器)。 支持等待信号用以扩展总线周期。 (33) 支持SDRAM掉电模式下的自刷新。 (34) 支持不同类型的ROM用于启动(NOR/NAND Flash、EEPROM和其它)
31、。 2.2.2 S3C2410引脚图 图2-7 引脚图2.2.3 S3C2410硬件设计 基于现有的开发板,我们只需把无线接收模块的接收模块连接到S3C2410的串口,为S3C2410开发板通电即可。 注:RXD TXD 接S3C2410的TXD RXD端 图2-8 无线接收模块 2.3电机电路设计 本系统选用了德国瑞玛大功率电动,此电动机拉力强,很适合门禁系统的应用电机:德国锐玛AVANTI最大推拉力:1500 N (适合面积4-18平方米的家用车库门)工作电压:24V标准提升高度:2550mm,可配置加长导轨:最高提升高度:4670mm停电状态:停电保护系统。移动马达是自锁的。通过钥匙可以
32、手动运行。待机电耗:1W最大推拉力:1500N(418平方米车库门面积)。 图2-9 电机控制电路 第三章 系统软件设计3.1 linux和QT3.1.1 嵌入式linux 简介 本系统的S3C2410是在嵌入式linux QT 平台上开发的,有必要对其作必要的介绍。 嵌入式系统出现于60年代晚期,它最初被用于控制机电电话交换机,如今已被广泛的应用于工业制造、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等众多领域。计算机系统核心CPU,每年在全球范围内的产量大概在二十亿颗左右,其中超过80应用于各类专用性很强的嵌入式系统。一般的说,凡是带有微处理器的专用软硬件系统都
33、可以称为嵌入式系统。 1. 嵌入式Linux系统就是利用Linux其自身的许多特点,把它应用到嵌入式系统里。 Linux做嵌入式的优势,首先,Linux是开放源代码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术支持;其次,Linux的内核小、效率高,内核的更新速度很快,linux是可以定制的,其系统内核最小只有约134KB。第三,Linux是免费的OS,在价格上极具竞争力。 Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种CPU。而且性能稳定,裁剪性很好,开发
34、和使用都很容易。很多CPU包括家电业芯片,都开始做Linux的平台移植工作。移植的速度远远超过Java的开发环境。也就是说,如果今天用Linux环境开发产品,那么将来换CPU就不会遇到困扰。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Toker ring(令牌环网)、光纤甚至卫星的支持。所以Linux很适于做信息家电的开发。 还有使用Linux为的是来开发无线连接产品的开发者越来越多。Linux在快速增长的无线连接应用主场中有一个非常重要的优势,就是有足够快的开发速度。这是因为L
35、Inux有很多工具,并且Linux为众多程序员所熟悉。因此,我们要在嵌入式系统中使用Linux操作系统。 Linux的大小适合嵌入式操作系统Linux固有的模块性,适应性和可配置性,使得这很容易做到。另外,Linux源码的实用性和成千上万的程序员热切其望它用于无数的嵌入式应用软件中,导致很多嵌入式Linux的出现,包括:Embedix,ETLinux,LEM,Linux Router Project,LOAF,uCLinux,muLinux,ThinLinux,FirePlug,Linux和PizzaBox Linux 相对,Linux的图形界面还相对较弱,但近年Linux的图形界面发展也很快
36、,这也就不是问题。 2. 什么是嵌入式Linux 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Interlnet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux Hardhat Linux 等嵌入式Linux支持,实时性能稳定性好安全性好。 3.
37、嵌入式Linux有巨大的市场前景和商业机会,出现了大量的专业公司和产品,如Montavista Lineo Emi等,有行业协会如Embedded Linux Consortum等,得到世界著名计算机公司和OEM板级厂商的支持,例如IBM Motorola Intel等。传统的嵌入式系统厂商也采用了Linux策略,如Lynxworks Windriver QNX等,还有Internet上的大量嵌入式Linux爱好者的支持。嵌入式Linux支持几乎所有的嵌入式CPU和被移植到几乎所有的嵌入式OEM板。 4. 4.嵌入式Linux的应用领域非常广泛,主要的应用领域有信息家电、PDA 、机顶盒、Di
38、gital Telephone、Answering Machine、Screen Phone 、数据网络、Ethernet Switches、Router、Bridge、Hub、Remote access servers、ATM、Frame relay 、远程通信、医疗电子、交通运输计算机外设、工业控制、航空航天领域等。 5.如果分别让10位工程师给出嵌入式系统的定义,将得到10个不同的答案。一般来说,大部分的嵌入式系统执行特定的任务。我们假定最简单的嵌入式系统包括输入/输出功能,以及一些控制逻辑,该系统基于它的配置执行某些类型的功能。按照这个标准,可以认为一个包含实现控制逻辑74123计数器
39、以及一个状态是一个嵌入式系统。也许可以补充说,该系统必须可通过存储在固件中的软件进行编程。这个新的嵌入式系统定义包括输入/输出(I/O),以及存储在系统固件中的控制逻辑。一个带有鼠标、键盘、网络连接并运行图形用户界面(GUI,graphical user interface)多任务操作系统的桌面计算机显然满足这些要求,但我们能认为它是一个嵌入式系统吗? 如果桌面计算机不是一个嵌入式系统,那么手持设备呢?它们有I/O功能,可以运行存储在固件中的控制逻辑。有人说,桌面计算机和手持设备都有通用计算机设备,可以运行软件来执行许多不同的任务,与之不同的是,嵌入式系统(例如,洗碗机控制器或飞行导航系统)主
40、要是为特定任务而设计的。这种特定的功能限定使嵌入式设备有功能上的唯一性。如果是这样,为什么一些嵌入式系统设计成具有附加的功能,如存储在非易失性存储器中的程序,并且具有运行可以完成原始设计范围之外的任务的多任务操作系统的能力呢? 在过去,区分嵌入式系统和通用计算机比现在简单的多。例如,可以很容易地区分出一个基于8051的T1分幅卡嵌入式系统和一台Sun UNIX工作站。而现在,从功能方面很难区分一台Sun工作站和一个包含PowerPC以及32MB内存和16MB闪存的机顶盒。这样的机顶盒可以运行带GUI的多任务操作系统,可现场升级,可以同时运行多个程序(如视频控制器、数字录像和Java虚拟机),还
41、可以进行安全的因特网在线交易。很难判断这种机顶盒是否是一个嵌入式系统。显然,硬件性能的提升和价格的下降使通用计算机和嵌入式系统之间的界限变得很模糊,技术的进步使得我们很难定义什么是嵌入式。3.1.2 QT简介Qt是一个跨平台的c+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。 自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。 Qt支持下述平台: MS/Wi
42、ndows - 95、98、NT 4.0、ME、2000、XP 和 Vista Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台 Macintosh - Mac OS X Embedded - 有帧缓冲(framebuffer)支持的Linux平台,Windows CE。 Symbian/S60 - 目前已经可以提供技术预览版本 Qt是诺基亚公司的一个产品。 Qt被按不同的版本发行: Qt商业版 提供给商业软件开发。它们提供传统商业软件发行版并且提供在协议有效期内的免费升级和技术支持服
43、务。如果要获得最新信息,请浏览诺基亚公司Qt Software网站页面,或者与sales联系。商业版多一些扩展模块。 Qt开源版是Qt仅仅为了开发自由和开放源码软件, 提供了和商业版本同样的功能。GNU通用公共许可证下,它是免费的。最新的版本可以在这里下载。从2009年3月发布的Qt 4.5 起,诺基亚将为Qt增添新的开源LGPL授权选择。关于如何正确的选择这三种授权协议,可以阅读。 从2009年5月11日起,诺基亚Qt Software 宣布 Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了
44、便于这些内容的管理,Qt Software 启用了基于 Git 和 Gitorious 开源项目的Web 源代码管理系统。在推出开放式 Qt 代码库的同时,Qt Software 在其官方网站发布了其产品规划(Roadmap)。其中概述了研发项目中的最新功能,展现了现阶段对 Qt 未来发展方向的观点,以期鼓励社区提供反馈和贡献代码,共同引导和塑造 Qt 的未来。 Qt的优势Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有下列优点: 优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux,Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD,BSD/OS, SCO, AIX, OS390,Q