首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

DIY指纹识别仪,软硬件解决方案,算法实现,硬件器件选型

DIY指纹识别仪,软硬件解决方案,算法实现,硬件器件选型

1.1.设计背景

生物识别技术是利用人的胜物特征进行身份认证的技术, 人的指纹就是生物特征之一。此外, 生物特征还包括虹膜、视网膜、声音和脸部热谱图等。指纹识别是生物识别技术中最为成熟的, 其唯一性、稳定性, 一直都被视为身份鉴别的可靠手段之一。


同时人们对消费类产品的要求越来越趋向于小型化,并且对可携带设备的安全性要求也与日俱增。传统的PC、MCU、或者DSP的处理平台移动性比较差,体积比较大,无法满足人们日益增长的需求。所以,设计一套体积比较小、速度更快的嵌入式指纹识别系统是非常有意义的。


而本设计正是为了这一目的,选用具有高集成度、低功耗、短开发周期的FPGA来完成此项设计,以实现系统的ASIC为研究背景,具有很强的现实意义和广阔的市场空间。


本系统采用xilinx公司Spartan 3E系列FPGA作为核心控制器件,这款器件采用90ns的先进工艺,最大容量50万门,可支持32位的RISC处理器,具有128 Mbit 并行Flash,足以满足设计的要求。该项目利用硬件实现识别算法保证了系统功能的完整性与识别的正确性。而识别算法我们采用基于细节特征点的匹配算法来实现指纹的识别,更保证了系统的实现。


1.2.课题的研究及内容
1.2.1.课题目标
以FPGA作为核心的控制器件,使用基于硬件的描述语言的系统算法,实现对指纹图像的采集、存储、处理和比对等,完成对指纹的有效识别。

1.2.2.研究内容
本系统采用Xilinx公司Spartan 3E系列FPGA作为核心控制芯片,通过Veridicom公司FPS200指纹传感器实现对指纹图像的采集,利用SPI接口传输到FPGA,然后使用SDRAM作为数据的存储,然后使用硬件描述语言Verilog进行硬件设计对指纹图像进行图像滤波、图像分割、二值化图像预处理的得到清晰地指纹图像,然后在清楚的指纹图像中提取指纹中心点,特征点及特征信息,将特征模板存入Flash中作为存档。在指纹的比对时使用同样的方式,得到比对模板,然后将比对模板于建档模板利用指纹的识别算法进行指纹的比对,得出比对结果,输出到LCD显示器中。

本文还使用RS232和主机进行通信,一方面可以在设计中进行调试,另一方面也可扩展系统的功能,与PC机互联,使其应用的更加广泛。

1.3.研究意义
生物识别技术越来越多地被应用于身份验证领域。指纹因其惟一性、终生不变性和较低的识别成本而成为目前使用最广泛的生物识别技术,在罪犯识别、社会保险、电子商务、信息安全等领域得到广泛的应用。

指纹识别技术的应用使我们的生活更加的便利,更加的安全,同时本项目重点研究基于FPGA硬件描述的指纹识别系统,利用FPGA高度集成度化,低功耗,短周期开发,以实现系统的ASIC,具有更加广泛的意义。
第二章.  系统总体设计
2.1.硬件框图及各模块介绍
系统采用xilinx公司Spartan-3E 系列FPGA作为核心的控制和运算芯片,数据采集模块由Veridicom公司FPS200电容式指纹传感器来完成,FPS200指纹传感器可以完成指纹图像的采集并用其自带的A/D转换器将指纹图像转换成数字信号,利用SPI接口传送至FPGA进行存储以便由FPGA处理采集来的数据。由于FPGA内部存储空间太小,无法存储一张完整的指纹图像,所以将指纹数据暂时存储在SDRAM中。当处理图像数据时,FPGA通过读取SDRAM的指纹数据,并在其逻辑单元中进行滤波、灰度归一化、二值化、细化和特征值提取等操作,从而获得重要的指纹图像信息。

系统操作时首先利用键盘选择指纹存储模式,将获得的指纹图像信息存储到FLASH中作为指纹数据库,然后切换到指纹识别模式,再利用上述方法获得指纹图像信息。通过FPGA调用指纹数据库中的数据,寻找与之匹配的指纹信息,最后将比对结果在LCD中显示。本系统还可利用RS232与计算机进行通讯,可以方便扩展,使得系统可以应用到更多的领域。

