Expires: Wed, 30 May 2012 02:50:14 GMT Date: Thu, 31 May 2012 02:50:14 GMT Content-Type: text/html; charset=UTF-8 Innovate Asia – Altera Design Contest 2012 - Contestants - CN409

Profile - CN409


CN409

基于FPGA的实时单晶硅生长测量系统

上海大学
通信学院


Finals


[print]


Project

Name of Project:基于FPGA的实时单晶硅生长测量系统

Contact Information

Name:彭方新
E-Mail:pfxzxy@gmail.com
Telephone:13585678169
Mobile Phone:13585678169
Mailing Address:上海市延长路149号上海大学行健楼1215室

Contest Advisor

Name:陆小锋
E-Mail:luxiaofeng@shu.edu.cn
Telephone:13916448443

Members

No.NameE-MailEnglish Name
1彭方新pfxzxy@gmail.compengfangxin
2杨静yangjing19871106@163.comyangjing
3沈苏旻shensumin1987105@hotmail.comshensumin

Project Paper - view as Preliminary(2010/06/01), Final(2010/09/18), Draft, Latest

1. 设计概述 (Preliminary Paper)

 

 

单晶硅作为电子信息材料中最基础性材料,已渗透到国民经济和国防科技中各个领域。全球超过2000亿美元的电子通信半导体市场中95%以上的半导体器件及99%以上的集成电路使用硅材料。目前,全世界单晶硅的产能为1万吨/年,年消耗量为6000吨~7000吨。随着太阳能利用及电子信息行业的发展,单晶硅需求将越来越大。单晶硅生产主流方法即直拉的单晶炉生长法。在单晶硅生长的工业控制中,由于单晶硅生产的昂贵成本,在其生长过程中,对其生长直径实时、高精度的监控、测量,准确控制其生长直径尤为重要。目前工业上对单晶硅的生长直径测量方法主要有以下两种:一是Ircon直径检测技术,利用拉晶过程中固态晶和液态晶交界处的光圈直径反映固态晶的直径这一现象,通过光学高温计和一系列光学原理来检测单晶硅的直径。另一方法则是利用通用处理器(CPU)进行图像处理,计算出光圈的直径。前者由于单晶旋转造成光圈晃动,或是硬件设备的磨损造成系统的稳定性下降致使测量误差偏大。后者利用机器视觉技术测量精度高,为市场所认可,但采用CPU处理稳定性差,成本高,灵活性不够,容易受病毒影响等。 

本课题组结合实际,采用Altera公司FPGA设计嵌入式视觉测量系统。课题针对单晶硅生长控制系统中晶棒半径实时测量部分,利用FPGA对图像大规模数据处理的优势,实现嵌入式的机器视觉单晶硅生长直径实时测量系统。系统主要包括FPGA完成LVDS视频信号采集;对视频信号实时处理,计算晶棒半径;基于Nios设计人机界面;FPGA控制Internet传输半径值给下级PLC控制等。主要工作是利用FPGA完成对百万像素级的LVDS视频图像采集,图像边缘检测(检测出单像素级的边缘),利用Dsp builder与Nios和LEs结合计算圆弧边缘的圆心、半径,拟合圆、标记,利用Nios设计控制界面及测量数据传输接口,实时叠加测量直径值与OSD显示等单晶硅生长直径测量的整套系统。系统采用Altera公司的SOPC解决方案实现。 

利用Nios软核处理器可以改善 MCU处理速度不高、外设资源有限、接口配置繁琐、硬件设计和软件编程复杂等问题;通过配置Nios软核与Dsp builder实现图像传输与计算,满足了时序以及功能上的要求,充分利用了芯片内部资源,极大的提高了系统整体运行效率;由于系统存在众多的外部存储器,I/O口数量众多,存储器访问频繁,通过Nios软核的自定义外设、自定义用户逻辑以及类似于DMA的数据搬移等多种方式,存储器访问和数据搬移相对简单,实现了对SDRAM、SRAM、FLASH等外设的访问,实时数据叠加以及OSD显示;随着工业控制的发展,一套适用于多种控制环境的嵌入式测量系统将为开发者提供极大便利,因为为每种控制环境改变硬件电路的成本和时间的代价是巨大的,本课题组根据软硬件协同开发的需要,采用Altera的SOPC解决方案是最好的选择,也能够充分发挥FPGA逻辑控制、数据处理方面的优势,系统具有配置灵活、开发简便快捷、处理方式多样、处理能力强、成本低廉等特点和优势。

