利用FPGA平台解决接口的总线速度瓶颈

发布者:zdf1966最新更新时间:2011-05-27 来源: Control Engineering China关键字:FPGA  嵌入式  总线速度  CPLD 手机看文章 扫描二维码
随时随地手机看文章

  目前,嵌入式系统已经广泛应用于通信、消费类电子产品等许多领域。然而,在许多应用中,处理器的接口总线速度成为制约系统性能的瓶颈。本文将以嵌入式实时视频数据存储系统为例,说明如何利用FPGA作为嵌入式处理器的数据协处理器,利用CPLD进行主处理器与协处理器之间数据通信的方案来解决处理器接口总线速度对系统性能的影响。该方案对解决类似的问题具有一定的参考作用。

  1 系统组成

  如图l所示,系统主要由4部分组成:嵌入式处理器、CPLD、FPGA及视频图像压缩输入部分。

系统原理及框图

  (1)嵌入式处理器

  采用Sigma Design生产的双核结构的数字图像处理芯片EM8560。它内嵌ARM7 TDMI内核和一个MEPG RJSC解码引擎,支持许多音/视频解码标准,如VCD、DVD-Video、AC-3.AAC以及MP3;支持AVI.IS0 MPEG-4、DivX格式以及静态JPEG图像;内置8KB指令Cache和8KB数据Cache及8KB SRAM,片外最大支持32位16 M B SDRAM系统内存和最大16 32位8MB F1ash;I/O接口部分支持标准IDE (A

TA/ATAPI-4/Ultra DMA)接口,支持16位地址/数据LocalBus总线。该总线采用异步方式进行数据传输,因此数据传输速率低,可靠传输1KB数据一般需用时100 us左右。

  (2)FPGA与CPLD

  采用Lattice的CPLD和A1tera的Cyclone FPGA,要求CPLD的引脚到引脚延时尽量小,来满足两片SDRAM数据切换的要求。

  (3)视频图像压缩输入部分

  视频A/D及编码部分采用Philips公司的SAA7114芯片,将输入模拟信号转换为ITU 656格式数字图像数据。MPEG.4编码压缩部分采用Intime公司的IME6400编码芯片,将数字图像数据压缩为MPEG-4的图像数据输出。其中IME6400输出接口有1KB的压缩数据输出缓冲区。该缓冲区数据最大保持时间为400 u s,即若在400 u s内不取完缓冲区数据,后来的压缩编码数据就会冲掉前面压缩的数据,造成视频数据的丢失。 [page]

  2 系统原理与实现

  为了说明本设计如何利用FPGA和CPLD来解决慢速总线Local Bus对扩充系统性能的瓶颈限制,下面将分两部分来说明。

  (1)Local Bus总线速度对系统性能的影响

  由图1中虚线处所示,本系统的设计思想是将多路输入视频数据经过压缩编码后通过Local Bus总线输入到嵌入式处理器EM8560的内存中,再从内存写入IDE硬盘上进行存储。这也是EM8560设计的一个主要功能。但是,这种设计由于受到Local Bus总线速度的制约,一般只能输入两路分辨率为D1的数字视频图像,要如框图中增加为4路、8路或更多路数据输入是不可能的。首先,MPEG-4编码芯片IME6400的1KB输出数据缓冲区的数据最多只能保持400 u s时间。400 us时间一到,IME6400将会向缓冲区写入新的数据;如果旧数据读不完,就会丢失数据。其次,Local Bus数据传输率低,IME6400通过向EM8560发中断到EM8560,通过Local Bus将IME6400 1KB输出缓冲区的数据读入需要100 us时间。最后,由于Local Bus总线接口内部不具有真正的DMA控制器,所以数据的传输需要占用处理器CPU的时间。如果EM8560正在将内存中数据向硬盘中写操作,IME6400中断到来,这时处理器要停止当前的写硬盘工作,执行中断处理程序,花100 us左右时间读入IME6400的编码数据;如果在这100 us内,又有一片IME6400的编码数据满发出中断,则处理器读完当前片的数据后又要去读另一片的数据;如果另一片IME6400在内存中的数据还没有写入硬盘,则新数据将会覆盖原来的数据,造成视频数据的丢失。同时,如果输入超过2片,那CPU几乎都在中断的触发下读数据,无时间写硬盘,造成视频数据的丢失,也无时间去做其它的事情,这显然是不行的。因此,要想用这种设计在400us内传输4路图像或更多路图像数据到EM8560内存中是不能实现的。

  (2)解决LocaI Bus总线速度对系统性能的影响

  在嵌入式系统中,处理器外部总线的主要目的是将外部的数据块输入到处理器内部缓存中,外部总线速度一般是不会超过处理器访问它的外存(如SDRAM)的速度,否则会引起数据内部拥塞而丢失数据。因此,在一些需要传输大量数据到处理器内存的嵌入式系统中,能否使从外部输入到内存的数据以处理器访问内存的速率在处理器外部直接放入外存呢?答案是肯定的。我们可以通过CPLD和FPGA来实现,如系统框图中所示。下面说明这样实现的方法。 首先,就处理器内部来讲,一般嵌入式处理器将它的片外物理存储空间映射到内存地址空间的高端。EM8560处理器就是这样映射的,如图2所示。

