首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的多路正弦波信号发生器专用芯片设计
来源:本站整理  作者:佚名  2010-05-10 12:25:58




2.4 DDS模块
    DDS模块也是Opencores上的开源IP软核,没有标准的Wishbone接口模块,本设计为DDS模块添加了1个Wishbone总线接口。该DDS模块主要有两类配置数据:频率控制字和相位控制字。给DDS模块加入2个硬件寄存器DDS_FTW和DDS_PHASE,利用这2个寄存器来控制连接到Wishbone总线接口上的输出数据是频率控制字还是相位控制字。
2.5 UART控制器模块
    UART控制器模块是Opencores上符合工业标准16550A的开源IP核。该IP核的设计采用Wishbone总线接口规范,支持可选择的32位数据模式和8位数据模式;使用FIFO操作实现,寄存器及所实现的具体功能符合NS16550A标准[4]。在本设计中,UART控制器的波特率默认值为9 600 b/s,UART控制器模块用于与专用芯片外部UART串口通信,通过URXD引脚接收外部串口数据,通过UTXD向外部串口发送数据。
2.6 Wishbone总线主从设备分配
    Wishbone总线仲裁采用Opencores上开源软核wb_conmax,为8×16结构,即在该Wishbone总线模块中可以使用8个主设备和16个从设备[5]。本系统中,OR1200的指令和数据单元为Wishbone总线的主设备;片内RAM模块、URAT控制器模块以及3个DDS模块为Wishbone总线的从设备。
    根据各子模块在Wishbone总线上的位置和wb_conmax的逻辑实现,相应从设备的地址分配如下:
    片内RAM   :  0x00000000
    DDS1        :  0x10000000
    DDS2        :  0x20000000
    DDS3        :  0x30000000
    UART        :  0x90000000
2.7 顶层模块设计
    本系统顶层模块例化各子模块,采用Wishbone总线接口技术将各个子模块集成在一起,为每个子模块分配时钟和复位信号,实现硬件平台的总体设计。设计中所用FPGA开发板的时钟为50 MHz,OR1200处理器时钟为25 MHz,Wishbone总线时钟为25 MHz,3个DDS模块时钟为100 MHz。其他模块的时钟都为25 MHz,设计中所用时钟都是通过FPGA芯片中的PLL分频及倍频实现的。正弦波专用芯片的时钟设为各模块时钟的最小值(25 MHz),3个DDS模块的100 MHz时钟通过PLL倍频实现。各模块的复位信号由顶层模块统一分配。
3 专用芯片固化程序设计
    正弦波信号发生器专用芯片的固化程序主要包括UART控制器初始化程序和串口数据处理程序两部分:UART控制器初始化程序初始化UART控制器中的各个寄存器,使该控制器能够正常工作。串口数据处理程序采用查询方式接收串口数据,将接收到的数据赋给相应寄存器变量,根据式(1)和式(2)进行计算,得到3路DDS模块的频率控制字和相位控制字,其固化程序流程图如图3所示。固化程序首先初始化OR1200处理器的各个寄存器,然后对UART控制器进行初始化,最后循环处理串口数据。

3.1 UART控制器初始化程序
    UART控制器中的寄存器都是8位或16位,通过对UART控制器的寄存器赋值来初始化UART控制器。上电复位后UART控制器的初始化工作包括:
    (1)清空接收和发送FIFO。
    (2)清零接收和发送移位寄存器。
    (3)关闭中断。
    (4)设置Line控制寄存器为8个数据位、1个停止位、无奇偶校验的通信模式。
    (5)读取Line控制寄存器的值,将其最高位置1,允许Divisor锁存器存取;通过设置Divisor锁存器的值设置波特率为9 600 b/s;将LCR赋回原值。
3.2 串口数据处理程序
    正弦波信号发生器专用芯片从外部串口接收到的数据分为3类:相位、频率选择信号,相位或频率值,3路正弦波选择信号。固化程序定义了1个32位的数据寄存器变量和1个8位状态寄存器变量。串口数据处理程序采用查询方式接收串口数据,接收到的前4个数据进行相应转换后赋给数据寄存器变量,第5个数据放入状态寄存器变量中,作为相位信号、频率选择信号和3路正弦波选择信号。若为相位信号,则将数据寄存器变量中的数据与0x3ff相“与”,然后根据式(2)得到相位控制字;若为频率信号,则根据式(1)得到频率控制字。最后根据这个信号将数据寄存器变量中的值送入相应的DDS模块硬件寄存器中(DDS_FTW和DDS_PHASE)。
    在FPGA上实现了一个多路正弦波信号发生器专用芯片的设计。本设计在友晶公司的DE2-70开发板上进行了验证,使用开发板上3路10位视频数字信号转模拟信号的控制芯片ADV7123作为D/A转换芯片,最后得到3路频率相位可调的正弦波信号。该正弦波信号发生器专用芯片通过串口控制,而未来的设计中可以扩展数字按键控制或者触摸屏控制,不使用外部主控MCU也可以产生特定频率相位的正弦波信号。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:87,875.00000 毫秒