4.2嵌入模块
4.2.1触发核模块
触发核主要决定什么时候采集数据,什么时候完成对数据的采集。在本设计中,触发条件分上升沿触发、下降沿触发、高电平触发和低电平触发四种。区分这 4种触发信息至少要用到连续两个时钟的数据,因此每级触发条件有两个条件判断字,触发核通过两次比较判断是否触发。触发核是硬件核,由组合电路和触发器组成。
4.2.2 PLL模块
在对数字信号进行采样时,需要的时钟频率至少应是数字信号波特率的 5倍。Cyclone器件的嵌入式数字 PLL要求外部输入 CLK信号昀低频率不能低于 20MHz,可通过分频的方式得到低频 CLK,通过倍频的方式得到高频 CLK,也可通过倍频和分频组合得到特殊的输出频率,本设计采用 25倍频和 2分频,使昀高时钟频率达 250MHz。
4.2.3数据存储模块
由于软核在工作时也是在执行指令,运行速度不快,不能完成对高速数字信号的采集。为此,本设计在 FPGA芯片中嵌入了 FIFO,作为数据的缓存。所采集的数据,首先存入 FIFO存储器中,这个过程全部通过硬件完成,每个采样时钟周期可完成一次数据的写入操作。当 FIFO中数据写满时,存储器将通知软核读取数据,软核完成数据的处理、显示和传输等操作。
由于 Cyclone器件中 FIFO的容量不大,若采用固定的采用时钟,当输入数字信号的波特率较低时,FIFO存储的数据可能还不到一个码元宽度的数据,从而无法在 LCD上显示其波形。因此,本设计采用了程控调整采样速率,从而保证了无论是低波特率信号还是高波特率信号,系统都能正确采样和显示波形。
4.3软核设计软核作为设计的控制核心具有重要作用,为了完成对 8路数据触发模式的设置,以及与
PC机通信,在用 SOPC Builder软件定制软核时,为其加入了 UART接口和若干位输入输出端口,这些端口也实现了通过键盘对各路数据触发方式和其它各参数的设置。
4.4软件设计
本设计编程语言采用的是 C++,软件流程包括参数设置、触发判断、数据采集、分析与通信、图形显示五个方面,主程序流程如图 5所示。