不久前使用FPGA设计了一个自动控制系统,我的首篇博客记录下该工作的主要思路。
使用的FPGA开发板提供了可编程逻辑(PL)端和信号处理系统(PS)端,分别执行硬件和软件编辑功能,其基本架构如图所示。双通道ADC和DAC直接通过扩展槽与开发板相连,执行数据输入输出,在PL端完成底层计算,并通过直接内存获取(DMA)将PL端数据(ADC data、DAC data)送入PS端,最终转换为数据直接输出(mini DP)及串口控制指令输出(RS 485)。PL与PS端分别基于Vivado和Vitis进行开发。
工程环境的设计参考了Alinx提供的《DMA使用之ADC示波器》、《PL端RS485测试》两个工程。首先在Vivado平台完成了硬件部分,设计好的框架如图所示,输入端口主要是ADC/DAC数据、串口接收端及采样时钟,输出端口为串口发送端及使能端。这样即打通了硬件与软件交互的桥梁,使得软件编程成为可能。
在Vitis平台上使用C语言完成后续软件功能的设计,依功能需求开发了三核CPU,一个用于完成ADC/DAC数据的直接输出,通过外接显示屏展示,