 
- UID
- 1023229
- 来自
- 中国
|

因为处理器专门负责维持PIO工作,所以处理时间消耗很大。虽然CPU是从事数据传输,它还是不能做别的事了。因此,这一解决方案有可能使系统处理陷入瘫痪。DMA不可能使用的PIO接口,所以程序员必须限制的数据带宽,以便其他任务能够与MCU进行通讯。例如,如果有一个常规的进程要求100 %的处理器运行周期,同时又要与FPGA进行串行(SPI,USART或TWI)通信(读或写),那么这两个进程必须有一个要等待。如果发送到或接受来自FPGA的数据没有及时的存进缓冲区,那么到下一个字节/字数据时可能会溢出。从本质上讲,嵌入式处理器成为受邤赖的数据移动硬盘。
通过外部总线接口连接(EIB)
许多32位微控制器有一个外部总线接口(EBI)模块,它是为外部设备和基于ARM设备的存储控制器之间传输数据而设计的。这些外部存储控制器能够处理几种类型的外部存储器和外围设备,如SRAM,PROM,EPROM,EEPROM,flash和SDRAM。只要FPGA可以处理预定义存储器接口,EBI也可用于FPGA的接口。在EBI中使用静态存储器接口(SRAM)对于FPGA通信来说是最好的,因为它设计简单,且大多数设计者都熟悉它。至于PIO接口, FPGA不得不包含一个模块,用来理解SRAM时间,并能产生一个响应返回微控制器(图4)。
 | 图4 EBI-SMC接口 |
图5显示了EBI读SMC存储器接口的标准时间,而图6显示了其标准写周期。
 | 图5 EBI-SMC读周期 |  | 图6 EBI-SMC写周期 |
注意:这些时间波形是默认的SMC规格。所有可编程参数显示都基于外部设备的速度。
EBI的接口速度比PIO块,是因为EBI有其自己的I / O,且大部分的信号是并行的。但是,如果外部设备很慢或引入等待状态, EBI的速度优势可能会受到损害。
跟PIO接口一样, EBI接口必须由处理器或其他的主AHB来驱动。因此,实现带宽的EBI的还依赖于软件,并取决于它可以利用多少处理器时间。当然,可能受到带宽的限制。这又可能限制了嵌入式处理器旨在实现的其他系统功能。
在MCU中使用专用的FPGA接口
基于ARM7的微控制器提供一个特殊接口,它允许FPGA通过DMA存取2个主AHB和四个副AHB直接接入MCU的内部AHB总线。在启动时,一个外加的副AHB可用于重新映射ROM,它通过使用外部ZBT RAM具有PROM重新映射功能的FPGA来实现。
该接口还提供了FPGA接入14个副先进外围总线(APB)、两个全双工的DMA通道、多达13个中断优先编码(IRQs)、两个DMA传输的非编码IRQs和32位共享可编程I/O。该FPGA接口通过微控制器接入预先定义的主副AHB(图7)。
 | 图7 MCU专用的FPGA接口 |
FPGA接口是基于多个并串行转换器来编码和解码所有微控制器和FPGA之间的业务流。为了使两个不同设备之间能进行有效的同步通信,必须满足以下要求:
- 在FPGA必须能够处理时钟偏斜平衡和时延消除。赛灵思的FPGA采用DCM(数字时钟管理器)强制性处理所有时延消除,且要求产生时钟。Altera的器件需要使用锁相环电路。该FPGA还必须为微控制器的内置接口提供配置和复位方式。它必须为微控制器提供的串行通信时钟,频率范围应在100兆赫以上。ARM7的内部时钟和串行时钟之间的比率应为0.8或更低(ARM的时钟/串行时钟)。
- FPGA接口是基于一套编码和解码AHB内部业务流的单元。各主从AHB编码/解码的数据传输通过使用专用并串行转换器的MPIO来实行。由于传送大量数据,一个单一的传输就消耗多个AHB总线时钟周期。具体所需的时钟周期取决于ARM7中的AHB时钟、串行时钟和FPGA中的AHB时钟之间的比例。由于微控制器的AHB时钟与FPGA中的AHB时钟之间相互独立, FPGA和微控制器可以在不同的频率运行。甚是FPGA内的主或副AHB时钟可以在不同的频率运行。
- 微控制器和FPGA上的每个并串行转换器阻滞都有一个互补的有限状态机(FSM)与AHB总线打交道。因此,该接口可以借鉴EBI或PIO消除共同接口瓶颈的技术来处理同步传输问题。
带有直接FPGA接口的微控制器几乎所有的外围都有DMA通道,有几个DMA通道专用于FPGA的接口。多通道外围DMA控制器( PDC )支持该DMAs,像其他两种方法一样,在FPGA、外设和存储器之间传输数据时通过CPU卸荷。这避免了普通ARM7的带宽限制,它被只有4万比特每秒(Mbps)数据传输速率完全垄断。
通过从CPU中卸下这一任务, PDC可以实现处理时间占85 %CPU周期,数据传输率12 Mbps。多重DMA通道是专为FPGA接口连接PDC多个特定应用的外设和接口而设的,不受微控制器的任何干预。在PDC中使用DMA专用通道,可以使ARM处理器有时间把重点放在处理器的繁重任务上,提高系统的总体性能和数据带宽(图8)。
 | 图8 ARM7与FPGA接口 |