EM8560处理器的映射

  当系统启动时,引导程序将操作系统从Flash中引入SDRAM中的低2M×32位内存中, 即操作系统获得系统控制权后只在sDRAM的两个低BANK内运行。这时不访问两个高BANK。因为将两个高BANK作为输入视频数据缓冲区,只有当缓冲区满要将数据写入硬盘时才访问两个高BANK,因此,用两片SDRAM分别作为一片SDRAM的两个高BANK和两个低BANK使用。高片SDRAM用来存放输入视频数据,由FPGA直接写入;低片sDRAM运行操作系统和系统程序。这样可以把外部输入的视频数据不通过Local Bus总线直接输入到内存。在输入到内存的过程中,CPU是不参与传输数据的。值的注意的是:高片中只用了两个高BANK,低片中只用了两个低BANK。

  其次,我们已经把一片SDRAM用两片来代替,分别为外部输入数据缓存和系统程序运行空间;可是对CPU来讲,它认为它的外存只有一片,它从两个高BANK取数时认为是从同一片S

DRAM的两个高BANK取数,因此,需要在CPU访问两个高BANK时将数据线、地址线和控制线切换到高片SDRAM;反之,在CPU访问两个低BANK时,将数据线、地址线及控制线切换到低片SDRAM。这个切换是无法用EM8500的CS来完成的。因为它只有一个CS信号,只允许挂一片SDRAM。所以,我们用CPLD来完成这个切换工作。CPLD根据输入到它的SDRAM地址线和控制线,在CPU发布ACTTIVE命令时,根据地址线中的两位BANK地址线确定是访问两个高BANK还是访问两个低BANK,如果是访问两个低BANK,CPLD输出控制信号,关断连到高片SDRAM数据线和地址命令线的两个高速数据开关,同时打开连到低片SDRAM的高速数据开关,这样CPU就访问低片SDRAM;反之,如果CPU要访问两个高BANK,则CPLD输出控制信号,关断低片数据线上的开关,同时打开高片SDRAM数据线和地址命令线上的开关,这时CPU访问高片SDRAM;如果CPU要访问FPGA中映射的寄存器,则所有的开关都关断,这时CPU可以从FPGA中读入数据。因此,通过CPLD就完成了CPU访问FPGA以及两片SDRAM之间的数据切换。[page]

  第三,我们来看看FPGA如何将外部输入视频数据直接输入到处理器内存中两个高BANK的数据缓冲区中。当IME6400输出缓冲区的编码压缩数据满时,它向FPGA发中断,而不是向CPU发中断。FPGA收到中断后,将IME6400来的数据放入它自己的缓冲区。由于FPGA内部嵌入的存储空间小,要缓冲多路视频数据流是不够的,所以外加一片SDRAM作为FPGA自己的缓存。新加这片缓存最大的好处是可以缓存更多路的视频数据,并且每路视频数据的缓存大小可以自己指定,相当于扩展了IME6400输出BUFFER的空间,因此减少了向CPU发中断的次数。当FPGA缓存中存储的某

  一路数据满时,FPGA向CPU发中断,CPU进入中断服务程序。在中断服务程序中,CPU是不访问高片SDRAM的。这时CPU会读FPGA中特定的寄存器,根据寄存器的值判断FPGA是否已经把它的缓存中的视频数据输入到高片SDRAM中。如果输入结束,FPGA修改寄存器的值,通知CPU数据输入完毕,然后CPU退出中断处理程序,执行其它操作。这样,FPGA就将多路视频数据经过缓存后以内存总线的速度转入处理器内部缓存的地址空间中。值得说明的是:FPGA与IME6400输入视频部分的传输速度是比较低的,而FPGA从它的缓存中将数据传到高片sDRAM中的速度是比较高的,是以内存总线接口的同步时钟传输的。

  3 改进的系统性能分析

  首先,对于CPU所要访问的外部设备,通过加入FPGA的缓存,等价于增大了外部设备输出数据缓冲区的空间,并且该空间的大小可以通过改变FPGA的缓存来任意改变,大大减小了频繁地向CPU发中断的次数。例如,一片IME6400的1KB输出数据缓冲区满,就要发出中断信号,要求主机在400 us内读空缓冲区中的数据。如果中断信号发往CPU,则IME6400满1KB就中断CPU一次;如果将中断信号发往FPGA,则FPGA会将这1KB数据先放到自己的缓存中,等到积累到一定大小,比如16KB、32KB时,再由FPGA向CPU发中断,进行高速数据拷贝,大大减小了系统中断次数。其次,由于数据的输入由Local Bus总线改为由FPGA缓存以后再高速输入,这就大大增加了输入视频数据的通道数,即能挂更多的IME6400。原来用Local Bus从IME6400中读lKB数据需要100 u s左右时间,现在通过FPGA读只用不到25 u s的时间,相当于原来所用时间的1/5。这就允许在400 us内增加更多的通道数,由原来最大的两路可以扩充到四路、八路、十路等等,大大改善了系统性能。

  值得注意的是:以上系统性能的改进是牺牲了两片SDRAM部分空间换得的。在低片sDRAM中只用了两个低BANK,在高片SDRAM中只用了两个高BANK。当然这种划分也可以不相等,视具体情况而定。

