哪个MCU(Cortex-M)适用于时间要求严格的GPIO应用?

问题描述 投票:0回答:1

我们有一个在PIC24H上运行的应用程序,我们希望将它移植到另一个MCU,最好是ARM Cortex。应用程序非常重要,这意味着我们需要极其确定的代码行为。简而言之,有些脉冲通过特殊硬件获得到GPIO引脚,数据立即被分析。处理数据并不复杂(我们不需要强大的cpu / mcu来完成)。在分析数据后,GPIO输出引脚被写入其值。

应用程序有3条短线:过程输入引脚根据接收到的模式写入输出引脚确定输入引脚处理过程中的模式

PIC24H的工作频率为40MHz,我们可以在25ns内切换引脚,我们将非常感谢至少2倍的速度以便将来升级。因此,能够运行确定性代码并且至少以80MHz(12.5ns)切换引脚的MCU就可以了。我们不需要以恒定的快速速率切换引脚,我们需要一个可以在不到25ns内切换它的mcu。我们不能在切换时浪费周期,如果一个周期关闭,我们就会失去同步。一切都必须以一个周期精度(或两个但是恒定的两个周期)完成,因此代码应该是100%确定性的。

如果我遗漏了某些内容,或者如果我们需要使用Cortex-M上的其他方法,请告诉我。请记住,如果一个周期丢失(由于缓存或类似),我们会松开信号同步,应用程序无法正常工作或根本无法正常工作。

谢谢! BR

c performance assembly gpio cortex-m
1个回答
1
投票

根据这个blog post,Cortex-M的中断延迟范围从12到16个周期(假设您没有使用FPU寄存器)和最佳情况存储器。 M0和M0 +比M3 / M4 / M7慢。除此之外,您还需要添加GPIO访问时间(并注意核心和外设之间的不同时钟频率.Cortex-M7将支持比M3 / M4更高的时钟速度。

目前还不清楚在识别模式时消耗了多少个周期,以及中断如何用于此 - 通常像这样的低延迟接口函数将是专用硬件的明显目标,但是因为你有一个现有的软件解决方案似乎问题是错误的。

如果您避免访问任何可能会使总线停滞的“慢速”外设,则中断延迟应该是确定性的 - 任何特定设备都应该有文档来涵盖这一点。

恩智浦有一个application note,它描述了如何衡量正在发生的事情的一些细节。

© www.soinside.com 2019 - 2024. All rights reserved.