家庭安防系统毕业论文.doc
57目录摘要1绪论1.1安防系统的概述1.1.1安防系统的概念1.1.2研究安防系统的意义1.2.安防技术国外内外发展概况1.3. 安防行业发展的趋势2 图像采集与存储的基本知识2.1图像速率及采集的计算公式2.2视频源2.3图像处理2.4图像格式3 开发平台和开发工具选取3.1嵌入式LINUX系统 3.1.1什么是嵌入式系统3.1.2什么是LINUX操作系统3.1.3嵌入式LINUX操作系统的特点3.1.4为什么选取LINUX作为设计平台3.1.5嵌入式LINUX开发工具3.2 界面编程工具QT的选择及其基本知识3.2.1 QT的基本概念3.2.2为什么选择 QT3.2.3什么是 QT Designer3.2.4信号和槽3.2.5 QT程序中界面的设计3.3 嵌入式数据库SQLITE的选择及其基本知识3.3.1 数据库的基本概念3.3.2 SQLITE数据库的特点3.3.3 SQLITE基本用法及其注意事项4图像采集与存储系统实现 4.1 概念设计 4.2 详细设计4.2.1图像采集子系统4.2.2图像显示和存储子系统 4.3 数据库设计 4.4 系统实现 4.4.1 图像采集子系统 4.4.2 图像存储子系统5 总结 1. 绪论1.1安防系统的概述1.1.1安防系统的概念随着我国国民经济和人民生活水平的不断提高,在全国建成了许许多多的现代化住宅小区.由于城市人口膨胀、外来人口的增加及煤气和大量家用电器设备使用中的不安全因素等,对小区居民的生命和财产造成了很大威胁。给居民生命和财产带来最大的威胁包括有两大方而,一方面是恶意侵害(如入室偷窃、抢劫.凶杀),另一方而是意外事故(如火灾,煤气泄露)。因此,入们越来越迫切要求采用有效的措施,以满足日益增长的安全防范要求。 为了更有效地保证居民的生命和财产安全,在住宅和住宅小区内引入了智能化的手段家庭安防系统来进行安全防范管理。家庭安防系统是由安全对讲系统、防盗报警系统、防火灾报警系统和防煤气泄漏系统等组成,该安全防范系统是家庭、住宅小区防范外来侵害和自然灾害的一种最重要的、最有效的手段,它大大提高了居民自身的安全感,业已成为社会治安的一个重要组成部分。 从安防系统自身的发展过程来看,大至经历了三个阶段,第一个阶段是传统的安防方法,采用铁栏杆防盗.这不影响了美观,而且遇到带警情时,用户不能安全出逃;第二个阶段是在单个家庭内设置报警装置,通过电话向外报警,这个阶段形成了报警自动化,但各家各户的报警设备并未形成网终,不能通过网络向小区报警;第三阶段是小区内所有家庭的报警设备形成报警网络,不仅可以通过拨打指定电话报警,而且能通过报警网络向小区报警,从而及时、有效地处理警情。1.1.2研究安防系统的意义它可以优化组合社区资源,合理组织人力、物力,提供高效和多项增值服务,提升服务水平并且推动能源供给商、物业管理、通信网络商、房地产及其它相关行业的发展,为它们带来新的机遇和利润增长空间。具体体现在: 1.提高能源供给商的服务水平。智能小区系统提供的远程抄表,远程监控功能提供了完整的手段和解决方法,帮助供给商提供高效率的管理和服务,彻底改变其销售体系,充分合理的调配人力和物力资源,降低运营成本。 2.提升住房含“金”量,创造新“卖”点。房地产业引入了现代通信、网络技术的新型家居环境不仅仅是在舒适程度上,更能在“家政安防”、“远程三表抄送、付费”等方面得到便捷、高效的服务。信息化小区给业者所带来的现代气息、人文环境,将使其倍受消费者青睐,为房地产业注入新的增值活力,提供更多的商机。 3.拓展通信、网络运营商市场空间。在信息化智能小区建设过程中,通信网络运营商可以对住宅小区提供接入服务和相关信息平台的建设;提供全方位和完善的构建方案。 4.增强物业管理公司服务能力,创建现代小区生活模式。通过智能小区信息平台,可以组建门禁控制、电子无人职守、安防报警、公共社区管理及其它规范的物业管理手段。物业管理公司也能够对小区实施即时、高效和全面的服务与管理,营造一个安全祥和、便捷、舒适的社区环境。信息化智能小区既大大提高了人们的生活质最,又能拓展物业部门的业务范围和能力增加其收益。1.2 安防技术国外内外发展概况 我国安防行业是随着社会主义市场经济的发展而逐步成长起来的,改革开放以来,在国民经济迅速发展,人民生活水平日益提高的推动下,安防行业呈现了一个蓬勃发展的势头。尤其九五期间,我国住宅产业异军突起,极大地促进了安防行业扩大产业规模。1998年起年产值近10亿元的大型安防企业集团上市公司不断涌现。迄今,已有专营或兼营的从业单位数千家,产品种类发展到10余大类,100多个品种,从业人员数万人。1999年初,统计部门针对7类安防产品生产企业进行了初步统计,其中入侵探测器13家,防盗报警控制器74家,汽车防盗报警器22家,楼宇对讲104家,防盗安全门1366家,防盗保险柜245家,机械防盗锁42家,其它类124家。象盼盼、美心、视得安、立林等品牌企业的市场份额不断扩大,从一定程度上改变了我国安防产业的小而全的落后局面,激发了安防行业的活力。最几年统计数字显示:中国安防产品行业平均以5%一30%的年增长率迅速成长。目前,安防产品在市场结构方面呈现三个特点:第一是地区分布不均衡。 第二是产品开发不平衡。第三是产品销售不畅。 安防行业的应用范围在不断扩大。安防行业发展的二十多年,也是安防行业应用在不断扩大和成熟的时期。归纳总结安防行业发展的三个历史阶段,主要是以安防行业应用为分析特征的。在1979年到1983年的起步阶段中,安防行业的应用范围有限,主要限定在非常重要和特殊的单位和部位。当时典型安防工程是故宫博物院工程和天安门的监控工程。1984年到1996年的发展阶段中,安防行业的应用以内部保卫为重点,广泛发展到重要单位和要害部位。各级公安机关更加重视安全技术防范工作,加大了对主要单位、要害部位的安全防范力度,象金融系统、文物系统、军工、邮政等重要单位的安全防范工程应用建设。1997年后的安防行业的应用范围发生了巨大变化,己由重要单位、要害部门的防范发展到商业、学校、社区、家庭等社会面的全面防范。安防行业的法制建设不断加强,出台了一些政策、法规。1995年公安部与原国家技术监督局联合发出了关于加强安全防范产品质量监督管理的通知。1996年公安部技防办发出了关于加强安全技术防范产品质量检验管理的通知。1999年公安部下发了关于加强安全技术防范产品质量监督管理的通知。2000年6月16日,安全技术防范产品管理办法发布(原国家质量技术监督局、公安部第12号令)。到目前为止,全国己有16个省以政府令的形式颁布实施了安全技术防范管理的地方性法规。安防行业的技术规范不断完善,己制定国家标准26项,行业标准23项。还有一些标准将在近期颁布和申报。 安防行业的监督管理得到了重视和加强。在产品管理方面,逐步建立起安防产品的市场准入制度,安全技术防范产品管理办法明确了安防产品分别采用全国工业生产许可证、安全认证和生产登记批准三和制度。同时,加强了国家.行业和地方抽查,严把进入市场的产品质量关。在工程建设方面,大力发展了资格审查,工程方案论证、工程验收等工作,以保证安防工程建设质量,达到有效地防范与打击犯罪的目的。1.3 安防行业发展的趋势 随着安防技术的发展,安防市场的成熟,以及政策法规的完善,安防行业发展的趋势,可以概括为“四化”,即市场化、社会化、规模化和网络化。 安全防范的商品性决定了安防行业的市场化。安全防范主要分为两大类:一类为物质类,它包括利用安防产品、系统及工程等的直接防范:另一类服务类,它包括保安、安防咨询、培训和运用安防系统和工程等对社会提供的服务防范。在人们与社会对安全需求的基础上,前者形成了安全防范的物质商品,后者形成了安全防范的服务商品。安全防范的物质商品和服务商品都同样具有使用价值和价值的统一性,充分体现了商品的鲜明特性。 安全防范的资本投人方式决定了安防行业的社会化程度。在计划经济体制下,安全防范的资本投入源于国家和政府。党的"十四大"提出建立社会主义市场经济理论之后,安全防范的资本投人方式发生了变化,逐步形成了用户投资为主,国家投资为辅的格局。在发达国家,政府有意识地引导大经济组织参与资本投入,并以此为手段带动民间力量促进社会发展。这样就便得大经济组织和银行的资金流入成了安全防范资本投人社会化的重要途径。另外,开发商为了获取长远利益而进行的先期投入,保险公司为了在安防领域开发新险种,通过投资加强与安防行业的结合,用户购买安防商品时的直接投入等,都促使安全防范的资本投入方式产生根本的变化。这种变化的结果,必将突破安全防范的封闭性,形成一个完全开放性的市场,从而加快安防行业的社会化。 在安全防范中与网络技术相关的应用主要有:报警、监控、行业管理及商务等,目前针对固定目标防范的报警网络,主要采用的是电话网和各种无线通信网;在针对移动目标防范的报警网络中,主要涉及两种技术,一种是定位技术,一种是通信技术,主要采取的是无线通信专网和GSM公网。在监控方面,目前已发展到远程监控和网络化监控。在行业管理和商务活动的通信方式,目前可采用数据网。由于安全防范行业的特殊性,安全防范的报警和监控网络都有其特殊的要求。主要是:实时性、准确性、高可靠性、高安全性、可扩展性。网络技术的发展带动了安防行业的服务网络化。随着网络技术的飞跃发展,网络的信息服务功能也在不断增强,奠定了安防行业服务网络化的基础。许多网络技术公司、安防专业公司、投资公司和各种从事安全防范的报警网络公司都在积极地寻觅着自己在安全防范市场的发展空间。如:社区综合报警服务、机动车联网报警服务、区域联网报警服务、运钞车服务网、金融服务网等等。这些活跃的因素,正在悄然地改变着安防行业的服务模式和行业的经济结构。伴随着网络技术和服务体系的发展和成熟,这种服务不仅冲破了行业、部门的界定,而且要冲破地域的界定,以服务质量为特征的品牌概念也将伴随着安防市场的发展而形成。 从安防产品近十年发展看,90年代初、中期,国内安防产品民用市场比较成熟的是防盗安全门,1997年左右,防盗安全门的生产企业数量急增,而且出现了规模较大的企业。90年代中、后期,小区住宅产业建设发展很快,小区安防的蓬勃发展,使楼宇对讲产品受到青睐,推动了楼宇对讲产品企业向规模化发展,不难看出,安防市场发展的程度决定了安全防范行业的规模化。 安全防范资本投人和实施的社会化是其规模化的条件,安全防范行业管理社会化是其规模化的保障,它们共同保证了安全防范的规模化。随着安全防范社会化的推进,安全防范的主体由单位、个人向小区、社区乃至城域转化,因此安全防范社会化的过程也是其规模化发展的过程。另外,现代科学技术和科技商品使安全技术防范的成本大大降低,也为其规模化提供了可能。安全防范的规模化增强了社会整体防范的能力,提高了社会对犯罪的控制水平,是社会化发展的必然结果。 2 图像采集与存储的基本知识我们知道,所谓多媒体,即多种信息媒介,通常包括以下几种:文本、图形、影像、声音、视频、动画。可以看出,多媒体的应用在很大程度当依赖于丰富多彩的图形和图像。也就是说,图形图像技术的飞速发展也将是必然趋势,掌握图形图像处理技术对一个计算机操作人员是必要的。计算机把图形显示为一组二维的点,这些点叫象素(Pixel)。每个像素的值表示该点的亮度(0-255)计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。F = r R + g G + b B 其中,r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。MEDIASUBTYPE_RGB24 每个像素用24位表示,RGB分量各使用8位MEDIASUBTYPE_RGB32每个像素用32位表示,RGB分量各使用8位(剩下的8位不用)在图像文件的存储格式中也是以位来存储颜色的。由于图像文件的存储格式非常多,这里仅以TRUEVISION公司设计的32位TGA文件格式为例简单说明,在该种格式文件中,32位被分为两部分,其中24位是颜色部分,另外8位是ALPHA值部分,记录着256级灰度,用以加强真彩色的质量。2.1 视频采集的基本概念即将视频转换成PC机可使用的数字格式。微视专业图像采集卡是将视频信号经过AD转换后,经过PCI总线实时传到内存和显存。在采集过程中,由于采集卡传送数据采用PCI Master Burst方式,图像传送速度高达33MB/S,可实现摄像机图像到计算机 。内存的可靠实时传送,并且几乎不占用CPU时间,留给CPU更多的时间去做图像的运算与处理。2.2图像速率及采集的计算公式: 帧图像大小(Image Size)W×H(长×宽)-您必须首先了解需要采集多大的图像尺寸 颜色深度d(比特数)-希望采集到的图像颜色(8Bit灰度图像?还是16/24/32Bit真彩色?)帧速f -标准PAL制是25帧,非标准就没准了!500-1000帧都有可能 数据量Q(MB) -图像信号的数据量 计算公式 Q=W×H×f×d/8 2.3视频源:使用各种图像采集卡,首先需要您提供采集或压缩用的视频源。视频源可以是VCD影碟机、已有的录像带、摄录机、LD视 盘、CCD摄像头、监视器的视频输出等等。* 一台摄录机和使用摄录机录制的录像带* 一台盒式录像机或磁带录像机和已录制的录像带* LD光盘播放机LD光盘或VideoCD播放机和VCD* 摄录机或CCD摄像机 * 在医疗影像中,视频源常常是CT、X光机、B超、内窥镜、甚至MRI核磁共振等等 * 各种工业、军事上的高速非标准视频信号,如每秒200帧、500帧、甚至上千帧(如用DALSA、PULNIX等高档数字像机作为视频源) 其它* 标准图像源设备必须使用NTSC或PAL格式,有复合视频或S-Video,甚至RGB输出接口;* 非标准信号需要得到其行频、场频等信息,可用示波器或微视测试卡 * 如需声音采集则还需要单声道或立体声的RCA音频输出接口 * 您可使用我们提供的视频信号线将视频源设备与PC机的图像采集卡相应端口相连 在本次设计中用的视频源是摄像头.有关摄像头的名词解释 CCD: 电荷耦合器件(Charge Coupled Device)。 像素: 感光器件上的基本感光单元,也是一幅图像的基本单元。 分辨率:感光器件/图像的水平和垂直方向的像素数(1024X1024) 清晰度:人眼实际能够看到的清晰程度,用标准长度内能看到多少线点来衡量。 信噪比:输出信号中有用信号和噪声的比(dB)。 帧/场:相机输出的完整的一幅图像为一帧,隔行信号一帧分为两场 时差20MS。 增益: 通过放大器对信号/噪声的放大。 BINNING:将几个像素联合起来作为一个像素使用,提高灵敏度,输出速度,降低分辨率。 快门 : 每帧图像的曝光时间。 光谱响应:感光器件在不同波段的感光程度。 量子效率:光子转化成电子的效率(以%表示)。摄像头的分类 按输出颜色分: 黑白、复合彩 色、RGB、 数字彩色 按输出信号分:数字信号(RS422、LVDS/RS644、CAMERALINKIEEE1394、USB和模拟信号(BNC输出) 按输出制式分:标准制式输出(PAL/NTSC,CCIR/EIA PALRGB/N TSCRGB)和非标准输出 (所有数字输出、逐行模拟输出) 按制冷方式分:制冷相机、非制冷相机 按呈像器件分:CCD、CMOS、电子管 按镜头接口分:C-MOUNT、CS-MOUNT、 F-MOUNT、其它镜头接口 按CCD阵列分:线阵输出、面阵输出图像的主要的色彩模式:灰度色彩模式:所谓灰度色,就是指纯白、纯黑以及两者中的一系列从黑到白的过渡色。我们平常说所的黑白照片、黑白电视,实际上都应该称为灰度色才确切。灰度色中不包含任何色相,即不存在红色、黄色这样的颜色。但灰度隶属于RGB色域(色域指色彩范围)。RGB色彩模式:我们用放大镜近距离观察观电脑显示器或电视机的屏幕,会看到数量极多的红、绿、蓝三种颜色的小点。电脑屏幕上的所有颜色,都由这红色绿色蓝色三种色光按照不同的比例混合而成的。一组红色绿色蓝色就是一个最小的显示单位。屏幕上的任何一个颜色都可以由一组RGB值来记录和表达。CMYK色彩模式:只要是在印刷品上看到的图像,就是CMYK模式表现的。比如期刊、杂志、报纸、宣传画等,都是印刷出来的,那么就是CMYK模式的了。和RGB类似,CMY是3种印刷油墨名称的首字母:青色Cyan、洋红色Magenta、黄色Yellow。而K取的是black最后一个字母,之所以不取首字母,是为了避免与蓝色(Blue)混淆。HSB色彩模式:HSB色彩把颜色分为色相、饱和度、明度三个因素,将我们人脑的“深浅”概念扩展为饱和度(S)和明度(B)。所谓饱和度相当于家庭电视机的色彩浓度,饱和度高色彩较艳丽。饱和度低色彩就接近灰色。明度也称为亮度,等同于彩色电视机的亮度,亮度高色彩明亮,亮度低色彩暗淡,亮度最高得到纯白,最低得到纯黑。由于在显示器显示的彩色模式都是RGB格式,因此本次设计采用RGB彩色模式。而RGB格式主要包括RGB24和RGB32格式,具体转换方法及代码详见第四章。3 开发平台和开发工具选取3.1什么是嵌入式系统 嵌入式系统是用来控制或监视机器、装置或工厂等的大规模系统的设备。具体说来,它是电脑软件和硬件的综合体;是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。一般来说,嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,终端用户很难或者不可能改变固件。 一个最小的嵌入式系统的基本组成为: 一个用作引导的可用设施(工具); 一个具备内存管理,进程管理和定时器服务的LINUX微内核; 一个初始进程; 硬件的驱动程序; 一个或几个应用进程以提供必要的应用功效。 以应用为中心对计算机进行分类,可以将其分为通用计算机与嵌入式计算机。通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出现并应用在社会的备个方面,其典型产品为PC;而嵌入式计算机则是嵌入于宿主设备,智能地完成宿主设备功能的计算机,它是以嵌入式系统的形式隐藏在各种装置、产品和系统中。 嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用汁算机的外部设各中就包含了5IO个嵌入式微处理器。键盘、鼠标、软驱、硬盘、显示卡、显示器、Modem网卡、声卡、打印机、扫描仪、数字相机、USB集线器等等均是由嵌入式处理器控制的。在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、军事装备、消费类产品等方面均是嵌入式计算机的应用领域。3.2什么是LINUX系统 简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。 Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。 Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。3.3嵌入式LINUX操作系统的特点Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一,不仅可以与各种传统的商业操作系统分庭抗争,在新兴的嵌入式操作系统领域内也获得了飞速发展。嵌入式Linux是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几K或者几M字节的存储器芯片或者单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。嵌入式Linux的开发和研究是操作系统领域中的一个热点,目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux。Linux之所以能在嵌入式系统市场上取得如此辉煌的成果,与其自身的优良特性是分不开的。 ·广泛的硬件支持。Linux能够支持x86、ARM、MIPS、ALPHA、PowerPC等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有流行的CPU上。Linux有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新的硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。·内核高效稳定。Linux内核的高效和稳定已经在各个领域内得到了大量事实的验证,Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。·开放源码,软件丰富。Linux是开放源代码的自由操作系统,它为用户提供了最大限度的自由度。由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。Linux的软件资源十分丰富,每一种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。在Linux上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件作为原型,在其上进行二次开发。·优秀的开发工具。开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In-Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能够非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常昂贵,而且只适合做非常底层的调试。如果使用的是嵌入式Linux,一旦软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。·完善的网络通信和文件管理机制。Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。此外,Linux还支持ext2、fat32、romfs等文件系统,这些都为开发嵌入式系统应用打下了很好的基础。3.4为什么选取LINUX作为设计平台有人认为LINUX由于太大而不宜用作嵌入式系统,这种观点不正确。面向PC机的LINUX型发布版有很多,功能根本用不上,甚至超出了一个PC用户的需求。因此,对LINUX进行合理的裁减,可以形成一个很具有实用性的嵌入式操作系统。下面对嵌入式LINUX操作系统与专用嵌入式实时操作系统的比较如下。 嵌入式LINUX的内存使用 在一个简单的系统中,当系统启动后,内核和各种应用进程均驻留在内存中,这是大多数传统嵌入式系统的工作方式,当然也包括LINUX。但它还可以使用另外一种方式:LINUX有装载和卸载程序的能力,所有应用程序以文件的形式被存放在闪存文件系统中并在必要的时候被装载到内存中,以节省RAM。 开发嵌入式LINUX的调试方法当为一个新硬件开发相应的嵌入式LINUX系统时,要用到的典型调试工具的序列和步骤是: 修改代码使之能读写串口,并使用gdb运行该程序。这将允许它向另一台正运行着gdb程序的LINUX主机通信;gdb通过串口与测试计算机上的gdb目标码会话并给出全部C源码级的调试信息; 借助gdb执行余下的,直到LINUX内核开始接管之前的所有硬件和软件的初始化代码; 一旦LINUX内核启动后,上述的串口就成为LINUX的控制台端口,可以利用它的便利来进行后继开发过程,并可以使用gdb的内核调试版本kgdb。 嵌入式LINUX的可移植性将LINUX移植到新的微处理器体系非常快捷,一般是将其移植到一种新型的目标板,其中包含有独特的外设。大部分的内核代码都是相同的,因为它们与微处理器无关,所以,移植的工作多集中在一些存储器管理及中断处理程序上。一旦完成,它们将非常稳定。嵌入式LINUX的应用嵌入式系统的涵盖面是非常广泛的,其中,家电市场包括机顶盒、数字电视、可视电话、家庭网络等信息家电;工业市场包括工业控制设备、仪器;商用市场包括掌上电脑、瘦客户机、POS终端等;通信市场包括WAP手机、无线PDA等。目前被广泛看好的是信息家电市场,国内有很多开发厂商正加大投入、开发和研制新的产品,嵌入式LINUX将是他们首选的操作系统。3.4编程语言,集成开发环境,调试工具的选择?嵌入式Linux系统方面的产品主要分为三类: 第一类是专门为Linux的嵌入式应用而做的。如何让Linux更小、更容易嵌入到体积要求和功能、性能要求更高的硬件中去,是他们的产品开发方向,如MontaVista的MontaVista Linux等。第二类是专门为Linux的实时特性设计的产品。将Linux开发成实时系统尤其是硬实时系统,应用于一些关键的控制场合(不仅仅是信息电器)。如,Fsmlabs公司开发出来的RT-Linux产品已经用在工业控制的很多方面;葡萄牙的Coimbra大学已经利用RT-Linux实现了化工生产控制厂里用来控制反应和过程控制的系统。第三类的产品是将实时性和嵌入式方案结合起来的方案。很多公司都这么做,并且提供集成化的开发方案,如Lineo、TimeSys等等。因此选择操作系统时,要根据自己的嵌入式要求和实时性要求,选择适合自己的嵌入式Linux;同时,和选择硬件的原则一样,如果可能,尽量选择使用普通的嵌入式 Linux 系统。编程语言的选择主要考虑以下因素:1通用性。不同种类的微处理器都有自己专用的汇编语言。这就为系统开发者设置了一个巨大的障碍,使得系统编程更加困难,软件重用无法实现。而高级语言一般和具体机器的硬件结构联系较少,多数微处理器都有良好的支持,通用性较好。2可移植性程度。汇编语言和具体的微处理器密切相关,为某个微处理器设计的程序不能直接移植到另一个不同种类的微处理器上使用,移植性差;而高级语言对所有微处理器都是通用的,程序可以在不同的微处理器上运行,可移植性较好。3 执行效率。一般来说,越是高级的语言,其编译器和开销就越大,应用程序也就越大、越慢;但单纯依靠低级语言,如汇编语言来进行应用程序的开发,带来的问题是编程复杂、开发周期长。因此,存在一个开发时间和运行性能间的权衡问题。4 可维护性。低级语言如汇编语言,可维护性不高。高级语言程序往往是模块化设计,各个模块之间的接口是固定的。当系统出现问题时,可以很快地将问题定位到某个模块内,并尽快得到解决。另外,模块化设计也便于系统功能的扩充和升级。几种开发语言的比较:在嵌入式系统开发过程中使用的语言种类很多,比较广泛应用的高级语言有:Ada、C/C+、Modula-2和Java等。Ada语言定义严格,易读易懂,有较丰富的库程序支持,目前在国防、航空、航天等相关领域应用比较广泛,未来仍将在这些领域占有重要地位。C语言具有广泛的库程序支持,目前在嵌入式系统中是应用最广泛的编程语言,在将来很长一段时间内仍将在嵌入式系统应用领域占重要地位。C+是一种面向对象的编程语言,目前在嵌入式系统设计中也得到了广泛的应用,如GNU C+。Visual C+,是一种集成开发环境,支持可视化编程,广泛应用于GUI程序开发。但C与C+相比,C+的目标代码往往比较庞大和复杂,在嵌入式系统应用中应充分考虑这一因素。Modula-2定义清晰,支持丰富,具有较好的模块化结构,在教学科研方面有较广泛的应用。虽然该语言的开发应用一直比较平缓,但近两年在欧洲有所复苏。Java语言相对年轻,但有很强的跨平台特性,目前发展势头较为强劲。Java语言的“一次编程,到处可用”的特性,使得它在很多领域备受欢迎。随着网络技术和嵌入式技术的不断发展,Java及嵌入式Java的应用也将越来越广泛,但是Java消耗硬件资源较大。集成开发环境IDE(Integrated Development Environment)应考虑以下因素:1 系统调试器的功能。系统调试特别是远程调试是一个重要的功能。2 支持库函数。许多开发系统提供大量使用的库函数和模板代码,如大家比较熟悉的C+编译器就带有标准的模板库。它提供了一套用于定义各种有用的集装、存储、搜寻、排序对象。与选择硬件和操作系统的原则一样:除非必要,尽量采用标准的 glibc。3 编译器开发商是否持续升级编译器。4 连接程序是否支持所有的文件格式和符号格式。3.1.5嵌入式LINUX开发工具 在嵌入式Linux系统开发中,经常会遇到脚本编程、编写Makefile、gcc、gdb等工具,因此本节就这些开发工具做一个简单的介绍。1 Bash脚本 在应用嵌入式Linux系统时,经常需要改动系统的运行脚本或编写自己的脚本程序,如在利用gee编译c代码时需要开发自定义的Makefile,而在Makefile编写过程中会用到大量的Bash语法。Bash是Linux系统中的一种命令语言解释器,它是由Linux系统提供的多种解释语言中的一种,在语法上与其它Shell解释器有一定的相似之处,但Bash的处理能力更强。Bash作为一种脚本语言编程只有两个简单的步骤:创建脚本和运行脚本。在Linux环境中通常使用Emacs、gEdit、Vi等编辑器就可以编写Bash脚本。在嵌入式Linux系统的开发过程中,经常要利用Bash脚本过程控制Linux系统的启动和运行,因此熟悉Bash是非常重要的。Make管理项目嵌入是系统开发中编程是必不可少的,通常使用的编译工具都是GNU的gcc多数惰况下都要使用make管理项目。Make管理项目通过把编译命令保存在Makefile中简化编译工作,而且还在数据库中维护当前开发工程中的各个文件的依赖关系,在编译前就能确定所需文件是否存在,make用来维护程序十分方便有效。Gcc编译器 Gcc编译器是一个在Unix/Linux系统上运行的功能强大的编译器,主要用于对c/c等语言的编译。随着Linux的流行,Gcc不断的完善和发展使得许多商业编译器都相形见拙。 结合使用Gcc和make,可以对程序编译过程进行深层次的控制。Gcc编译器将编译过程分为预处理、编译、汇编和链接四个阶段,并能够在任意的一个阶段暂停并检查输出信息,还能在生成二进制文件式输出调试信息。Gcc是一个交叉平台编译器,能够在所处的CPU平台上为异构体系硬件系统开发应用程序。如在inter的机器上可以编译出能够在Motorola的CPU平台上运行的应用程序,这一点在嵌入式系统开发中尤为重要。因为多数嵌入式系统本身没有开发工具和开发环境,必须借助一个开发系统环境(如redhat)然启利用交叉编译器生成可在目标系统中运行的程序。调试工具GDB 调试是开发过程中必不可少的环节。嵌入式操作系统与通用的桌面操作系统在调试环境上存在明显的差别:桌面操作系统中,调试器与被调试的程序往往是运行在同一台机器、相同的操作系统上的两个进程,调试器进程通过操作系统专门提供的调用接口控制、访问被调试进程。嵌入式系统一般采用远程调试,调试器运行于通用桌面操作系统,被调试的程序则运行于目标系统。在目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调 试。 Linux包含一个称为的GDB的GNU调试程序可以调试各种程序,包括C、C+、JAVA、PASCAL、FORAN和GNU所支持的所有微处理器的汇编语言。利用GDB可以在程序运行时观察程序的内部结构和内存的使用情况:1监视程序中变量的值。2设置断点使程序在指定的代码行上停止执行。3单步跟踪执行代码。 运行GDS的开发平台通过串行端口连接到目标系统,GDB就可以对应用程序进行远程调试。GDB通过串口单步调试程序代码、设置断点、检验内存,同目标系统交换信息,并把调试信息在主机终端上显示。3.2 界面编程工具QT的选择及其基本知识3.2.1 QT的基本概念Qt是一个多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展,并且允许真正地组件编程。 Qt支持下述平台: · MS/Windows - 95、98、NT 4.0、ME、和2000 · Unix/X11 - Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台 · Macintosh - Mac OS X · Embedded - 有帧缓冲(framebuffer)支持的Linux平台。 Qt是Trolltech公