关键字:FPGA  嵌入式  总线速度  CPLD 引用地址:利用FPGA平台解决接口的总线速度瓶颈

上一篇:级联两个十进制计数器实现19阶连续计数器
下一篇:转换开关添加了可编程PWM占空比钳位

推荐阅读最新更新时间:2024-05-02 21:24

如何优化实际解决方案使其用于FPGA
为 FPGA 应用设计优秀电源管理解决方案不是一项简单的任务,相关的技术讨论有很多很多。今天小编要为大家分享的内容『FPGA 的电源管理』主要有两个目的—— ☞ 找到正确解决方案并选择最合适的电源管理产品  ☞ 如何优化实际解决方案使其用于 FPGA 找到合适的电源解决方案 寻找为 FPGA 供电的最佳解决方案并不简单。许多供应商以适合为  FPGA 供电的名义推销某些产品。为 FPGA 供电的 DC-DC 转换器选择有何特定要求?其实并不多。一般而言,所有电源转换器都可用来为 FPGA 供电。推荐某些产品通常是基于以下事实:许多FPGA应用需要多个电压轨,例如用于 FPGA 内核和 I/O,还可能需要额外的电 压
[电源管理]
"嵌入式产业模式思考"主题讨论会顺利召开
2009年9月12日,嵌入式系统联谊会“嵌入式系统的产业模式思考”主题讨论会在北京航空航天大学如心会议中心召开,60余人参加了此次主题讨论会。10月的北京秋高气爽,气候宜人,新老朋友见面和交流气氛融洽和热闹。 北京神州龙芯集成电路设计有限公司CTO樊荣作了题为《龙芯产业化实践与思考》的发言,介绍龙芯处理器的研发情况,总结了中国自主知识产权芯片设计的强项和弱项。联谊会发起人、北京航空航天大学何立民教授发言题为《从器件、平台到云计算的山寨化革命》,谈及山寨化现象的起源、演变,展望嵌入式云计算的应用前景。杭州国芯科技有限公司副总张明的发言题目是《SoC系统芯片设计中的嵌入软件》,从芯片角度理解嵌入式系统,介绍系统集成的发展
[嵌入式]
嵌入式产业模式思考"主题讨论会顺利召开" />
研华嵌入式边缘运算产业伙伴峰会圆满举办
202 3年10月19日,研华“嵌入式边缘运算产业伙伴峰会”于中国· 深圳举办。 作为2023研华系列产业伙伴峰会的边缘运算专场,本次峰会以“嵌入式边缘运算新趋势 引爆新兴产业应用商机”为主题,与微软、AMD、Arm、QT、开立医疗、瑞芯微电子、思谋科技等多位伙伴共同围绕嵌入式边缘运算与AI技术如何助力产业升级拓展新兴产业商机进行分享与讨论。 坚守“智能地球推手”企业使命,贯彻“ Sector Driven” 成长模型方针 会议开场,研华科技董事长刘克振先生,以“AIoT + Edge Computing为研华下阶段产业核心方针”为主题,回顾研华成立以来,立足数千工业产品,从第一阶段的自动化及边缘运算
[工业控制]
研华<font color='red'>嵌入式</font>边缘运算产业伙伴峰会圆满举办
铠侠推出第二代UFS 4.0嵌入式闪存设备
全新的256GB、512GB和1TB闪存设备允许智能手机和移动应用程序充分利用5G网络的高速率 为了继续推动通用闪存(1)(UFS)技术的发展,全球存储器解决方案的领导者铠侠株式会社近日宣布,具有更高性能的第二代 UFS 4.0嵌入式闪存设备 已开始送样(2)。以小封装尺寸提供快速的嵌入式存储传输速度,适用于各种下一代移动应用。铠侠 UFS 产品性能的改进使这些应用程序能够利用 5G 的连接优势,从而加快下载速度、减少延迟时间并改善用户体验。 铠侠UFS 4.0产品将BiCS FLASH™ 3D 闪存和控制器集成在 JEDEC 标准封装中,并结合了 MIPI M-PHY 5.0 和 UniPro 2.0,支持每通道高
[嵌入式]
铠侠推出第二代UFS 4.0<font color='red'>嵌入式</font>闪存设备
嵌入式定位系统的实用设计与软件算法实现
  定位系统自问世后便得到了蓬勃发展,其应用已渗入到各行各业。个人消费领域引领移动定位类型科技产品集中涌现,其他领域和行业也有大量技术更新。目前各领域的定位系统主要集中在平台和地图的研发上,平台配合应用要求选用硬件,地图根据显示要求实现软件算法。因而,它们在定位系统的研究工作中各成体系,兼容性不强。   近年来,在定位系统设计中,硬件选择越来越集中在几个品牌的几个型号上。而软件设计方面比较分散。因而在一个兼容性强的平台上实现软件的集中研发,将是未来的研发方向。   这里提出一种系统构造模式,弱化硬件平台的影响而力求最大限度的统一软件设计。    1 系统整体设计方案   这里提出一种实用的设计方案,通过对系统的各方