单晶硅行业发展火热,课题基于嵌入式的视觉测量系统,具有稳定性高,成本低,灵活性强等优点。而且基于硬件解决的嵌入式系统技术含量高,能有效克服PC解决方案的病毒干扰、技术溢出等问题。系统在单晶硅生产的工业控制中应用广泛。同时,机器视觉在工业上应用的主要技术即图像边缘的处理以及图形计算,两项技术在工业控制的众多场所都有应用。本课题组基于FPGA实现机器视觉最为核心的两部分功能。利用FPGA处理视频、控制以及Nios设计界面、接口的优势,实现嵌入式的机器视觉。嵌入式系统升级便利,系统不仅适用于工业单晶硅生长控制,对系统稍加修改,又可适用于众多的工业视觉控制场合。
(Revision: 5 / 2010-08-27 13:02:24)

2. 功能描述 (Final Project Paper)

 

2.1系统设计概述

图2.1 实验系统实物图 

利用FPGA辅助单晶硅生产的控制系统结构如上图所示。FPGA在其中扮演着视觉处理的角色。根据单晶硅生长过程实时监控得到其生长视频,即可直接进入我们的系统进行嵌入式视觉处理。视频数据被送入FPGA后,在实验板上需要被解码,得到视频数据后即可进行高进度的单像素边缘检测,生长参数测量等,而测量的数据我们一方面通过LCD实时叠加在视频上显示,另一方面通过Nios接口传输给下级PLC控制单晶硅生长速度,同时送往PC上实现人机的交互。系统概括起来主要有以下几大特色功能。 

2.2降低视频分辨率的前提下保证计算的高度精确

根据目前实验使用单晶硅视频源为640×480分辨率,而我们的系统测量的误差可控制在0-5个像素之间,转换为直径值为20cm实际单晶硅的误差为0—0.25mm。而业界目前采用PC实现的150万像素的视频源所能达到的最小误差为0.2mm。我们在大幅降低视频源要求的前提下,对测量值的精确性提供了很好的保证,这样可大幅降低整套单晶硅生产控制系统的设计成本。

2.3高精度视频数据采集

为保证系统测量精度要求,图像清晰度要求高达百万像素,大数据量的视频信号要求不经过压缩直接传给处理器进行处理,系统设计为通过LVDS线将高精度摄像机数据直接传送到FPGA进行处理。LVDS运用广泛, Altera在IP管理器中专为其提供了发送/接受的宏模块。系统只需要对宏模块进行简单的配置即可获得高质量的LVDS视频信号。为后续图像处理提供保证。但在实验过程中,无法实地拍摄单晶硅生长,其生长视频被刻录在光盘上,需要从CVBS视频信号解码得到视频数据进行处理。 

2.4单像素的边缘提取与匹配

系统要得到高精度的生长测量结果,前提即要得到与单晶硅完全匹配的细化边缘。为获得理想效果,系统主要对图像进行了边缘检测算法、轮廓跟踪算法、形态学处理等运算。从而获得单像素、连续的边缘,为后续圆弧计算提供基础。而为实现上述图像处理算法,在此借助宏模块及LEs协同处理。通过调用FIFO缓存并结合FPGA流水线的设计思想获得图像处理的视频信号算子,并利用乘加宏模块以及并行加法器等实现卷积与形态学运算,获得较为理想的图像边缘。 

2.5单晶硅生长参数的精确计算与实时处理

