增强基于Cortex-M3的MCU以处理480 Mbps高速USB

news2024/11/16 18:45:39

通用串行总线(USB)完全取代了PC上的UART,PS2和IEEE-1284并行接口,现在已在嵌入式开发应用程序中得到广泛认可。嵌入式开发系统使用的大多数I / O设备(键盘,扫描仪,鼠标)都是基于USB的。

由于USB是USB联盟所保证的明确定义的标准,因此任何供应商提供的经过USB认证的设备都可以即插即用的方式与任何其他供应商提供的经过USB认证的设备一起使用。

多个设备可以在同一总线上运行,而互不影响。绝大多数32位闪存MCU和MPU供应商都提供某种形式的USB接口作为标准外设一点也不奇怪,USB主机,USB设备,USB OTG通常限于“全速”规格,即12 Mbps(下图1)。

图1. USB框图

现在,USB标准旨在解决嵌入式开发系统的另一个问题:数据速率的指数级增长。五年前,人们认为10 Mbps的数据速率很高。12 Mbps全速USB,10 Mbps SPI或400 kps I2C接口可以满足几乎所有嵌入式应用程序的数据需求。

但是,如今,随着日志文件大小的不断增加以及用户界面的日益复杂化的出现,甚至数十Mbps的数据速率也不足以提供足够的用户体验。千兆字节的日志文件必须在10秒钟内在系统之间传输,并且将从系统内不同PCB收集的信息传输到图形显示单元。

输入“高速” USB。凭借480 Mbps的带宽,高速USB可以满足当今对数十Mbps的需求,以及未来对百Mbps的需求。它提供了一种易于理解且易于使用的工具,可以处理系统之间以及系统内部的印刷电路板(PCB)之间的大量数据和互连。

毫无疑问,它将很快用于单个PCB上的芯片间通信,从而绕开了物理层并消除了对电缆连接的需求。预计支持该技术的系统将于2009年投放市场。

显然,微控制器将必须增加USB HS支持以跟上市场发展。但是问题是:如何构建一个微控制器,可以处理来自480 Mbps USB接口的数据负载,同时又能满足嵌入式系统的功耗和实时限制。

在一个400MHz的基于ARM9的微处理器中保持480 Mbp的数据速率,并且将片上高速缓冲存储器连接到单个平面高速外部存储器非常容易。在相对较慢的闪存上运行的,在100 MHz Cortex M3闪存MCU上运行它是另外一回事。

Cortex-M3是否可以在运行诸如数据处理算法,文件系统和通信协议之类的过程密集型任务时处理所有这些数据传输?

解决此问题的方法是将ARM9微处理器中使用的多层总线体系结构(下面的图2)适应Cortex M3,并将存储器空间分为多个分布在体系结构内的块,以确保高速时的实时关键处理。数据通过DMA并行传输。

图2.高数据速率架构。

直接内存访问(DMA)至关重要。使用CPU进行传输会导致CPU过载,可能会阻止CPU处理应用程序和实时控制任务。理想情况下,必须将三种类型的DMA连接到所有低速和高速外设,以最大程度地减少总线和存储器上的数据传输负载,并使处理器腾出空间进行数据处理和系统控制任务。

带有内置缓冲区的DMA相对较大,仅保留给最高速度的接口,以提高对总线等待时间和突发传输的耐受性以及对链表的支持。

它们提供了高度的CPU独立性和最低的总线使用率。由于每个通道的成本较高,因此无法在每个片上外设上全局使用这些功能齐全的DMA。

多种DMA实现方案在成本和性能之间取得了平衡,并结合了外围DMA控制器(PDC),该控制器以最低的复杂度和最简单的使用方式直接将低数据速率的外围设备链接到存储器,并专门针对并优化了经过调谐的DMA控制器用于最高带宽的外围设备,以及针对存储器到存储器和存储器到高速外围设备块传输进行了优化的中央DMA。

由于DMA控制器完全独立于处理器运行,因此消除了中断开销,并大大减少了数据传输所需的时钟周期数。

降低成本的DMA实现是外围DMA控制器或PDC,它紧密集成在外围编程器的空间中。PDC带来了整体系统性能,成本和易于编程的优势。