系统框图如下图1。


2.2.指纹图像的预处理
2.2.1.指纹图像场及其计算
  • 指纹图像场的强度场
强度场:反应指纹图像光子或电子的分布情况,在这里即表示指纹的谷、脊的分布。
灰度是描述光学指纹图像的强度能量的强弱,我们使用的电容式指纹传感器得到的数据就是灰度图像。

  • 指纹图像场的梯度场
  • 原理说明及算法依据
梯度场:反映指纹图像场的纹线隆起等情况,与物理场的的梯度相关。
在指纹图像中,梯度形象的概念是该隆起指纹纹线最陡的程度,其方向是纹线的法线方向,并从隆起指纹的纹线横截面的最高点指向最低点。对该点做偏微分处理,该偏微分的方向就是最陡方向,它是描述场强幅度变化的物理量,是向量。
为梯度,其可以定义为 ,其中
  • 梯度算子,
  • 设图像场的梯度场为T(x,y),则
其中,(x,y)的偏导数使用Sobel算子求得,Sobel算子表示如下:
X方向  ,  Y方向   

  • 在这里,设计专用的梯度场计算器,顺序更新像素算法可以在有限几个时钟内计算梯度场。得到其X方向梯度Vx,Y方向梯度Vy。
  • 指纹图像场的方向场
  • 原理说明及算法依据

方向场:反映指纹图像场的中心,圆形纹线趋势场,斜角度直纹线趋势场,水平纹线趋势场及其混合趋势场等。

指纹图像自身有着许多不同于其他图像的特点,它的纹理性和方向性都很强,我们可以把指纹图像看作是有着确定纹理的流状模型,这样就可计算它的方向图。方向图描述了指纹图像中每一像素点所在脊线或谷线在该点的切线方向,作为一种可直接从原灰度图像中得到的有用信息,它的计算一直是指纹识别技术中必不可少的一步。

一般说来,除了中心区外,指纹的脊线排列是并行的,且方向变化平缓。于是,研究中可用方向图来表征指纹脊线的大致走向。方向图一般有两种:点方向图和块方向图。前者表示指纹图像中每一象素点脊线的方向,后者表示每一小面积元脊线的方向。计算方向图的基本思想是:在原灰度图像中计算每一点(或每一块)在各个方向上的某个统计量(如灰度差、梯度等),根据这些统计量在各个方向上的差异,确定该点(该块)的方向。

实际方向图的数学建模,在指纹图像中任意一点像素都必须和周围的像素联系起来,才能说明该点像素与指纹图像的关系。所以描述任何一点的像素都需要利用周围的信息对该点进行补充。即将周围的灰度图累加,再求平均,已趋近于真实。

设:


那么,方向场大小为

这里使用利用梯度情况计算点方向图。

  • 首先划分w*w的小框子;
  • 对某一点计算其领域w*w像素的x,y方向上的偏导和lvx和lvy;
  • 然后利用正交公式
  • 由于使用Sobel算子,则角度会旋转135°,最后进行角度变换。

2.2.2.指纹图像分割
指纹采集设备采集到的是一幅含有噪声干扰的指纹图像,图像中纹线比较清晰的部分称为前景区,纹线非常模糊和无纹线的区域称为背景区。图像分割是把前景区和背景区分离开,只对有效的前景区进行处理,这样可以大大缩短后续算法处理的时间,提高特征提取的精确度。因此指纹分割是指纹预处理的重要组成部分,它不仅要求尽可能的去除指纹图像的无效区域,还要尽可能完整的保留指纹的有效区域。

目前指纹图像分割的方法主要有两种:基于灰度信息的指纹分割和基于指纹方向图的分割。


2.2.3.指纹图像增强
图像增强是一种基本的图像预处理手段。增强的主要目的是对一幅给定的图像经过处理后,突出图像中某些信息,削弱或去除某些不需要的信息,使结果对某种特定应用来说比原图像更合适。它并不意味着能增加原始图像的信息,有时甚至会损失一些信息,但图像增强的结果却能加强对特定信息的识别能力,使图像中我们感兴趣的特征得以加强。

