基于ARM的智能门禁系统设计本科毕业设计(49页).doc
-基于ARM的智能门禁系统设计本科毕业设计-第 45 页基于ARM的智能门禁系统设计摘 要门禁系统作为安防系统中的一个重要部分,随着人们的生活水平和工作的质量的提升,其技术要求也得到了相应的提升。同时在楼宇自动化中门禁系统也得了很多的重视。它以计算机技术为主体,涉及了电子、机械、光学、通讯技术、生物技术等多种技术用来有效的对出入口进行控制,并且限制出入人员的权限。计算机系统通过门禁锁实现对出入口的控制,而最多只需要一个人在中心监控室实现有必要的人为控制。本课题就是以ARM为主控制器,将嵌入式技术和射频识别技术应用到门禁系统中,利用嵌入式系统丰富的控制器资源、对实时多任务有很强的支持能力、可扩展的处理器结构方便以后功能的完善,同时射频技术来检测IC卡,通行的人用IC卡来获得进入的权限。关键字:门禁系统,嵌入式技术,身份识别技术ABSTRACTAccess control system as an important part of the security system, with the enhancement of people's living standards and the quality of work, technical require ments has also been a corresponding increase. Access control systems in building automation also got a lot of attention. Computer technology as the main body involved in the electronic, mechanical, optical, communications technology, biotechnology and other technologies used to control the import and export, and to limit access permissions. Computer system to control the import and export through access control lock up only one person in a central control room to achieve the necessary human control. The sub ject is the controller, ARM-based embedded technology and radio frequency identifi cation technology to the access control system, embedded system controller, a strong ability to support real-time multi-tasking, scalable processors structure to facilitate future improve the function of the radio frequency technology to detect IC card, IC card access to get permission to enter.Key words :Access control system , embedded technology , ID technology目 录摘 要IABSTRACTII第一章 绪论11.1 课题背景和意义11.2 门禁系统的发展和国内外现状11.3论文研究的内容和工作2第二章 门禁系统技术的介绍42.1 RFID射频识别技术的介绍42.2基于ARM平台的嵌入式系统的介绍52.2.1 ARM技术的介绍52.2.2 嵌入式系统概述6第三章 总体设计和软硬件平台的选择93.1系统总体设计93.2硬件平台的选择93.2.1 S3c6410芯片介绍93.2.2 MF RC500射频读写芯片113.3软件平台的选择133.3.1 选择Linux操作系统的理由143.3.2 bootloader的选择153.3.3 文件系统的选择16第四章 系统详细设计与实施184.1 嵌入式Linux开发环境的搭建184.2 主机开发环境的搭建和系统的移植184.2.1 搭建主机的开发环境184.2.2 U-boot的编译184.2.3 内核的定制194.2.4 文件系统的制作22第五章 应用软件的设计245.1 软件设计的总体思路245.2 通过协议编写程序26结 论28参考文献29附 录30致 谢60第一章 绪论1.1 课题背景和意义在科技、社会经济飞速发展的当今,城市的面貌发生了极大的变化,林立的大厦、众多成片小区的出现的同时也产生了不少的安全隐患,不法分子利用高科技手段犯罪的行为也逐渐多了起来,怎么让人们利用现代科技手段为自己的人身财产安全保驾护航,同时有效的阻止犯罪行为呢?传统的门锁和防盗门已经不能满足人们的需求了。在现代化的城市地区,为树立公司、大厦或者机关办公场所规范化管理形象,提高管理,智能门禁系统就在这些情况下应运而生,它的出现让以前单一的让保安看守的形式变得多样化,在高档办公区,可以智能门卡可以替代门锁的作用让人和人有不同的通过权限,被授权的持卡人可以进入其职责范围内的区域,同时可将不受欢迎的人员拒之门外,例如业务推销员,这些干扰正常办公秩序的无关人等。所有进出入情况在电脑里面都有记录,便于针对具体事情的发生进行查询,责任落实。传统的机械门只能防范一般的的盗窃犯罪行为,无论材料是多么的坚固,设计怎样合理,人们想打开还是能够打开的,而且钥匙的管理是很麻烦的,钥匙掉了的话需要把锁和钥匙一起更换。为了解决出入方便这一系列的问题,智能门禁系统的发展变得快速,应用范围也越来越宽广。1.2 门禁系统的发展和国内外现状门禁系统,又被称作出入口控制系统,顾名思义就是对出入口通道进行管制的系统,通过管理来决定哪些人该进,哪些人不该进,在何种情况下发出警报,记忆出入的情况,从而保障出入安全的目的。智能门禁系统是一种综合性的多学科的高科技集合,它涉及电子、机械、光学、计算技术、通信技术、生物统计学等诸多新技术领域。门禁系统出现的首要目的就是身份的识别,门禁系统通过识别方式可以分成三种:密码识别通过输入验证密码的正确性来获取进入权限,有成本低操作简单,用户只需要记住密码即可完成与门禁的互动,无需带上卡片等优点,可以说这是最简单的门禁设备,也是应用时间最久的门禁控制设备,但是这类门禁的安全性和效率也是最低的,旁人可以通过观察或者其他简单的渠道就可以获取大门的控制密码,而且由于知道密码的人众多,所以还存在着易公开但是不方便更换的特点。卡片识别通过读卡或读卡加密码的形式来识别进入权限,按卡片种类又可分为磁卡:有成本较低;一人一卡(+密码),安全一般, 可联微机,记录开门信息的优点;缺点就是卡片设备很容易磨损,寿命较短;卡片容易复制;同时很难双向控制。因外界磁场很容易造成卡片信息丢失,从而使卡片无效。射频卡:优点就是无需和设备接触,开门方便安全;使用寿命长,有很高的安全性,可以与微机相连,记录开门的信息;双向控制可以很容易实现。卡片很难被复制。虽然成本较高,但是这是应用范围最为广泛的了。生物识别通过检验人员的生物特性的方式来识别,有指纹型、虹膜型、掌形型、面部识别型,还有手指静脉识别型等。这种方式具有很好的安全性,需进入的人不用携带卡片,但是带来了很高的成本花销的代价,识别率是基于一定软件算法的因此很有可能不高,同时对使用者的生物特性的要求较高,如果是指纹识别,就无法识别划伤的指纹,如果是虹膜识别,眼睛红肿出血也会出现无法识别的效果。同时对环境的要求也很高,例如在黑夜的时候人的瞳孔会变大,虹膜识别很有可能失去原有的功能。综合起来使用生物设别在一定条件并不方便。中国门禁行业的发展历程,也与国内其它行业一样经历了探索、仿制、研发、成熟等几个阶段。从最早的单门门禁开始,随着房地产业发展规模的疯狂扩张,高档社区及商务楼对于门禁系统安全性能要求的不断提高,门禁产品经历了由独立型门禁系统、联网型门禁系统、一卡通门禁系统、TCP/IP网络型门禁系统的演变。在国外的门禁系统有很多品牌,主要有美国的休斯(HID)、摩托罗拉(MOTOROLA)、英国的集宝,以色列的SE、西屋(WSE)、洛泰克(NTK)等品牌,国内门禁系统的品牌主要有清华紫光和捷顺等。在技术上面智能门禁系统相对于传统的门禁系统来说应用了更多的防范措施,这些措施涉及并综合了众多的高科技技术,其中包括光学、电子、通讯技术、计算机技术、乃至生物科学等诸多领域。国内外目前研制和使用主要集中的门禁系统为感应门禁系统和生物识别门禁系统。作为安防领域和楼宇设计的基础平台,随着人们生活水平的提高,工作质量的要求,门禁系统也会得到更加长足的发展,比如对门禁系统的安全性、稳定性方面的要求会更高,门禁系统也将会同安防领域一道实现“联网”机制,更有效的防治违法行为的出现。智能小区的推广和智能小区的安全防范的增强,使智能门禁系统的网络化成为可能。1.3论文研究的内容和工作本课题的研究目的是设计和实现具有良好的扩展性和适应性的门禁系统。因此该系统以射频门禁读卡器和嵌入式移植为核心,提出软件设计的详细方案,并给出射频门禁卡、门禁控制器的相关介绍和设计的总体思路和具体实现方法。该系统中门禁读卡器的主要任务是控制射频模块来接受读取门禁识别卡上面的信息,并且对该卡进行识别和解码,将获取的信息再显示出来。同时在门禁主控制端要进行Linux的移植工作,其中包括U-boot、内核的制定和裁剪、文件系统的制作。并且研究嵌入式系统开发的方法和Linux驱动程序的设计方法。第二章 门禁系统技术的介绍2.1 RFID射频识别技术的介绍自动识别技术是一种自动收集数据的技术,用收集相关的人或者物的信息或数据,射频识别技术是众多自动识别技术中的一种。RFID技术最常见的应用就是通过一个识别号码(类似姓名)来惟一地识别一个物体、地点、动物或者人。这个号码存储在附属天线集成电路中,IC和天线一起被称为电子标签,电子标签附属于要识别的物体、地点或者人。射频识别(英文:Radio Frequency IDentification,缩写:RFID)是一种无线通信技术,可以通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或者光学接触。无线电的信号是通过调成无线电频率的电磁场,把数据从附着在物品上的标签上传出去,以自动辨识与追踪该物品。某些标签在识别时从识别器发出的电磁场就可以得到能量,并不需要电池;也有标签本身拥有电源,并可以主动发出无线电波(调成无线电频率的电磁场)。标签包含了电子存储的信息,数米之内都可以识别。与条形码不同的是射频标签不需要处在识别器视线之内,也可以嵌入被追踪物体之内。RFID系统一般是由电子标签和读写器组成,同时结合许多其他组件在现实生活中也出现过,例如计算机、软件系统、无线设备和网络。所有这些组件和电子标签以及读写器共同工作,组成了完整解决方案。典型的RFID系统由以下两部分组成:1)电子标签,即携带数据的发射器(如标签)。位于要设别的目标表面或者内部,一般由两个部件(如线圈或者微波天线)和一个电子芯片组成。根据使用的电源可以把标签分为主动标签、半被动标签和被动标签,还可以个根据其编码的数据进行进一步分为只读、读/写以及读/写/重写。大多数标签比一粒沙子还小(即宽度小于3mm),一般内部封有一个玻璃或塑料的模块。2)读写器,即读取电子标签的数据和写入数据到电子标签的收发器(或阅读器)。许多读写都额外的接口,可以把收到的数据传送给另一个系统,如个人计算机或者自动控制系统。RFID技术的最大优点就是减少了人工干预,可以在商业活动进行的过程中自动收集数据,且收集数据不需要贴别的动作。这种自动操作提高了数据质量,减少了数据采集的时间,具有实时地获取数据以及降低在低质量数据上的花销的特点。因为无需打开物品包装盒就可以扫描货品来收集数据,RFID还节约时间和降低成本的好处。此外,它还可以实时获取详细的目录信息和实时监测货物清单。RFID技术广泛应用于供应物流链管理、公共管理、人员管理、门禁控制、交通领域、生产领域中。2.2基于ARM平台的嵌入式系统的介绍2.2.1 ARM技术的介绍ARM公司是微处理器行业的一家知名企业,专门从事的是基于RISC技术芯片设计开发。作为知识产权供应商,ARM公司不直接从事芯片生产,而是转让设计许可,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器内核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,采用ARM技术知识产权(IP)核的处理器已遍布及工业控制、消费类电子产品、通信系统、网络系统和无线电系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器的大部分市场份额,ARM技术正逐步渗入到我们生活的各个方面。ARM微处理器采用RISC构架,一般具有如下特点:1) 体积小、低功耗、低成本、高性能;2) 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件;3) 大量使用寄存器。指令执行速度更快;4) 大多数数据操作都在寄存器中完成;5) 寻址方式灵活简单,执行效率高;6) 指令长度固定;除了上述特点之外,ARM体系结构还采用了下面一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:1) 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率;2) 可用加载/存储指令批量传输数据,以提高数据的传输效率;3) 可在一条数据处理指令中间同时完成逻辑处理和移位处理;4) 在循环处理中使用地址的自动增减来提高运行效率;到目前为止 ARM微处理器及技术的应用几乎已经深入到以下的许多领域:1) 工业控制领域 :作为32的RISC架构基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。2)无线通讯领域目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。3)网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,在语音及视频处理上行了优化并获得广泛支持,也对DSP的应用领域提出了挑战。4)消费类电子产品:技术在目前流行的数字音频播放器数字机顶盒和游戏机中得到广泛采用。5)成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。除此以外,ARM 微处理器及技术还应用到许多不同的领域并会在将来取得更加广泛的应用。2.2.2 嵌入式系统概述嵌入式系统是基于计算机、电子和信息技术,以产品和设备为目标,集硬件和软件于一体的专用系统。具有集成度高,实时响应速度快、维护和扩展方便以及升级换代快等特点,广泛应用于实时性强以及系统对功能、可靠性、功耗等技术指标严格要求的多任务体系。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序几个部分组成,用于实现对其他设别的控制、监控和或者管理等功能。随着嵌入式系统的发展,对于功能不断增强、应用范围日益广阔的嵌入式硬件,植入与之匹配的嵌入式操作系统,并根据实际需要合理剪裁系统软、硬组件,既能充分发挥系统功能,有效提高系统利用率,又能节省存储空间,有利于操作系统的移植和效率的提高。由于嵌入式系统是一种专用的计算机系统,所以嵌入式系统的体系结构也和PC的体系结构类似,主要包括硬件、操作系统和应用程序三部分。如下图图2.1 嵌入式体系结构图1) 硬件嵌入式硬件系统的核心是嵌入式处理器。在PC中,CPU的体系结构几乎是x86系列的天下。但是在嵌入式处理器领域,目前市面市面上流行的有上百种体系结构和品牌的CPU。其中ARM、PowerPC、MIPS等应用最为广泛。在处理器方面,嵌入式系统一般使用SDRAM作为内存,Flash作为外村。显然,嵌入式存储器的性能和容量是远远比不上PC中的DDR内存和硬盘的。下面给出嵌入式系统的硬件组成图 图2.2 嵌入式系统硬件组成图2) 操作系统和嵌入式处理器类似,嵌入式操作系统的类型也比PC要丰富很多。嵌入式操作系统用来管理中断处理、任务间通信、存储器分配和定时器的相应的软件模块集合,对其要求通常有实时的作用,因此,嵌入式操作系统往往又是实时操作系统。嵌入式操作系统中的美国河风公司的Vxworks、微软的Windows CE都有功能强大,优越的性能,但是都是商业软件。而免费开源的Linux嵌入式操作系统,在功能上和性能上并不逊色于以上的商业软件,因此在嵌入式领域有着强大的生命力和发展前景。3)应用程序应用程序是执行系统功能主要的软件,是针对特定的实际专业领域的,基于相应的嵌入式硬件平台,同时需要完成用户指定的预期任务的计算机软件。它可以由一个任务来完成也可以由多个任务共同完成。嵌入式软件的特点如下1) 系统软件的高实时性是其基本的要求2) 多任务的实时操作系统成为嵌入式应用软件的必须条件3) 要求对软件实现固态化存储,因为一般完成设计的软件程序都需要打包然后放在操作系统中,需要时就运行应用程序,一般不允许对其软件程序进行修改。4) 对代码的要求高质量、高可靠性。第三章 总体设计和软硬件平台的选择3.1系统总体设计该设计是一个单一的门禁控制系统,主要实现的是软件控制部分的功能其系统组成的结构如下图。图3.1 系统设计框图其中门禁控制器和门禁读卡器将会是该门禁系统的核心部分,读卡器读取射频门禁卡上面的数据,并且对这些数据进行解码分析,然后将卡的信息通过USB发送给门禁控制器,门禁控制器再做相应的动作,实现门禁控制的功能。本设计采用的是上、下位机分离的双CPU结构,下位机MCU通过USB Slave端口与上位机ARM USB Host端口通信,上位机运行的是ARM-Linux操作系统。本文的主要任务是USB转串口驱动的移植和射频读卡器应用程序的编写。3.2硬件平台的选择本课题设计中的硬件部分主要是由三部分组成:门禁控制器、读卡器、射频门禁卡。其中门禁控制器采用了S3C6410处理器芯片,门禁控制器外接基于STC12C5A60S2单片机的射频读卡器,通过USB接口连接。3.2.1 S3c6410芯片介绍S3c6410是一个16/32位RISC微处理器,该处理器旨在为移动行业及一般领域的应用提供一种具有成本效益、功耗低、性能高的解决方案。它为2.5G和3G通信服务提供优化的硬件性能。S3c6410才用64/32位内部总线架构,由AXI、AHB和APB总线组成。它还包括许多强大的硬件加速器,并轻松支持像视频处理,音频处理,二维图形,显示操作和缩放的任务。内部集成的一个多格式编码器支持MPEG4/H.263/H.264编解码以及VCI格式的解码,同时这个硬件解码器支持实时视频会议和NTSC、PAL模式的TV输出。具有一个三维图形硬件加速器(简称3D引擎),可以加速OpenGL ES1.1&2.0.S。 3c6410结构框图如下图:图3.2 S3c6410结构框图S3c6410处理器特性主要如下:l 基于CPU子系统的ARM1176JZF-S具有Java加速引擎,16KB/16KB I/D缓存和16KB/16KB I/D TCM;l 在1.1 V时达533 MHz,1.2 V时达677 MHz;l 一个8位ITU 601/656相机接口,支持4M像素(缩放)或者16M像素(未缩放);l 多标准解码器提供30帧每秒MPEG-4/H.263/H.264编解码及30帧每秒的VC1视频解码;l 具有BITBLIT和旋转的2D图形加速;l 3D图形加速在133MHz时可达4M的三角形运算能力;l AC97音频编解码接口和PCM串行音频接口;l 支持1,2,4或8像素/位调色彩色显示及16像素/位无调色真彩显示;l IIS和IIC接口支持;l 专用的IrDA接口支持MIR、FIR及SIR;l 灵活配置的GPIO端口;l USB2.0 OTG端口支持高速传输(480 Mbps,片上收发器);l USB1.1端口主设备支持全速传输(12 Mbps,片上收发器);l SD/MMC/SDIO/CE-ATA 兼容卡主控制器;l 实时时钟,锁相环,具有PWM的定时器和看门狗定时器;l 32通道DMA控制器;l 支持8 X 8 键盘矩阵;l 先进电源的管理适用于手机应用;l 存储器子系统支持8位或16位数据总线的SRAM/ROM/NOR Flash接口;支持16位数据总线的混合式OneNAND闪存接口;支持8位数据总线的NANDFlash接口;支持32位数据总线的SDRAM接口;支持32位数据总线的移动SDRAM接口;支持32位数据总线的移动DDR接口;3.2.2 MF RC500射频读写芯片Philips 公司的MIFARE 非接触式智能标签在非接触标签应用领域占有全球80%的市场份额,是目前非接触智能标签的工业标准,也成为 ISO/IEC 14443-2-2001 的工作草案。在MIFARE这一作为工业标准的技术平台基础上生产出来的3000万张智能标签及10亿多次交易覆盖全球众多领域。随着其应用范围的不断扩大,如公共交通、路桥收费、电子机票、身份证、付费电话等,再加上应用装置的增加,与MIFARE相关的行业得到了长足的发展。MF RC500作为Philips公司的一款高度集成的读写器芯片,工作于13.56MHz。该读卡IC系列利用先进的调制和解调概念,完全集成在13.56MHz下所有类型的被动非接触式通信方式和协议。工作的天线可以被直接近距离驱动(可达100mm)通过内部的发送部分,而不需要增加有源电路,一个坚固的解调和解码电路构成了接收器分,用于ISO/IEC 14443兼容的应答器信号;数字部分处理ISO/IEC 1443-2-2001帧和错误检测(奇偶校验和CRC)。此外,还支持用于验证MIGARE系列产品的快速CRYPTO1加密算法。MF RC500可方便地用于各种基于ISO/IEC 14443-1标准并且要求低成本、小尺寸、高性能以及单电源的非接触式通信的场合。MF RC500的功能框图图下图所示。图3.3 MFRC500功能框图由图可知,MF RC500内部包括并行微控制接口、状态和控制单元、中断、数据处理单元、双向FIFO缓冲区、安全和密码控制单元、模拟电路接口及天线接口。MF RC500的外部接口包括数据总线、地址总线、控制总线(包含中断和读写信号等)和电源等。MFRC500的并行微控制器接口自动检测连接的8位并行接口的类型,它包含一个可配置的中断输出和一个易用的双向FIFO缓冲区,为连接各种MCU提供了很大的灵活性,即使采用的器件的成本是非常低的也能满足高速非接触式通信的要求。数据处理部分执行数据的串行/并行转换。支持的校验包括CRC和奇偶校验。MF RC500以完全透明的模式进行操作,因此支持ISO/IEC 1443-2-2001的所有层。状态和控制部分允许对器件进行配置以适应环境的影响,并将把性能调节到最佳状态。当与MIFARE Standard 和 MIFARE 通信时,使用高速CRYPTO1流密码单元和一个可靠的非易失性密钥存储器。模拟电路包含一个具有阻抗非常低的桥驱动器输出的发送部分,这使得最大操作距离可达100mm。接收器可以检测到并解码非常弱的应答信号。MF RC500引脚排列如下图:图3.4 MF RC500引脚排列图该器件为32引脚外形封装(Small Outline Package,SOP)。为达到EMC特性和信号解耦方面实现最佳性能期间使用了3个独立的电源。MF RC500同时具有出色的RF性能并且在模拟部分和数字部分适应不同的操作电压。MF RC500的具有以下的优良特性:高集成度模拟电路用于电子标签应答的解调和解码;缓冲输出驱动电路使用最少数目的外部元件连接到天线;近距离操作(可达100mm);用于连接13.56MHz石英晶体的快速内部振荡器缓冲区;时钟频率监视;硬件复位是低功耗的;软件实现掉电模式;并行微处理器接口带有地址锁存和IRQ线;微处理器并行接口类型可以自动检测;接受FIFO缓冲区和易用的发送;面向位和字节的帧;唯一的序列号;支持防碰撞过程;片内时钟电路;支持MIFARE PRO和ISO/IEC 14443-2-2001(透明模式且T = “CL”);支持Mifare Classic;CRYPTO1以及具有可靠的内部非易失性的密钥存储器;支持MIFARE有源天线;在高安全性的终端上非常适用。3.3软件平台的选择软件是嵌入式系统的灵魂。一般包括Boot Loader、嵌入式操作系统、嵌入式文件系统和应用程序。其中,嵌入式操作系统是整个系统的核心,它负责任务的调度、资源的分配等核心任务。嵌入式系统的软件结构如下图: 图3.5 嵌入式系统软件结构3.3.1 选择Linux操作系统的理由在嵌入式领域有很多成热的操作系统,它们广泛的应用在各种领域,如Linux、WindowsCE、Vxworks、pSOS等,本设计中选择Linux作为嵌入式开发的操作系统,以下列举了选择嵌入式开发的Linux操作系统所具有的一些优势:(1) 嵌入式Linux有开放的源代码。这让程序开发者和爱好者,对Linux系统开发时可以随意查看、修改,并且按照一定的协议,根据工程项目的要求进行对操作系统的再次开发,保留非常有的功能,那些多余的、以后添加新模块也用不上的功能就不必要再出现了,实现了更有效果的利用存储空间和其随意裁剪的优点。(2) 成本低,可以不用花钱就能获得源代码。嵌入式Linux是开放源代码的自由软件,遵循GPL协议,它的源代码可以自由获得,使用嵌入式Linux开发嵌入式应用,用于购买嵌入式操作系统的费用可以忽略不计。而商业操作系统每个拷贝售价在几百美元到几万美元不等,如果需要操作系统的源代码,则还需要另外购买。嵌入式Linux的开发工具也可以免费获得。相比之下,嵌入式Linux这一优点对于对成本和能耗极为敏感的嵌入式产品是十分重要的。(3) 网络方面功能强大。Linux操作系统作为类Unix操作系统的典型,继承了在服务器方面Unix安全可靠高效的特点,并且继承了Unix支持的标准因特网协议,可以非常方便地搭建起一个简易的服务器系统,长期运行,使得基于嵌入式的Linux服务器在小型服务器领域上有强的竞争优势。(4)有优良且丰富的开发工具。在项目开发时,不仅需要具体的实施流程图,有一套完善的开发工具和检测软件也是必不可少的。正是由于在Linux有开源的代码和任何人都能在遵循一定协议的情况下修改源码,把它变得更精壮更能有效的利用硬件资源,很多资源都是能在Linux社区找到,同时也开发工具的机构看到了商机,开发出了强大的开发工具让很多的开发者使用。例如交叉编译工具,它跨越了不同的平台实现了在强大的CPU下编译目的,而编译出来的可执行程序针对的其它硬件平台的,这种独创性的工具节省了很多过程上繁琐的细节问题,让开发过程变得轻松。(5)在硬件方面有很多嵌入式Linux都能有效的支持。十多种硬件平台都能够成功地移植其中包括X86、ARM、MIPS、PowerPC、ALPHA体系结构,高开放度的源码让很多的开发者能在流行的CPU上开发,使得Linux能很好支持各种主流的设备和出现更新的硬件技术。(6)很好的可移植性。作为一种可移植的操作系统,Linux绝大多数的计算机平台上很好的运行。为不同计算机平台之间的通信提供了便利的条件,同时传统的通信接口也是Linux可移植性具体表现。(7)安全可靠的系统。Linux用很多用于保护资源信息的技术措施,使其变得安全。如对文件和目录实现的读、写权限的控制,有有效的进程监控系统,实时查看内存运行状态,Root权限实现管理员对操作系统最大限度的控制和操作。3.3.2 bootloader的选择当按下PC的启动电脑时,CPU会首先运行固话在CMOS中的BIOS(Baisc Input Output System)程序。BIOS程序的主要任务是对各种硬件设备进行自检和初始化,然后运行位于硬盘MBR(Master Boot Record)上的操作系统加载程序。操作系统加载程序负责把操作系统加载到内存中,并启动操作系统。在嵌入式系统中是没有BIOS程序的,从开机硬件初始化到启动操作系统内核全部是由Bootloader程序完成的。Bootloader是嵌入式系统中最先运行的程序。Bootloader启动首先要对硬件进行初始化、建立内存映射等,其目的是为了内核准备好软硬件运行环境。接着Bootloader会把内核加载到内存中合适的位置并跳转到内核的入口处启动环境。bootloader就是在操作系统内核运行之前运行的一段小程序,被用作系统从硬件启动到操作系统启动的过渡,是嵌入式系统中非常重要且必不可少的一段程序。通过这段小程序,将会完成对硬件设备的初始化、将内存的空间映射图建立起来等工作,从而将系统的软硬件环境带到一个合适的确定状态,以便最终为操作系统内核的加载准备正确的环境。一般它只在系统启动时运行非常短的时间,但对嵌入式系统来说,这是一个非常重要的系统组成部分。为了尽可能地提高Boot Loader的通用性和可移植性,Boot Loader一般由两个部分组成。第一部分是与硬件密切相关的代码(例如负责初始化硬件的代码)。由于需要直接访问硬件,所以第一部分的代码基本上都是由汇编语言编写的。第二部分主要负责内存映射、加载内核等任务。由于与硬件的关联较弱,所以第二部分的代码基本上都是由C语言编写的。Bootloader是严格地依赖于硬件坏境实现的,特别是在嵌入式系统。Boot Loader通常使用SD Card、NOR Flash和NAND Flash启动。目前,常用的Boot Loader主要为ViVi 、U-boot、Redboot,其中U-boot又占据了绝大部分份额。本设计中我们选择的boot loader是U-Boot。U-Boot全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。之所以选择U-Boot,是因为U-Boot具有一下一些优点:(1)开放源代码;(2)支持多种嵌入式操作系统内核,如Linux、NetBSD,VxWorks,QNX,RTEMS, ARTOS,LynxOS;(3)支持多个体系结构,如PowePC、ARM、x86、MIPs、XSeale;(4)较高的可靠性和稳定性;(5)高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品 发布等;(6)丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、 EEPROM、RTC、键盘等;(7)较为丰富的开发调试文档与强大的网络技术支持3.3.3 文件系统的选择嵌入式文件系统是嵌入式操作系统的一部分,它的任务是对逻辑文件进行管理,提供对逻辑文件操作的接口,如检索、修改、删除、复制等,以方便用户的使用。嵌入式文件系统还具有兼容性好、支持多种存储设备等特点,一个适合嵌入式设备的文件系统将使嵌入式设备上的文件管理更加快捷方便、大大提高嵌入式设备的性能。支持在Flash上运行的常用嵌入式文件系统有Cramfs、Jffs、Jffs2、Yaffs、Yaffs2等,Cramfs文件系统是只读文件系统,通常在NOR Flash上多选用Jffs及Jffs2文件系统,在NAND Flash上选用Yaffs或Yaffs2文件系统。Yaffs文件系统是一种类似于Jffs /Jffs2、专门为NAND Flash设计的嵌入式文件系统,目前有Yaffs 和Yaffs2两个版本,它是日志结构的文件系统,代码开源同时具有很好的移植性,能够运行在Linux、ucLinux和WinCE下。提供了损耗平衡和掉电保护,可以有效地避免意外掉电对文件系统一致性和完整性的影响。与Yaffs相比,Yaffs2除了可以支持2KB每页的NAND Flash外,还做了一些改进,可存储信息更多,也更灵活。如文件头的部分元数据,免去读文件获取这些数据的时间,块分配序列号的采用加载时还会以此作为参考之一,判断该块是否适合回收,同时垃圾回收策略也有改进。Yaffs2在内存空间占用、垃圾回收速度、读写速度等方面相对于Yaffs也有较大改进。因此本设计采用的Yaffs2文件系统。第四章 系统详细设计与实施4.1 嵌入式Linux开发环境的搭建Linux操作系统是一种性能优良、源码公开且被广泛应用的免费操作系统,由于体积小、可裁剪、运行速度高、有很好的网络性能等优点,可以作为嵌入式操作系统。因此,本文设计的门禁系统采用Linux内核,因此作为嵌入式系统,对内核的裁剪是相当有必要的,所以,综合考虑系统所需要的功能,对内核进行裁剪,保留需要的那些部分,也是嵌入式Linux系统开发中非常关键的步骤之一,如果对内核的制定有不妥当的,在后续开发过程中很有可能导致系统不支持的现象,到时候只能对内核重新定制和编译。嵌入式Linux开发环境主要分为两个部分:主机开发环境和开发板系统平台,开发板系统平台又包括bootloader、Linux内核、文件系统。在搭建开发板系统平台的过程中,需要按照顺序分别将Uboot、剪裁后的Linux内核、YAFFS2文件系统烧录到本次设计中所用到的开发板中去。4.2 主机开发环境的搭建和系统的移植4.2.1 搭建主机的开发环境嵌入式开发环境主要是在宿主机上Linux开发环境下建立交叉编译环境,那就是在X86体系的PC机上建立一个ARM上能运行的程序环境。本次设计所使用的是VMware公司的虚拟软件workstation,建立虚拟机,并在虚拟机上安装ubuntu-12.04-desktop-i386。解压交叉编译工具包cross-4.2.2-eabi.tar,具体的在虚拟机中运行如下命令:tar jxvf cross-4.2.2-eabi.tar.bz2 这样,内核或其他应用程序可用该路径/usr/local/arm/4.2.2-eabi /usr/bin/arm-linux- 来指定使用该交叉编译器。4.2.2 U-boot的编译1)解压源码:tar zxf uboot1.1.6-2012-09-25.tar.gz 2)在b