1 / 35

综合课程设计课题

综合课程设计课题. —— DDS 直接数字合成信号源. Yj.xu@263.net. 技术指标要求. 产生信号类型: 正弦波、方波、三角波。 输出信号频率范围: 1 Hz~20KHz 步进1 Hz 频率偏移小于5% 输出信号幅度范围: 0.1 V~5V, 步进0.1 V, 幅度误差小于10%。. 工作要求. 硬件部分 要求用 MCU 和 FPGA 来实现 软件部分 FPGA 要求用原理图或 VHDL 设计实现 MCU 要求用 C51 实现。 设计时要充分考虑系统的可兼容性及可扩展性。. DDS 系统概述.

Download Presentation

综合课程设计课题

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 综合课程设计课题 ——DDS直接数字合成信号源

  2. Yj.xu@263.net

  3. 技术指标要求 • 产生信号类型: 正弦波、方波、三角波。 • 输出信号频率范围: 1Hz~20KHz步进1Hz频率偏移小于5% • 输出信号幅度范围: 0.1V~5V,步进0.1V,幅度误差小于10%。

  4. 工作要求 • 硬件部分 要求用MCU和FPGA来实现 • 软件部分FPGA要求用原理图或VHDL设计实现MCU要求用C51实现。 • 设计时要充分考虑系统的可兼容性及可扩展性。

  5. DDS系统概述 DDS技术一般都是以数字控制振荡器NCO(Numerically Controlled Oscillator)为核心,来产生频率可调的sin正弦波的波形的数字量表示的幅值。这些数字量表示的波形幅值再通过一个DAC(Digital-Analog Converter),得到正弦波的模拟量波形。它是在时域中进行频率合成,从而能够对输出频率进行快速而且精确的控制,并且这种控制全部都是数字控制,因此可以提供非常高的频率精度。

  6. DDS工作原理 奈奎斯特抽样定理: 任意一个频率带宽为F的连续信号f(t),d都可以用一系列离散取样值f(t), f(t+T), f(t+2T)….. f(t+nT)来表示。 只要取样点的时间间隔T小于1/2F,表示就是完整的,包含了连续信号f(t)的全部信息

  7. 相位取样地址 离散相位的幅度序列 ROM 量化的正弦波幅值 DDS工作原理 d c b a

  8. DDS工作原理 对于一个连续的正弦波信号,其角频率ω可以用相位斜率Δφ/Δt表示。当角频率ω为定值时,其相位斜率Δφ/Δt也是一个确定值。此时,正弦波信号的相位与时间成线性关系,即φ=t

  9. DDS工作原理 参考时钟 相位 累加器 LUT 或幅度 转换算法 DAC 平滑 调整字 设定输出频率 … 累加相位值查找表地址 输出波形幅值

  10. 相位累加器 在标准频率参考源地控制下(频率控制字K决定了相应的相位增量),相位累加器则不断地对该相位增量进行线性累加,当相位累加器积满量时就会产生一次溢出,从而完成一个周期性的动作,这个动作周期即是DDS合成信号的一个频率周期。 N位加法器 N位相位寄存器 频率控制字 输出序列

  11. 参数选择原理 DDS技术在本质上,是实现了一个数字分频器的功能,它的频率精度是由相位累加器或者是频率控制字M的比特数决定的,即输入的参考频率除以2M就决定了DDS所能够实现的频率精度。输出信号波形的频率及频率分辨率可以表示如下: fout=Mfc/2N fmin=fc/2N fout为输出信号频率; fmin为输出信号分辨率;M为频率控制字;N为相位累加器字长;fc为标准参考频率源工作频率

  12. 结论 • DDS输出信号的频率主要取决于频率控制字M • 相位累加器字长N决定DDS的频率分辨率 • 当M增大时,fout可以不断地提高,但根据采样定理,最高输出频率不得大于fc/2 • 工作输出频率达40%fc时,输出波形的相位抖动就很大 • 实际工作时输出频率小于fc/3较为合适。

  13. 设计方案一 采用专用波形发生器ICL8038和数字电位器 ICL8038是一种单片多种信号发生器,它内部的自激振荡器发生方波和三角波,波形变换电路把三角波转换成正弦波,改变振荡器的占空比,从而把方波转变为脉冲波,三角波转变为锯齿波。其中测频电路测出ICL8038的输出频率,控制数字电位器,从而改变ICL8038的参考电压,控制输出频率值直到与输入频率相等。此方案采用了专用波形发生电路,三角波的非线性度不大于0.1%,正弦波的失真度小于1%,工作频率可为0.001Hz~300KHz,可以满足频率范围的要求,但是步长1Hz要求要求数字电位器有足够的抽头,而且不能编辑生成三种波形的线性组合。故不适宜采用此种方案。

  14. 设计方案二 采用传统的直接频率合成技术 这种方案能实现快速频率变换,具有低相位噪声以及所有方案中最高的工作频率。但由于采用大量的倍分频、混频和滤波环节,导致其结构复杂、体积庞大、成本高,且容易产生过多的杂散分量。故此方案也不适于在本次设计中采用。

  15. 设计方案三 用单片机实现的DDFS直接数字频率合成 利用单片机实现逻辑控制和累加器,用存储器存储波形的量化数据,单片机按照不同频率要求以频率控制字的步进对相位增量进行累加,以累加值作为地址码去读取存储器相应地址单元里的量化数据,经D/A转换和幅值控制,再通过低通滤波器可得所需波形。此方案系统简单,但受单片机运算速度的影响,频率无法做高,同时易受干扰

  16. 设计方案四 用FPGA实现的DDFS直接数字频率合成 利用可编程逻辑器件FPGA实现复杂的逻辑控制,用存储器存储波形的量化数据,FPGA按照不同频率要求以频率控制字的步进对相位增量进行累加,以累加值作为地址码去读取存储器相应地址单元里的量化数据,经D/A转换和幅值控制,再通过低通滤波器可得所需波形。

  17. 系统原理框图

  18. 键盘控制单元 由于系统要求功能较多,若不加处理的利用单片机P1口扩展键盘,则很有可能出现键盘满足不了显示要求的情况,因此必须有效的利用键盘。而且实验板本身在其设计中,当RAM及D/A被使用时,K0~KF键盘均被禁用,所以设计中,我们采用了实验底板上一个已经与单片机的P1口相连的4×4的小键盘,通过输入的数字长度、范围和确认键来区别发送的信息。同时利用延时来解决键盘消抖动问题。

  19. 数码显示单元 采用了五个共阴极数码管作为显示单元。因为当RAM和D/A被使用时,所有LED灯均被禁用。由于实验底板上已用三片GAL22V10D完成了所有数码管的译码功能,所以设计中不需要对数码管另行做译码的工作。而当RAM被使用时,显示方式为4位2进制数控制显示数据、3位2进制数控制显示位数的扫描显示。采用高速时钟进行扫描显示

  20. 波形存储单元 采用实验箱自带的随机存储器RAM62256来存储正弦波形数据,它的存储空间是32K。可以采用全波存储、半波存储或1/4波存储。 采用半波存储时存储从最低点幅值数据’00’开始到最高点幅值数据’FF’的半个周期的波形数据,在读取数据时,顺序读完这半个周期后继续反相读取下个半周的数据值,这样合起来就是一整个周期的波形

  21. D/A及外围电路 TLC7528是双路、8位分辨率的数字-模拟转换器。该D/A转换器工作频率较高,在5V电源下工作时其建立时间只有100nS,传输延时时间是80nS,完全可以满足本次设计的要求,其控制信号主要包括:片选CS,低电平有效;D/A选择端DACA/DACB,低电平位DACA,高电平位DACB;数据写入使能WR,低电平有效。通道A作为整个波形的输出,通道B的输出作为A通道的基准电平,这样可以实现输出波形幅度的数字控制。在实际电路连接时,将7528的20脚OUTB与4脚VREF A相连,VREFB接+5V,这样就可以实现所需要的功能了。

  22. 系统总线 在实验箱上是单片机的P0口和P2口与FPGA、D/A及RAM均连接在一起,必须采取措施防止在系统运行时出现的总线冲突。。可采用P3.0口对总线进行控制,P3.1口选择D/A的通道。

  23. 相位累加器参数设定 相位累加器的位数定为20位。输入频率采用实验板上标准晶振,频率为11.0592MHz,根据任务书上最小频率分辨率为1Hz的要求,则 11.0592MHz/(div*2N)=1Hz 其中div为将11.0592MHz的时钟分频的数值,N为相位累加器的位数。当div=12,N=20时 11.0592MHz/(div*2N)=0.8789Hz 用相位累加器的高15位作为RAM的地址线

  24. FPGA部分原理框图 系统时钟 相位分频器 显示分频器 总线仲裁器 单 片 机 接 口 RAM地址 累加值 相位累加器 单 片 机 显示值 动态显示 RAM数据 控制电路 RAM,D/A控制信号

  25. 控制寄存器定义

  26. 分频模块 将输入的时钟频率进行分频,根据系统方案中的计算,实验板上的clk1设定为11.06MHz,将其进行12分频得到相位累加器的时钟phaseclk,频率为921.6KHz;将11.06MHz的时钟500分频得到数码管扫描时钟display。

  27. 锁存单片机低位地址模块 将单片机写操作时的低位地址进行锁存。在单片机中的p0口是地址数据复用口,在读写操作时需要有一个8位的地址锁存器根据ALE信号进行锁存操作,当mcu_ale为的下降沿时将port0引脚的数据送到寄存器low_address

  28. 单片机写FPGA内寄存器模块 8051系列单片机的寻址范围是216,因此根据系统方案中地址的分配,把波形参数以及显示数据写入FPGA内各个寄存器。mcu_wr触发该进程,当mcu_wr为下降沿时,如果port2_7和bus_ctrl都为'1',根据low_address的低3位地址进行写入操作,也就是地址为'8000h'时,port0引脚上的数据给m0寄存器,m0存储显示数据的高位,以此类推'8007h'时port0引脚上的数据给m7。

  29. 相位累加器模块 这是整个dds系统的核心,由phaseclk或者bus_ctrl触发。触发后,如果bus_ctrl为'1',phase_add赋值'0',否则在phaseclk的上升沿,进行phase_add=phase_add+dphase的加法操作

  30. 数码管扫描显示模块 由segclk触发,在segclk的上升沿,信号ssegport进行累加操作,当达到'100'时就赋值'000'。segport的输出值就是ssegport,这样在segclk的上升沿segport轮流扫描5个数码管。同时根据ssegport的值将m0到m4中的值分别送到segnum引脚上。

  31. 其他信号处理 port1引脚始终置为高阻态,确保单片机p1口上的键盘电路不受影响。 port0引脚在改变DA的B通道的值,即输入引脚mcu_sel_da='1'时,输出m7,即经过换算的幅度值数据;其他时候始终置为高阻态。 ram_rd信号在总线控制权由FPGA掌握而且DA的通道为A,即bus_ctrl='0'和mcu_sel_da='0'时,输出'0',即ram保持在读状态;其他时候始终与单片机的rd信号相连,即输出mcu_rd的值。

  32. 其他信号处理 ram_wr信号在总线控制权由FPGA掌握,即bus_ctrl=‘0’时,输出‘1’,即ram写禁止;其他时候始终与单片机的rd信号相连, DA_sel信号一直输出mcu_sel_da的值,mcu_sel_da与单片机的p3.1口控制,'0'代表选择A通道。

  33. 初始化正弦波 • 直接用单片机计算32768个点的正弦幅度值,涉及的多次浮点运算,初始化时间很长。 • DA是8位的,所以每个幅度值也是8位的,共有256个不同的幅度值 • ram中存储的是余弦函数从π到2π的幅度值 • 将每个幅度值的个数记下。根据余弦函数的对称性,幅度为255的点的个数和幅度为0的点的个数是相同的,因此将幅度0到127的点的个数分别存储到一个step[128]的数组中,这个数组位于程序存储器中。初始化余弦函数的波形的时候就可以直接根据step[128]向ram中写数据

  34. 键盘定义 合法的键盘输入只有5种: • 5个数字键加’A’键,用来设定频率。当设定频率超过20000Hz,认为无效,不改变原先的频率。 • 2个数字键加’B’键,用来设定信号幅度。当设定幅度超过5V,认为无效,不改变原先的幅度。 • 1个数字键加’C’键,用来设定输出信号类型。0、1、2分别指正弦波、三角波、方波。其他数字无效 • 1个数字键加’D’键,用来设定方波的占空比。 • 任何时候输入’E’键,都表示清除前面的所有输入,回到原来的状态。

More Related