一幅图像可能受到各种噪声源的干扰,如电传感器噪声、相片颗粒噪声和信道传输误差噪声等。这些噪声在图像上通常表现为孤立像素的离散变化,不是空间相关的。去除噪声的方法很多,从大的方面来说有统计滤波技术、频域滤波技术和空域处理技术,它们各有优缺点。前两者运算量大,比较复杂;后者运算简便。一般几种常用的技术,如邻域平均法、中值滤波法。

  • 领域平均法
邻域平均法是一种局部空间域处理算法,是一种线性滤波方法。这种平均可以是邻域内各个像素点灰度值简单的平均,也可以是各像素灰度值的加权平均。平均的过程是使一个窗口在图像上滑动,窗口中心位置的值是用窗内各点灰度值的加权平均来代替。

邻域平均法可由以下公式描述:


其中Gxy(i,j)是像素(i,j)经过平均后的灰度值。n的值由所选的邻域大小决定。邻域的大小与图像平滑的效果直接有关。邻域越大平滑效果越好,但是邻域过大,图像的边缘会因为平滑而变得模糊。(2n+1)×(2n+1)的矩阵H则是平均的权值矩阵,也称为去噪模板。针对不同的图像,采用不同的去噪模板将会产生不同的效果。

用来对图像进行平滑去噪的模板一般是一个3×3或5×5模板。
常规的BOX模板:   
高斯模板:            

  • 中值滤波方法
中值滤波是一种图像平滑去噪的非线性处理方法。中值滤波对干扰脉冲和点状噪声具有良好的抑制作用,而且对图像边缘能较好的保持。在一维形式下,中值滤波是一个含有奇数个像素的滑动窗口,经过对窗口中的像素灰度值进行排序后,选择其中的像素灰度值来代替所要处理的像素灰度值,窗口像素序列为:


式子表示是对以第i个像素为中心、窗口长度为L的这些像素进行排序。它是一种邻域运算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选择该组的中间值作为输出像素值。用公式表示为:


式中:g(x,y)、F(x,y)为像素灰度值,S为模板窗口。

对于传统的中值滤波算法,我们采用3×3的窗口模板,对窗口内的9个像素值data1_1、data1_2、data1_3、data2_1、data2_2、data2_3、data3_1、data3_2、data3_3进行排序。在这里我们采用流水线设计的方式,进行排序。我们可以稍微修改一下,也可以实现最大值、最小值滤波。



2.2.4.指纹图像二值化
灰度图像二值化后,得到的是二值图像。这样处理的好处是:当对图像做进一步处理时,图像的几何性质只与两种灰度的位置有关,不再涉及到像素的灰度值,使图像处理变得简单,快捷。另外,二值化过程还可以去除大量的粘连,为后面的特征提取和匹配做准备。现在常用的二值化方法有固定闭值法、自适应阂值法、局部自适应闭值法等。

  • 局部自适应二值化算法
本文采用局部自适应二值化算法对滤波后的图像进行二值化处理,即根据指纹图像中每一部分的明暗度来调整闭值,每一块根据自己的阂值进行二值化。这种算法充分利用了指纹图中脊线与谷线宽度大致相同的特点,即二值化后黑白像素的个数也应大致相同,根据这一特点对指纹图中每一块确定一个大致的阂值,取值合适时图像应是最光滑的,既没有“黑洞”(闺值过大),也没有“白点”(阂值过小),这种算法相当于在二值化过程中进行了一次平滑操作,因此取得了很好的二值化效果,确保了以后的特征提取和比对的正确性和可靠性。

2.2.5.指纹图像二值化后处理
二值化后的图像仍然带有一些因为灰度滤波不完全及二值化时引入的噪声(二值化后脊线中夹杂的白点)以及毛刺,这些噪声会在后续的细化处理步骤产生大量的小洞,从而在特征点提取的时候产生误判。虽然后面的细化的后处理可以去除一部分这样的小洞,但是同时也会去除部分真实的细节点,同时也大大增加了细化后处理的工作量。因此我们有必要对二值化后的图像进行去噪处理,目的是为了去除或者减弱这些噪声干扰,防止在对图像进行细化处理后出现大量的“空洞”、“岛屿”或“毛刺”等伪特征。二值化后的去噪处理一般包括两个部分:填补纹线上的小洞和删除纹线上的小“毛刺”。这里,填充算法和删除算法均以图像中像素的8邻域模板为基础。

  • 填充
