EDN China > 技术文章 > 嵌入式系统 > 参考设计 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) Chirp函数的Nios Ⅱ嵌入式实现

现代电子技术 董亮 汪敏 施硕彪 许春?? 2010年05月27日 ?? 收藏0

  0 引 言

  SoC(System on(2hip)是20世纪90年代提出的概念,它是将多个功能模块集成在一块硅片上,提高芯片的集成度并减少外设芯片的数量和相互之间在PCB上的连接,同时系统性能和功能都有很大的提高。随着FPGA芯片工艺的不断发展,设计人员在FPGA中嵌入软核处理器成为可能,Altera和Xilinx公司相继推出了SoPC(System on a Programmable Chip)的解决方案,它是指在FPGA内部嵌入包括(;PtJ在内得各种IP组成一个完整系统,在单片FPGA中实现一个完整地系统功能。与SoC相比,SoPC具有更高的灵活性,FPGA的可编程特性使之可以根据需要任意定制SoC系统;与ASIC相比,SoPC具有设计周期短,设计成本低的优势,同时开发难度也大大降低。由于电磁波在传输过程中,经过色散介质如不均匀的波导,高空电离层时会发生色散现象,Chirp函数在射电天文信号的消色散处理中发挥着重要的作用,研究在FPGA中实现Chirp函数是基于FPGA的射电宇宙信号处理的重要组成部分。

  l 系统总体设计

  图1为基于FPGA的射电宇宙信号处理框图。

基于FPGA的射电宇宙信号处理框图

  该设计是基于SoPC技术设计的Chirp函数信号发生器,该系统把微处理器模块和DDS模块集成到单片FPGA芯片内部,通过在嵌入式操作系统μC/OS-Ⅱ编写的程序,实时控制微处理器对DDS的控制字输出,DDS模块根据频率控制字的不同,输出不同的数字化正弦波。使之符合Chirp函数的时变频率特征。Chirp函数根据输出频率的递变规律一般分为两种:线性Chirp函数和非线性Chirp函数,以下是两种Chirp函数在频域上的表现图如图2,图3所示。

两种Chirp函数在频域上的表现图

  从图2,图3可以看出Chirp函数的频率输出与时间的f-t关系可以总结为:

  (1)对于线性Chirp函数

  在连续域时间域内有关系式:

公式

  式中:k为常数;f0为初始输出频率;t为连续时间。

  在离散时间域有关系式:

公式

  式中:k为常数;f0为初始输出频率;n为采样点。

  (2)对于非线性Chirp函数

  在连续域时间域内有关系式:

公式

  式中:f为非线性函数;f0为初始输出频率;t为连续时间。

  在离散时间域有关系式:?

公式

  式中:f为非线性函数;f0为初始输出频率;n为采样点。

  因此该Chirp信号源的功能是:在NiosⅡ中建立的微控制器;使用嵌入式操作系统μC/OS-Ⅱ建立对DDS频率控制字输出实时改变的任务;根据线性和非线性Chirp函数的特点控制字的输出根据需要线性或者非线性输出,并且在此设计中将该任务的优先级设置为最高。利用VHDL语言编写DDS模块,首先根据Matlab计算出需要的正弦数据,然后将这些数据存储于ROM中供DDS模块调用,并且通过微控制器中的Jtag_uart传输模块在编程监视窗口实时观测当前输入频率的大小,具体结构如图4所示。

具体结构

  2 DDS模块的设计

  数字式频率合成器(DDS)模块的工作原理是:将O~2π的正弦函数值分为N份,将各点的幅度值存入ROM中,再用一个相位累加器每次累加相位值ωT,得到当前的相位值,通过查找ROM得到当前的幅度值。其系统框如图5所示。

系统框图

  DDS的几个主要参数是:系统时钟频率,频率控制字长,频率分辨率,ROM单元数,ROM字长。该设计的DDS是32位的,时钟频率为50 MHz,频率控制字长为32位,ROM单元数为2的11次方,ROM字长为16位。而且有如下关系:

  频率分辨率=系统时钟频率/232;

  频率控制字(FTW)=f×232/T;

  其中:f为要合成的频率;T为系统时钟。

  DDS的工作过程为:每次时钟的上升沿到来时,相位累加器(32位)中的值累加上频率寄存器(32位)中的值,再利用累加器的高11位作为地址进行ROM查表,输出相应的幅值数字信号。

  如果是扫频工作,只需要根据一定的规律实时修改频率控制字,就可以达到扫频输出的目的。但是该系统的性能受到以下两个方面的制约:ROM单元数和ROM数值的有限字长。由于ROM大小的限制,ROM的单元地址位数一般都远小于相位累加器的位数,这样只能取相位累加器的高位作为ROM的地址进行查询,这就相当于引入了一个相位误差。而且ROM的有限字长,不能精确表示幅度值,相当于引入了一个量化误差。因此应根据系统的性能要求选择合理的ROM。为了解决ROM的受限问题,该设计采用ROM压缩技术。因为正弦函数存在对称和反转特性,即:

公式

  对于O~2兀的幅度值,可以只存储O~π/2的部分。这样原本需要的2的11次方个单元的ROM现在只需要2的9次方个单元的ROM就可以实现。在MatIab中产生16位512点的O~π/2正弦波数据的命令如下:

公式

  将Y数据依次存入Altera公司提供的Megawiz-ard宏单元实现的ROM中即可。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

SoPC? FPGA? Chirp?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