硕士学位论文基于DSP(DM642)的嵌入式人脸识别器的设计.pdf_第1页
硕士学位论文基于DSP(DM642)的嵌入式人脸识别器的设计.pdf_第2页
硕士学位论文基于DSP(DM642)的嵌入式人脸识别器的设计.pdf_第3页
硕士学位论文基于DSP(DM642)的嵌入式人脸识别器的设计.pdf_第4页
硕士学位论文基于DSP(DM642)的嵌入式人脸识别器的设计.pdf_第5页
免费预览已结束,剩余81页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海交通大学 硕士学位论文 基于dsp(dm642)的嵌入式人脸识别器的设计 姓名:皮小平 申请学位级别:硕士 专业:集成电路设计与制造 指导教师:祝永新 20061210 上海交通大学工程硕士学位论文 摘 要 基于 dsp(dm642)的嵌入式人脸识别器的设计 摘 要 基于 dsp(dm642)的嵌入式人脸识别器的设计 摘 要 本文主要是从实际应用需求入手,分别从系统设计、硬件设计(电 路设计、驱动设计)和 软件实现三方面介绍了嵌入式人脸识别器的设计 过程。在系统设计部分介绍了嵌入式处理器(dsp)选型; 在硬件设计 主要介绍系统组成中的外部存储器模块与视频输入输出模块,介绍了使 用片上支持库编写 dm642 中视频驱动程序的方法,以及编写过程中 dm642 中断和直接存储器存取(dma)的应用; 在软件设计中,介绍 了人脸识别原理与算法选型,讨论了算法移植中软件优化的一些问题。 关键字关键字:嵌入式系统,数字信号处理器,人脸检测,人脸识别 上海交通大学工程硕士学位论文 abstract design of an embedded system of human face recognition abstract this paper presents an embedded system of face recognition from the actual requirements, which include framework, hardware (circuit and driver) and software. the framework chapter analyzes the requirements of system and makes a choice about embedded processor (dsp). the hardware chapter introduces the external memory module and video i/o module, programs video-driver for the dm642 by using csl, discuss the applications of interrupt and direct memory access (dma). the software chapter introduces the principle of face recognition algorithm, and discusses the problems of algorithm optimization and software porting. key words: embedded system, digital signal processor (dsp), face detection, face recognition 上海交通大学工程硕士学位论文 缩略语 78 缩略语缩略语 adaboost:adaptive boosting,一种模式识别方法 csl:chip support library,片上支持库 cvbs:composite video burst sync,复合视频信号 dma:direct memory access,直接存储器存取 eav:end of active video,有效图像结束 emac:ethernet media access controllor,以太网媒体访问控制器 esl:equivalent series inductance,等效级联电感 esr:equivalent series resistance,等效级联电阻 fir:finite impulse response,有限冲击呼应 isfp:interrupt service fetch packet,中断服务取指指令包 ist:interrupt service table,中断服务表 istp:interrupt service table point,中断服务表指针 lda:linear discriminant analysis,线性判别分析 pca:principle component analysis,主成分分析 sav:start of active video,有效图像开始 tcc:transfer complete code,传输完成码 tsi:transport stream interface,传送流接口 上海交通大学工程硕士学位论文 攻读学位期间发表的学术论文目录 82 上海交通大学工程硕士学位论文 攻读学位期间发表的学术论文目录 83 上海交通大学工程硕士学位论文 第一章 概 论 1 第第 1 章章 概概 论论 人脸识别的研究历史悠久:早在 1888 年 galton 就在nature杂志上先后发表 了两篇关于利用人脸进行身份识别的文章,对人类自身的人脸识别能力进行了分析; 1965 年 chan (2)人脸描述:即采用某种方式表示人脸特 征;(3)人脸识别:即将待识别的人脸和数据库中的己知人脸比较,得出识别结果。如 果是在图像库中查找出与待识别人脸最相似的人脸图像,则称为身份识别;如果是判 断两张人脸图像是否属于同一人,则称为身份验证;(4)表情、姿态分析:即对人脸的 表情和姿态信息进行分析,并对其归类;(5)生理特征分析:即从人脸的特征分析其年 龄、性别等相关信息。 上海交通大学工程硕士学位论文 第一章 概 论 2 人脸识别的过程可以分为以下三个部分: 1) 人脸检测:判断输入图像中是否存在人脸,如果有,给出每个人脸的位置和 大小。 2) 面部特征定位:对找到的每个人脸,根据事先确定的规则,计算出主要器官 的位置和形状等信息。 3) 人脸比对: 根据面部特征定位的结果, 与人脸库中的人脸特征模板进行对比, 确定该人脸的身份。 从应用的角度,人脸识别包括两大类: 1) 人脸身份识别:即根据人脸图像识别出人物的身份,解决是谁的问题; 2) 人脸身份确认/验证:判断图像中的人脸是否是指定的人,即解决是不是某 人的问题; 一般的人脸识别处理系统构成如图 1-1 所示,包括输入图像数据、人脸检测与 人脸识别、识别结果输出等部分。 图1-1 人脸识别系统组成框图 figure1-1 a framework of face recognition system 1.2 嵌入式人脸识别器的组成与原理 嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中, “嵌入性”、 “专 用性”与“计算机系统”是嵌入式系统的三个基本特点,因此嵌入式系统必须满足相应 的要求。 上海交通大学工程硕士学位论文 第一章 概 论 3 “嵌入性”:嵌入式系统必须能满足对像系统的环境要求,如物理环境(小型) 、 电气/气氛环境(可靠) 、成本(价廉)等要求。 “专用性”:嵌入式系统必须具有软、硬件的裁剪性;并且满足对像要求的最小 软、硬件配置等。 “计算机系统”:嵌入式系统必须是能满足对像系统基本的控制要求的计算机系 统。 嵌入式人脸识别器则是指基于嵌入式处理器设计的人脸识别系统,具体组成如 下图 1: 图 1-2 嵌入式人脸识别系统 figure 1-2 an embed system of face recognition 从上图我们能够看到,整个系统分为三个部分:摄像头、嵌入式处理平台、显 示器。系统的主要工作原理是:摄像头采集到图像数据,传送到嵌入式平台,嵌入 式平台对采集的图像数据进行处理,得到我们想要的数据,并送到显示器上显示, 同时将重要的数据进行保存。整个过程都是通过嵌入式系统来完成。 1.3 课题的研究意义与任务 自从有人类社会以来,身份鉴定一直是一个很重要的问题,比如签字盖章 信物等都是一种身份鉴定的方法;随着社会的发展,身份鉴定也变得越来越频繁, 原有的方法难以适应现代社会的节奏和各种复杂的环境,这给管理者提出了更高的 要求,因此寻找便捷的身份鉴定方也越来越紧迫,诸如 dna 鉴定指纹识别虹膜 识别等基于生物特征的身份识别技术应运而兴,其中人脸识别具有独特的非侵入性, 上海交通大学工程硕士学位论文 第一章 概 论 4 其前景也极为看好。 随着数字时代的来临,人脸识别的这一身份鉴定技术,愈加显示出它的价值。 以美国为例,每年约有上亿美元的福利款被人以假冒的身份领取;据 mastercard 公 司估计,每年约有价值四亿五千万美元的信用卡诈骗案发生,其中就包括利用丢失 和被盗的信用卡的犯罪;由于使用盗窃来的身份识别码(pin),造成移动电话通讯的 话费损失高达十亿美元;据估计,利用可靠的方法鉴别 atm 持卡人的身份可以使全 美国每年 atm 诈骗案造成的损失减少 3 亿美元;可靠地鉴别支票领款人,可以减少 上亿美元的冒领金额;随着网络的发展,非法登录计算机的案件呈上升趋势,有效 的身份鉴定技术可以防止这类案件的发生;据美国移民局统计,如果在美国-墨西哥 边境采用快速准确的身份鉴别系统,可以在不影响正常入境人员的情况下,每天查 出 3,000 件非法入境案件。以上的这组数据表明,有效地鉴定个人的身份有着重大的 社会和经济意义,它可以有效地防止犯罪和诈骗、提高办公效率、节约资源。 本课题就是设计一个嵌入式图像处理平台,并在这个平台上运行人脸识别算法。 本论文是根据设计的流程,从系统方案设计开始讨论,依次介绍了原理图设计、视 频驱动程序设计,最后介绍了算法移植。 1.4 论文安排 本文着重讨论了在嵌入式人脸识别器设计过程中,各个阶段的设计细节。本论 文各章节的具体安排如下: 第二章:讨论嵌入式图像处理平台的设计方案,包括作者为何要选择 dm642 作 为平台的中央处理器,以及硬件平台的组成框图等。 第三章:讨论了嵌入式图像处理平台的硬件设计部分,包括外部存储器模块与 视频输入输出模块的功能介绍、电路原理设计,介绍了使用片上支持库编写 dm642 中视频驱动程序的方法。 第四章:介绍了人脸识别的工作原理与算法选型,讨论了算法移植中软件优化 的一些问题及其解决方法。 上海交通大学工程硕士学位论文 第二章 系统设计 5 第第 2 章章 系统设计系统设计 嵌入式系统具有实时性、系统安全性和可靠性、小型轻量性、成本敏感性,且运 行在苛刻的环境中(必须能够经受过热、振动、冲击、电源波动和其它恶劣的物理 环境条件的考验) ,所以其设计决非易事。 一个嵌入式系统设计的好坏往往需要经过很长的时间检验,才能得出结论,因 而做一个好的设计具有极大的挑战性。一个完整系统的设计都从设计要求开始,然 后 是总体框架,本系统需要图像采集系统、图像处理系统、数据存储系统以及图像 显示系统;因此本论文将从以上 4 个方面着手,完成整个系统设计。 2.1 系统的设计要求 2.1 系统的设计要求 本课题的目标是设计一个适用于人脸识别算法的嵌入式硬件平台。因此既要考 虑到嵌入式系统的特点,同时还要考虑各种算法对系统的不同要求,综合各方面的 因素,系统的设计要求可以概括如下: 首先,要有强大的视频数据吞吐能力与运算能力。一般来说,在实时的人脸识 别过程中,视频数据的处理速度体现了其数据吞吐能力,人脸检测与识别速度表现 其数据运算能力。最新发展的各种人脸识别技术,在识别速度和准确度上都有了显 著提高,但其代价就是计算量大,算法复杂度都相当高,如果没有一个具有强大运 算能力的中央处理器是不可能实现这些算法的。 第二,要能够对模拟视频信号进行采样并数字化。无论哪种视频信号处理的算 法,都是针对已经采样后的离散数字信号进行的,而大部分视频输出设备(如传统 的模拟摄像机)的输出信号都是模拟信号,虽然也可以采用数码摄像机之类高科技 产品来代替传统的摄像机,但考虑到通用性,本次设计还是决定采用模拟视频输入 作为平台的输入信号。 上海交通大学工程硕士学位论文 第二章 系统设计 6 第三,要有大容量的存储空间。在视频信号处理过程中,需要保存输入图像、 运算中间结果以及处理结果。保存图像所需要的存储空间由具体算法以及图像尺寸 决定。在一般情况下,至少要几兆字节的存储空间才能满足比较复杂的视频信号处 理程序的要求。 最后,还要提供处理结果输出设备。任何具有实际意义的算法都必须有输出, 具体的输出种类因算法而异,比如人脸检测算法的输出就可以是一幅经过裁减的人 脸图像。本次设计提供了视频输出接口,直接可以将处理后的结果用模拟视频信号 的方式输出到电视机等监视设备上,为验证算法的正确性提供了方便直观的方法。 2.2 系统的总体方案 2.2 系统的总体方案 根据系统的设计要求,需要选择合适的设计方案:由于嵌入式处理器是嵌入式 系统的灵魂所在,因而在设计方案时,首要的是选择合适的嵌入式处理器。 2.2.1 嵌入式处理器的要求与选择 2.2.1 嵌入式处理器的要求与选择 嵌入式处理器种类繁多,它们涵盖的指令系统范围广-包括 cisc 体系的 x86 和 risc 体系的 arm、mips、powerpc、sparc(sun)等等,不同体系的产品所 针对的应用各有侧重,涉及领域包括嵌入式计算、消费电子、航空航天等场合 。在 为嵌入式实时系统选择处理器时需要考虑以下几个方面: (1). 性能:处理器必须有足够的性能执行任务和支持产品生命周期。 (2). 实现:根据具体应用情况,处理器可能需要被高度集成。如果需要快速升 级信号处理应用,采用 dsp 等可编程器件比定制的硬件方案要更好些。 (3). 工具支持:支持软件创建、调试、系统集成、代码调整和优化工具对整体 项目成功与否非常关键。 (4). 操作系统支持:嵌入式系统应用需要使用有帮助的抽像来减少其复杂性。 针对处理器系列产品作过优化的商用操作系统(os)能够缩短设备开发周期和上市时 上海交通大学工程硕士学位论文 第二章 系统设计 7 间。 (5). 过去的经验:拥有同类处理器或处理器系列产品的开发经验可以减少可观 的学习新处理器、工具和技术的时间。 (6). 仿真支持:循环精确仿真对某些类型的应用来说非常重要,特别是数字信 号处理应用中许多功能正确性验证都是采用仿真技术完成的。嵌入式系统的软硬件 协同设计模型也促使处理器仿真器成为开发流程中一个非常有用的工具。 (7). 应用支持: 应用支持有多种方式, 从通过热线或网站取得的应用专家支持, 到预打包的软件和应用框架,甚至完好的测试平台。一些 dsp 处理器能够提供外围 器件的驱动器、板级支持包和其它“启动帮助组件”。 (8). 成本:嵌入式应用对成本特别敏感,而产品成本的稍许差别都可能导致市 场的失败。 (9). 功耗:市场上有许多依靠电池工作的便携嵌入式实时系统,此时电池寿命 将成为系统的重要参数。这种情况下应该考虑使用针对便携式应用优化的低功耗器 件。 (10). 传统代码:如果选中的处理器需要设计人员编写与现存代码的接口,将会 导致整个设计流程的严重滞后。因此需要选择一款代码兼容的器件来避免或减少这 一步骤造成的影响。 (11). 算法复杂性:某些处理器能够非常高效地处理某类算法,因此最好选择能 够与应用最佳匹配的处理器。例如,具有许多控制代码的有限状态机应用应该映射 为类似 arm 处理器的 risc 器件。编码、解码和回波抵消等信号处理应用应该映射 为数字信号处理器,或具有信号处理加速器的某种器件。 (12). 上市时间:项目的完成时间会加快处理器的选择过程,这一过程与先前讲 述的几个关键事项密切相关,如 os 的可用性、其它软件组件以及便携性问题。 显然开发嵌入式实时系统是一个相当复杂的过程,在分析初始设计要求时,需 要权衡硬件与软件之间的关系,需要时刻在系统灵活性、速度、成本、计划和可用 工具之间作出权衡,并充分考虑各个供应商提供长期可靠支持的可能性。 上海交通大学工程硕士学位论文 第二章 系统设计 8 2.2.2 数字信号处理器(dsp)的选型 2.2.2 数字信号处理器(dsp)的选型 由于本设计主要是做图像处理,且之前已经具有在 dsp 上的设计经验,因而选 择了 dsp。目前,市面上的 dsp 很多,具体采取哪家厂商的器件,要综合考虑各方 面的因数。下面就比较一下几个正流行的几种 dsp: (1) philips 公司的 trimedia 系列。 trimedia 系列,是 philips 公司推出的一款 32 位性能优良的多媒体处理芯片, 特别针对数字视频和音频应用进行了优化,集成了视频输入/输出接口、音频输出/ 输出接口、i2c 接口、pci 接口以及 sdram 控制器等外围设备接口,可以大大地简 化外围电路。该系列处理器的核心 cpu(中央处理单元)内部的多个执行单元,在 一个时钟周期内可以同时执行,不过该系列处理器的主频不高,目前最新的 tm1500 系列主频也只有 300mhz。 (2) ad 公司 dsp 芯片 美国 ad 公司的 dsp 芯片,可以分为定点 dsp 芯片和浮点 dsp 芯片两大 adsp21xx 系列为定点 dsp 芯片,adsp21xxx 系列为浮点 dsp 芯片。 ad 公司的定点 dsp 芯片的程序字长为 24 位,数据字长为 16 位。运算速度较 快,内部具有较为丰富的硬件资源,一般具有 2 个串行口、1 个内部定时器和 3 个以 上的外部中断源,此外还提供 8 位 eprom 程序引导方式。具有一套高效的指令集, 如无开销循环、多功能指令、条件执行等。目前 adsp 的定点 dsp 芯片中,处理能 力最强的当数 adsp2181。 ad 公司的浮点 dsp 芯片,程序存储器为 48 位,数据存储器为 40 位,支持 32 位单 精度和 40 位扩展精度的 ieee 浮点格式,内部具有 3248 位的程序 cache,有 34 个外部中断源。adsp21060 采用超级的哈佛结构,具有 4 条独立的总线(2 条数据 总线、1 条程序总线和 1 条 i/o 总线) ,内部集成了大容量的 sram 和专用 i/o 总线 支持的外设,指令周期为 25ns,是一个高性能的浮点 dsp 芯片。 (3) ti 公司的 c64x 系列和 dm64x 系列。 c64x 系列是 ti 公司最高性能的通用数字信号处理器, 其指令集功能强大, 同时 上海交通大学工程硕士学位论文 第二章 系统设计 9 内部 cpu 的时钟频率比 trimedia 和 bsp 系列都要快许多,现在已经推出了 1ghz 版本的 c6416 数字信号处理器,而且芯片内部的八个执行单元可以同时执行,因此 其运算能力是目前为止最强的,可达 8000mips,十分适合用于视频信号处理算法的 实现。不过作为通用数字信号处理器,c64 系列没有提供丰富的外设接口,必须用 fpga 等可编程逻辑器件来实现与视频编解码芯片等芯片的接口, 而这样做一方面增 加了外围电路设计的难度和复杂度,另一方面也会影响到处理器的运算性能。为此 ti 公司专门为视频信号处理设计了 dm64x 系列。该系列的芯片都使用了 c64x 系列 的处理器核,并且在此基础上提供了许多视频处理所需要的外设接口,这样在保留 了 c64 系列强大运算能力的同时,极大地简化了外围电路的设计,非常适合用于视 频信号处理这类应用场合。除此之外,ti 公司还提供了功能齐全和强大的开发环境 以及实时调试工具。 通过综合比较以上三个厂商产生的视频信号处理器, 可以发现 ti 公司的 dm64x 系列最适合本次的设计要求。 2.2.3 dm642 的特点与优点 2.2.3 dm642 的特点与优点 ti 公司的 tms320dm64x 系列信号处理器, 是针对多媒体处理领域应用的 dsp, 是目前应用于图像处理的主流产品之一,因此采用该系列中的 dm642,作为本系统 的处理器,其具有以下三个主要优点: (1)高性能的 c64x 处理器核 高达 600mhz 的 cpu 时钟频率(现在已可达 720mhz) 、哈佛结构、使用 32 字 节的超长指令字、八个高度独立的功能单元同时运行、支持数据不对齐的存取架构、 多达 64 个的 32 位通用寄存器、所有的指令都可条件执行、只有 1.5w 的低功耗。 (2)多级储存器架构 片内提供 16k 字节的一级程序缓冲、16k 字节的一级数据缓冲、256k 字节的二 级存储器,可以被灵活地分配给静态存储器和二级缓冲。 (3)十分丰富的外设接口 上海交通大学工程硕士学位论文 第二章 系统设计 10 可与多种同/异步存储器无缝接口的 64 位外部存储器接口(emif)、多达 64 通道 的增强型直接存储器存取(edma)控制器、3 个可与通用视频编解芯片无缝接口的 可配置视频端口、i2c 总线控制模块、32 比特/66mhz 的 pci 主从接口、10/100mbps 以太网媒体访问控制器(emac)等。 (4)其他 除了以上这些优点之外,还有支持复合视频输入输出,强大的开发环境以及实 时调试工具等等。 2.3 系统框图 2.3 系统框图 图 2-1 系统框图 figure 2-1 system block diagram 系统的整体设计方案如图 2-1 中的系统框图所示, 整个系统按功能可以被划分成 四个结构模块:视频信号处理模块、外部储存器模块、视频输入输出模块和 i2c 总线 控制模块。下面依次简要说明各个硬件模块在系统中的作用以及模块的组成。 (1) 视频端口和外部存储器模块 视频端口在系统中负责视频信号处理算法的具体实现,在本系统中使用是 ti 上海交通大学工程硕士学位论文 第二章 系统设计 11 的专用视频信号处理器 dm642,在上一小节中已经分析了选择它作为平台核心处理 器的理由。 外部存储器模块在系统中负责扩展 dm642 的外部存储器空间, 以满足视频处理 算法对存储空间的需求。本系统中使用了两片 32 位数据宽度的 sdram,总容量为 8 兆字节,用来作为 dm642 片内存储器的扩展,主要存放视频处理时的视频数据。 外部存储器模块还包括了两片 8m 字节的 flash 存储器,是一种非易失性存储器, 它们的主要作用是存放视频处理的程序用来上电后给 dm642 加载程序。此外,还可 以用来存放实现人脸识别时所需的模块数据库。 (2) 视频输入模块 视频输入输出模块的任务是对输入的模拟视频信号进行采样并数字化。系统中 使用 philips 的 saa7113 视频解码芯片来采集模拟视频信号,转换成数字信号,并送 给 dsp 处理。 (3) 视频输出模块 将处理后产生的结果以模拟视频信号的方式输出,输出的信号可以显示在电视 机等监视设备上,方便对算法的效果进行验证。主要使用 adi 的 adv7171 视频编 码芯片来产生模拟视频信号, 并使用了同样兼容 bt656 规范数字视频接口的 dm642 的视频端口来与它们接口。 通过以上三个功能模块的协调工作,就能够满足本章开头时所提出的所有系统 设计要求,达到课题的预期目的。 2.4 小结 2.4 小结 本章从系统的设计需求出发,结合这些具体要求对硬件平台进行了功能划分, 并介绍了各个功能模块的作用及组成,特别注重介绍了系统的核心视频信号处 理器选择,介绍了选择 ti 公司 dm642 的原因以及 dm642 所具有的优点。 上海交通大学工程硕士学位论文 第三章 硬件设计 12 第第 3 章章 硬件设计硬件设计 在上一章中,明确了嵌入式系统处理平台的整个系统框图,本章先对系统中存 储器与视频输入输出在电路原理设计上进行详细的讨论,然后介绍了在驱动程序设 计的方法。 3.1 外部存储模块设计 3.1 外部存储模块设计 一般的图像处理,对存储空间的要求通常都非常大。比如,单是存储一幅 4:2:2 格式的标准图像,就需要 800 多 kb 的存储空间,如要实现一个复杂的人脸识别算 法,那么将用到更多的存储空间,这是 dm642 内部存储器所无法满足的。此外,由 于 dm642 内部没有 flash 之类的非易失存储器,所以每次上电时,dm642 必须读 取存储在片外非易失存储器中的程序和相关数据以完成自举。在整个系统中,需要 设计一个包括 sdram 和 flash 等外部存储器在内的外部存储模块, 来配合 dm642 完成视频信号处理的工作,本节着重讨论该模块的设计。 3.1.1 dm642 的外部存储器接口(emif) 3.1.1 dm642 的外部存储器接口(emif) dm642 如同其他 c6000 系列 dsp 一样,具有专门的外部存储器接口(emif) , 为 dm642 提供了和各种外部存储器之间的无缝接口。 dm642 的 emif 接口可以访 问最多四个独立的存储空间,每个存储空间都有各自的设置寄存器,并且可以分别 设置成以下任意一种模式来访问相应类型的外部存储器: (1) sdram 模式: 可以与数据线宽度为 8 位、 16 位、 32 位或 64 位的 sdram 无缝连接。 (2) 异步存储器模式:可以与数据线宽度为 8 位、16 位、32 位或 64 位的异 上海交通大学工程硕士学位论文 第三章 硬件设计 13 步 sram、rom、flash 及异步 fifo 等各种异步存储器无缝连接。 (3) 同步存储器模式:可以与数据线宽度为 8 位、16 位、32 位或 64 位的 sbsram、同步 sram、同步 fifo 等各种同步存储器无缝连接。 dm642 的 emif 接口信号如图 3-1 所示。 其中 emif 的输出时钟 eclkoutn 是 由 emif 输入时钟产生的,emif 的输入时钟可以是 eclkin、cpu 主时钟四分频或 cpu 主时钟六分频,这是由芯片复位时 ea20:19这两个外部引脚的电平高低决定 的。ce3:0#为四个存储空间的片选信号,用来区分当前 cpu 访问的是哪个存储器 空间。be7:0#为 64 位数据总线的字节使能信号,表示总线上对应字节的数据有效 于否。此外,emif 的接口信号还包括三个复用的控制信号,这三个信号的含义由当 前访问存储空间的类型决定。 例如, 当前要访问被设置成 sdram 模式的 ce0 空间, 那么这三个信号就是访问 sdram 所使用的 sdcas#、sdras#和 sdwe#。 emif 接口支持 4 种不同的数据宽度,对应不同的数据宽度,数据总线和地址总 线含义也是不同的。总是使用较低位的数据总线并且地址总线给出相应数据类型的 地址,比如 16 位模式就使用 ed15:0,同时地址总线上给出的是半字地址(c6000 中 32 位数据为一个字) 。 emifeclkin eclkout1 eclkout2 ed63:0 ea22:3 ce3:0# be7:0# ardy soe3# aoe#/sdras#/soe# are#/sdcas#/sads#/sre# awe#/sdwe#/swe# hold# holda# busreq pdt# sdcke# control registers internal peripheral bus enhanced data memory controller shared by all external interfaces muxed asynchronous/sdram/ synchronous memory control 图 3-1 dm642 emif 接口信号2 figure 3-1 dm642 emif interface signals 2 上海交通大学工程硕士学位论文 第三章 硬件设计 14 3.1.2 sdram 工作方式及 emif sdram 接口的研究 3.1.2 sdram 工作方式及 emif sdram 接口的研究 sdram 是同步动态随机存储器(synchronous dynamic random access)的英文 缩写。与静态存储器每个存储单元都使用大量晶体管不同,动态存储器使用电容中 的电荷来存储数据信息,存储单元简单而高效,因此动态存储器可以提供比静态存 储器更大的存储容量,并且单位成本也更低。但是由于电容中的电荷会由于漏电的 原因越来越少,所以动态存储器必须周期性地进行预充电和刷新,以保证存储的数 据不会丢失。 sdram 内部的每个基本存储单元都有一个列地址线和一个行地址, 组成了一个 矩阵结构,这个矩阵结构称做一个 bank,大部分的 sdram 芯片由 4 个 bank 组成。 每一个内存 bank 都有一个传感放大器, 用来放大从存储单元中读出或写入内容时的 电荷。访问某一个存储单元要先用激活(activate,actv)命令打开该单元所在的 行(也称为页面) ,即给出它的行地址,这时传感放大器就根据行地址读出行中的所 有数据(这个过程需要一定的时间,即 ras 到 cas 的延迟,简称 trcd) ,然后才能 用读取或写入命令给出存储单元的列地址,对该单元进行访问。 作为一种同步存储器,sdram 的接口有一个系统时钟信号,所有的控制信号、 地址以及数据都与这个时钟信号保持同步。在时钟的上升沿,采样接口控制信号及 地址信号,决定当前的 sdram 命令以及对应存储单元的 bank 地址、行地址或列地 址。sdram 通过对接口控制信号译码得出命令,并进行相应的操作,sdram 接口 命令真值表如表 3-1 所示。 表 3-1 sdram 接口命令真值表 信 号 名 称 命令名称 cke cs# ras# cas# we# addr actv h l l h h bank 地址和行地址 read h l h l h bank 地址和列地址 wrt h l h l l bank 地址和列地址 上海交通大学工程硕士学位论文 第三章 硬件设计 15 dcab h l l h la10=h deac h l l h lbank 地址且 a10=l refr h l l l hx slfrefr l l l l hx mrs h l l l l模式寄存器设置值 注:h 表示信号高电平,l 表示信号低电平,x 表示信号电平任意。 下面依次解释这些 sdram 命令,以及它们在操作过程中各自的作用。 actv(激活) :打开(也称激活)一个 bank 中某一页面的存储单元,以待后续 操作,要在地址线上给出相应的 bank 地址及行地址。该页存储单元将一直处于打开 状态,直到执行 deac 或 dcab 命令将该页面关闭为止。当要在同一个 bank 中打 开另一页面时, 必须先用 deac 或 dcab 命令将相同 bank 中打开的那一页面关闭。 read(读取)/wrt(写入) :在 bank 地址指定的 bank 中,从给出的列地址 的那个存储单元开始进行 burst 读取/写入。读取的数据将在 cas 延迟(简称 tcl)后 出现在数据总线上,而写入的数据即是当前数据总线上的输入。数据的有效性以字 节为单位由 dqm(数据掩模)信号控制。比如,如果某个 dqm 为无效电平,对应 的字节就不会被读出(数据总线呈高阻) ,输入的数据也不被写入 sdram。此外, sdram 的 a10 地址线的电平还决定访问是否为自动预充电方式,如果 a10 为高电 平,则在访问结束后将自动地关闭该页面,即自动预充电。 dcab/deac(预充电) :这两条命令总称为预充电命令,deac 用来关闭某特 定 bank 中目前打开的页面,而 dcab 则将所有 bank 中打开的页面关闭。a10 的高 低电平不同决定了对某一个 bank 还是对所有的 bank 预充电,如果只对一个 bank 预充电则地址线上的 bank 地址选择 bank。一旦 bank 被预充电了,它就处于空闲状 态,在下次读取或写入之前必须先用 actv 命令打开需要的页面(激活与预充电之 间还须经过 trp的延迟) 。 refr(自动刷新) :对 sdram 进行一次刷新,刷新的地址由芯片内部的刷新 控制产生。在刷新以前必须将所有已打开的页面关闭。为了保持 sdram 中存储的 上海交通大学工程硕士学位论文 第三章 硬件设计 16 数据,必须在一定的时间内至少刷新一定的次数,如本次设计中所使用的 hy57v643220ct 需要在每 64ms 刷新 4096 次。 slfrefr(自我刷新) :可以在整个系统的其他部分处于休眠状态时继续保持 sdram 中的数据不丢失,其与自动刷新的区别只在于输入命令时的 cke 信号为低 电平。处在自我刷新状态时,sdram 将改用内部的时钟来执行自动刷新,保持存储 数据的有效性。在 sdram 至少需维持自我刷新状态一段时间(tras)后,可将 cke 信号置高电平,使 sdram 退出自我刷新状态。 mrs(模式寄存器设置) :用地址线上给出的模式寄存器设置值来加载模式器, 在该设置决定了 sdram 的工作模式,包括设定 burst 的长度、burst 的方式、cas 延迟以及写入是否使用 burst 方式。 要正确使用 sdram 必须按照时序进行一系列命令操作。比如,在使用前先要 对其进行初始化,设置模式寄存器值;在使用时要判断当前访问的页面是否处于打 开状态,如果未被打开还则需要用正确的地址依次关闭旧页面,打开新页面,然后 再读写数据;同时还要在规定的时间内对其进行刷新。通过以上的分析,可以发现 使用 sdram 所须的操作是相当复杂的。然而在 emif 接口的帮助下,dm642 可以 通过正确地设置一些 emif 控制寄存器,实现与各种 sdram 无缝接口。 首先,dm642 能自动地对 sdram 进行初始化,并发送 mrs 命令。模式寄存 器设置值为 0x0032 或 0x0022, 对应的 sdram 工作方式为: 读取和写入都使用长度 为 4 的串行 burst 方式,cas 延迟为 3 或 2(由将根据 sdext 控制寄存器的 tcl 字 段设置值决定) 。 其次,emif 有 4 个页面寄存器,用来记录当前打开的 4 个页面的地址。与此对 应,dm642 最多可以同时打开 4 个 sdram 页面,这些页面可以分布在不同的存储 空间中。如果 emif 检测到需要在同一个 bank 访问不同的页面,就会先用 deac 命 令关闭那个页面,然后再打开要访问的页面。当 emif 已经打开了 4 个页面的情况 下,如果再要访问新的页面中的数据,emif 则会用按照最近最少使用(lru)算法 关闭一个页面,然后再打开要用的页面。 此外,emif 还可以根据设置的数据总线宽度以及使用 sdram 的列地址数,将 上海交通大学工程硕士学位论文 第三章 硬件设计 17 字节地址移位来得到正确的行地址和列地址,并反应到地址信号 ea 上。例如,本次 设计中将 2 片 32 位的 hy57v643220ct 并联使用,该 sdram 有 4 个 bank,8 个列 地址和 11 个行地址,每片容量为 32428211=64kb,那么字节地址与地址信号 ea 的对应关系如表 3-2 所示。 表 3-2 字节地址与 ea 对应关系(64 位总线,列地址数为) emif 接口地 址 ea15ea14 ea13 ea 12 ea 11 ea 10 ea 9 ea 8 ea 7 ea 6 ea 5 ea 4 ea 3 行地址 23 22 21 20 19 18 17 16 15 14 13 12 11 列地址 23 22 l l l 10 9 8 7 6 5 4 3 sdram 地址 ba12ba11 a10 a9a8a7a6a5a4a3 a2 a1 a0 注:ea15 和 ea14 为 2 位 bank 地址。l 表示低电平,在读写操作时 a10 为低表示不使用 自动预充电。 最后,emif 还能按控制寄存器中的设置值定时刷新 sdram,在刷新前还会自 动用 dcab 关闭所有打开着的页面。 可见,emif 接口可以方便地访问 sdram,访问过程对上层用户透明,可以像 使用片内存储器一样简便地使用sdram。 但只有在理解sdram和emif的sdram 接口两者的工作方式,并正确地设计硬件以及设置控制寄存器后,才能达到该目的。 相关的电路原理设计将在 3.1.4 中具体说明,下面着重分析 emif 在与 sdram 接口 时的寄存器设置。 emif 有一个全局的控制寄存器,设定了 eclkout2 的分频数、eclkoutn 是 否使能以及在 hold 状态下是否高阻等全局的设置,由于本次设计没有使用 hold 功能,所以只要将用作 sdram 系统时钟的 eclkout1 使能即可。 emif 的 4 个 ce 空间每个都有一个 ce 空间控制寄存器(cectl)和 ce 空间 第二控制寄存器(cesec) ,用来配置各自的接口类型以及同步或异步同序参数。 cectl 中有一个 mtype 字段用来选择该 ce 空间的存储器类型。对于本次设计使 用 64 位 sdram 模式的 ce0 空间,需要将 mtype 字段设置成相应的 0xd。 上海交通大学工程硕士学位论文 第三章 硬件设计 18 除此之外,就剩下三个与 sdram 相关的控制寄存器(所有设置成 sdram 模 式的 ce 空间共用) :sdram 控制寄存器(sdctl) 、sdram 时序寄存器(sdtim) 以及 sdram 扩展寄存器(sdext) 。emif 的 sdram 接口设置都由这三个寄存器 的值决定。 首先,要设定 sdram 的地址数、行地址数和列地址数,根据所使用 sdram 的具数值分别设置 sdctl 中的 sdbsz、sdrsz 和 sdcsz。本次设计使用的 hy57v643220 有 4 个 bank、11 个行地址和 8 个列地址。 其次, 要设定一些 sdram 接口的时间参数, 如 trcd(actv 命令与 read/wrt 命令之间的延迟) 、tcl(cas 延迟)等。这些参数的设定值是以 emif 时钟周期为单位 的(本次设计中为 100mhz) ,即计算参数所用的 tcyc=10ns。设定这些参数必须符合 hy57v643220 芯片资料中规定值。 另外考虑到 pcb 布板中可能存在的噪声对信号的 不良影响,必须在设定参数时留出适当的余量。例如,资料中规定器件的 trcd最小 值是 18ns,则 trcd=trcd/tcyc-10.8,取整后设定值为 1,同时还能给系统带来 2ns 的余量。 然后,还要设定一些命令到命令时间参数,如读取命令到写入命令之间的时间参 数(rd2wr) 。这些参数在 sdram 的芯片资料并没有给出,需要靠时序分析来得 出,而且有些还是比较关键的参数。比如,根据 sdram 的工作方式,读取的数据 要在 cas 延迟之后才被放到数据总线上,如果在这期间 emif 又执行了写操作并输 出数据, 数据总线上就会发生总线冲突, 严重的话甚至会对芯片造成损害。 所以 emif 会在需要时将 dqm 拉高(无效电平)来终止当前的 burst 读取,并在 rd2wr 参数 设定的时钟个数后执行写入操作,具体时序如图 3-2 所示。 上海交通大学工程硕士学位论文 第三章 硬件设计 19 rowcola actvread q0 colb wrt d0d1d2d3 trcdtcl read to wrt hi-z dq tcl=3 dqm command address clk turnaround cycle 图 3-2 sdram 读写操作时序(写入操作终止读取操作) figure 3-2 sdram read and write timing diagram (read terminated by write) 最后,还要设定 emif 的刷新时序寄存器,包括刷新周期 period 字段以及每 个刷新周期刷新的次数。hy57v643220 需要每 64ms 刷新 4096 次,平均每两次刷新 的间断为 15.625us,换算成时钟周期数为 15.625us/10ns=0x61b。为了保险起见将 period 字段设成 0x600,每次执行 1 次刷新。 综上所述,三个 sdram 控制寄存器的设置值如表 3-3 所示。在硬件调试中, 实验证明当 s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论