填充算法:把同时满足下列条件的像素点p的灰度值置为1。

(a)像素点p的灰度值为0。

(b)像素点p的四邻域中有三个或三个以上的邻点的灰度值为1。(灰度值为1表示该像素点的灰度值为255)

  • 删除
删除算法:把同时满足下列条件的像素点p的灰度值设置为0。

(a)像素点p的灰度值为255。
(b)像素点p的8邻域模板中的邻点满足公式

(c)像素点p不是端点。

2.2.6.指纹图像细化
指纹图像经过二值化处理后,图像中的纹线仍然是具有一定的宽度,但是续的特征提取、特征匹配等算法只对纹线的走向感兴趣,不关心纹线的宽度。具有一定宽度的纹线不利于后续算法对纹线走向的跟踪和特征点的提取。细化算法实际是将图像中具有一定宽度的纹线变为单一像素宽的纹线,细化后的图像相当于抽取出了图像的“骨架”,因此,细化又称为骨架化。另外,细化的另一个优点就是减少内存空间,它只需要存储图像必要的结构信息,这样在图像处理过程中能够简化数据结构。因而,细化在图像处理过程中占有十分重要的地位,是图像分析,数据压缩,特征抽取及模式识别的常用方法。

  • 改进的opTA细化算法
该改进的OPTA细化算法对经典OPTA细化算法的消除模板和保留模板进行了改进,构建了8个消除模板和6个保留模板。该算法采用统一的4*4模板,改善了原OPTA细化算法消除模板和保留模板不一致的情况,如图5一7所示,左上角的3*3方窗为消除模板区域。




其中上面4个模板能够有效地去除边缘上的凸起物,保证了细化后的指纹骨架处于指纹脊线中心,避免了细化后的指纹骨架出现毛刺。

在构造保留模板时,按照如下法则进行:即当前中心点的去留除了与消除模板有关外,还取决于它旁边另外一个,’l”值周围点的情况:若该“l’’值为中心的3*3邻域和消除模板相匹配,则该“l’’值应该删除,则中心点“l’’值保留,否则中心点“l’’值删除。构造出来的保留模板如图5一9所示。


采用改进OPTA细化算法的删除模板和保留模板对图像进行细化处理的步骤如下:从图像的左上角元素开始进行,每个像素(图中为P5)均抽取如图5一7所示的15个相邻像素,并且把其中的8个邻域像素
与图5一8所示的8个消除模板相比较,如果和8个消除模板中的任何一个都不匹配时,P5保留;否则抽取的元素再和图5一9所示的6个保留模板进行比较,如果与其中任一个保留模板匹配的话,P5保留,否则P5删除。重复上述过程,直到没有一个像素的值被改变为止。

该改进的oPTA细化算法由于采用了统一的4*4模板,在消除多余像素的同时,也考虑到了连通性,不用像经典OPTA细化算法那样分两次判断,所以简化了经典OPTA细化算法,细化后的图像是8邻接的骨架。

2.2.7.指纹图像细化后处理
由于细化过程中会带来一些短棒和毛刺,他们可能会成为伪特征,所以要实现指纹图像细化后处理算法清除他们。

清除原理:对于短棒,利用其短的特性,即纹线长度小于某一个阈值时,就视为短棒,需要清除。如果一黑点周围八点全白,那么其为毛刺,也需要清除。

2.3.指纹特征提取
2.3.1.指纹特征点提取
图像经过预处理后,指纹图像已细化为一个点宽的纹线。
  • 指纹特征端点的提取
指纹特征端点是指纹纹线两头的末点,或是起点或终点。

提取方法:扫描一个点,如果其周围8个点所有相邻的两个点的差的绝对值的和为2*255这其为端点。


如上图所示,如果A为端点,那么除去A端点后,纹线剩下一个黑色方块,该黑点上下相邻的白点只有两个,由于白点的值是255,那么A端点周围8个点所有相邻的两个点的差的绝对值之和就为2*255,则A为端点。
  • 指纹特征叉点的提取
指纹特征叉点是两条指纹相交汇集为一条纹线的交汇点。。
提取方法:扫描一个点,如果其周围8个点所有相邻的两个点的差的绝对值的和为6*255这其为端点。

如上图所示,如果A为叉点,那么除去A叉点后,纹线剩下3个白色方块,该白点上下相邻的只有两个黑点,由于白点的值是255,那么A端点周围8个点所有相邻的两个点的差的绝对值之和就为6*255,则A为叉点。

