网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: AnalogCN安诺电子 >> 文章 >> 技术交流 >> 文章正文
  [组图]基于Blackfin DSP的函数_任意波发生器的实现         ★★★ 【字体:
基于Blackfin DSP的函数_任意波发生器的实现
作者:陈畅 游宇…    文章来源:微计算机信息    点击数:    更新时间:2007-12-19    

摘 要:本文介绍了函数\任意波发生器的组成及工作原理。给出了基于ADI公司的ADSPBF531芯片的系统硬件及软件实现方案,该设计能够满足客户目前及未来测试需求的多用途解决方案。实现结果表明该设计方案合理、可靠,并具有十分方便的用户可操作性。
关键词:函数\任意波发生器;DSP;ADSPBF531;直接数字合成;VisualDSP++ 4.0 内核。

1引言

函数\任意波发生器被广泛应用在科研、教学、工程等领域,用以产生各种信号波形,以适应用户在各种场合的需求方案。

目前,国内的函数\信号发生器的品种在国际市场上均为低端产品,除了信号的性能指标方面的原因之外,就是在系统的整体性、用户的可操作性、远程访问等功能上不及国外产品考虑得周详。虽然实现的功能大同小异,但是更加人性化的设计,使得国外的同类产品更具优势。

为了弥补国内产品在这方面的缺陷,我们开发出的这款函数\信号发生器除了实现基本的波形输出、波形编辑等功能之外,更是注重了图形用户界面的设计,以及远程internet访问功能。新的用户图形界面使得用户能够比以往更加容易生成、编辑波形。而远程访问功能可以让用户在远程终端操作仪器。除此之外,为了更大程度上方便用户,我们还设计了一套文件管理系统,以允许用户存储、读取设置的波形。

2 系统工作原理

我们设计的这款函数\任意波发生器是采用直接数字合成(DDS)的信号生成技术。使用直接数字合成(DDS)信号生成方法可以非常容易地创建或复制各种复杂的波形。

如图1所示,所需波形的数字数据流是从波形存储器SRAM中按顺序读取,作为数模转换器(DAC) 的输入。DAC 的时钟频率设定为200 MHz (即信号发生器的采样频率)。DAC的输出端将输出一系列近似于所需波形的电压阶梯波,然后使用低通“防混叠”滤波器进行滤波,使得电压阶梯波变得更加平滑,接近于所需波形。

图1 直接数字合成(DDS)信号生成原理图

3 系统硬件设计

3.1系统硬件组成及工作过程

该系统通过中断响应用户的键盘按键信息,或者远程的按键信息,结合用户图形界面(GUI)当前的显示状态,DSP处理器决定当前用户需要的波形的各种参数,包括:波形形状(比如正弦波、方波、或者用户自行定义的波形)、波形频率、波形幅度、波形的调制状态(比如调幅AM、调频FM、调相PM)等等以及其他的依据具体波形的波形参数。这些参数由DSP处理器送到FPGA中进行波形配置、并产生波形周期点存于SRAM中。FPGA根据配置的波形对SRAM送到DAC的数据进行控制,对DAC进行幅度控制,从而输出各种需要的波形,再经滤波器滤波,得到用户需要的波形。

图2 系统硬件电路框图

3.2 DSP处理器

我们采用ADI公司的Blackfin531芯片做为系统的处理器。16位定点DSP内核,可以实现400MHz的持续工作;4GB统一寻址空间。

3.3 人机界面

人机界面包括键盘、液晶显示。

键盘包括六个波形形状选择键,六个模式键,五个菜单选项建,以及触发键和波形输出键、旋钮键。用户通过键盘可以选择载波的波形,决定波形的调制方式,通过菜单选项建以及旋钮设置波形参数。还可以查看随机帮助,设置系统参数,进行波形存储等操作。

320x240的256色彩色液晶显示屏能够显示丰富多彩的波形图案、波形参数,以及文件管理器的界面。在很大程度上方便了用户。我们用一个CPLD来驱动液晶显示屏。CPLD接收从DSP送过来的时钟信号,并将此时钟信号分频成帧同步信号、行同步信号,并负责同步这些信号。每一个时钟的上升沿,从SDRAM的特定显示缓存中读取8bits的数据到液晶显示屏的缓存。而每个帧信号的下降沿标示一帧的开始,一帧信号周期中包含240个行信号。每个行信号的周期中包含320/8 = 40 个时钟信号。如此,一幅图像就可以从SDRAM的缓存中写入到液晶显示屏的缓存中,并显示出来了。

3.4 FPGA波形配置

