和处理大多数MCU项目时一样,我打算从示例代码开始,然后通过各种示例搭建自己的项目。但是对于每一个例子,我发现越来越不熟悉,并且结果也越来越混乱。在这里代码被用来定义对象和调用函数,这在MCU里倒是很常见,但是有些定义是在高阶函数里进行的,而其他的则是在另一个地方。像往常一样,这些函数被用来执行一个功能或任务,但有一些函数要依赖于其他函数而另一些函数则是独立的。正如我试图对它们发表评论时所发现的那样,那些没有被直接调用的代码仍然是代码功能的关键。
我很迷糊。
我决定在YouTube上搜索“Intel FPGA Setup Cyclone V”来寻找示例和“Setup&Go”培训。当我浏览这些内容时,我发现一个共同的主题(图1):
看似不连贯的一组命令仍然有效,但似乎并不完整。
缺乏不支持FPGA的外部模块或组件。
有了这些观察,我回顾了更多设计样本和代码,并发现了英特尔Cyclone V和HPS FPGA架构显著的优势。
图1显示了HDMI命令集,其中包括一系列未被调用的代码。它们不是按顺序运行的,而是并行运行的。它们的功能很像回调函数,在HPS中如果有来自较高级别控制器的数据调用时,这些回调函数就会被激活。然后编译器就会提高向MCU传递信息的能力,反之亦然。在这两者之间需要做的就是协调定义和时间安排。
图1:HDMI命令集,其中包括一系列未被调用的代码。
项目流程如下所示:
1、Linux HPS抓取图像。
2、Linux将OpenCV处理过程移交给FPGA。
3、Linux调整图像。
4、FPGA接收原始图像信息,并将其编码为HDMI接口。
这是使用HPS和FPGA的完美示例。FPGA能够处理大量重复的运算并实现协议,而Linux和MCU则处理了程序的动态元素。这让我看到了FPGA的优势。
当我深入研究仅含有MCU的设计时,我发现了FPGA的其他优点:它需要很少的元件,而且可以使成本更低,性能更好的MCU获得非常好的效果。例如,仅含MCU的设计将需要更高的A52等条件来进行图像处理,此外还需要一个GPU来进行图形加速处理和更多的RAM来完成整个设计。设计完成后,最终结果仍然是一个锁定的,有限的可升级模块。有了FPGA,这些组件便可以被引入同一个芯片,所以产品级PCB设计更为简单,因为它需要较少的的组件接口,而且由此产生的模块仍然可以升级或优化。
我头顶上的灯泡在几英里外都可能被看到。
将多功能集成到单个电路上,减少接口数量,或者根据线路修改功能等这些都是FPGA的优势,但它的好处远不止这些。FPGA改变了我为了高效完成任务而增加外部组件的方式:不是“按顺序执行步骤1,步骤2,步骤3”,现在我正在考虑这样完成任务:“执行步骤A,B,C,并且当执行完B之后,就执行D”。现在,为什么要花时间来研究MCU到FPGA开发转换的原因也已变得越来越明晰了。
关键字:MCU FPGA HDMI
引用地址:
从MCU到FPGA:第3部分
推荐阅读最新更新时间:2024-05-03 02:53
51单片机开发中数码管显示与应用
#include reg52.h sbit dula=P2^6;//申明U1寄存器的锁存端,P2^6是段锁 sbit wela=P2^7;//申明U2,P2^7是挝凰? main() { wela=1; //打开U2锁存端 P0=0xfe;//送入位选信号 wela=0;//关闭U2锁存器 dula=1;//段锁 P0=0x5e;//0x06代表1 dula=0; while(1); } wela代表段选。 wela控制哪几个二数码管亮 dula 代表位选,控制数码管亮哪些?后者负责显示0~F中的十六进制中的任意字符 综合来说,控制段选是由一串二进制数字控制的,1111 1110,转化为十六进制为0
[单片机]
决定ARM内核MCU性能和功耗主要因素浅析
继ARM推出Cortex-M0+内核后,其32位MCU内核增加到了4个。不久前,恩智浦也宣布取得了Cortex-M0+处理器授权,成为目前唯一一家能够提供完整的Cor tex-M0、Cortex-M0+、Cortex-M3和Cor tex-M4系列内核MCU的半导体厂商。飞思卡尔在今年3月份也已经推出了基于ARM Cortex-M0+的MCU Kinetis L系列。 在ARM内核对MCU统一化进程的同时,各个厂商要怎样才能使得各自的产品与众不同、性能突出呢?恩智浦半导体的Jan JaapBezemer(全球微控制器产品线总监)表示,除了内核外,还有别的资源也能体现差异化,比如内存、数字/模拟IP等。Bezemer说:“有些IP
[单片机]
基于STC89C58RD+单片机和SC1128实现智能系统的设计
电力网是每个家庭都要用到的物理网络,现有的电力线基本功能是传输电力。利用现有的电力线实现数据通信 , 而无需增加额外的通信线路,可以大大节约建设成本。本文所介绍的智能系统只需将本系统中不同功能的通信模块和电源电路像墙壁插座一样嵌入墙壁,接入市电,即可实现本智能家居系统。 1 系统总体设计 系统总体设计框图如图1所示。 整个系统由不同的智能模块组成,智能模块由电源电路、SC1128收发电路及外围电路组成。每个智能模块对应一个不同的地址,以免执行不属于本模块的命令。地址可由一个自定义的红外遥控器设置。 2 智能模块硬件电路 硬件电路分为电源、SC1128收发电路及外围电路、功能电路3部分。 2.1 电源硬件 电源硬件模块示意图
[单片机]
Altera发布8.1版Quartus II
Altera日前发布了Quartus II软件8.1版,据内部基准测试,其编译时间比其它竞争FPGA供货商的开发软件都快三倍以上。Altera声称,Quartus II软件的强化特性,将使设计团队减少功耗及研发成本,快速将产品快速推向市场。 8.1版Quartus II软件新增了SignalTap II嵌入式逻辑分析器——具备更精细的数据取样控制,加速了除错过程,提高了芯片内存储器效率。增强的SOPC Builder工具拥有全新HDL模板,可提升速度,并方便SOPC Builder硅智财(IP)重用。而新的Avalon内存映像半速率桥接功能,实现了DDR SDRAM低延迟存取。 8.1版软件可支持新操作系统,
[嵌入式]
51单片机——LED流水灯
一、查表法实现流水灯 查看开发板的原理图,知道了控制LED2~LED7的端口为P0口,所以可以通过对P0口赋值控制发光二极管的亮灭。比如,用十六进制表示P0的值,P0=0xfe,即LED2发光,其他LED熄灭。要实现流水灯的话,让发光二极管从LED2到LED7顺序发光就可以了,也就是说,P0口的值依次为0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,简简单单。 而查表法就是把P0口要表示的值做成数组,再利用'code'将其存入ROM中,使用时,让P0口等于数组中的某个值。 程序如下: #include reg52.h sbit ADDR0=P1^0; sb
[单片机]
汇编的51单片机的跑马灯
话不多说,先上程序 ORG 0000H MAIN:MOV P1,#0O LCALL DELAY MOV A,#0FEH SETB C TO: MOV P1,A LCALL DELAY LCALL DELAY RLC A JC TO MOV P1,A LCALL DELAY LCALL DELAY TO1: RRC A MOV P1,A LCALL DELAY LCALL DELAY JC TO1 AJMP TO DELAY:MOV R2,#0FEH TC1:MOV R3,#0FEH TC2:DJNZ R3,TC2 DJNZ R2,TC1 RET END 这个程序的目的是使8个LED循环点亮,还有一个状态是都不亮,我的LED是搭在P
[单片机]
采用STM32F100VBT6的32位MCU开发析方案设计
STM32F100VBT6采用ARM Cortex™-M3 32位RISC内核,工作频率24MHz,集成了高速嵌入式存储器(闪存高达128kB、SRAM高达8kB)以及各种增强外设和连接到两条APB总线的I/O。所有器件提供两个I2C、两个SPI、一个HDMI CEC和多达3个USART标致通信接口以及一个12位ADC、两个12位DAC和六个通用16位定时器和PWM定时器。主要用在控制和用户接口、医疗设备、PC和游戏机外设、GPS平台、工业应用、PLC、逆变器、打印机、视频通信和HVAC等。 图1 STM32F100xx系列方框图 STM32F100xx简介 低/中密度、基于ARM的高级32位MCU,带有16 kB ~128kB
[单片机]
AVR单片机中未用的I/O口设置
如果有引脚未被使用,建议给这些引脚赋予一个确定电平。虽然在深层休眠模式下大多数数字输入被禁用,但还是需要避免因引脚没有确定的电平而造成悬空引脚在其它数字输入使能模式( 复位、工作模式、空闲模式) 消耗电流。 最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。但要注意的是复位时 上拉电阻将被禁用。如果复位时的功耗也有严格要求则建议使用外部上拉或下拉电阻。不推荐直接将未用引脚与VCC 或GND 连接,因为这样可能会在引脚偶然作为输出时出现冲击电流。
[单片机]