从MCU到FPGA:第1部分

发布者:CrystalSparkle最新更新时间:2018-05-17 来源: 21IC中国电子网关键字:MCU  FPGA  单芯片 手机看文章 扫描二维码
随时随地手机看文章

我是MCU的长期用户和狂热者,特别是对多功能低成本MCU上有着浓厚的兴趣,这种MCU模块能够通过单芯片实现优秀的通信能力。我做过很多有意思的小玩意,包括:MP3播放器、闹钟、无线地面湿度控制系统、宠物活动监视器、低功耗蓝牙姿态控制等。在这些小项目中,MCU实现信息的收集和传输,用起来十分方便。


最近,我接手一个项目,这个项目不仅要求我使用FPGA,而且还要求我使用功能更强大的ARM。这都是我从未接触过的领域。在这个系列博客中,我将介绍我是如何将自己现有的MCU知识和经验运用到FPGA中的。本文是系列博客的在第一篇,我将从FPGA的优点和缺点入手,并介绍Terasic DE10 Nano开发套件,以及IP核在FPGA设计中的作用。


关于FPGA


如果你开发的项目一直与MCU有关,你一定会发现MCU的学习曲线并不陡峭,所用的开发工具都可以轻易获得,开发和调试的过程简单,设计很容易上手。不过,你也会发现,MCU在处理复杂事务、运行速度和接口的多样性上是很有限的。我个人所经历的项目,由于功能既不复杂,也没有重要的处理需求,因此,一直以来MCU是很理想的选择。


FPGA是包含可编程逻辑元件(LE)的集成电路,其可编程单元已经内置在芯片中,功能十分灵活。


例如,他们可以通过编程作为加速器或RAM来提高系统性能,可以通过编程实现新的标准或算法,也可以根据需求添加各种通信接口,所有的这些都有助于降低系统成本并延长产品生命周期。但这种设计的缺点是学习曲线非常陡峭,对于MCU开发人员来说,在刚刚学习FPGA的时候,因IO端口和编码方式的变化,学习起来还是很困难的。对于MCU来说,在同一时刻,只能实现一个或一组IO的翻转,并且所有的IO只有一个电压标准。而FPGA的IO是并行处理的,并且不同bank的IO可以遵循不同电压标准。


幸运的是,我发现了Intel Cyclone V SoC DE10 Nano开发套件。英特尔Cyclone V SoC将FPGA与双核ARM Cortex A9结合,允许使用多种方式配置FPGA,开发套件包含显示和通信端口、按钮和开关、引脚映射和快速配置工具、JTAG调试器以及来自Terasic和Intel的文档说明和指南。


规划FPGA开发


在规划MCU开发的时候,我们首先确定需要哪些接口,如SPI,I2C,Wi-Fi等,然后根据MCU的电压,引脚数量,提供的通信接口,支持的库和价格作出MCU的选型。在使用FPGA的时候,所有的通信接口都是依靠编程来实现的,因此无需考虑通信接口的限制。其限制因素是逻辑单元的数量,因为所需要的端口,软核或存储器单元都是基于这些逻辑单元创建的。因此,需要做权衡的是,逻辑单元数目越大,FPGA的能力越强,其成本也越高。虽然FPGA通常具有较高的初始成本,但由于它们可以实现多个芯片组件的功能,并且还能够节省大量板上空间,所以综合来看其成本并不高。


我发现自己正处在一个关键时刻:我要如何确定我的设计需要多少逻辑单元?


答案是,这取决于对IP核的需求,IP核由协议、功能、代码以及外部模块执行的特定任务组成。几乎所有的FPGA都是由逻辑单元LE,寄存器和I / O bank组成。具体来说:

逻辑单元LE是可编程的,是FPGA内部的门阵列,每一个逻辑单元都具有一定数量的查找表,触发器和多路复用器。


寄存器是一组触发器,能够保存数据并实现诸如定时器等功能。


I / O bank是一组连接外部电路的输入/输出引脚。每个bank都有一个独立的电压标准,并且有电流大小的限制。


最初我并没有意识到IP核的重要性,因为我还没有领会到这样一个事实:IP核实现了一种能够代替物理设备的能力,这些设备包括MCU、通信控制器或者其他一些我会使用另一个芯片实现的东西。