单晶硅生长中最重要的参数即其生长的实时直径值,同时我们还需要计算硅棒的圆心等参数。这些参数的计算在图像处理中运算复杂,需要从二维图像空间转换到三维参数空间进行计算,处理数据量巨大。为准确计算圆弧圆心与半径,系统充分利用Dsp builder在算法级上实现信号处理的优势,并借助Nios以及LEs设计协助完成图像信号处理。通过算法上的不断优化,以及FPGA并行处理等硬件特色大大缩短图像处理时间,保证了图像处理的实时性和单晶硅生长参数测量的精确性。 

2.6直观而实时的字符叠加

FPGA在计算得到单晶硅圆弧的实时半径值后,一方面送往下级PLC控制,一方面直接送往LCD与视频图像一同显示,便于观察。此项功能利用FPGA内部Rom创建字模,通过FPGA的逻辑控制实时选取实现。运行时间快,耗用资源少。省去了传统的字符叠加卡,降低了成本。同时系统将图像数据通过数据总线送往PLC,以指挥PLC控制拉晶过程。 

2.7友好的人机界面

人机界面主要用于显示实时测量半径值,并设置需要生长的单晶硅直径值,从而实现人机交互的生产过程。人机界面主要利用Nios软核设计,充分利用Nios软核自定义外设、自定义用户逻辑以及类似于DMA的数据搬移等优势实现人机界面的设计。 

2.8丰富的传输接口

实时计算出的半径值主要送往后级协助PLC控制,网线传输距离远,稳定性好,在此利用网口传输半径值。利用FPGA的Nios软核丰富接口设计,可方便、快速地实现半径值的实时传输,从而很好地协助PLC控制。 

2.9 系统实验成果图

取单晶硅生长的发芽、露肩、成熟三个典型时期的实验结果截图如下图2.9.1所示,在DE2板上,我们实现了单晶硅生长各个时期的实时准确测量,根据测量直径与单晶硅圆心画出的拟合圆与单晶硅边缘吻合得非常好。
(a)单晶硅出芽阶段处理效果 (b) 单晶硅露肩阶段处理效果 (c) 单晶硅成熟阶段处理效果
图2.9.1 单晶硅直径实时测量系统效果图

 

(Revision: 7 / 2010-08-27 02:05:29)

3. 性能参数 (Final Project Paper)

 

 

3.1系统的工作参数 

(1)电源

直流电压:7.5V
工作电流:800mA 

(2) 环境

工作温度:0°C - 85°C
相对湿度:8% - 95% 

(3)视频传输与显示

视频场率50HZ
LCD显示640×480 

(4) 接口

开发板与计算机人机界面采用RS232接口,波特率为19200bps
网线传输接口采用LWIP协议
(5) 测量精度
圆弧直径的计算是基于像素级的,在目前分辨率为640×480的单晶硅视频上,我们的计算误差能控制在0 - 5个像素内,折算到直径为200mm的单晶硅实际测量值,系统测量的误差能控制在0—0.25mm间。若提高视频分辨率,系统测量出的误差可进一步得到减小。 

(6) OSD字符显示

OSD字符是实时叠加在LCD上的直径值,系统采用帧延时显示字符,显示字符将滞后图像一帧显示。 

3.2 FPGA资源利用

系统主要完成单晶硅生长直径的实时测量,高精度边缘获取,直径值的多接口传输等,采用Altera IP与丰富存储器实现单像素边缘检测,采用Dsp builder与LEs及内部存储器实现高精度半径值实时计算,采用串口及网口实时传输测量直径值,利用内部存储器制作字符库,实时显示测量直径值。系统占用FPGA资源编译结果所示。

图3.2.1 系统FPGA程序编译结果图
(Revision: 3 / 2010-08-27 01:57:41)

4. 设计结构 (Preliminary Paper)

见下图:

(Revision: 4 / 2010-05-28 09:24:37)

5. 设计方法 (Final Project Paper)

 