[嵌入式]
基于微处理器S3C2440和WinCE嵌入式实时操作系统的视频数据采集
随着嵌入式技术的不断发展,各种嵌入式微处理器和控制器不断出现,并广泛应用于工控、通信、 PDA、安保等领域。基于ARM920t内核的嵌入式微处理器S3C2440,以其良好的数据处理能力、低功耗、小体积、支持多种嵌入式操作系统(如 WinCE、Linux)、集成多种外设(如I2C控制器、LCD控制器等)等优点,广泛应用于手持设备等。WinCE操作系统具有内核可剪裁、实时性好、支持多种通信、模块化设计、具有丰富的API等特点,广泛用于嵌入式实时操作系统。这里提出的嵌入式图像数据采集系统是某“纳米技术与微系统”实验室开发的“嵌入式传感测控系统”中实现图像采集功能的子系统,该系统是以S3C2440为硬件核心,以WinCE为软件平台,能实时
[单片机]
基于微处理器S3C2440和WinCE<font color='red'>嵌入式</font>实时操作系统的视频数据采集
Microchip将其中等带宽FPGA静态功耗减半 可用于汽车应用
边缘计算系统需要紧凑型可编程设备,并具有低功耗及较小的发热区域,从而可以取消风扇和其他散热装置的使用,同时具备强大的计算能力。8月10日,Microchip Technology(美国微芯科技公司)宣布,通过将其中等带宽现场可编程门阵列(FPGA)和FPGA SoC器件的静态功耗降低一半,并为它们提供与同类所有器件相比最小的发热区域、最佳性能和计算能力,可解决上难题。 (图片来源:Microchip Technology) Microchip FPGA业务部副总裁Bruce Weyer表示:“新型PolarFire FPGA和FPGA SoC降低了客户的系统成本,同时也使他们能够在不牺牲带宽的情况下应对热管理挑战。屡获
[汽车电子]
Microchip将其中等带宽<font color='red'>FPGA</font>静态功耗减半 可用于汽车应用
基于ARM智能交通信号机控制板开发
1 引言   目前我国的城市交通控制主要还是靠道路交通信号控制机(以下简称信号机)。国内的信号机主要分为两类:一类采用8/16位单片机作为处理器,交通控制功能简单、方案单一,以RS 232或RS485为通讯方式,难以与控制中心联网以及实现区域交通协调控制等功能,不能适应现代化大路口交通控制的要求;另一类则是基于工控机或PC104,功能虽然强大,但由于工控机或PC104都是按通用计算机标准设计,并非专门针对信号机应用设计,该类信号机硬件结构复杂且很多功能并不需要,成本也高,国外的信号机(如西门子公司的2070和美国的EAGLE)开发起步早,水平高,已有各种自适应联网型信号机产品,但一般不适用于中国混合交通的实际情况,且价格昂贵,操
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved