| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 网上商城 | 芯片价格参考 | 留言 | 论坛 | 网络协议 | 驱动设计 | 购买指南-HowtoBuy | 
您现在的位置: FPGA开发板 FPGA 开发板 SOPC开发板 DSP开发板 视频开发板 -嵌入式控制研究室 >> SOPC >> Nios >> 文章正文 用户登录 新用户注册
[组图]Nios II软核处理器在CCD尺寸测量系统中的应用     ★★★★★ 【字体:
Nios II软核处理器在CCD尺寸测量系统中的应用
作者:岳海啸 廉…    文章来源:21control    点击数:    更新时间:2005-12-14

Nios II软核处理器在CCD尺寸测量系统中的应用

西北工业大学电子信息学院DSP实验室  岳海啸 廉保旺

 

作者介绍:岳海啸,男,出生于1981年1月,西北工业大学电子信息学院通信与信息系统专业在读硕士,现从事DSP技术、Nios II软核处理器、软件无线电等领域的研究。

摘要: 本文介绍了Nios II软核处理器和SOPC的概念、背景和特点,并给出了使用Nios II软核处理器和IP Core进行SOPC设计的一个实例——基于Nios II软核处理器的CCD尺寸测量系统的设计,介绍了Nios II硬件平台的定制、HAL系统库的设计、应用程序的设计以及Nios II系统下用户逻辑的设计过程。

关键字: Nios II软核处理器     IP Core     SOPC     CCD尺寸测量

Application of Nios II softcore processor in CCD Dimension Survey System

Abstract: This paper introduces the conception and the feature of Nios II softcore processor and SOPC. It also gives an example of a SOPC design using Nios II softcore processor and IP Core——CCD Dimension Survey System based on Nios II softcore processor. The customization of hardware platform, the design of HAL system library, the application program and the user logic design in Nios II system were introduced in this example.

Key Words: Nios II softcore processor     IP Core     SOPC     CCD Dimension Survey

 

1.       Nios II软核处理器简介

在二○世纪九十年度末,可编程逻辑器件(PLD)的复杂度已经能够在单个可编程器件内实现整个系统。完整的单芯片系统(SOC)概念是指在一个芯片中实现用户定义的系统,它通常暗指包括片内存储器和外设的微处理器。

SOPC是一种新的系统设计技术,也是一种新的软硬件综合设计技术。通过它,可以很快地将硬件系统(包括微处理器,存储器,外设以及用户逻辑电路等)和软件设计都放在一个可编程的芯片中,以达到系统的IC设计。这种设计方式,具有开发周期短以及系统可修改等优点。设计完成的SOPC可以通过HARDCOPY转为ASIC芯片,从而可以实现快速量产。

2000年,Altera发布了Nios处理器,这是Altera Excalibur嵌入处理器计划中第一个产品,它成为业界第一款为可编程逻辑优化的可配置处理器。2004年,Altea又发布了Nios II处理器。Nios II为32位RISC嵌入式处理器,具有IDE(集成开发环境)和GUI(图形用户界面),开发过程较Nios处理器简单许多,但性能更高,占资源更少。

Nios II支持MicroC/OS-II、µCLinux等多种实时操作系统,支持轻量级TCP/IP协议栈,支持*.zip的文件系统,具有超过 200 DMIP 的性能,而在FPGA中实现的成本最低只有35美分。更值得一提的是,Nios II处理器允许用户增加自定义指令和自定义硬件加速单元。在特定应用环境下,用户通过自定义指令和自定义硬件加速单元可以获得数十倍乃至数百倍的性能提升。

2.      CCD尺寸测量系统和Nios II 在CCD尺寸测量系统中应用的优势

CCD(Charged Coupled Device、电子耦合组件)是一种感应光线的电路装置,上面分布着许多的感光微细元,当光线投射到感光微细元表面时感光微细元就会产生电流,产生的电流经过曝光时间的积分在模拟寄存器中存储为电荷,模拟寄存器的输出电压和存储的电荷量成正比,从而某象素模拟寄存器的输出电压就表达了该象素的亮度信息。

CCD器件按形状可分为线形CCD器件和面形CCD器件。线形CCD器件用于扫描仪和尺寸测量系统,面形CCD器件多用于CCD摄相机、摄影机。

CCD尺寸测量系统的原理如图一所示。只要测出CCD线阵上的阴影尺寸,就可以按比例计算出遮光物体的尺寸。当遮光物体为不透光物体时,CCD线阵上像的阴影部分为全暗信号;

  


      图一 CCD尺寸测量原理

当遮光物体为透光物体时,CCD线阵上像的阴影部分也有感光输出,但幅度上较光线直射部分小。利用这个性质,该系统在测量透光物体时还可以得到更多信息。例如,图二是一玻璃管在CCD线阵上的像,从中可以得到玻璃管内直径、玻璃管外直径、壁厚等多种信息。

 

图二 玻璃管在CCD线阵上的像的曲线

CCD尺寸测量系统包括CCD器件、CCD驱动信号产生单元、CCD输出信号采集单元、CCD输出信号处理单元、CCD输出信号传输单元和人机界面等部分,如图三所示。本设计把CCD驱动信号产生单元、CCD输出信号采集单元、CCD输出信号处理单元、CCD输出信号传输单元和人机界面控制单元全部集成到一片Altera FPGA中,实现了SOPC的设计思想。

CCD尺寸测量系统的关键技术包括:

l         可变频率的CCD驱动信号的产生。

在实际使用中,为适应入射光明暗程度的变化,要求CCD的积分时间(曝光时间)可调。CCD驱动信号产生单元必须能产生多路驱动信号,并且驱动信号的频率要可调。

l         CCD输出信号的实时处理。

由于光线的衍射作用,物体边缘往往变得模糊;电路的噪音也会使CCD的输出信号变得不清晰。要从这些“不纯净”的信号中提取出有用信息,就必须采取滤波、匹配等多种信号处理手段。有时候被测物体是高速运动的,这就要求CCD输出信号的处理速度要快、实时性要强。

l         数据的实时传输。

处理后的数据不但要在本机屏幕上实时显示,还要能够实时传输到中心计算机上,供其存储、控制或是进一步处理。同时,CCD尺寸测量系统的各种参数也可以通过中心计算机设置。

l         高精度平行光源的实现等。

要得到准确的结果,高精度平行光源也是一个关键技术。






图三 CCD尺寸测量系统构成

Nios II 在CCD尺寸测量系统中应用的优势包括:

l         FPGA产生CCD驱动信号非常方便且便于修改。

l         根据本系统特点增加的自定义指令和自定义硬件加速单元,在数据处理时大大加快处理速度。

l         大量使用IP Core,体现了SOPC高集成度,高可靠性,开发周期短,修改、升级灵活、方便的特点。

3.       用户逻辑的设计

CCD的驱动逻辑和ADC控制逻辑需要用户自己设计。由于应用在Nios II系统中,这部分逻辑必须是能作为Nios II从设备外设挂在Avalon总线上的IP Core

CCD Driver & ADC Controller IP Core包括CCD驱动逻辑,ADC控制逻辑和Avalon总线从接口三大部分,如图四所示。

 

Register File

FIFO A

FIFO B

CCD Driver Logic

ADC Controller

CCD Device

ADC Device

On Chip

Off Chip

CCD Driver & ADC Controller IP Core

 

图四 CCD Driver & ADC Controller IP Core结构框图

CCD驱动逻辑的作用是为CCD芯片提供正确的驱动信号。CCD芯片需要的驱动信号有SH(转移脉冲)、φ(时钟脉冲)、RS(复位脉冲)、CP(钳位脉冲)、SP(采样保持脉冲)等,CCD芯片的输出信号有OS(主信号输出)、DOS(补偿信号输出)等。图五为本设计采用的CCD芯片TCD1209D的时序图。CCD Driver Logic的作用就是产生图五所示时序,且时钟频率可变。(由Register File中的CCD Driver Clock Speed Control Register值决定。)

图五 CCD芯片TCD1209D的时序图

    ADC控制逻辑的作用是控制ADCCCD信号输出端获取模拟信号的幅度值,ADC控制逻辑必须与CCD驱动逻辑正确配合才能准确地获取每一个象素的值,这也是把CCD驱动逻辑和ADC控制逻辑做在同一个IP Core中的原因。

       由于该IP Core作为Nios II的一个外设挂在Avalon总线上,所以必须具备Avalon总线从接口逻辑。Avalon总线从接口结构和时序如图六所示。Avalon总线从接口逻辑实现了Avalon总线从接口的普通模式、延时传送模式和流传输模式三种传输模式的时序。


图六
Avalon总线从接口示意图和时序图

    该IP Core中的Register File结构如表一所示:

Register Name

Abbreviation

Description

Status Register

ST

状态寄存器

CCD Driver Clock Speed Control Register

DCSCR

CCD驱动时钟速率设置

FIFO A Interrupt Value

FAIV

FIFO A达到该值时发出中断信号

FIFO B Interrupt Value

FBIV

FIFO B达到该值时发出中断信号

表一 该IP Core中的Register File结构

Status Register决定了该IP Core的基本工作该状态和参数,例如:启动/停止Driver Clock和ADC,中断引脚是否有效,FIFO是否有效等;CCD Driver Clock Speed Control Register的值决定了CCD驱动信号的速度;FIFO A/B Interrupt Value的值决定了FIFO在深度为何值时向Nios II发中断信号。之所以用两个FIFO是为了做A-B-A乒乓操作,加快数据传递速度。

4.       Nios II软核处理器系统的软硬件设计

4.1   Nios II软核处理器系统的的定制

Nios II系统的设计从Nios II软核处理器系统的定制开始。Nios II软核处理器的定制包括Nios II CPU类型的选择,指令缓存、数据缓存容量的确定,各外设参数的确定,各外设基地址、中断号的确定等。

在定制Nios II软核处理器系统前,首先要分析系统要求实现的功能和要达到的性能,然后根据分析的结果确定要使用哪些IP Core,各IP Core怎样选择参数。

要构成Nios II的最小系统,必须要有Nios II CPU、Flash Memory、SRAM或SDRAM。本系统选择了Nios  II Fast型CPU,4K指令缓存、2K数据缓存以及Level 2量级的JTAG Debug Module和Avalon总线IP Core,SST39VF1601 Flash Memory以及HY57V641620HG SDRAM 和相应的SDRAM控制IP Core。为了加快数据传输的速度和灵活性,我们采用了以太网传输数据。以太网协议芯片采用了LAN91C111,该芯片含有MAC和PHY部分的网络协议,具备三总线结构,Nios II IDE提供了该芯片的控制IP Core。由于Flash Memory、SDRAM和LAN91C111位于片外,所以还必须加入三态桥IP Core。CCD芯片的驱动和ADC控制使用自定义的CCD Driver & ADC Controller IP Core。在人机界面方面,还需要UART IP CoreGPIO IP Core和LCD Controller IP Core。

图七是本系统Nios II软核处理器定制的框图。其中CCD Driver & ADC Controller IP Core为用户自己设计的IP Core,其余都是SOPC Builder自带的IP Core。定制完成后,在Quartus II SOPC Builder中生成Nios II CPU模块,同时生成系统和各个外设的HAL系统库。


图七 Nios II软核处理器定制的框图

4.2   HAL系统库简介与设计

硬件抽象层HAL(Hardware Abstraction Layer)位于设备驱动程序和用户应用程序之间,为与硬件通信的应用程序提供设备驱动接口。HAL应用程序接口(API)是与ANSI C标准库综合在一起的,它可以使用户用类似C语言的库函数来访问硬件设备或文件。这样做的好处是对应用程序屏蔽了底层硬件细节,软件工程师可以不关心底层硬件结构而着眼于软件的设计。

HAL系统库可以为用户提供下列支持:

l         ANSI C合成的标准库——提供类似C语言的标准库函数;

l         设备驱动——提供访问系统中每个设备的驱动程序;

l         HAL API——提供标准的接口程序,如访问设备、中断处理等;

l         系统初始化——在main()之前执行对处理器的初始化;

l         设备初始化——在main()之前执行对系统中外围设备的初始化。

图八为HAL所处的系统层次。

图八 软件系统层次图

