基于ARM嵌入式系统的指纹设计硕士学位论文(52页).docx
-基于ARM嵌入式系统的指纹设计硕士学位论文-第 50 页毕业论文题 目:基于ARM的指纹采集系统总体设计学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日目 录第一章 绪论0411引言0412本课题的意义和主要工作05第二章 基于ARM的指纹采集系统总体设计0621嵌入式处理器概述0622系统设计思路0623系统总体方案08第三章 系统硬件设计与实现1131指纹传感器与处理哭的接口设计11311指纹采集设备的选择12312 MBF200的结构与性质13313 MBF200输出模式选择18314 MBF200接口电路设计1932 ARM处理器及外围电路接口设计20321 ARM的特点及选型20322 S3C44BOX芯片21323电源电路设计24324时钟电路设计25325复位电路设计26326 JTAG电路设计27327存储电路设计2833 CPLD模块的设计31331 CPLD内部电路的设计和实现方法32332 EPM240接口电路设计3334 USB与上位机通讯接口电路设计35341 CH375接口电路设计36第四章 系统软件设计3841 系统软件设计3942 系统初始化41421 S3C44BOXBootloader设计41422 Bootloader总体设计42423 MBF200初始化44424 USB初始化4543 指纹采集程序设计4744 USB数据通讯程序设计51441 ARM对USB的控制程序设计52442 PC和USB接口程序设计5545 上位机程序设计56第五章 系统总结5751系统总结5752系统的展望58致谢59参考文献59第一章 绪论1.1 引言 “生物统计”这个概念在几年前还很少有人知道,就是到了现在,即便它有这么重要的现实意义,大多数人还是不甚了解,很多受到询问的人对“生物统计”这个词毫无概念。迄今为止,使用过生物统计验证方法的人大都予之以积极的评价,大多数人愿意放弃他们的密码和PIN,而将生物统计法看成更好的选择。“生物统计学”这个概念由“生物学”和“测量法”两部分组成,其中生物学是关于生物和生命规律性的科学,研究某一种生物的特性或整个自然界的生命特性。生物统计学是依据可以明确确定归属的人的身体或行为特征对个体身份进行识别或证明的学说。首次使用一个生物统计系统时,需要存入使用者的参考图案或参考数据组(所谓的“模板”),在以后每次进行识别的时候,就以这个模板和使用者的特征进行比较,然后参照一个允许误差值确定是否属于同一个人,对于每一个特征,系统都会算出相差或相似的程度。确定模型的技巧在于,要找出一个最为理想的模型,它能将一个人的特征数据与其他人的数据精确地加以区分。生物统计识别有多种不同的途径:指纹、手指、面部、手掌、虹膜、视网膜、语音、签名以及静脉识别,它们的技术特性和成功标准大大不同。每个人(包括指纹在内)皮肤纹路在图案、断点和交叉点上各不相同,也就是说,是唯一的,并且终生不变。依靠这种唯一性和稳定性,我们就可以把一个人同他的指纹对应起来,通过比较他的指纹和预先保存的指纹进行比较,就可以验证他的真实身份。这就是指纹识别技术。 在经历了近10年缓慢的自然增长后,指纹识别技术即将迎来一个跳跃性发展的黄金时期。专家们保守估计,未来5年,我国将有近百亿元的市场等待着企业去开拓。指纹识别技术的巨大市场前景,将对国际、国内安防产业产生巨大的影响。1.2 本课题的意义和主要工作 由于半导体技术的进步,ARM越来越多的应用在各种电子消费品中,自动指纹采集技术正在向嵌入式的方向发展。本课题为了跟随指纹识别技术的进步,提出了基于ARM为处理器的硅电容式指纹采集系统设计的课题。将指纹技术的最前端环节指纹传感器、嵌入式中应用的非常广泛的ARM处理器融为一体,设计出一套指纹图像采集系统,具有实际的应用价值。因为本系统所需求的是采集指纹图像并在PC机上存储起来,或者可以存贮在系统本身的存储器中,所以在设计过程中,并没有采用偏重于算法的DSP处理器,而是采用偏重于控制的ARM7作为系统的处理器。本文所做的工作偏重与设计一个ARM的指纹采集方案,其中ARM采用了资源比较丰富,能够外扩存储器的Samsung ARM7处理器S3C44B0X,设计了相关的外围电路、指纹采集电路和指纹图像数据传输电路。第二章基于ARM的指纹采集系统总体设计在课题的设计实现中,高层的数据处理单元采用的CPU是由Samsung公司生产的S3C44B0X处理器,它是一种基于ARM7的嵌入式处理器,几乎具有嵌入式处理器的所有特性,本章就嵌入式处理器的共同特性和S3C44B0X的重要特点作下简单介绍。2.1 嵌入式处理器概述据不完全统计,目前全世界嵌入式处理器的品种总量已经超过1000 种,流行的体系结构有 30 多个系列。其中 8051 体系占多半,生产这种单片机的半导体厂家有 20 多个,共 350 多种衍生产品,仅 Philips 就有近 100 种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从 64kB 到 16MB ,处理速度为 0.12000MIPS ,常用封装 8144 个引脚。 2.2 系统设计思想指纹采集技术是指纹识别技术的关键技术之一,指纹采集系统原理框图如图2.1所示。指纹传感器微处理器USB 指纹 至PC图2.1指纹采集系统原理框图处理器控制指纹传感器采集数据,半导体指纹传感器采集指纹数据完毕之后,交由处理器对数据进行预处理、存储。外设(PC)通过USB接口从存储设备中读取并显示数据。在图中,指纹传感器是FUJITSU公司的固态指纹芯片MBF200,微处理器为Samsung公司的32位RISC处理器S3C44B0X。USB采用南京沁恒电子公司的USB芯片CH375。选择嵌入式处理器时主要考虑的因素有:(1)处理器性能以及外围功能嵌入式系统的设计并不要求选择速度最快的处理器,而是在于选取能够达到功能需求的最适合的处理器;作为一个嵌入式开发平台,其外围功能应该尽量丰富。(2)开发工具及软件支持仅有一个好的处理器,没有较好的软件开发工具支持会大大增加开发的难度,增大设计失败的可能性。(3)功耗以及成本现在嵌入式系统增长最快的市场是手持设备、手机、智能加电等消费类电子产品。在这些产品中,处理器的典型特点是要求高性能、低功耗。降低成本则是任何一个项目开发都必须遵循的原则。ARM嵌入式处理器系列以其小体积、低功耗、低成本和高性能等特点占据了业界领先地位,已经成为一种事实的标准。在各项指标上ARM嵌入式处理器都很好的满足了嵌入式开发平台的设计需求。它具有非常高的性能、极为丰富的外围设备、众多种类的芯片、大量的开发工具和丰富的第三方资源2.3 系统总体方案系统总体设计分为硬件电路设计和软件编程设计两大部分。系统硬件框图如图2.2所示。SDRAM2.4 地址总线发光显示部分2.5 数据总线指纹传感器通讯接口全局逻辑控制器ARM 片选信号 片选信号 中断信号 读写信号 读写信号 控制信号 数据信号 片选信号FLASH 地址总线 中断信号 数据总线图2.2系统硬件框图 从图中可以看到,本系统主要有五个模块组成:指纹数据采集模块、微处理器模块、数据存储模块、逻辑控制CPLD模块和USB通讯模块。系统以ARM处理器为核心,它驱动指纹传感器采集指纹,并将指纹数据放入存储器中,此数据可以被PC通过USB接口获取,也可以永久的保存在数据存储器中。 (1)指纹数据采集模块 系统利用软件查询方式来判断是否进行指纹的采集,当进行指纹采集时,指纹传感芯片按照设定的参数采集指纹并将模拟图像转换成数字图像,然后在ARM的控制下将数据存储在外部数据空间中,等待进行下一步的处理。 (2)微处理器模块 该部分以ARM和数据存储器为核心,对采集到的指纹图像进行相应的预处理,并控制发光二极管来显示指纹预处理结束。 (3)数据存储模块 此部分由FLASH, SDRAM(Synchronous Dynamic Random Access Memory:同步动态随机存取存储器)构成。Flash中存放的是系统的应用程序和一枚指纹预处理后的数据,系统上电后通过“Boot Loader”功能将程序加载到FLASH中以加快程序运行的速度,SDRAM用于存放指纹图像并提供程序运行时所需要的临时数据空间。 (4)逻辑控制CPLD模块 此部分由CPLD来完成,实现以下几个方面的功能:产生系统中各个芯片的片选信号;产生系统中各个芯片的读写信号;产生系统中各个芯片的中断信号。 (5) USB通讯模块 考虑到数据上传的速度问题,指纹数据的上传采用了USB串口方式,大大提高了上传的速度。根据以上原则,我们确定整个系统的芯片型号。系统的硬件设计采用ARM+CPLD的结构。ARM采用Samsung公司的S3C44B0X处理器,在系统中主要起到一个控制作用;指纹传感器是FUJITSU公司的半导体固态指纹芯片MBF200,作用主要是采集指纹数据;CPLD采用Altera公司的EPM240芯片,其功能为控制系统各个模块芯片的片选,中断,读写等信号。USB采用南京沁恒电子公司的USB芯片CH375, USB不仅让数据在PC于系统之间进行传输,而且相对串口通讯来说,在数据通讯速度上得到了大大的提高。根据硬件的设计和系统的要求,指纹采集系统的软件部分可以概括成两部分,一是系统控制实现部分,二是指纹数据预处理部分。系统软件框图如图2.3所示指纹采集系统控制部分预处理部分图像细化图像二值化图像增强图像分割数据上传CPLD逻辑控制指纹采集图2.3系统软件框图第三章 系统硬件设计与实现整个指纹采集系统的设计分为两部分:系统硬件设计和系统软件设计。本章将详细的介绍系统硬件设计。从系统的每一个具体的功能模块介绍其芯片的选型和接口电路。本系统的硬件电路的绘制使用Protel99SE软件。系统结构框图如图3.1所示。EPM240CPLDS3C44B0XARMMBF200指纹传感器CH375USBPCSST39VF160FLASHK4S641632SDRAM图3.1系统结构框图 从图中可以看出本系统主要有五个模块组成:指纹数据采集模块、微处理器模块、数据存储模块、逻辑控制CPLD模块和USB通讯模块。本章将逐步讲述以上五大模块的硬件设计以及ARM的外围电路设计。3.1 指纹传感器与处理器的接口设计本系统所采集的是活体指纹图像。下面就主要从传感器的选择、主要特性、采集原理和接口电路的设计几个方面进行详细的介绍。3.1.1 指纹采集设备的选择 考虑到产品价格的因素和所需精度的要求,系统选择了FUJITSU公司推出的新一代固态指纹传感器MBF200。它是一款专为嵌入式系统设计的高性能、低功耗的电容指纹传感器。该芯片是一种触摸式CMOS(Complementary Metal Oxide Semiconducto: 互补金属氧化物半导体)传感器件,具有自动指纹检测功能,其传感区域为1.28cm * 1.50cm, 256 * 300传感阵列,500dpi分辨率,内置有8位模数转换器,可直接输出数字化图像信号,用8位表征一个像素点,与其它的指纹传感器相比,MBF200具有以下特点。 (1)坚固耐用的芯片表层。MBF200表面运用专利技术制成,表面涂层异常坚固耐用,能承受超过8KV的静电放电,即便在恶劣的环境中也能正常的使用。 (2)采用低功耗设计。MBF200具有手指自动检测功能,允许主机在没有指纹时处在低功耗待命模式,当有手指时才唤醒主机进行处理,从而节省整个系统的功耗。 (3)适应更复杂的手指识别。MBF200的图像搜索功能(ImageSeekTm)通过改变电容阵列的参数值可在1秒种以内扫描多幅指纹图像并自动选择最好的一幅。因此MBF200可以获得各种类型手指的高质量图像,大大降低了误识率(FAR)和拒识率(FRR)。 (4)提供三种接口,更易于集成。 SPI:MBF200内置的SPI(Software Process Improvement: 软件过程改进)接口减小了MBF200对硬件的依赖,只需6条线就可以与带SPI接口的微处理器连接。在SPI模式下,MBF200的图像传输速度为10帧/秒。 USB: MBF200.内置了高速USB核电路,外部不再需要其它USB控制器,因此可作为标准的USB设备来使用。在USB模式下,MBF200的图像传输速度为13帧/秒。MCU:通过自动增加行列地址寄存器的值以及模数转换的路径优化功能,MBF200内置的标准8位微处理器总线的性能大大加强,图像传输速度达到30帧/秒,可以满足连续指纹图像的采集和比对。3.1.2 MBF200的结构与性能MBF200是富士通公司的电容式固体指纹采集传感器,能采集到500dpi的指纹图像。它的传感器是256×300的阵列,可以在3.3V5V的宽电压范围内操作。MBF200的性能主要有以下几点: 集成了一个8位A/D变换器。A/D变换器的输入可以是MBF200的指纹传感器阵列的输出,也可以是由MBF200的AIN引脚接入的模拟信号。 带有3种总线接口,即8位微处理器(MCU)总线接口、集成的USB全速接口及串行周边设备接口(SPI),使芯片的应用设计更加灵活。 特有自动指纹检测功能。MBF200内部结构图如图3.2所示功能寄存器256×300传感阵列P0P1数据寄存器D7:0索引寄存器采样电路A/D转换控制电路A0RDWRWAITCS0CS1SPIMOSIMISOUSBDPDMEXTINTINTR晶振电路TESTMODE0MODE1图3.2 MBF200内部结构图 从结构图中,可以看出其中256×300点传感阵列用于产生感应电压;功能寄存器用于对芯片进行操作控制;控制电路用于传感器与外部接口电路的控制,主要负责数据的读出与写入;地址索引寄存器与数据寄存器分别用于对功能寄存器的地址选择及数据的读写;采样保持及A/D转换电路用于对传感阵列所产生的电压进行采样。另外,多频振荡电路用于为芯片提供时钟信号。MBF200是可编程的传感器芯片,它所具有的强大功能是通过内部寄存器设置完成的。MBF200功能寄存器的地址和功能如表3.1所示。表3.1 MBF200功能寄存器的地址和功能地址标识功能0x00RAH行地址高位0x01RAL行地址低位0x02CAL列地址低位0x03REH行末地址高位0x04REL行末地址低位0x05CEL列末地址低位0x06DTR放电时间寄存器0x07DCR放电电流寄存器0x08CTRLA控制寄存器A0x09CTRLB控制寄存器B0x0ACTRLC控制寄存器C0x0BSRA状态寄存器0x0CPGC可编程增益控制寄存器0x0DICR中断控制寄存器0x0EISR中断状态寄存器0x0FTHR门限寄存器0x10CIDH芯片标识高0x11CIDL芯片标识低0x12TST测试模式寄存器 由于列地址最大为256,所以,MBF200只有一个列开始寄存器CAL和一个列结束寄存器CEL。另外,THR用于在自动检测指纹时设置门限电压。PGC用于在A/D转换时设置放大器的增益。无论在哪一种总线接口模式下,对MBF200的控制都是通过写它的控制寄存器来完成的,包括CTRLA, CTRLB, CTRLC。(1) CTRLA(控制寄存器A)寄存器CTRLA功能表如表3.2所示。表3.2寄存器CTRLA功能表位名称功能7-4-保留,这些位写03AINSEL选择需要A/D转换的模拟源2GETSUB是否自动获取设定的矩形图像1GETIME是否自动获取整个图像0GETROW是否自动获取特定的一个图像 AINSEL:写该寄存器来初始化图像转换;读该寄存器来读取A/D转换的结果。GETSUB, GETIMG和GETROW三位选定了一种图像存取模式并且初始化了A/D转换器的转换序列。AINSEL位选定了A/D转换器的来源。向GETSUB,GETIMG和GETROW中的任意一位写入一个“1”,都将放弃当前对应模式的图像获取并重新开始新的该模式的图像获取,而且这三位每次最多只能有一位被置成“1”。如果这三位中有多于一位被置成“1”,那么图像的转换就不会开始。当GETIMG被置成“1”后,MBF200会完成以下一系列动作: (1)行地址被置成0; (2)列地址被置成0; (3)自动开始图像的行获取; (4)第一个象素的A/D转换自动开始; 当向CTRLA中写“0”时,除了会清除AINSEL之外,并不会使MBF200放弃当前的图像。读CTRLA的状态可以得到A/D的转换的结果。 (2) CTRLB(控制寄存器B)CTRLB寄存器用于控制MBF200的启动并显示其工作状态,必须在程序的最开始对它的位0和位2置“1”,以使能MBF200。寄存器CTRLB功能表如表3.3所示。表3.3寄存器CTRLB功能表位名称功能7-6MODE1: 0只读位,反映MODE 1: 0引脚的状态5RDY只读位,反映A/D转换器的状态4-保留,对这些位写03AFDEN设置自动手指探测功能(AFD)开启或关闭2AUTODEN设置地址地动增加功能关闭或开启1XTALSEL选择芯片的时钟源0ENABLE是能或关闭芯片控制寄存器CTRLB中的AUTOINCEN位用于设置是否启动自动增加行列地址寄存器的值。当此位被设置为“1”时,若某一个像素的A/D转换值被读取后,则列地址自动增加,同时下一个像素的A/D转换自动开始。一旦某行的最后一个像素的灰度值被读取后,则行地址自动增加,同时这行的第一个像素的A/D转换自动开始。3.1.3 MBF200输出模式选择MBF200支持三种接口形式和四种操作模式,这四种操作模式相互独立,不能同时工作。MBF200通过MODE1:0管脚来控制输出这四种状态。MBF200的操作模式如表3.4所示。表3.4 MBF200的操作模式MODE 1,0描述00MCU接口模式01SPI接口模式10USB模式,用内部ROM11USB模式,用外部ROM 在微处理器接口模式中,可将MFB200与ARM相连,且其接口形式非常简单。需要说明的是,在该芯片中,地址选择与数据写入是分两步完成的,先通过A0置0来写地址索引寄存器,然后再对A0置1来读写对应地址的数据寄存器。其操作真值表如表3.3所列。SPI是工业标准的同步串行接口,它允许8位数据同时、同步地被发送和接收,而且只用到的信号有:SCLK,SCS,MOSI, MISO, EXINT。可将系统配置为SPI主操作(Master)与从操作(Slave),其接口形式与一般的串行外围接口方式一致。USB接口有两种模式:一种是用芯片内部的ROM来存储设备信息,一种是用外部串行ROM来存储设备信息。为了加快图像的采集速度,系统中选用了MCU(Microcontroller Unit: 微控制单元)模式,因此将MODE1:0管脚通过l0K的下拉电阻接地。另外将没有用到的DM, DP, AIN管脚也通过l0K的电阻下拉接地,以免管脚悬空所带来的干扰。3.1.4 MBF200接口电路设计指纹采集电路原理图如图3.3所示图3.3指纹采集电路原理图 使用微处理器接口(Microprocessor Bus Interface)将用到MBF200的以下引脚: D7:0, A0,/RD,/WR,/CSO,CS1,EXTINT,/INTR,/WAIT。晶振源可以选择内部晶振或者通过使用外部引脚XTAL1/XTAL2接外部晶振。在使用微处理器模式时,SPI模式和USB模式被禁止3.2 ARM处理器及外围电路接口设计3.2.1 ARM特点及选型ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC(Reduced Instruction Set Computer:精简指令集计算机)处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费、教育类多媒体、移动式应用等。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。ARM公司开发了很多系列的ARM处理器核,目前最新的系列己经是ARM 11了。目前应用较多的是下面几个系列。ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Inter的Xscale, Inter的StrongARM他们除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域。其中,ARM7, ARM9, ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。本次设计使用的是核心为ARM7的S3C44B0X,下面具体介绍以下ARM7系列。ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点:(1)具有嵌入式ICE-RT逻辑,调试开发方便。(2)极低的功耗,适合对功耗要求较高的应用,如便携式产品。(3)能够提供0.9MIPS/MHz的三级流水线结构。(4)代码密度高并兼容16位的Thumb指令集。(5)对操作系统的支持广泛,包括Windows CE, Linux, Palm OS等。(6)指令系统与ARM9系列、ARM9E系列和ARM 10E系列兼容,便于用户的产品升级换代。(7)主频最高可130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI,ARM7TDMI-S,ARM720T,ARM7EJ。其中,ARM7TMDI-S是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为: T:支持16位压缩指令集Thumb. D:支持片上Debug. M:内嵌硬件乘法器(Multiplier).I:嵌入式ICE,支持片上断点和调试点3.2.2 S3C44B0X芯片S3C44B0X 是Samsung(三星)公司的16/32位RISC处理器,内含一个由ARM公司设计的16/32位ARM7TDMI RISC内核,也是ARM7系列中使用最广泛的一种内核( T:表示支持16为压缩指令集Thumb;D:表示支持片上Debug;M:内嵌硬件乘法器(Multiplier);I: 嵌入式ICE,支持片上断点和调试点),S3C44B0通过全面的、通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置,从而最小化系统成本。S3C44B0X管脚结构如图3.4所示。图3.4 S3C44B0X管脚结构(2) S3C44B0X功能引脚的配置S3C44B0X采用LQFP160封装,除去通用的71个I/O外,还有很多功能引脚,在系统的初始化程序中,根据系统本身对处理器的要求可通过Boot Loader程序用软件的方式来设置一些功能引脚,但是一些功能引脚我们必须用硬件的方式来设置它的属性,所以,在设计系统的初期,我们必须了解一些关键的功能引脚的属性,然后才能来设计系统原理图。下面是S3C44B0X在设计原理图时必须在硬件上设置的一些引脚和它们的引脚序号。ENDIAN: pin55,输入:它确定数据类型是little-endian还是big-endian,逻辑电平在复位期间由该管脚的上拉下拉电阻确定。OM1:0:pin52-51:输入om1:0设置S3C44B0X在测试模式和确定nGCS0的总线宽度,逻辑电平在复位期间由这些管脚的上拉下拉电阻确定。本系统使用01:16bit,其余方式为00:8bit,01:16bit,10:32bit,11:Test Mode。OM3:2:pin54-53:系统时钟产生方式选择。00: Crystal PLL on, 01:External PLL on, 10&11:Test Mode。 PLLCAP: pin66:PLL滤波电容。系统时钟产生方式都用到PLL电路,故需要一个820pf的电容接地。 EXTCLK: pin67:EXTCLK输入:当OM3:2选择外部时钟时的外部时钟输入信号线,不用时必须接高(3.3V)。 XTAL0: pin64:外部晶体输入。当使用晶体时,该引脚为晶体输入;当使用有源晶振时,该引脚需上拉。 nGCS0:7: pin17-20,pin23-26:输出:芯片选择,当存储器地址在相应段的地址区域时被激活。存取周期可编程。一般情况下,ARM处理器的外设片选引脚都应该与相应的nGCS引脚相连。必须注意的是Flash ROM映射在Bank0上。3.2.3 电源电路设计S3C44B0X芯片为了降低功耗,其内核采用2.5V电压,主要为芯片内部逻辑提供电压,包括CPU和其他所有外设逻辑;I/O电压为3.3V,在末级需要三组电源,分别是5V, 3.3V和2.5V。5V电源电路原理图如图3.5所示。3.3V和2.5V电源电路原理图如图3.6所示。3.2.4 图3.5 5V电源电路原理图3.2.5 图3.6 3. 3V和2.5V电源电路原理图 这几组电源系统的功耗都不大。在图中二极管D9是为了防止反接电源而烧毁电路,C73,C74起稳压的作用。发光二极管D1可以显示电源是否上电。3.2.4时钟电路设计 目前所有的微控制器均为时序电路,需要一个时钟信号才能工作,大多数微控制器具有部分晶体振荡器电路。S3C44B0X片内带PLL倍频电路,PLL电路兼有频率放大和信号提纯的功能,系统能够从较低的外部时钟(l0MHz)获得较高的工作频率,以降低因高速开关时钟所造成的高频噪声,使用晶体或者有源晶振时都需要用到PLL电路。晶振电路原理图如图3.7所示。图3.7晶振电路原理图 图中的两个电容C22和C28的作用是帮助lOMHz的晶振起振。3.2.5复位电路设计微控制器在上电时状态并不确定,如果微处理器一上电就工作,则容易发出错误的指令、执行错误操作。为解决这个问题,所有微控制器均有一个复位逻辑,它负责将微控制器初始化为某个确定的状态。这个复位逻辑需要一个复位信号才能工作。这个信号的稳定性和可靠性对微控制器的正常工作有重大影响。复位电路原理图如图3.8所示。图3.8复位电路原理图3.2.6JTAG电路设计JTAG(Joint Test Action Group:联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。 标准的JTAG接口是4线:TMS,TCK,TDI和TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP (Test Access Port:测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。具有JTAG接口的芯片其相关引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。JTAG编程方式是在线编程,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。目前有各种各样简单JTAG电缆,其实只是一个电平转换电路,同时还起到保护作用。JTAG的逻辑则由运行在PC上的软件实现,所以在理论上,任何一个简单JTAG电缆,都可以支持各种应用软件,如Debug等。有的同一个JTAG电缆可以支持Xilinx CPLD, AXD/ADW调试程序。本系统的JTAG电路原理图如图3.9所示。图3.9 JTAG电路原理图JTAG电路在本系统中的主要作用是将PC上编译好的程序烧写到S3C44B0X中的FALSH存储器指定位置当中,然后系统就可以脱机运行。3.2.7存储电路设计S3C44B0X自身不具有ROM,只有一个8K的Cache,起一个数据缓存作用,因此必须外接ROM器件来存储掉电后仍需要保存的代码和数据。本系统的存储电路设计包含两个部分:FLASH存储器和SDRAM存储器。除去内部的寄存器和Cache,其它资源都由外部存储器控制器通过片选端来控制的。外部地址总线最大为25位,最大寻址空间则为225=32MB,一共有8个片选引脚分成8个存储体,所以整个的存储器容量极限是256MB。为了使处理器对各个设备的访问互补干扰,应该将不同类型的设备映射到不同的BANK内。其中BANK6和BANK7是DRAM的空间,DRAM的寻址和控制方式与SRAM的控制方式有些不一样,所以必须不能混用。BOOT ROM数据线宽度为16位,选用ST39VF160A地址空间范围从0x00000000到Ox0007FFFF.SDRAM选用K4S641632F容量为8MB,地址范围变为0x0c800000到0x0CFFFFFF。这里需要特别注意的是,在硬件电路设计中,FLASH和SDRAM存储器的片选信号必须与对应的BANK地址空间对应起来。同时在后续的软件编程时也需要注意选择存储下载程序的地址。3 (1)FALSH存储电路4 Flash存储器一次只能擦除一个较大的存储区域,而EEPROM能一个字节的擦除。Flash存储器技术现在已经相当成熟了,在嵌入式系统中已经取代了EPROM和EEPROM。现在大多数的嵌入式系统都采用Flash作为其ROM存储器。5 片外FLASH选用了16bit的SST39VF160,该芯片是SST公司的一个1M×16的CMOS多功能Flash(MPF)器件,由SST特有的高性能SuperFlash技术制造而成,编程或擦除操作电源电压为2.7-3.6V,提供了固定的擦除和编程时间。FLASH电路原理图如图3.10所示。6 图3.10 FLASH电路原理图7 Flash ROM映射到系统的Bank0上,也就是说,系统上电时处理器即从Flash ROM的0x00000000地址处取得指令开始运行。BIOS程序完成了时钟设置初始化、中断矢量的定义、存储器的参数设置、堆栈地址定义等工作,这些设置对于系统的正常启动非常重要。8 (2) SDRAM存储电路9 同步内存(SRAM)就是指它同系统时钟同步,系统时钟控制CPU和SDRAM,可以取消等待周期,减少数据存取时间。同步还使存储器控制器知道在那一个时钟脉冲周期使数据请求使能,因此数据可在脉冲上升沿便开始传输,而EDORAM每隔2个时钟脉冲周期才开始传输,FPM RAM每隔3个时钟脉冲周期才开始传输。SDRAM也采用了多体(Bank)存储器结构和突发(Burst)模式,能传输一整块而不是一段数据。而现在新推出的SDRAM II (DDR,同步内存II),它在一个时钟的上升沿和下降沿都能触发,所以速度更快了。但是它本身是RAM, 内部实际上是一些电容,由于电容的物理特性,它需要没隔一段时间必须刷新(Refresh)一次,以保持状态。10 SDRAM是易失性的可快速擦写存储器,因此它通常作为系统的数据空间使用。SDRAM电路原理图如图3.11所示。11 图3.11 SDRAM电路原理图3.3 CPLD模块的设计CPLD作为CPU的协处理器,代替CPU处理了很多任务,不仅减轻了CPU的负担,而且使系统更加可靠稳定,也更具有灵活性和可扩展性。系统中多数外围器件与ARM的握手信号都是通过可编程逻辑器件来完成的,按照其所实现的功能,CPLD在系统中主要有以下几点:(1)产生各个芯片的片选信号。(2)产生各个芯片的读写信号。(3)控制各个芯片的中断信号。3.3.1 CPLD内部电路的