DSP将载波波形形状、波形频率、幅度、偏移量、占空比、调制方式、调制周期、调制深度等波形参数通过SPI口,传给FPGA。FPGA通过这些参数来生成SRAM中的波形周期点。并根据波形的频率设置来控制SRAM中的波形点的输出。当频率高的时候,FPGA对SRAM的地址扫描要快;频率低的时候,访问SRAM的地址的速率就低。如果是调频波,那么访问SRAM的地址的速率将会随调制波形而改变。

对于幅度的变化,包括载波幅度设置以及调幅波形,FPGA将控制振幅DAC、衰减器、放大器,来实现对波形幅度的改变,其原理如下图所示。

图3 幅度控制原理图

3.5 LAN

网卡接口芯片采用性价比较高的全双工的DM9000,10M\100M自适应。可配置为8位DMA方式进行数据传输,与DSP接口方便。

3.6 USB Host

我们采用的ISP1362芯片(带USB 主、从),符合USB1.1 规范;支持全速USB数据传输。其与DSP之间通过异步通信传递命令与数据,从而可以对U盘进行读取、存储。

4 软件设计

DSP中的软件是基于VisualDSP++ 4.0 Kernel (VDK) 操作系统设计的。VDK支持多线程的任务管理调度机制。

这样我们将项目主要划分成几个任务模块,将这些不同的任务模块分别放入不同的线程中。各个线程之间通过信号进行沟通、交互以及同步。

我们主要划分了以下任务模块:

A.操作平台(operation platform)或者状态机(SSM)

操作平台,也可称为是系统的状态机,是系统的核心部分。它通过中断?接受外来的信息,包括仪器的按键信息、远程指令等。通过分析当前的输入请求,结合目前所处的状态,来决定下一步仪器应该进入的状态,并改变各个任务线程运行时所需要的全局系统变量,并最终决定任务的调度以及线程的启动。该任务模块放于系统状态机线程中(SSM thread)。

B.  系统波形参数配置(FUNCTION)

该部分主要负责对用户输入的各种参数进行校验,校验通过后,进行波形参数的配置,并将这些参数送入到FPGA中。

同时,该部分还可完成系统的一些其他的非波形参数的配置。此模块放于功能执行线程中(FUNCTION thread)。

C.  用户图形界面显示(GUI)

根据状态机决定的显示模式,以及显示参数,组织要显示的内容,并最终将图形化的界面显示在液晶屏上。图形化的显示界面,可以让用户十分方便的在图形上修改各个波形参数,或者直接输入参数。该模块放于图形显示模块中(GUI thread)。

D. 远程命令解析

该任务模块对 SCPI 可编程仪器的标准命令进行解析,获取远程终端送来的指令,解析后,修改各种波形参数,或者替换成状态机能识别的指令,启动状态机,从而达到远程控制仪器的目的。此任务模块位于命令解析线程中(CmdParse thread)。

E.  远程登录访问

基于TCP/IP协议,接收从远程终端发来的数据按键指令,传给状态机,然后再把显示的图像数据送给远程终端。

当系统接收到键盘按键或者远程命令,将运行状态机(如果是远程命令还要先运行命令解析模块,然后运行状态机),状态机经过判断后,决定执行哪个任务模块,有可能状态机会同时启用图形显示模块(GUI thread)、系统波形参数配置模块(FUNCTION thread)以及远程登录访问模块 (LAN thread)。那么,这些模块线程的运行,将自动根据它们的优先等级,分先后执行。

软件流程如图4所示。

图4 程序流程图

5  结语

本文介绍了该函数\任意波发生器硬件实现的原理,并分析了在DSP处理器的VDK内核的基础上软件的任务、线程调度的设计与实现。测试表明,该系统不仅能够达到输出波形的指标,而且,具有功能强大的操作平台,能够支持复杂的用户图形界面,达到更加方便用户的目的。与同类产品相比,本系统性价比更高,使用更为方便,因此具有广阔的应用前景。

 

参考文献:

[1]VisualDSP++4.0 Kernal (VDK)User’s Guide , Analog Devices, Inc. 2005

[2]Blackfin系列DSP原理与系统设计 ,陈峰, 电子工业出版社, 2004

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

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    uclinux-2008R1-RC8(bf561)到
    基于DDS芯片AD9851的精密跳频
    DSP芯片外围电路典型设计
    放大器输入保护的利与弊
    隔离式电压/电流传感器1B21的
    仪表放大器:怎样构建与何时
    AD8369,10,7M 两级AD8369做1
    请教一个关于AD8310功耗的问
    差错和不足:ADI《仪表放大器
    Analog Devices Blackfin处理
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:AnalogCN安诺电子 湘ICP备06016315号