FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
登录
首页-所有问题-其他-正文

2026年,全国大学生电子设计竞赛(电赛)控制类题目,如果选择‘基于FPGA的视觉伺服平衡车’作为方案,在实现图像识别、PID控制与电机驱动时,如何合理划分软核(如Nios II)与硬件逻辑的任务以提升实时性?

单片机新手单片机新手
其他
2小时前
0
0
1
我们团队计划参加2026年电赛,初步想用FPGA(比如DE10-Nano这类带ARM硬核的SoC FPGA)做控制类题目,做一个能跟踪目标并保持平衡的视觉伺服小车。难点在于要同时处理摄像头图像(识别目标)、运行平衡PID算法、并控制电机。FPGA既有硬件逻辑的并行优势,又有软核可以跑复杂算法。请问在系统架构设计时,应该如何合理划分任务?比如图像预处理(色彩空间转换、边缘检测)用硬件逻辑,目标识别用软核?PID计算和电机PWM生成呢?如何设计软硬件之间的高效通信(如AXI总线)?目标是保证系统的实时性和稳定性。
单片机新手

单片机新手

这家伙真懒,几个字都不愿写!
93831.40K
分享:
2026年,工作1-2年的芯片测试工程师,每天重复执行测试程序,感觉技术成长遇到瓶颈,想向‘测试开发(Test Development)’或‘产品工程(Product Engineering)’方向转型,需要系统学习哪些新技能?上一篇
2026年,作为电子信息工程专业大三学生,想自学数字IC前端设计,但学校课程只教Verilog基础,如何找到合适的开源RISC-V SoC项目并实践从RTL到综合的完整流程?下一篇
回答列表总数:3
  • 嵌入式探索者

    嵌入式探索者

    分享点实战经验,别光谈理论。首先,目标识别如果只是跟踪个色块,完全可以用硬件逻辑搞定!做一个‘质心提取’模块,在二值化流水线后,实时统计每行每列的像素和,就能算出重心坐标,这比软核快得多,还省了软核算连通域的时间。这样软核压力小很多,只负责读坐标和跑PID。PID计算放软核没问题,方便调参。但有个坑:如果平衡车姿态解算(用IMU)算法复杂(比如互补滤波),也放软核的话,可能周期跟不上。可以考虑用硬件逻辑做一个简单的角度解算加速器,或者干脆用硬核ARM跑(如果SoC有的话)。电机驱动PWM和编码器解码必须硬件,这个没商量。通信上,一定要用双端口RAM或FIFO作为数据交换区,而不是傻傻地用寄存器一个个传。比如,硬件预处理模块把每帧算出的目标坐标写入一个小的双口RAM,软核周期性地去读。反之,软核算出的PWM值也写入另一个RAM,硬件PWM生成模块直接读取。这样效率高,耦合度低。最后提醒,2026年电赛题目不确定,但视觉伺服平衡车这个方案复杂度高,一定要提前把硬件流水线和软核框架搭好,比赛时主要调参数和算法逻辑。

    37分钟前
  • 逻辑电路新手

    逻辑电路新手

    从保证实时性的角度,我画个简单的任务划分图给你参考。硬件逻辑部分(Verilog/VHDL实现):1. 摄像头接口(如DVP或MIPI)采集,直接进FIFO。2. 图像预处理流水线:包括去噪、色彩转换、阈值分割。3. 电机PWM生成模块(多路),接收来自总线的占空比指令。4. 编码器计数模块,实时读取电机转速并存储到寄存器。软核部分(C程序):1. 目标识别算法:从硬件预处理后的二值化图像缓冲区(比如SDRAM里划一块)读取数据,进行轮廓分析,计算目标中心坐标。2. 平衡与跟踪PID控制器:输入是编码器数据(来自硬件寄存器)、目标坐标、IMU数据(如果IMU接在软核的I2C上),计算输出PWM占空比,写入硬件寄存器。3. 上层逻辑和人机交互(比如按键、显示)。划分的关键是看时间尺度。图像预处理是像素级操作(纳秒/微秒级),必须硬件并行。PID控制周期在毫秒级,软核来得及算。但电机PWM是微秒级精确波形,必须硬件保证。通信用AXI4-Lite管理寄存器和AXI4-Stream传图像数据流。注意,软核和硬件逻辑之间共享的数据结构要简单,比如用坐标值、状态标志,别传整张图。

    37分钟前
  • 嵌入式开发小白

    嵌入式开发小白

    我们去年电赛做过类似的东西,当时用的也是带ARM硬核的FPGA。核心思路就是:把对实时性要求最高的、最规整的流水线操作扔到硬件逻辑里,把复杂的、需要灵活调整的算法扔到软核。具体到你这个方案,图像采集、色彩空间转换(比如RGB转HSV或灰度)、二值化、Sobel边缘检测这些预处理,一定要用硬件逻辑实现,做成流水线,一帧图像进来,几个时钟周期后结果就出来了,这是软核根本比不了的。目标识别(比如找色块轮廓、算质心)可以用软核,因为算法可能比较复杂(比如要用到连通域标记),而且比赛期间可能需要调参数。PID计算也放软核,因为PID参数需要在线整定,用C语言写调试方便。但电机PWM生成必须用硬件逻辑!用计数器生成精确的PWM波形,软核发个占空比指令就行。通信的话,DE10-Nano的ARM和FPGA逻辑之间用AXI-Lite总线就够了,设置几个寄存器:比如软核把目标坐标、角度偏差写入寄存器,硬件逻辑的PID模块读取;硬件逻辑把预处理后的二值化图像数据通过DMA放到片上内存,软核去读取。记住,图像原始数据不要走软核,会堵死的。

    37分钟前
我要回答answer.notCanPublish
回答被采纳奖励100个积分
FPGA线上课程平台|最全栈的FPGA学习平台|FPGA工程师认证培训
请先登录