该并串行转换器模块能处理所有的AHB和串行通讯。它由一个有限状态机(FSM)和移位器组成。有限状态机解读AHB,并与AHB对话。当主AHB初始化一个传输(读/写操作)时,FSM通过使用遵守的AHB协议的HREADY来引入等待状态。FSM直接根据AHB时钟和串行时钟之间的比例来自动处理引入等待周期的数量。比例越小,引入的等待周期就越少。
FSM控制移位器,负责处理所有微控制器和FPGA之间的数据转移(序列化),每周期传输在2个bits的数据。如果串行时钟速率为100兆赫,移位器的传输速度为200 Mbps。
这些并串行转换器模块处理主口A / B、副口A / B和副口C/D,通过FPGA 内的“模式”模块在复位时程序化,使可用的I / O数量尽可能多。设计者可以为一个单一的串行配置选择使用所有的10个I / O线。在这种情况下,串行模块将只处理一个的AHB接口。例如,如果用户仅想使用AHB主口A,串行模块将所有主口设定为“串行单配置” 。这种配置将改善转换器之间的传输速度,从而加快了微控制器和FPGA之间的传输速度(图9)。
 | 图9 串行单配置 | 另一种选择是配置串行模块为“双串行配置”使其能处理2个AHB接口,2个AHB (主/副)之间共用10个I / O线。在这种情况下,微控制器和FPGA之间的数据传输速率较低,但数据带宽更高,因为有2个AHB接口可用。双配置给另一个AHB接口重新使用一半以上的专用I / O(图10)。
 | 图10 双串行配置 |
FPGA的接口逻辑
当通过EBI或PIOs执行一个FPGA接口时,工程师必须写RTL代码,让FPGA与MCU进行沟通。直接FPGA接口微控制器供应商提供的所有RTL需要为每个具体的FPGA供应商建立适当的编码和解码通信限制。这种逻辑模块产生一个重置,并提供不同模式下的重置条件。供应商提供的RTL可让用户来决定选择哪些功能来。默认情况下,所有的模式位0 (表1)。
 | 表1 模式位 | 一个供应商提供的模板可用于FPGA接口的主从AHB实例。提供具体的例子。在FPGA模板,一个模块所谓的“自定义MP”不费力的整合AHB / APB外设。因为系统将使用FPGA逻辑,此模板让设计师使用迁移的两片MCU加FPGA毫不费力的实现单芯片可定制微控制器。
外部ZBT-RAM和NVM/SDRAM/SRAM是可选的,它基于应用程序和系统要求。
设计人员还可以在FPGA添加非AHB逻辑,为添加与AHB总线无关的功能提供了灵活性。
在单一配置模式下,单一AHB接口从微控制器传输所有的AHB信息到FPGA需要4个AHB时钟周期,反之亦然(图11 ) 。在双配置模式下,双AHB接口从微控制器传输所有的AHB信息到FPGA需要8个AHB时钟周期,反之亦然。
 | 图11 通过直接FPGA接口传输的读/写时间 | 发生在ARM7 MCU和FPGA之间的相关传输时间如下:
t1:标准时间——2个AHB周期;
t2:FPGA传输所需时间(单一AHB接口4个周期,双AHB接口8个周期);
t3:FPGA的外设响应时间;
t4:传输响应返回CAP7E的时间(单一AHB接口4个周期,双AHB接口8个周期);
t5:从FPGA到CAP7E AHB总线内部读取响应/数据时间;
t6:引入等待周期时间。
下面的公式是用来近似从ARM到FPGA外设的存取时间:
 注: t1和的t5相对于PIO和EBI是可以忽视的的AHB周期时间。
在数据传输速率低的情况下,如点阵式液晶显示器,MCU到FPGA通过PIO或EBI接口就足够了。然而,FPGA和MCU之间或其他一些外设和存储器的高数据传输率可以完全占用CPU周期和给外设创造瓶颈。举例来说, TFT液晶彩色图形将需要传输大量的数据到液晶显示器帧缓冲区,这最有可能完全占用CPU和EBI。这种应用将更好地执行从微控制器到FPGA的直接接口连接,而允许液晶数据通过DMA传输,使处理器空出时间处理其他事和使EBI空出时间传输其他数据,如从闪存运行主要应用软件,或TFT液晶显示器为单个或多个帧缓冲区使用SDRAM。
此外, FPGA中的AHB逻辑定义类似MCU,犹如它在微控制器“内部”。这使得未来设计路线很容易就转移到可定制微控制器。
直接FPGA接口的发展时间也较短,因为接口已经在微控制器内部定义且逻MCU供应商提供了FPGA的辑模块。设计者不需要写入任何接口RTL 。带专用FPGA接口的微控制器将会提高整个系统的性能和设计的易用性。
德尔.托罗于1997年获得了Tecnologico Cd的电气工程学士学位。他于2003年在约翰霍普金斯大学获得计算机和电气工程硕士学位。clear=true; |
|