5.1系统硬件设计

硬件系统主要包括视频编解码模块,FPGA视频处理,LCD显示及直径值传输接口等部分。 

5.1.1系统设计Blocks

系统FPGA设计部分可分为如下图的五个模块,首先CVBS视频输入经过7181解码,得到YUV视频信号,进而空间转换为RGB视频信号送往下一模块(视频边缘检测与细化模块),进行单晶硅视频的边缘提取,其中用到众多机器视觉方面的技术如边缘检测,形态学处理,区域分割等。经过细化后的边缘与单晶硅要完全吻合后,边缘点被送往后续模块(直径计算与拟圆模块)进行单晶硅直径的测量与圆心的确定。最后计算出的直径一方面通过Nios接口传输出去,另一方面通过OSD字符将其实时叠加到LCD显示器上,直观读取单晶硅直径测量值。系统实际设计时,程序未采用block模块,而是直接调用模块,在此图像化分类主要是为表述方便。
图5.1.1.1 系统设计模块划分
5.1.2 Nios接口设计
 
图5.1.2.1 系统所用Nios 硬件资源
Nios系统为我们提供了众多可配置模块,其丰富的外部接口为我们实现实时测量单晶硅生长提供了极大的方便。系统在完成单晶硅生长的测量后,需要测量结果送往下级系统控制单晶硅生长,在此即利用了Nios的网口设计,单晶硅的测量结果通过Nios口送往下级PLC。系统实现网口数据的传输主要是利用DE2开发板的DE2_NET例化的DM9000A实现,仅仅完成了移植工作。另一方面,单晶硅生长的测量结果需要实时读取出来,方便人机的交互,在此我们利用Nios的串口功能实时接受测量的结果,将其显示在PC上,实现友好的人机交互。串口实时接测量结果是通过PIO口的中断实现的。
5.1.3 Dsp builder与LEs实现单晶硅生长计算
单晶硅生长计算部分主要是利用检测出的边缘像素点计算单晶硅的实时生长直径。由于系统复杂,我们在采用逻辑单元与Dsp builder结合的方式计算。而系统耗费资源的部分主要在于单晶硅的计算部分,在此我们借用FPGA集成的Dsp builder实现复杂的部分计算,从而使系统资源得到极大的优化。Dsp builder是Altera 的Quartus II与Matlab的Simulink连接的桥梁,用户可以根据运算流程,在Simulink中选择模块化的运算块,搭建成系统,然后转化为逻辑语言,与FPGA形成完美结合。我们在此仅仅利用其实现单晶硅测量过程中的一些计算。系统设计模块如下图所示:

图5.1.3.1 Hough算法直径测量占用Dsp builder资源
5.2算法的FPGA实现
软件设计部分主要涉及到FPGA对单晶硅生长视频的处理(边缘检测,生长直径实时测量等)以及Nios接口的设计,当然还有人机界面的设计以及OSD单晶硅直径值实时显示等。
5.2.1单像素精度的边缘提取
边缘检测算法比较多,本系统中对边缘提取的要求很高,需要尽可能准确且细致的边缘,以方便后续圆弧计算点的选取,在此我们选用相对复杂的Canny边缘检测算法。Canny边缘检测算法相对Sobel、Robert等边缘检测,增加图像滤波,梯度像素非极大值剔除(使边缘更细化)和双门限检测(尽可能使边缘连接,得到完整边缘)等操作,算法虽然增加了运算的复杂度,但得到的边缘也明显优于Sobel。Canny边缘检测的算法流程如下:

 

图5.2.1.1 Canny 边缘检测流程
       系统采用的是3×3的中值滤波,9个像素分成三组三像素比较形成快速中值滤波的方法,图像经过三组FIFO,每组FIFO容纳一行像素点,每组FIFO均输出像素点,再分别经过两个触发器,从而得到3×3的像素块进行滤波计算。快速中值滤波计算简单,将每组比较的最大值、中间值、最小值分别再组成一组比较,分别取出其中的中间值再比较,最后得到的中间值即为滤波输出。
       梯度计算即求水平梯度与垂直梯度,方法与传统sobel算法类似,在此仅采用2×2的梯度算子计算。水平,以及总梯度垂直梯度计算可按如下式计算。

 