2.3.2.指纹特征中心点提取
指纹的另一个重要的特征是指纹的中心点,它代表指纹的中心位置.通常的方法是寻找指纹的中心点,匹配以中心点为基础进行,求出特征点相对于中心点的位置,再进行匹配.指纹中心点的定位方法很多,常用的有Poincare索引法,点方向一致性度量法和方向均值差异法等3种定位方法.

为了简化运算复杂度,指纹的中心采用指纹上各个凸形纹线中曲率最大处的点.将模板指纹中心点记为(xp0,yp0,t),输入指纹中心点记为(xQ0,yQ0,t),其中x0,y0是坐标值代表中心点的位置,t是中心点的类型(1代表左环型,2代表右环型,3代表涡型,4代表拱型).

  • Poincare索引法定位中心点
Poincare索引值是指以某个点为中心的一条封闭曲线上各点的方向角度变化量之和,对指纹上不同类型的点的Poincare索引值不同,非奇异点的为0,三角点为-π,而中心点为π,本文关心的即是Poincare索引值为π的点。

1)对已定位的核心点块的点分别计算点方向值,选取以(i,j)为中心的大小为w×w的方形邻域,按如下公式计算点(i, j)的方向θ(i, j):


其中,Gx(u,v),Gy(u,v)为点(u,v)的梯度向量,通过Sobel算子来计算得出。接着将所得方向值量化为12个方向(1-12)。

2)计算这些点的Poincare索引值。为克服Poincare索引方法对噪声敏感的缺点,选取两条封闭曲线分别计算Poincare索引值。两条封闭曲线如图3所示,D0…D15,d0…d7分别是当前点(i, j)的外圈和内圈的邻域象素。


计算定点(i,j)的Poincare索引值:


其中


下面是5*5和3*3的方格:


2.3.3.去除伪指纹特征点
  • 去除伪端点
去除伪端点用到了((sqrt((i-k)*(i-k)-(j-l)*(j-l)))<D)&& Ang ( i , j)-θ( i , j)的条件作为判断,当两个条件均满足时可以认为所判断出来的特征点为一条指纹脊线上的断点,均认为是伪端点,剔除。

其中Ang ( i , j ) 为两特征点i、j 的连线与水平坐标轴方向的夹角(弧度) ,θ( i , j ) 为特征点i、j 所在的局部邻域的纹线方向(弧度)。

  • 去除小孔
去除小孔的判定可以将判断阈值缩小,当两特征点之间的距离小于此阈值则认为两特征值之间为小孔,特征值为伪,两个特征值均去掉。具体函数与去除伪端点类似。

  • 去除毛刺
对细节特征点集Ω中任一纹线端点i ∈P1和任一分叉点j ∈P2 , 如果它们之间的距离小于D3 ,且有纹线连接该两点, 则认为该两点为伪特征点,予以删除。对细节特征点集Ω中任一纹线端点i ∈P1和任一分叉点j ∈P2, 如果它们之间的距离小于D4 ,且有纹线连接该两点, 并且Δθ<π/4, 则认为该两点为伪特征点,予以删除。

2.4.指纹特征匹配
在本设计中采用基于中心点的点模式匹配。

2.4.1.指纹特征模板建立

  • 特征信息建立:
每一条特征信息应该包括以下信息:
  • 特征点分类:特征端点分类为0,特征分叉点分类为1;
  • 距离变量:建立特征端点相对中心点的距离向量,和特征分叉点相对中心点的距离向量;设中心点为(X,Y),则各点到中心点的相对距离为
  • 纹线方向信息:该点纹线方向与特征点到中心点方向的夹角。
  • 位置方向(极角)信息:建立特征端点相对中心点的方向向量,和特征分叉点相对中心点的方向向量。(使用查表法。)
  • 特征信息存储
对于一个模板指纹图像具有m个特征点系列可表示为:

在指纹识别中对于特征信息的存储是十分重要的,对于良好的存储顺序使得后面的指纹特征匹配方便而简单。在本设计中,使用分类存储。即按照极角递增的方向排序,在同一极角下对距离变量进行排序。极角方向即为分类条件,将极角分为36~48个方向。