PDC通道的用户界面集成在每个外设的存储空间中。它包含一个32位存储器指针寄存器,一个16位传输计数寄存器,一个用于下一个存储器指针的32位寄存器以及一个用于下一个传输计数的16位寄存器。

当外设接收到外部字符时,它会向PDC发送一个接收就绪信号,然后请求访问系统总线。授予访问权限后,PDC开始读取外设接收保持寄存器(RHR),然后触发对存储器的写操作。

每次传输后,相关的PDC内存指针都会增加,剩余的传输次数将减少。当达到存储块大小时,下一个块传输将自动开始,或者将信号发送到外围设备,然后传输停止。相反,遵循相同的过程进行传输传输。

当传输第一个编程数据块时,相应的外设会产生传输结束中断。第二个块的数据传输会自动开始,并且第一个块的处理可以由ARM处理器并行执行,从而消除了用于更新处理器上DMA内存指针的繁重的实时中断约束,并维持了15至20Mbps的速度任何外围设备上的数据传输。

如果在相同的外围设备上同时发生相同类型的请求(接收器或发送器),则优先级由外围设备的编号确定。如果传输请求不是同时发生的,则将按照发生的顺序对其进行处理。首先处理来自接收方的请求,然后处理发送方请求。

高于10 Mbps时,访问内部总线和内存的时间变得至关重要,并且两级深度的接收和发送缓冲区不再足以维持连续传输。需要具有更深缓冲区并能够突发数据传输的中央DMA。

该中央DMA具有内置FIFO,可提高对总线延迟的容忍度,可编程长度突发传输,可优化每次传输,分散,收集和链接列表操作的平均时钟周期数。它可以编程用于存储器到存储器的传输或存储器到外设的存储器,例如48Mbps SPI,4位192 Mbps SDIO / SDCard 2.0或8位384 Mbps MMC 4.3主机接口。

每个专用DMA在总线矩阵上都有自己的层,从而消除了任何总线访问延迟。这些DMA针对诸如高速USB接口,以太网MAC或LCD控制器之类的高速外围设备进行了优化,以在最短的时间内最大化数据传输。

对于7端点高速USB设备接口,此类DMA将集成4kB DPRAM存储器以存储完整的数据包有效负载并防止缓冲区下溢和溢出。该DMA由几个通道组成,每个通道专用于一个端点。DMA通道将在DPRAM和USB控制器内的多个存储体之间传输数据。

图3. SAM3U框图

最多3个存储体应分配给单个端点以存储微帧。在带有5层总线矩阵和两个中央SRAM存储器的96MHz的Cortex M3 MCU上的这种高速USB实现(上图3)可以维持480 Mbps的最大带宽。

回忆。 Cortex M3处理器具有三个内存总线:指令总线(I),数据总线(D)和系统总线(S)。M3上的此总线体系结构与单总线ARM7体系结构有很大不同。除了在S总线上提取指令外,所有其他总线都为处理器提供单周期内存访问。

有两种选择可从Cortex M3获得最高的指令取回速度并克服闪存的访问时间限制:在I总线上连接单周期访问SRAM或增加闪存的宽度以支持多条指令读取和因此,顺序指令提取加速。

只有SRAM的速度足以匹配Cortex M3处理器的最大96 MHz工作频率。但是,通过将多个片上SRAM存储器用于指令和数据存储来优化性能会增加成本和待机功耗。使用价格便宜,低泄漏的非易失性闪存会带来另一个问题:闪存无法以与Cortex M3处理器相同的频率运行。

典型的闪存访问时间在35至50ns的范围内,而Cortex M3时钟周期约为13 ns。为了补偿较长的闪存访问时间,可以将闪存的宽度增加到64位或128位,分别对应于四个和八个指令(拇指2)。

这种方法允许在每个周期读取多个顺序指令,将其存储在寄存器中,然后以完整的96 MHz时钟速率执行,而没有任何等待状态。

SRAM还应用于存储数据并用作暂存器。为了最大化性能,需要将SRAM存储器分为多个块,以允许处理器和外设通过多总线体系结构的并行总线将数据移入和移出。这样的模块可以直接集成在高带宽外围设备中,或在软件控制下用作分配给CPU和外围设备的中央存储器。