梯度计算仅仅只是Canny算法的基础,在梯度计算的同时,我们还要计算出像素点的梯度方向(即梯度变化最快的方向),进而在梯度方向上进行非极大值的抑制。梯度方向的计算设计到反三角函数的计算,一般用Cordic算法计算,运算复杂,且资源耗费多。在此,我们选用2×2梯度模块后,仅需要考虑一些特殊的方向:0、45、90、135、180、225、270、315、360度等。在这些方向上比较梯度值即可。故系统按下图梯度方向计算大大简化了系统运算。 

 图5.2.1.2 梯度方向判断图 

根据上图,FPGA仅需要比较 dx 和dy 的正负及两者的绝对值大小来近似估计梯度的方向。每45°为一个方向,在整个坐标系里共分为八类,但是根据对称性,在一条直线上的两个方向用一个方向来表示,因此只需要1—4这四个方向即可。

非极大值抑制即图像上某像素点的边缘强度小于沿梯度线方向上的两个相邻像素点的边缘强度,则认为该像素点为非边缘点,否则,则认为是边缘点,从而保留其像素值。以梯度方向0°到45°为例,像素的梯度幅值Mx,y和沿着梯度方向的相邻的梯度幅值如下图所示: 

 

图5.2.1.3 梯度方向上梯度比较计算
 其中像素点沿着该梯度方向的梯度值定义为Ma,Mb

 其中:

 

则,非极大值抑制计算为:如果Mx,y>Ma且Mx,y>Mb,则认为该中心点为边缘点,否则为非边缘点,置为零。
通过非极大值抑制运算,可将众多非边缘点剔除,同时也使计算出的边缘更为细致。但同时也会将一些原本是边缘点的像素点剔除,造成边缘的不连续。双阈值分割的思想即尽可能将一些边缘点保存。其思想是:模块中设计高低两个阈值,凡是边缘强度大于高阈值的一定是边缘点;而凡是边缘强度小于低阈值的一定不是边缘点;如果边缘强度大于低阈值又小于高阈值,则看这个像素的邻接像素中有没有超过高阈值的边缘点,如果有,它就是边缘点,如果没有,它就不是边缘点。通过双阈值的调整可以得到教为理想的边缘。
Canny边缘检测出的边缘已经很细致,但还没有达到单像素的边缘提取。在此之后我们对系统运用形态学腐蚀运算进一步改善边缘宽度。再获得尽可能逼近的边缘后,我们对外部边缘进行了单像素的提取。从而获得了较为吻合的单像素宽的边缘。提取出的边缘我们对其进行了截取,仅保留下了吻合度高的一部分边缘,这样一方面提高了后续点提取的精度,更减小了后续计算量。截取后的边缘与原始图像叠加后的效果如下图所示。(截取单晶硅生长过程的三个典型阶段效果图)

 

(a)单晶硅出芽阶段部分边缘      (b) 单晶硅露肩阶段部分边缘         (c) 单晶硅成熟阶段部分边缘
图5.2.1.4 Canny边缘检测及细化后截取的边缘与原始图像叠加(白线为截取的部分边缘) 

5.2.2单晶硅生长参数之直径测量算法 