2.4.2.指纹图像匹配模型
通过界限盒这个条件可以方便地确定细节点的匹配情况。

用radiu_size和angle_size来分别表示界限盒的深度和张角的大小。本文使用可变大小的界限盒,即radiu_size和angle_size可以随着细节点的极半径大小而改变。它不同于固定大小的界限盒,它很好地考虑了极径不同时相同形变对极角的不同影响。当极半径较小时,形变会造成极角的较大变化。当极半径较大时,形变对极角的影响就较小。通过图5.2可以直观地看出两种界限盒的不同,可变大小的界限盒中极半径较大时设置较大的radiu_size和较小的angle_size。



本设计的细节点匹配的算法采用穷尽法和分类法相结合的方法,在确定的极角下对于待匹配的特征点如下:

在特征文件存储时选用三角点和中心点确定极轴,从而确定该指纹位置点极坐标的唯一性,然后在某一极坐标的方向角度下,将特征信息极径从小到大进行穷尽法进行匹配。

设置极径阈值确定界限盒对特征吻合点进行计数,当计数器值足够大时认为两个图像为同一图像。

图像文件中设置一个极坐标旋转变量该变量为三角点和中心点的角度差anx,在图像进行存储时,其位置极角坐标为该原极角坐标减去anx,作统一的极坐标变换。

第三章.  开发工具与器件
3.1.传感器介绍
FPS200芯片介绍FPS200是Verdicom公司推出的第三代半导体指纹传感器,其性能大大优于前两代产品。FPS200芯片采用VSPA80封装,芯片体仅有1. 4mm厚,传感区域1. 28cm ×1. 50cm,由256列×300行电容组成,分辨率500DPI,内置8位模数转换器,并具有两组采样保持电路;其核心的控制通过内部强大的数据、索引和功能寄存器设置完成。



FPS200是一种基于电容充放电原理的触摸式CMOS传感器,其外面是绝缘表面,传感器阵列的每一点都是一个金属电极,手指则充当电容器的另一极,两者之间的传感面形成电容两极之间的介电层。由于指纹的脊和谷相对于另一极之间的距离不同导致硅表面电容阵列的各个电容值不同,这样电容阵列值就描述了一幅指纹图像。FPS200的每一列都有两组采样保持电路,指纹采集按行进行,采集一行,对该行所有电容充电,并用采样保持电路保存电压值; 然后放电,再用另一组采样保持电路保存剩余电压值。两组电压值通过内置8位模数转换器获得具有灰度等级的指纹图像。FPS200原理示意图如图3所示。



FPS200是面向行( row2oriented)的器件,即每次可获得一行图像。每列接有两个采样保持( S/H)电路。当选定一行后,对此行的所有电容充电至VDD。充电结束时,第一组采样保持电路将保存该电压值。然后,该行电容将被放电,经过一定的放电时间,另一组采样保持电路将保存剩余电压值。显然,两组S/H电路电压值之差正比于电容值,将其数字化即可表示该行的指纹图像。放电电流和放电时间可分别给寄存器DCR,DTR赋于不同的值来设定。寄存器RAH, RAL用于指定当前要采集的行,写入寄存器CTRLA时就启动了采集。A /D转换的灰度值结果存于寄存器CTR2LA, FPS200可以设置为自动换行,即读取CTRLA就自动进行下一个像素的采集,依此循环, 即可得到一幅指纹图像

3.2.开发板介绍

