这几天一直在用前段时间做的FPGA开发板调试DDS频率扫描及电子开关控制程序,今天总算取得阶段性成果,功能基本都已实现。主要功能有如下几条:
1、频率扫描配置:电脑通过串口给FPGA输入指令和起始及终止频率数据,在DDS输出即可得到相应频段的频率扫描,程序中我设置的是0.5S扫描一个频点,配置指令为:
ff(频率扫描指令)+ 起始频率(MHz)+ 起始频率( 100K10K)+ 终止频率 (MHz)+ 终止频率(100K10K) + 步长(步长有10K,20K,50K,100K规格)
比如:ff 4f 20 5e 30 0a (指令中数字都为16进制)
就是频率从79.32MHz扫描到94.48MHz,步长为100K
在扫描过程中,为了在电脑中实时观测到当前扫到了什么频点,FPGA会实时的通过 串口向PC发送当前频点的值。
如果起始频点和终止频点相同,则该指令即变为单频点配置指令
2、电子开关控制:每个电子开关都是二选一的形式,由FPGA控制每个电子开关当前打到哪一边,指令也是PC机通过串口传达,指令格式为:
cc(电子开关控制指令) + 电子开关数据
在配置完后,FPGA会回复一个0a的值,已表明现在的电子开关已经接受了指令的数据
下面是整个程序的RTL图,程序主要分几个大模块:
clk_gen:产生9600波特率
data_tx:实时的发送当前频点给PC
uart:接收PC指令,并分析每条指令的含义,根据这些指令产生相应的操作
dds_rom:根据指令中频率的数据产生DDS配置数据,并传给DDS