获得精确的边缘点后,通过取点,计算直径的方法比较多,比如三点求圆,圆拟合等。在此我们选用Hough变换的方法求解圆。Hough变换主旨即根据一些规则图形的方程,将图像的像素空间转化为参数空间,通过研究参数空间的方程确定原图形方程中的参数。如下,圆的方程均可用下式表示:

 2xa + 2yb +d = x2 + y2                               (5-2-2-1)

      其中(x,y)为图像空间中像素点对应的坐标值。a,b,d为与圆心坐标、半径相关的参数。以(x,y)为变量看,方程表示的是个平面圆,而以a,b,d为变量看,对于每个固定的(x,y),方程为一个圆锥。不同的(x,y)得到不同的圆锥体。而考察这些圆锥体可得到,这些圆锥体均会相交于同一点,而这一点对应的坐标即为原始平面圆的圆心、半径。顾根据Huogh变换的思想,求得参数空间函数的交点即可得平面圆的参数值。Hough变换的思想可用如下图描述。

  

图5.2.2.1 Hough算法原理示意图(图像空间到参数空间的转换)
根据Hough变换的思想,要计算圆心坐标与半径,我们需要求得参数空间中圆锥体的交点。我们在FPGA中可用如下方法实现。我们从一帧图像中选取特定兴趣区域(单晶硅所在区域),同中值滤波,利用FIFO同时得到四行像素数据。从中选取出三个边缘像素点,送往Dsp,经过计算得到一组半径、圆心坐标,将其送往对应的Ram中。其中存储圆心坐标被送往地址与坐标值相同的Ram存储单元,半径值也被送往与半径值相同的地址对应的Ram单元,并分别进行累加。每四行获得一组数据,每组数据累加一次,取点结束后,根据累加的结果比较,从中选择出累加最多的半径、圆心坐标,则累加值最大的单元所对应的Ram地址即为最优的半径值与圆心坐标。其中Dsp模块运算相对复杂,采用前述的Dsp builder实现。  
 

5.2.2.2 圆弧直径测量Hough算法的FPGA实现

每一帧图像计算出一组圆心与半径,再通过这些参数我们在屏幕上将平面圆描绘出来,叠加在原始单晶硅图像上,结果显示吻合得很好。计算出的半径值误差保持在2-5个像素之间。显示结果如后图5.2.3.2所示。

5.2.3 实时直径值LCD显示之OSD字符叠加

测量出的直径值我们将其实时叠加在原始视频与拟合圆上,方便圆弧直径的直观读取。因为不知道一个像素对应实际单晶硅的尺寸(需要实地测量),所以视频显示的是测量出直径值对应的像素数,是一个整数。直径值精度为一个像素。

叠加的字符采用FPGA内部Rom实现,利用mif文件初始化16×16Rommif文件中已经构造好各种字模,通过行、场同步信号对Rom寻址,在屏幕上构造出16×16的像素块,形成OSD直径值字符。如下图所示,首先在mif文件中构造各种字模。如下图所示。

 

5.2.3.1 Rom中构造的字模示意图 

图中字模纵向对应Rom中地址,通过视频行同步信号控制,横向对应每个地址下的数据位,通过视频像素同步信号控制。构造出字符后,还需要将字符与直径值实时对应显示出来,在此我们考虑直径值为三位,分别提取出个位、十位、百位上的数,进而利用各位上的数去选择显示的数值。得到的效果如下图所示。
(a)单晶硅出芽阶段测量与显示 (b)单晶硅露肩阶段测量与显示 (c)单晶硅成熟阶段测量与显示
图5.2.3.2 实时叠加显示直径值后的显示结果(绿色圆为根据计算的圆心、直径画出的圆)
 
5.2.4 Nios接口实时传输直径测量值

Nios为FPGA集成了丰富的外部接口,一方面为系统节约了众多资源,同时也为FPGA系统设计提供了极大的方便。它还可以集成嵌入式的操作系统,提供SOPC Builder直观的图形用户接口(GUI),设计者可极为方便地添加和配置系统所需的外设和系统。在此我们仅利用其串口和网口以及PIO和中断等资源设计图形化的人机交互。Nios配置资源如上所述。下图为PC上实时接收测量直径值的交互界面。Nios采用PIO中断的方式实时接收到FPGA模块计算的直径值,进而发送出去。

5.2.4.1 PC上人机交互界面

