基于SoPC/NIOS II的信号发生器设计与实现
扫描二维码
随时随地手机看文章
摘 要: 运用基于NIOS II嵌入式处理器的SoPC技术,设计了一个任意信号发生器,不仅可以输出正弦波、方波、三角波和锯齿波等常见波形,且各波形的频率和幅度可调,可根据用户需要进行现场编程,具有控制灵活、输出频率稳定、准确、波形质量好和输出频率范围宽等优点。
关键词: 可编程片上系统; NIOSⅡ; 直接数字频率合成; 信号发生器
信号发生器是各种测试和实验过程中不可缺少的仪器,在通信、测量、雷达、控制、教学、科研等领域应用十分广泛。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求。传统的信号发生器大多采用专用芯片或单片机或模拟电路,具有成本高、控制方式不灵活或波形种类较少等缺点。
本文采用直接数字合成(DDS)技术[1],通过基于 NIOSⅡ的SoPC系统实现一个任意波形发生器。DDS技术是一种新颖的频率合成技术,具有易于程控、相位连续、输出频率稳定度高、频率转换速度快和分辨率高等优点。SoPC(System on a Programmable Chip)[2-3]技术是美国Altrea公司于2000年最早提出的,并同时推出了相应的开发软件Quartus II及硬件平台FPGA(Field-Programmable Gate Array)芯片。SoPC是基于FPGA解决方案的SoC,SoPC的设计是以IP为基础、以硬件描述语言VHDL为主要设计手段、借助于以计算机为平台的EDA工具进行的,具有灵活的设计方式和软硬件在系统可编程的功能。本设计通过Altera公司的FPGA芯片和NIOSⅡ嵌入式系统实现SoPC。
1 系统总体方案设计
本设计实现一个基于SoPC的任意波形发生器, 其输出频率范围为10 Hz~1 MHz,频率分辨率为1Hz,输出电压幅值范围为 0~5 V,步进间隔为0.1 V,输出信号的频率和电压值可通过键盘进行设置,可实时显示输出信号的类型、幅度、频率和频率步进值。
片上系统在Altera CycloneⅡ系列的 EP2C8Q208C8 FPGA上实现,构建了一个基于NIOSⅡ的SoPC系统,完成系统控制和DDS信号发生,通过PS/2鼠标键盘设定波形的种类、任意频率和任意幅度的信号输出,最后通过外部电路将片上系统数字输出转换为模拟输出、放大、滤波和幅度控制,系统框图如图1所示。
2 片上系统设计
片上系统为一个基于NIOSⅡ的SoPC系统,由四部分组成:NIOS Ⅱ模块、DDS模块、PLL模块和片上RAM 模块。
2.1 NIOS Ⅱ模块
本模块提供主控CPU部分,NIOS II模块通过在SoPC Builder[2]中调用IP库组件实现,由Quartus软件定制,需加入SDRAM、LCD、RS232等控制器。利用SDRAM配合FPGA构成片上系统,建立NIOS控制系统,完成任务调度及人机交互控制。对DDS部分的控制由PIO口完成,均为输出口,包括频率控制字输出口、波形选择输出口、幅度控制输出口。本设计中,由于NIOSⅡ CPU主要负责UART串口的数据传输和简单的I/O接口控制,所以选用经济型NIOSⅡ/e 内核,以达到节省资源的目的,NIOS II CPU顶层原理图如图2所示。