如图1所示,Cyclone V 包含FPGA层和HPS层,在DE10 Nano上FPGA层主要用作低延迟的I/O扩展。所有这一切体现了FPGA的另一个设计特点:它可以在单个芯片上实现多个PCB板上芯片的功能,从而,使得后续的设计更加灵活。


图1:Terasic DE10 Nano Cyclone V FPGA和硬件处理器系统(HPS)的接口布局。


大部分低级I / O端口通过FPGA进行控制和连接,这就降低了CPU等待低级别I/O端口的时间,同时也允许数据在传递到HPS之前进行相应的处理或调整。


这是一种多么完美的设计,Cyclone V FPGA的接口可扩展,而且能够实现加速器的功能,这种设计架构提高了HPS层的处理能力。在这种情况下,正如图2所示,HDMI接口是非HPS本地接口,因此用作HDMI的MCU资源并不多。


图2:FPGA和HPS的接口布局


HDMI的输出在FPGA上运行,这降低CPU负载并添加了非本地接口;


存在一个OpenCV加速示例,这是为了体现两种类型处理器结合的优势;


Terasic已经实现了基本的通信功能范例,并且有一个预定义的引脚映射列表,该列表定义了电压和电流限制。


总的来说,我很喜欢FPGA,并且对它的扩展和加速功能十分感兴趣。不过,我也想知道他们到底有哪些局限性。他们能运行到高的频率?他们可以支持哪些协议?他们会消耗多少LE?总的来说,IDE比我用过的其他软件更简单,并且包含了令人惊叹的文档。硬件似乎非常强大,现在我正在设计一个项目,这个项目能够测试板上的硬件限制。

关键字:MCU  FPGA  单芯片 引用地址:从MCU到FPGA:第1部分

上一篇:整体贸易谈判进展关乎高通和恩智浦交易审批进展
下一篇:从MCU到FPGA:第2部分

推荐阅读最新更新时间:2024-05-03 02:53