上图PC界面上左边为单晶硅生产的单晶炉,右上角为串口设置以及接收测量系统实时发过来的测量参数值,显示出了测得参数的时间以及测量值,三张小图片为单晶硅的成品图。在此,我们的误差仅仅只是各个阶段的相对平均值的波动误差。界面右下角为根据测量直径实时模拟出的圆形。如上图,我们通过界面可以一目了然地得出,在26号13点8分9秒,系统测得的单晶硅生长视频的直径值为266个像素,相对于这个阶段平均值波动了0.6个像素。下面圆是此直径下单晶硅大小的模拟图。

 

 

(Revision: 9 / 2010-08-27 02:06:49)

6. 设计特点 (Preliminary Paper)

 

6.1高精度视频信号采集
为保证单晶硅生长直径测量精度(生产直径为8英寸的单晶硅,其直径测量误差必须控制在0.5mm内),摄像头采集到的视频数据直接通过LVDS传输给FPGA,中间不经过任何压缩或A/D、D/A转换,而且为保证图像处理精度,图像数据高达100-200万像素。如此高的数据量,必须充分利用FPGA的并行及其高速处理能力才能实现。
LVDS平行的差分信号线可以有效的消除总线上的共模噪声,大大提高接收系统收到的视频信号质量。系统采用配置Altera的LVDS发送/接受宏模块,仅需要对其进行添加部分约束与修改即可,方便快捷,不仅节约了大量开发时间,同时使系统设计更为优化,获得高质量的视频信号。
6.2 Dsp builderLEs结合实现高精度图像处理算法

系统所有功能均建立在图像处理的基础上完成。由于单晶硅测量的极低误差要求,需要图像处理精度高,在系统设计中为得到高精度的边缘,采用亚像素的边缘检测技术,由于图像处理的断点以及部分边缘较粗等问题,需要图像进行轮廓跟踪、形态学处理等得到单像素精度的边缘。最为复杂的图像处理部分是关于计算圆弧的圆心与半径,需要将二维图像空间转换到三维参数空间计算,处理数据量巨大。需要充分利用FPGA的并行处理及Dsp builder处理算法的优势,实现高精度的数字图像处理算法,保证单晶硅直径测量的精确性。

在此采用基于FPGA的Dsp builder与LEs结合实现单晶硅边缘的检测与单晶硅圆心、半径的计算。Dsp builder可以帮助进行基于FPGA的DSP系统设计,其图像化的系统建模方法简单直观,大大节省了设计开发的时间。同时利用Matlab\Dsp builder进行DSP模块设计是SOPC技术的一个重要组成部分,利用Dsp builder实现图像处理算法,即保证了处理时间的实时性,同时优化了系统设计,为开发带来极大的方便。

FPGA最本源的功能即逻辑设计,利用LEs配合Dsp builder完成图像处理算法使系统设计更为优化,充分调用了FPGA的资源实现图像处理的实时性与准确性。

同时在图像处理过程中还可以调用Altera公司集成的众多宏模块辅助Dsp builder实现图像的处理与计算。

6.3 Internet 接口实时传输测量值
实时测得的单晶硅生长半径值主要用于对单晶硅生长半径进行控制,FPGA实时测量出半径值后,Internet Interface将半径值通过网路传输给下级PLC产生控制晶轴转速与坩埚旋转的控制信号,从而调节单晶硅直径生长大小。
通过网路传输实时半径值速度快,操作方便,保证了后续控制的及时性。FPGA对Internet Interface的控制方便,系统充分利用了FPGA丰富的外部接口控制能力,使系统设计高度集成化。 

6.4 通过Nios设计人机界面与数据传输接口