Spartan-3E开发板的主要特征如下:
1) 多达232个用户I/O口,320个FPGA封装管脚超过10000个逻辑单元。
2) 4Mbit的Flash 配置PROM。
3) 64个宏单元的XC2C64A CoolRunner CPLD。
4) 64 M Byte (512 Mbit) of DDR SDRAM, ×16 数据接口, 100+ MHz。
5) 16 M Byte (128 Mbit) of 并行NOR Flash (Intel StrataFlash): FPGA配置存储,MicroBlaze代码存储/映射。
6) 16 M bits of SPI serial Flash (STMicro):FPGA配置存储,MicroBlaze代码存储/映射。
7) 16字符-2线式LCD显示屏。
8) PS/2鼠标或键盘接口,VGA显示接口。
9) 10/100以太PHY(要求FPGA内部具有以太MAC)。
10) 2个9-管脚的RS-232端口(DTE和DCE两种类型)。
11) FPGA/CPLD下载/调试USB接口。
12) 50Hz时钟晶振。
13) 1线式的SHA-1位流复制保护串行EEPROM。
14) Hirose FX2扩展连接口。
15) 3个管脚扩展连接器。
16)4个SPI-DAC转换器输出管脚。
17) 2个SPI带可编程增益ADC输入管脚。
18) ChipScope™软件调试接口。
19) 带按钮的旋转编码器。
20) 8个单独的LED输出。
21) 4个滑动开关,4个按钮开关。
22) SMA时钟输入。
23) 8管脚插槽辅助晶振。
3.3.开发环境介绍
本设计采用的开发环境有Xilinx的集成软件环境ISE 9.1和32位嵌入式处理器集成开发环境EDK,两者配合适用,另外还使用了强大的功能仿真软件Modelsim。本设计中我们用EDK在FPGA内部嵌入一个32位处理器,然后将此处理器作为一个子模块,在ISE中引用此子模块,来完成整个设计。在这里简要介绍Modelsim、ISE和EDK开发环境。
  • Modelsim SE 6.2b
Mentor Graphics ModelSim SE 6.2b是业界最优秀的HDL语言仿真器,它提供最友好的调试环境,是唯一的单内核支持VHDL和Verilog混合仿真的仿真器。是作FPGA/ASIC设计的RTL级和门级电路仿真的首选,它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段。全面支持VHDL和Verilog语言的IEEE 标准,支持C/C++功能调用和调试具有快速的仿真性能和最先进的调试能力,全面支持UNIX(包括64位)、Linux和Windows平台。
主要特点:
RTL和门级优化,本地编译结构,编译仿真速度快;
单内核VHDL和Verilog混合仿真;
源代码模版和助手,项目管理;
集成了性能分析、波形比较、代码覆盖等功能;
数据流ChaseX;
Signal Spy;
C和Tcl/Tk接口,C调试
  • ISE
Xilinx是全球领先的可编程逻辑完整解决方案的供应商,研发、制造并销售应用范围广泛的高级集成电路、软件设计工具以及定义系统级功能的IP(Intellectual Property)核,长期以来一直推动着FPGA技术的发展。Xilinx的开发工具也在不断地升级,由早期的Foundation系列逐步发展到目前的ISE 9.1i系列,集成了FPGA开发需要的所有功能。其主要特点有:
• 包含了Xilinx新型SmartCompile技术,可以将实现时间缩减2.5倍,能在最短的时间内提供最高的性能,提供了一个功能强大的设计收敛环境;
• 全面支持Virtex-5系列器件(业界首款65nm FPGA);
• 集成式的时序收敛环境有助于快速、轻松地识别FPGA设计的瓶颈;
• 可以节省一个或多个速度等级的成本,并可在逻辑设计中实现最低的总成本。
Foundation Series ISE具有界面友好、操作简单的特点,再加上Xilinx的FPGA芯片占有很大的市场,使其成为非常通用的FPGA工具软件。ISE作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Xilinx平台。
  • EDK
本设计中我们用EDK在FPGA内部嵌入一个32位处理器,然后将此处理器作为一个子模块,在ISE中引用此子模块,来完成整个设计。在这里简要介绍EDK开发环境。
1)在基于EDK的嵌入式系统设计过程中ISE软件一般在后台运行,XPS工具会通过功能调用的形式来访问ISE中的各种实现模块,并完成后端的实现工作。
(2)xPS主要用于嵌入式系统的硬件部分的设计,如处理器的硬件规范、外设的规范,以及这些组件的互连等,并通过XPS来完成相应的属性设置。
(3)简单的软件发工作叮以在XPS中完成,但是更复杂的应用程序开发及调试工作Xiliu建议使用平台软件开发工具(SDK)来完成。
(4)可以通过HDL仿真器来验证硬件平台功能的正确性,XPS提供了如下3种类型的仿真模型。
行为仿真 Behavioral
结构仿真 Structural
时序仿真Timjng-accurate.
XPS会自动建立并设罟验证过程的框架,包括用干仿真的HDL文件,设计者仅需要输入时钟、复位、激励信息,以及计设者的应用程序代码。
(5)完成设计以后,设计者仅需单击相关菜单项来下载FPGA位流文件和应用程序的二进制ELF文件。
the king of nerds
返回列表