连接到Cortex M3 D总线的数据存储器不与其他片上外设或DMA共享。这带来了一个难题:1)如果数据存储器在S总线上共享,并且因此放弃一些原始性能以换取允许DMA在没有CPU干预的情况下将数据加载和存储在存储器中,或者2)如果数据存储器连接到D总线并使用处理器移动数据。

下表1中的PDC基准 运行在SAM7X处理器上,清楚显示了在具有多个通信通道的微控制器中,最大程度地提高数据传输的DMA使用率的好处。


表1:在SAM7X闪存微控制器上以Thumb模式从55MHz的闪存读取基准测试

具有高速USB接口的Cortex M3微控制器通常将在芯片上具有其他高速通信或存储接口。为了在这些接口之间维持较高的数据传输速率并进行协议转换,应并行,多个共享的SRAM块实现数据处理和系统控制功能,以实现最佳的系统性能。

DMA和处理器S总线可以作为总线主控器连接到片上多层总线矩阵,并可以直接访问共享存储器的块。

如果目标是创建数字处理器并传输有限数量的数据,则必须将SRAM放在I&D总线上。在这种情况下,性能关键代码的一部分应在连接到I总线的SRAM中被遮蔽,以在100MHz操作下释放完整的1.25 DMIPS / MHz。

当程序和数据存储需要片外存储器时,通常使用Cortex M3 S总线,因为它结合了指令和数据提取功能,从而将外部总线限制为一条总线。这种折衷导致性能从1.25 IPSIPS / MHz突然下降到0.9 DMIPS / MHz,这是由于S总线上的指令提取要比I总线多一个周期。

内部总线体系结构和外部存储器总线控制器实现的效率决定了在外部存储器中执行时获得的最终性能。

表2:最高性能基准,Dhrystone 2.1,RVCT编译器和链接器,性能优化,零等待状态内存

上面的表2 比较了具有外部总线接口(EBI)的ARM7和Cortex M3 MCU的实现。基于ARM7的EBI可以维持0.54至0.67 DMIPS / MHz,而Cortex M3器件上的EBI仅限于0.117 DMIPS / MHz。对于微控制器的选择过程,显然需要考虑对外部存储器的执行进行基准测试。

多层总线。 数据密集型应用面临的另一个问题是片上总线带宽。当多个DMA控制器和处理器通过一条总线推送大量数据时,总线可能会变得过载,并降低整个系统的速度。时钟频率为48 MHz的32位总线的最大数据速率为每秒15亿位(Gbps)。

尽管听起来很多,但是在数据密集型应用程序中,可能有太多数据,总线本身就成为了瓶颈。USB高速SDIO网关就是这种情况,每个网关的数据速率都超过100 Mbps。使用优化数据传输的DMA,几乎没有带宽留给处理器访问共享数据存储器。

通过提供多个并行的片上总线(也称为多层总线矩阵)可以避免这种情况。与仅支持单层ASB总线的ARM7相比,Cortex M3处理器具有对多层总线的本机支持。因此,Cortex M3是具有高速USB的微控制器的更好处理器。

在多层(AHB)总线上(下面的图4),处理器和芯片中的不同DMA控制器在总线上都有各自的专用层。

图4. SAM3U多层总线和内存

当多个外设共享一个DMA通道或共享存储器时,仲裁器设置优先级。使用的仲裁策略示例为固定优先级主机,无默认主机,上次访问的默认主机或固定默认主机的循环仲裁。

AHB总线相对于ASB总线

的优势AHB总线相对于ASB总线具有主要优势,因为它是为并行数据传输而设计的。可以将可配置数量的总线并行路由到连接到处理器的主总线。

直接内存访问控制器(DMA)应该使用这些附加总线之一将数据从外设传输到内存或从内存传输到内存,而无需处理器的干预。在ARM7 ASB架构上,DMA将窃取处理器的总线,并阻止其从片上和片外存储器中获取指令或数据。