系统在获得单晶硅直径测量值后需要立即送往后续PLC,指导PLC控制拉晶速度,从而控制单晶硅生长直径,实现嵌入式视觉系统测量的机器控制拉晶工艺。
测量直径值通过Nios定义的外部接口传送给PLC。Nios系统定义了众多的外部接口,FPGA开发过程中在Nios软核中直接调用即可。大大方便了系统开发,节省了系统设计时间,同时优化了系统设计。
6.5 实时字符叠加
测量过程中,为了更为直观化,系统将实时测量到的圆弧半径值实时地与图像一起显示,系统以OSD方式显示在屏幕上方;同时将圆弧拟合为完整圆形,实时叠加在屏幕上显示。该设计充分利用了Nios的自定义外设功能,使得系统可以及时获得测量结果并将其叠加显示,不用开发专门的串口驱动程序,获得需要叠加的字符信息和命令。
视频显示主要由三部分组成:原始视频、标记出的拟合圆、叠加的半径值。系统实时计算出的半径值存储在外部FLASH中,Nios将外部FLASH中存储的OSD的内容通过FPGA内部的RAM写入到外部的一片SRAM芯片中,然后逻辑控制单元将从外部SRAM读取的OSD数据叠加到转换好的RGB图像中,以OSD方式显示;然后在每一场数据的场消隐期间Nios通过FPGA内部的RAM修改外部SRAM中OSD的内容字符点阵。
OSD数据以一个字(16bits)表示叠加的一个数据点,现在显示的是彩色文字,其中,Nios写外部的SRAM芯片采用的是自定义逻辑方式;而外部SRAM中的数据在Nios软核的控制下,数据搬移到内部RAM,然后进行数据叠加,采用的是类DMA方式。
6.6 高度集成的SOPC解决方案
整个系统所有的设计都是围绕着FPGA芯片实现图像算法处理,充分利用Nios软核的多种功能和特点,所有的控制和数据处理都是在FPGA中Nios软核处理器的管理下进行的,充分体现了高度集成的SOPC解决方案。在利用SOPC工具进行系统设计的过程中,硬件系统与软件系统都是可裁剪的,这样就摆脱了传统软件依赖于硬件的开发模式。同时软核处理器选择合适的外设、存储器、I/O接口,利用这种方式可以构建一个完全适用于用户需求,最匹配、价格最低廉、设计最简单、集成度最高也是风险最低的嵌入式系统,并且也不会产生定制化和移植的问题。
6.7 软硬件的协同开发
由于SOPC系统构件中硬件和软件的可裁剪性,使得系统开发过程中软硬件设计可以协 同开发,节省了大量的时间,几乎可以同时开始和同时完成,优势明显,同时也加快了产品上市的进程,并保持一个较长的产品生命周期。即使在开发过程中需要修 改一些定义,也只要重新生成新的Nios内核,对于其他的外围器件和Nios程序没有任何影响。

 

(Revision: 5 / 2010-08-27 02:04:14)

7. 总结 (Final Project Paper)

感谢Altera 公司提供了本次比赛的机会,借助于此次Altera亚洲创新设计竞赛,我们组最终完成了“基于FPGA的实时单晶硅生长测量系统”这一作品。在此过程中,我们收获颇多。一方面,我们欣喜地看到基于FPGA的嵌入式系统在机器视觉领域的强大生命力与潜力,这是我们学习应用FPGA实现各种工业控制的强大动力,更为明确了我们今后的学习发展方向。同时,通过此次竞赛,我们对FPGA的设计有了更深刻的理解,尤其是其进行算法设计方面,有了很多深刻的体会。其中并行处理的思想使FPGA区别于其他嵌入式芯片,显示了众多的好处。而SOPC Builder的应用让我们看到FPGA基于模块化的设计的简便与节约。最后,在本次大赛的过程当中,我们不仅锻炼了自己的能力,同时也培养了团队合作的精神。

感谢我们的指导老师,陆小锋老师。在竞赛的过程中,他不断的督促着我们一步步前进,同时也不时地给予我们指导,给出了很多宝贵的意见。正是在他的悉心指导下,我们组才能完成此套系统的设计。同时也感谢所有在这段时间给予我们支持和帮助的老师和同学。

(Draft / 2010-08-26 23:51:25)