Nios II处理器和Nios II IDE 自带的IP Core的HAL系统库是在生成Nios II硬件系统的同时生成的。每一次对硬件结构的改动后,Nios II IDE都将自动对HAL系统库作相应修改,从而使用户应用程序可以不作任何改动即可应用到新的硬件平台上,增加了软件的移植性。但是用户自定义的IP Core的HAL系统库必须由用户自己设计。在本设计中,我们自己设计了CCD Driver & ADC Controller IP CoreHAL系统库,提供了运行状态设置、中断状态设置、FIFO状态设置、时钟速率设置等API函数,应用程序通过调用这些函数实现对硬件的操作。

4.3   用户软件设计

本设计的软件系统包括系统初始化部分、数据采集部分、数据处理部分、数据传输部分以及人机界面部分。为了方便协调各个部分的工作和数据交换以及数据的网络传输,本系统使用了MicroC/OS-II多任务实时操作系统和相应的TCP/IP协议栈。

4.3.1  系统初始化部分

该部分主要是对Nios II CPU的各个寄存器和外设初始化。由Nios II IDE自动生成的部件的初始化代码包含在相应的HAL系统库中,而用户自定义IP Core的初始化代码由用户自己编写。本系统CCD Driver & ADC Controller IP Core的初始化包括中断状态设置、FIFO状态设置等内容。

4.3.2       数据采集部分

该部分的作用是把ADC的转换结果读到内存中等待处理。实现该功能只需要调用CCD Driver & ADC Controller IP Core HAL读取ADC转换结果的API函数ReadADCResult()即可

4.3.3       数据处理部分

该部分是整个软件的核心。采集到的数据先经过滤波处理,滤除高频噪音,得到光滑的曲线;然后从该曲线中寻找需要的信息,根据应用场合的不同,这一步有可能用到差分、比较、滤波等数字信号处理中常用的方法。

4.3.4       数据传输部分

该部分是软件系统的另一个重要组成部分。应用程序借助MicroC/OS-II提供的TCP/IP协议栈,通过LAN91C111的HAL API完成数据的网络传输。传输的数据是经过处理得到的结果。当测得的曲线较复杂,数据处理部分无法得到满意的结果时,还要将原始数据通过网络传送到PC机上继续处理。同时,系统的各个参数也可以通过网络由PC机设置。

4.3.5       人机界面部分

该部分软件完成测量结果的实时显示和系统参数的输入。LCD和键盘分别在Nios II IDE中被定义为系统的标准输入和输出设备,对它们的操作只需要调用printf()、scanf()等标准C语言库函数即可。

5.      结论

本设计在Altera Cyclone系列FPGA中以不到5000个逻辑单元的代价获得了性能超过70M DMIPS的Nios II处理器,系统可稳定运行在100MHz主频上。如果运用Altera Stratix或Stratix II系列FPGA,系统性能还能有进一步提高,但是成本较高。

本设计适合高速运动物体或微小物体的尺寸测量,目前已成功运用在无人机螺旋桨转动过程中自身抖动参数的测量中,并可多机组网工作。

Nios II软核处理器仍在不断发展中。2005年4月29日,Altera发布了最新的Nios II 5.0。Nios II 5.0将集成更多的IP Core并支持MMU(内存管理器)和DDR内存,这使WinCE等需要MMU的操作系统在Nios II上的移植成为可能。在今后一段时间内,Nios II在概念上和性能上都将继续在SOPC领域处于领先地位,使用软核处理器和IP Core进行设计将是今后电子设计发展的趋势。

 

参考文献

www.altera.com The Nios II Processor Reference Handbook

www.altera.com The Nios II Software Developer's Handbook

www.altera.com Nios II Hardware Development Tutorial

www.altera.com Nios II Software Development Tutorial

www.altera.com Using the MicroC/OS-II RTOS with the Nios II Processor Tutorial

www.altera.com Using Lightweight IP with the Nios II Processor Tutorial

任爱锋 初秀琴常存等,Embedded System Design Based on FPGA/基于FPGA的嵌入式系统设计,西安电子科技大学

文章录入:rouder    责任编辑:rouder 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    SOPC技术在电力机车改造中的…
    基于SOPC技术的核信息远程采…
    把SOPC Builder用于非Nios系…
    SOPC自定义模块的添加和接口…
    NiosII开发常见问题
    应用SoPC Builder开发电子系…
    nios ii的 中断
    nios flash read/write
    sopc Flash Programmer,nios…
    基于μClinux的SoPC应用系统…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)