最后,通过增加控制器中易失性存储块的数量,可以减少对共享存储器的访问冲突,并消除了另一个性能瓶颈。存储块可以直接集成在高带宽外围设备中,或在软件控制下用作分配给处理器或外围设备的中央存储器。

因此,可以创建基于Cortex-M3的实现,该实现可以在最高1.8 MHz的96 MHz和1.62 V的84MHz的最大时钟速率下达到480 Mbps的数据传输速率,单周期为1.25 DMIPS / MHz乘除。

实现这一壮举的关键是在总线接口中采用低门数,高效的多通道DMA架构,该架构采用低门数,易于使用的DMA,能够在每个通道的每个通道上维持高达20 Mpb的速率。中低端数据速率外设。

此外,应使用中央DMA通道和专用的USB高速DMA来支持每个外设几百Mbps的更高数据速率。使用此设置,处理器只会干预以开始每次数据传输,并且在传输完成时会被中断提醒。

这种安排几乎减轻了处理器的全部数据传输负担,从而使处理器能够确定控制和数据处理任务的优先级。Cortex M3中断控制器确定性地在最多12个指令周期内处理中断。如果使用尾链链接,中断等待时间将降至6个周期,从而进一步减少了切换任务时的处理器开销。

最后,USB 2.0高速(480 Mbps)提供的更高速度使其比绝大多数其他接口更快,从而可以在最短的时间内传输大量数据,从而改善了系统的用户体验。

DMA和存储器的正确组合可以增加确定性Cortex3 MCU的资源,以轻松处理高速USB,从而为微控制器中当前和将来的数据需求提供了有效的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL数据库基本操作-DQL-聚合查询

简介 使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。 字段说明: product 是一个表pname 是商品名price 是 价格category_id 是分类 -- 1 查询商品的总条数 select count(…

Ubuntu20.04系统安装cuda11.3

在官网下载cuda进行安装: 官网链接:CUDA Toolkit Archive | NVIDIA Developer 再官网版本中选择需要的版本,本身需要cuda11.3 cuda版本选择后,选择系统信息后复制命令进行下载(我是ubuntu20.04,aarch64 架构&#xf…

清华智谱AI大模型ChatGLM-Pro申请开通教程

清华智谱AI大模型ChatGLM-Pro申请开通教程 ChatGLM系列模型,包括ChatGLM-130B和ChatGLM-6B模型,支持相对复杂的自然语言指令,并且能够解决困难的推理类问题。其中,ChatGLM-6B模型吸引了全球超过 160 万人下载安装,该模…

磷矿石和磷精矿中氧化镁含量的测定

声明 本文是学习GB-T 1871.5-2022 磷矿石和磷精矿中氧化镁含量的测定 火焰原子吸收光谱法、容量法和电感耦合等离子体发射光谱法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件描述了在磷矿石和磷精矿中测定氧化镁含量的火焰原子吸收…

GRADIENT BASED THRESHOLD FREE COLOR FILTER ARRAY INTERPOLATION

ABSTRACT 彩色滤波器阵列(CFA)插值是单传感器数字相机图像处理管道的组成部分。多年来,许多CFA算法被提出以提高图像质量。其中一个算法就是非常成功的定向线性最小均方误差估计(Directional Linear Minimum Mean-Square Error Estimation, DLMMSE)方法。我们对该算…

JavaScript使用throw new Error自定义错误信息

有些时候 我们自己写了一个组件 但是怕同事不了解我们的组件 传入了错误的类型或者数据 导致逻辑报错 同事还会觉得我们的组件写的莫名其妙 我们就可以自己写判断 例如我这个代码 我判断 如果同事传入的 type 为 false 或者 在我自己的集合中找不到 外面传入的type类型 我就直…

【G-LAB】带你掌握网络交换机上各种接口知识

点击上方关注我们 交换机是一种用于电(光)信号转发的网络设备。可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。交换机是使用非常广泛的网络设备。多台网络设备…

十五、异常(7)

本章概要 其他可选方式 历史观点把异常传递给控制台把“检查的异常”转换为“不检查的异常” 异常指南 其他可选方式 异常处理系统就像一个活门(trap door),使你能放弃程序的正常执行序列。当“异常情形”发生的时候,正常的执行…

【Redis】Hash 哈希内部编码方式

Hash 哈希内部编码方式 哈希的内部编码有两种: ziplist(压缩列表):当哈希类型元素个数⼩于hash-max-ziplist-entries配置(默认512个)、同时所有值都⼩于hash-max-ziplist-value配置(默认64字节…

软考高级架构师下篇-18

目录 1. 引言2. 传统数据处理系统的问题1.传统数据库的数据过载问题2.大数据的特点3.大数据利用过程4.大数据处理系统架构分析3.典型的大数据架构1. Lambda架构2.Kappa架构3. Lambda架构与Kappa架构的对比4.大数据架构的实践1.大规模视频网络2.广告平台3.公司智能决策大数据系统…

微信小程序 在bindscroll事件中监听scroll-view滚动到底

scroll-view其实提供了一个 bindscrolltolower 事件 这个事件的作用是直接监听scroll-view滚动到底部 但是 总有不太一样的情况 公司的项目 scroll-view 内部 最下面有一个 类名叫 bottombj 的元素 我希望 滚动到这个 bottombj 上面的时候就开始加载滚动分页 简单说 bottombj这…

LeetCode【84】柱状图中的最大矩形

题目: 思路: https://blog.csdn.net/qq_28468707/article/details/103682528 https://www.jianshu.com/p/2b9a36a548fa 清晰 代码: public int largestRectangleArea(int[] heights) {int[] heightadd new int[heights.length 1];for (i…

电机控制——PID基础

本文来讲一下PID调节器。 在实际的系统中,因为摩擦、阻力等外界因素的存在,系统的实际输出与我们期望的输出通常存在误差,PID的目的就是调节系统的实际输出,使其更快更稳地贴近期望输出。 PID模块被周期性的调用,模块…

电脑资源:分享9个免费下载音乐网站,值得收藏!

目录 1、中国原创音乐基地 2、soundstripe 3、My Free MP3 4、钟铜 5、cctrax 国外流行音乐专辑 6、歌曲宝 7、搜无损网 8、音乐搜索器 9、Listen 1 今天给大家分享9个免费下载音乐网站,值得收藏! 1、中国原创音乐基地 一个国内原创音乐基地网站&…

中国人民大学与加拿大女王大学金融硕士——山有顶峰,海有彼岸,一切终有回甘

每个人都有自己独特的天赋和潜力,只需要用心去发掘和发挥。相信自己,努力奋斗,成功才会属于你。对于工作多年的在职人士来说,瓶颈期是再正常不过了,但是想要打破瓶颈期,就需要不断学习,提升自己…

带你一张图了解八种流行的网络协议

网络协议是在网络中两台计算机之间传输数据的标准方法。 本文将通过一张图详解 8 种流行的网络协议。 1、HTTP(超文本传输协议),HTTP 是一种用于获取 HTML 文档等资源的协议。它是 Web 上任何数据交换的基础,是一种客户端 - 服务…

拓扑几何学

目录 一,欧拉定理 1,平面图论图 2,单连通多面体 3,一般多面体 一,欧拉定理 1,平面图论图 在一个联通无向图中,点数-边数面数 1 如: 7-126 1 如果把最外面的五边形外面也算…

狂飙10年后,电动两轮车终究要回归理性

文|新熔财经 作者|一城 我国电动两轮车保有量超3.7亿辆,并超越汽车保有量成为中国第一大交通工具,电动两轮车“国民级产品”当之无愧。 但是,历经近十年的高速发展,行业却面临一些问题: 渠道…

在对接自有账户体系时,FinClip 怎么做的?

以下文章来源于 FinClip (凡泰极客) 作者:王字 Wannz FinClip 是 Authing 的合作伙伴之一,致力于帮助企业打造更高效的一站式数字内容管理平台,旨在降低内容与渠道所形成的内容矩阵管理成本。前不久我与售前同事聊天,他们反馈说很…

在线制作课程表

失业在家,开启一天一个应用的创作节奏,最近学了uniapp,特别想做点啥,正好家里小孩子要打印课程表,而且课程表还有调课的需求,就寻思做一个方便大家,到目前位置服务完全免费的,新鲜上…