Interface 处理器与高速外围设备之间的通信

Interface 处理器与高速外围设备之间的通信,interface,embedded,operating-system,processor,rtos,Interface,Embedded,Operating System,Processor,Rtos,考虑到处理器以100 MHz的速度运行,并且数据以1000 Mbit/s(125 MHz时为8位/时钟周期)的速率从外部设备/外围设备传输到处理器,这是处理以更高速度传输到处理器的流量的最佳方法?首先,您不能在软件中实现这一点。无法以足够的速率对数字线路进行采样,也无法利用它做任何有用的事情 您需要使用硬件FIFO缓冲区或存储单元。当数据突发进入时,它可以在高速FIFO中缓冲,然后由处理器根据需要读出 高速FIFO芯片的价格惊人地昂贵(尽管大多数是双端口的)。为了降低成本,最好使用SRAM芯片和

考虑到处理器以100 MHz的速度运行,并且数据以1000 Mbit/s(125 MHz时为8位/时钟周期)的速率从外部设备/外围设备传输到处理器,这是处理以更高速度传输到处理器的流量的最佳方法?

首先,您不能在软件中实现这一点。无法以足够的速率对数字线路进行采样,也无法利用它做任何有用的事情

您需要使用硬件FIFO缓冲区或存储单元。当数据突发进入时,它可以在高速FIFO中缓冲,然后由处理器根据需要读出


高速FIFO芯片的价格惊人地昂贵(尽管大多数是双端口的)。为了降低成本,最好使用SRAM芯片和硬件加法器来增加输入数据的地址线。

您可以对其进行缓冲。通常,来自设备的数据使用DMA(不涉及cpu)写入内存缓冲区(循环队列)。cpu以恒定速率从内存缓冲区读取数据。通常设备以突发方式发送数据。这样可以防止缓冲区填满。如果数据太多,则缓冲区溢出。

DMA(直接内存访问)可能是解决方案,但是,内存总线的运行速度似乎不太可能超过处理器核心,因此接收外设必须将数据接收到大于8位的寄存器中,因为125MHz无法持续。例如,16位寄存器允许以62.5MHz的频率进行内存写入,这是可以实现的。此外,接收设备必须能够接受与核心时钟既快又异步的外部时钟。当然,接收外设也必须支持DMA


除非您对硬件和通信协议有更具体的要求,否则很难给出除一般性答案以外的任何其他答案。

对于软件来说,这种情况并不少见。塞马吉说得对。这是一个系统工程问题。其他人也有正确的答案。如果你想用100MHz处理器查看或处理这些数据,这是不会发生的,不要费心去尝试。您可以查看它的快照,也可以让硬件过滤掉您要查找的特定百分比的快照。在一天结束时,虽然这是一个系统问题,但硬件提供了什么,它将这些数据放在哪里,这些数据的软件任务是什么,它是否看到goesinta上有X个数据缓冲区,并通知goesouta硬件有X个缓冲区准备就绪?硬件是否检查并对齐缓冲区,以便查看标头,然后决定将硬件路由到何处?一旦你做了系统工程,你就会知道你是否可以使用这个处理器,你是否可以使用它,它的工作是什么,以及如何去做

你的直接问题。最好的处理方法是什么。处理它的最佳方法是让硬件(fpga、asic等)将其移入或移出某个存储设备(可能是某种ram)。不一定是处理器耗尽的同一个ram(DMA是一件值得避免的事情)。硬件是软件可以对话的东西,但是你不能检查所有的数据,所以不要尝试。不知道这是什么样的数据,什么形式,软件看什么,你愿意强迫硬件做多少工作,等等,就决定了答案的其余部分。如果您期望某个(保证的)百分比不好或不属于此处理器等,请让硬件过滤掉该百分比,然后您可以处理剩下的部分

网络就是一个很好的例子,PC机有gige端口,但不能处理gige线路速率数据。这就是为什么我们现在使用交换机而不是集线器,硬件分割出一定比例的数据,这样pc就可以处理它,协议会处理那些无法通过稍后重新发送来处理的数据。而交换机处理器不会查看所有的数据,硬件会将数据切片,这样软件就可以只检查报头。或者,有时软件只是管理驱动硬件的表,而硬件完成所有处理数据的工作


如果你进行系统工程,答案会很简单。

这属于硬件溢出。哦,等等,没有。@Byron-不正确-这绝对是一个编程问题这实际上更像是一个“系统”问题。它需要硬件和软件作为一个系统的知识和协调。虽然有几个好的答案,你可以考虑在CHIPHACK.com上发布。你需要一个更快的处理器或专用硬件来做任何有意义的数据速率。即使使用32位处理器,每个字也只有3个时钟周期。CPLD将是一个不错的选择,尤其是以目前的价格。我想你指的是DMA(直接内存访问)。DMA引擎是硬件的一个独立部分,它在CPU访问内存之间窃取内存访问周期。因此,尽管它不直接涉及CPU,但实际上可能会影响系统的整体性能。正如您所指出的,在获得下一个突发之前,整个内存需要足够大,cpu需要足够快,以提供任何需要的处理。@simon,是的,DMA就是我的意思。修正了。