在EDK开发套件的XPS集成开发环境下进行系统硬件设计。在其界面环境下,添加IP核,进行系统连接和各项参数设置。由于系统中包含的硬件算法模块不是标准模块,因此工程需要设置成子模块方式,利用平台产生器,根据硬件描述文件(.MHS文件),生成嵌入式系统子模块的网表文件(.NGC)。然后在ISE设计环境下,从外部通过GPIO端口与硬件算法模块相连,从而构成整个应用系统的硬件模型。
在EDK中,每一个外设IP模块都有自己的软件函数库。利用Libgen工具,将所需外设函数数库的头文件添加进工程中,通过调用这些函数可以操作和控制这些外设。例如对串口的操作如下:
//初始化串口,设置波特率等参数,清空发送和接收缓冲,禁止中断;
XuartLite_Initialize(&UART,XPAR_MYUARTLITE_DEVICE_ID);
//发送接收数据
XuartLite_Send(&UART,&send_data,1);XUartLite_Recv(&UART,&recv_data,1);
使用标准C语言进行应用程序的开发,编写相应的算法软件,完成系统功能。软件流程如图9所示。
将编写的程序代码利用mb-gcc编译工具,根据系统的软件一并,生成.ELF文件。在编译链接之前,若选择调试方式,就会在生成文件中加入调试接口SMDstub,进行程序的硬件调试。
利用系统的硬件模型以及RAM块的组织结构文件、ELF文件和用户结束文件,应用FPGA综合实现工具(如Xilinx XST)进行综合,然后下载生成的配置BIT文件
到目标板上。利用EDK中提供的GDB调试工具可以进行程序调试。有两种调试方法:软件仿真和硬件调试。软件仿真可以进行程序的功能调试,在开发工具内部就可以进行,不需要硬件支持。硬件调试就是通过JTAG接口或串口(可在硬件设计时选择),连接到目标板上的应用系统中的XMD调试接口,将软件程序下载到系统中进行调试。本课题使用的目标板上的主芯片为Xilinx Spartan IIE 30万门的FPGA,系统时钟为50MHz。实际运行完全满足设计要求。
结语
采用FPGA和MicroBlaze进行嵌入式系统设计,实现了多片专用芯片的功能,大大缩小了接收机体积,便于系统实现小型化、集成化。捕获及跳频同步等算法采用硬件实现,加快了捕获跟踪速度。实验结果表明,FPGA系统设计是正确可行的。如果在系统中配置大容量的SDRAM,加入以太网或USB等高速通信接口,将实时操作系统运行于处理器上,就可以构建一个较为完善的,基于FPGA的嵌入式系统。这将在网络、通信、消费类产品等多方面有着广阔的应用前景。