tag 标签: max10

相关博文
  • 热度 4
    2019-4-21 20:27
    3274 次阅读|
    1 个评论
    基于Intel(Altera)MAX10系列FPGA的设计案例描述概要
    基于Intel(Altera)MAX10系列FPGA的设计案例描述概要 书接前回,不知大家是否还记得 2015 年公历最后一天,熊猫君给大家推荐了 Altera (当时的 Altera 还是 Altera )的 MAX10 系列 FPGA 呢?三年后的今天,熊猫君想继续展开聊聊,分享分享这三年里实施过的或看到别人实施过的基于 MAX10 系列 FPGA 的应用方案,当然啦,这些应用还是主要集中在控制类、接口类领域,毕竟能力和定位在那里。 案例一:工业相机系统 对一部分工业相机而言,前端最多的是实现 Sensor 采集(或许还有一些简单预处理)和传输,算法应用处理大多在计算机上,一般的方案架构如下: 图 1 部分工业相机的架构图 ( 1 )如图 1 所示,核心是个 FPGA (需要做预处理的可能会挂一片 SRAM 或者 DDR ),主要担负 Sensor 的配置与数据采集、与工控机的控制交互和图像数据上传等工作; ( 2 ) Sensor 通常分辨率不会太大,也有可能是 Mono 的,也有可能帧率较高,输出接口则是五花八门,有可能是 LVDS 、 Hispi 、 BT601/656/1120 等等各种;配置总线接口则基本是 SPI 或 IIC; 通过 FPGA 逻辑实现数据接收和配置总线接口; ( 3 )控制接口与计算机交互控制命令或状态,控制命令有可能是设置相机、同步触发等,物理层可能通过 RS-232/422/485 或者 CAN 总线等;通过 FPGA IP 资源实现控制接口; ( 4 )这里的数据接口输出相机前端系统的数据到工业相机,物理层常用的有 a)USB3.0 ,通常采用 Cypress 的转接桥片, FPGA 实现一个并行存储总线逻辑; b )以太网,一般会用 UDP 传输,要求高一些的会走一些握手协议, GigE Vision 目前用的比较多,会利用 FPGA IP 资源来实现(当然 GigE Vison IP 并不免费,有人选择花钱买第三方的,也有公司选择自主开发) ; c)CameraLink, 这个大家都熟悉,工业相机用了好些年了; ( 5 )有一些简单预处理的,会选择挂 SRAM 或 DDR 来缓存,做一些类似于几何拼接、坏点校正、简单的降噪、增强或者 Gamma 之类的(有的用到 18*18 乘法器,看具体算法); 实际上这里选哪家的 FPGA 并没有什么特殊的优势或者门槛,有用 Xilinx 或 Altera Cyclon 的,也有用 Lattice 的。我这里想说的是,这几年用 MAX10 的越来越多了。大家或许是基于下面的一些原因考虑的吧: ( 1 )性价比因素:比 Xilinx 的便宜得多,就算是 MAX10 系列的器件和 Lattice 同规模的相比较价格也在同一个水平上,但是用起来会更方便、 IP 资源也多、社区生态也更丰富; ( 2 )单电源 3.3V 或者双电源( 2.5V 和 1.2V )供电:这样能极大的简化电源方案,如果选用单电源 3.3V 的,基本上只要一个电轨就够了; ( 3 )内置 Flash :无需再外接程序或数据存储的 Flash ; ( 4 )汽车认证: AEC-Q100 认证,这对有些应用来说很重要。 综合来讲,用 MAX10 系列器件能够大幅的减少电路尺寸、节省 BOM 成本,但是也有一些缺点,主要集中在单电源供电的器件发热稍大、部分器件的交期较长。 案例二:电源控制 在复杂的系统中往往有多个处理器或处理单元、模组,对掉电、上电和电源调节有特殊的要求,主要体现在时序和反馈调节上。在这里使用 CPLD 太弱、使用其它 FPGA 太费,熊猫君看到用得比较多的是单电源供电的 10M02 (或者 10M04 ,毕竟还是有一些逻辑需求在里面),封装一般用 M153 的( 8mm*8mm )。主要实现的功能如下: ( 1 )上电和掉电时序控制,这个简单, GPIO 输出个高低电平 OK ; ( 2 )反馈调节:用片上的 SAR ADC 采样电压或者电流数据,通过 SMBUS 对电源管理芯片进行实时调节 ( 也有用 DAC 调节电源 FB 基准的 ) ; ( 3 )风扇控制:采样温度、 PWM 调节风扇转速的; ( 4 )有的还会和处理器建立一个通信接口,一般是 SPI 或者 IIC 。 用起来特别方便,一个 3.3V 电源,一片 MAX10 芯片搞定一切,占的地方小,也便宜。 案例三、电机控制 电机控制这一块儿的应用有用作控制步进电机的,也有用在 BLDC ( FOC )控制上的。 ( 1 )步进电机:比较简单,就是一个根据输入命令信号生成相位脉冲,真的很简单,主要还是用 10M02 的器件; ( 2 )用作接口转接的:主要是在 BLDC ( FOC )控制中采样编码器之类反馈器件的值,编码器接口的协议众多, FPGA 采集到后经过滤波处理(有的用到 18 × 18 乘法器,看算法)通过总线送到主处理器如 TI 的 TMS320F28335/ TMS320F28069 之类的专用的电机控制 DSP 上。对较为复杂的如多机械关节的地方,接入的编码器路数可能还会比较多,这一块儿主要还是用 10M02 和 10M04 的器件较多。 案例四、图像接口 一个是体现在其它接口与 MIPI D-PHY 之间的转接上,监控和显示领域用得比较多,早期主要是用的 Lattice 的方案(基本上自己没法改动),现在也有一些用 MAX10 方案的: ( 1 )监控领域:主要是做 sensor 的采集到主处理器 MIPI 接口输入 ( 早几年 TI 的方案上也有转并口 BT1120 的 ) ,监控行业现在主要是和华为海思主处理器的 MIPI D-PHY CSI 接口对接; ( 2 )显示领域:主要是 MIPI D-PHY DSI 转 SDI (用第三方收发器芯片)、 HDMI 、 LVDS 用于中大型屏显示的。 这两种应用大多会用 10M25 和 10M40 双电源(单电源的 LVDS 工作速率要低)的器件。 二个是一些特殊的应用,比如说模拟输出的图像在前端又不能用较大面积电路的。如制冷型探测器的焦平面输出 AD 采样: ( 1 )传统的办法是分成 2 级或者 3 级: a )最前端是信号板,套在探测器的脖子上(业内人士清楚这种方式); b )中间是 AD 板(这一级也有可能没有,直接放到图像处理板上),主要进行 ADC 采样,离信号板的距离相对近(因模拟信号不适合远距离传输,即使转成差分的); c )图像板:接收 AD 板采样的信号(或者是板上本来就有 AD 采样电路)和红外图像处理。这样子带来的不利影响是模拟信号需要较长距离的线上传输,可能会带来干扰或衰减,影响图像质量(这对红外图像系统很重要);电路多且分散,也会对可靠性带来影响。 ( 2 )采用 MAX10 的方案,将低功耗 ADC 和信号板合并,实现模拟信号传输路径最优,转成 LVDS 数字信号抗干扰能增强。已知现有的主要是用 M153 封装( 8*8mm 面积)的那颗料。 另外还有一些其他接口的应用,比如说子母时钟系统,对时码输出有秒对齐要求的,会用它来做接口板输出串口、 1X9 或其他接口的时码。 总之呢, MAX10 的器件在性价比、资源和易用性上还是很有优势的。不过,就目前的国际形势来看,中国还是需要有且必须有自己的真正能够达到规模商用水平的 FPGA ,熊猫君期待那一天尽快到来。感兴趣的同行也可加入 QQ 群: 300148644 进行进一步的技术交流!
  • 热度 22
    2015-4-10 14:57
    1634 次阅读|
    0 个评论
     MAX10的非易失性是因为它把FPGA配置的Flsah做到了芯片里面,增加了安全性,减小了电路板面积,降低成本与功耗,而且逻辑单元在4000以上的Max10内部都含有两个配置闪存,今天我们就对这个新功能一探究竟!! 1.首先我们先建立第一个project image0 编译好之后设置好相应的I/O管脚,然后在Configuration中把Configuration mode设置成Dual Compressed Images,如下图所示     在项目中添加Altera Dual Boot IP,必须在工程中例化这个IP才能实现双映像配置。由于此IP接口是Avalon-MM的,需要先在Qsys中设置。     点Qsys,在IP Catalog中搜索Dual Boot IP,然后点击添加,配置此IP的时钟为50MHz (Odyssey Max 10板上晶振为50MHz),然后连线。     然后点击Generate HDL…然后点击Generate(我们给这个文件取名dualboot.qip)。     Dual Boot IP我们已经设置好了,我们需要在project中添加它。在quartus II 14.1菜单栏点击Assignments,点击Setting… 在Files中添加dualboot.qip 我们需在在顶层文件中例化一下dualboot IP OK,编译一下,在项目目录文件夹output_files下产生image0.sof 2.我们新建第二个 project   image1    操作方法跟image0的配置 ,最后在项目目录文件夹output_files下产生image1.sof 3. 在quartus II 14.1菜单栏点击File,点击Convert Programming Files… 点击Generate,他会叫image0.sof和image1.sof合成一个.pof文件,将此文件下载到Odyssey Max 10里。         双压缩映像模式中,可以使用BOOT_SEL 管脚来选择配置映像,在Odyssey Max 10评估套件中对应拨码开关DIP的第4位:ON状态加载第一个映像,OFF状态加载第二个映像。        镜像的切换不光需要设置BOOT_SEL 管脚的电平还需要断电(复位没试过,不知道可不可以)一下才会加载另一个镜像。
  • 热度 18
    2015-3-24 22:25
    1546 次阅读|
    0 个评论
    我们知道, Altera 公司通过不断的创新, MAX 10 这一代 FPGA 把大量的外围器件 ( 包括振荡器、时钟、模数转换器、温度传感器等 ) 集成芯片内部去了,例如下图所示的 12 位 SAR ADC 。本节将介绍相关的知识。 下图是相关手册上关于 ADC 的架构,另外它的物理特性也同样可以 参考官方的手册。 下面介绍如何使用 ADC 及对应的 IP 。 在 IP Catalog 里面搜索 adc ,双击打开。   设置好相应的参数,然不会在右上侧点击 block symbol ,了解一下信号功能位宽及方向。  
  • 热度 17
    2015-3-22 11:27
    1839 次阅读|
    1 个评论
    我们都知道,几年前,也就是传统统的 FPGA 应用场景是这样的: 一个庞大的 系统 ( 如电机控制或汽车娱乐系统 ) 主要由 32 位处理器、 FPGA 、电源模块以及大量的外部模拟器件构成, 32 位处理器作为主处理器, FPGA 做加速或者其他补充功能。但是随着工艺的进步, Altera 公司的不断创新,出现了把大量的外围器件 ( 包括振荡器、时钟、模数转换器、温度传感器等 ) 集成到 FPGA 中去, MAX 10 就是其中的创新成果,相应的过去系统的核心 32 位处理器也可以用 Altera 的软核处理器 Nios II 来替代,这能够让电路板面积减小 50% 。需要指出的是,集成到 FPGA 的模拟器件 ( 如 12 位 SAR ADC) ,其性能可以与单独的器件媲美,而集成到 FPGA 内部以后,不但减小了版级面积,还降低了物料成本,并片内系统监测和测量环境状态。 MAX 10 内部架构图   今天就在上面的技术背景之下给大家介绍如何使用片内的闪存( Flash ),首先新建工程,这个过程同之前的是相同的。 然后在 IP Catalog 里面搜索 flash ,双击打开 Altera On-Chip Flash 。 下图给出了 block symbol 。大家如果对 Nios II 比较了解的话,应该也会知道 Avalon 总线,下面的接口都是 Avalon 总线协议的。 然后生成对应的代码,其实就是个 black box ,不过这不影响你对他的使用。 剩下的就是正常的烧录和下载过程,如果你没有逻辑分析仪的话,你可以利用 Altera 公司的内嵌 Signal II 进行逻辑的分析。
  • 热度 15
    2015-3-16 22:06
    1368 次阅读|
    1 个评论
    最早接触 NiosII 的时候还是在大学四年级,想来算起来已经有 4-5 年了,那时候只觉得神奇,竟然 FPGA 中也可以 run 系统。后来,随着对 NiosII 的了解,对 FPGA 的了解,很多知识的学习,很多问题也就迎刃而解了。 在研究生毕业的时候基于 NIOSII 做了毕业设计,整体完成的功能还挺不错的,从电脑上搬运数据到 FPGA 上 进行压缩,然后将压缩后的数据再搬运回电脑上,如果你感兴趣的话,可以参考我之前的博客。 毕业之后就踏入了社会,正式工作了,虽然经常接触 Altera 的 FPGA ( 10 万的那种芯片),但是 NIOSII 却很少接触了。幸好,趁着这次 MAX10 的学习机会,重新回顾一下以前的知识,重新接触 NIOSII 。 这个工程是在 MAX10 搭建一个 NIOSII 系统,着重是点亮 LED ,这样的观赏性比较强。 新建 NIOS 工程的过程和步骤与之前的没有多大区别,大家有兴趣的话可以参考我之前的博客或者下载官方的文档,在此跳过不再赘述。 1、 产生 led 灯的硬件电路 2 、产生 nios ii 处理器 3 、系统结构 4 、软件编程 5 、烧录下载 Display 的信息 6 、演示