基于DSP的USB口数据采集分析系统设计
随着DSP芯片功能越来越强,速度越来越快,性价比的不断提高以及开发工具的日趋完善,广泛用于通信、雷达、声纳、遥感、生物医学、机器人、控制、精密机械、语音和图像处理等领域。作为计算机接口之一的USB(Universal Serial Bus)口具有势插拔、速度快(包括低、中、高模式)和外设容量大(理论上可挂接127个设备)的特性,使其成为PC机的外围设备扩展中应用日益广泛的接口标准。本文设计并实现了基于DSP的USB口数据采集分析系统,该系统的DSP负责数据的采集和运算处理,处理结果通过USB口送计算机显示分析,其结构如图1所示。   该结构图中,CPLD和FPGA实现模块接口,包括串并转换、8位和32位数据总线间的转换
[嵌入式]
51单片机自动凉衣服源程序电路图与实物图
电路原理图如下: 制作出来的实物图如下: 单片机源程序如下: #include REGX51.H #include intrins.h #include math.h #include stdio.h #define uchar unsigned char #define uint unsigned int sbit DATA=P1^0; sbit MOTOR_A_1=P2^5; //电机控制脚 sbit MOTOR_A_2=P2^6; //电机控制脚 sbit EN_MOTOR_A =P2^7; //电机控制脚 sbit k1=P3^2; //按键 sbit k2
[单片机]
51<font color='red'>单片机</font>自动凉衣服源程序电路图与实物图
关于51单片机C编程 return语句的使用
案例: 函数写法1: u8 is_timeout(tick start_time, tick interval) { return (get_diff_tick(get_tick(), start_time) interval); } 函数写法2: u8 is_timeout(tick start_time, tick interval) { u8 status; status = get_diff_tick(get_tick(), start_time) interval); return status; } 函数调用方式: if (is_ti
[单片机]
PIC12F675单片机实现直流电机的控制
当前小型要求不太高的调速装置,如晒图机,用可控硅相位控制,供给直流电机。还使用双基极管,以产生脉冲。用一片单片机取代上述控制现在成为可能。生产中不用调试,增加许多功能,如零位起动(去掉了外部硬件连锁)、可选速度上升时间等功能。使系统操作维修方便,运行可靠。 直接电机控制电路示于图1。PIC12F675 有6个I/O,现用4个。设定GP1为A/D输入,作为速度给定口,现用电位器0—5V输入。设零中断输入口,接到产生过零脉冲A定GP2为电压过处。设定GP3和GP5为一般I/O,GP3为开停机输入口,接到开关上。GP5为脉冲输出口,经电阻接到触发三极管基极上。 触发的控制方法:在全波整流器输出端,电容滤波前,用三极管取出过零脉冲。G
[单片机]
PIC12F675<font color='red'>单片机</font>实现直流电机的控制
赛普拉斯为开发者提供新型感应解决方案,适用于含金属材
易于使用的PSoC®4700 MCU顺应了工业、汽车和消费类应用中更多采用金属材料的趋势。 加利福尼亚州圣何塞,2018年4月23日 —嵌入式解决方案的领导者赛普拉斯半导体公司(纳斯达克股票代码:CY)今日发布了使用电感式感应技术检测金属表面产品触摸动作的PSoC® 4700系列微控制器(MCU)。消费、工业和汽车类产品正通过使用金属材料提高产品外观的吸引力,从而实现产品的差异化。全新的赛普拉斯PSoC® 4700系列产品采用了电感式感应技术,与赛普拉斯业界领先的CapSense®电容感应解决方案一样易于使用,从而使开发人员可以自由地使用各种金属材料。PSoC 4700系列可帮助开发人员解决电容和电感式感应问题,是现代先进工业
[工业控制]
8051单片机的I2C接口并行扩展及接口设计
1 前 言 I2C总线接口器件在视频处理、移动通信等领域的应用已经非常普遍。另外,通用的I2C总线接口器件,如带I2C总线的RAM,ROM,A/D,D/A,LCD驱动器等,也越来越多地应用于计算机及自动控制系统中。随着I2C接口器件越来越广泛的应用,8051系列单片机与他之间的通信越来越频繁。 8051系列单片机与I2C总线接口器件通信时,8051的通用口与I2C总线器件的SCL,SDA连接。根据I2C 总线数据传输协议,8051必须对其两个通用口进行频繁的置位、清零。根据基于51指令系统编制的汇编程序,传送一位数据,需要9个机器周期,而对于 8051,一个机器周期要耗费6个时钟周期,即用54个时钟周期才能传送一位
[单片机]
8051<font color='red'>单片机</font>的I2C接口并行扩展及接口设计
基于单片机的通用示波器存储功能扩展设计
摘要:由于通用示波器没有存储功能,因而在单脉冲信号的捕捉和测量中受到极大的限制。介绍一种利用SPCE061A型16位单片机给通用示波器嵌入存储功能的原理。实验证明此设计在一定频率范围内是可行的,而且成本较低,具有一定的实用价值。 关键词:示波器;SPCE061A;单片机;存储器;设计 中图分类号:TM935.3 文献标识码:A 文章编号:1006-6977(2006)01-0051-03 1 引言 目前,通用二踪示波器如HH4310A/HH4311A、RS8等均无存储功能,在学生实验中能满足信号测量的要求,但若用于测量一些非周期单脉冲信号,由于信号的突发性,这些通用的示波器往往不能对信号的波形、幅值、脉宽进行仔细的观测
[应用]
51单片机控制SL811HS的USB主机底层驱动
引言 基于USB接口的设备使用方便,性价比高,因此在人们的工作和生活中得到了广泛的应用,如U盘,移动硬盘,光驱,USB摄像头,USB鼠标键盘等,同时,51系列单片机以其成熟的技术和高性价比吸引了大量国内用户,被广泛应用于测控和自动化领域,因此,如果在51单片机系统中增加USB主机接口,实现对USB从机设备的控制,则该单片机系统可以充分利用现有的各种USB从机设备,大大扩展单片机系统功能。 本设计实现了在51单片机系统中增加USB主机功能,采用普通51单片机外接专用USB接口芯片的方案,这种方案虽然会使系统传输速度受到限制,而且在稳定性有所欠缺,但此方案设计灵活性高,且易于移植,为低成本产品的开发提供了广阔前景,设计中采用51单
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved