各种标准接口介绍和区别

网友投稿 444 2022-10-24

各种标准接口介绍和区别

本文将重点介绍各种标准接口,并揭示它们对不同嵌入式芯片厂商的区别所在。了解基本接口可帮助设计人员优先考虑哪些接口应为片上。另外,虽然标准接口具有很高的使用价值,但为了提供额外的片上资源,也需要可定制化的片上接口。本文将介绍两种这样的外设块。

USB 2.0 规范要求主机初始化所有向内及向外的传输。此外,该规范还定义了三种基本设备:主机控制器、集线器以及外设。

USB 2.0 的物理互连是一种在每个星型中心使用一个集线器的分层星型拓扑结构。每条线段都是一个主机与集线器或功能之间的点对点连接,或者是一个连接至另一个集线器或功能的集线器。

USB 2.0 系统中用于设备的寻址方案可实现单个主机连接多达 127 个设备。这 127 个设备可以是集线器或外设的任何组合。复合或组合设备可以是这 127 个设备中两个或两个以上的设备。

虽然 USB 2.0 很可能是工业和许多基础设施应用的首选,但外设设备需要在没有主机参与的情况下彼此通信时,还需要部署移动 USB ( USB OTG)。为了实现点对点通信,USB OTG 引入了一种新的设备,这类设备包含可为两个外设实现数据共享的限制主机功能。

OTG 补充方案定义了一套新的、称之为主机协商协议 (HNP) 的握手方式。使用 HNP,能够作为默认外设连接的设备可请求成为主机。这有助于现有 USB 2.0 主机设备范例提供点对点通信。另外还定义了会话请求协议 (SRP)。

EMAC

虽然符合IEEE 802.3以太网标准的接口一般会被误称为以太网介质访问控制器 (EMAC),但完整的 EMAC 子系统接口实际上包括三个模块,这三个模块可能会集成在片上,也可能不会:

1.物理层接口 (PHY);

2.以太网 MAC,其可实施协议的 EMAC 层;

3.定制接口一般称为 MAC 控制模块。

完整的 EMAC 子系统如图 1 所示。

图 1:EMAC 子系统

主机软件使用 MDIO 模块来配置连接至 EMAC 的每个 PHY的自动协商参数,恢复协商结果,并在 EMAC 模块中配置所需的参数,以实现正确的操作。该模块可为 MDIO 接口实现近乎透明的操作,基本不需要核心处理器的维护。

EMAC 模块可在网络与处理器之间提供一个高效率的接口。EMAC 模块通常可提供 10Base-T(10Mbit/秒)与 100Base TX(100Mbit/秒)、半双工与全双工模式,以及硬件流控制与服务质量 (QoS) 支持。此外,部分处理器现在还支持可实现 1000 Mbit/秒数据速率的千兆位 EMAC 容量。

SATA

串行链路可获得高性能的部分原因是采用高级系统存储器结构来容纳高速串行数据。这种高级主机控制器接口 (AHCI) 存储器结构可为控制、状态以及命令列表数据表提供一个通用域。命令列表的每条记录都包含用于编程 SATA 设备的信息以及一个用于在系统存储器与设备之间传输数据、指向描述符表的指针。

大多数 SATA 控制器不但支持热插拔,而且还采用端口多路器来增加可连接至单个 HBA 端口的设备数量。SATA 标准有一个很长的特性列表,但几乎没有 SATA 控制器可支持所有这些特性。常见特性包括:

·     支持AHCI 控制器规范1.1版;

·     集成SERDES PHY;

·     集成Rx与Tx数据缓存器;

·     多达 32 条记录的硬件辅助原生命令排序 (NCQ);

·     32 位寻址;

·     支持端口乘法器;

·     机械控制开关 (mechanical presence switch)。

DDR2/移动DDR

简化型 DDR2 控制器包括以下设计块:

·         存储器控制;

·         读取接口;

·         写入接口;

·         以及 IO 块。

这些块以及它们与 DDR2 存储器芯片及核心逻辑的关系见图 2 所示。

图 2:简化型 DDR2 控制器的实施

存储器控制块发出存储器对专用核心逻辑的访问,反过来也是如此。读取物理块负责处理在各个读取周期中采集数据的外部信号时序,而写入物理块则使用适当的外部信号时序管理时钟与数据的发出。

DDR2 SRAM具有差分时钟输入,可降低时钟输入占空比变化时的影响。此外,DDR2 SRAM 还支持数据掩码信号,可在各个写入周期中为数据位添加掩码。

uPP

其它的方法存在类似的困难,而且大多数标准片上数据接口是串行端口,不能执行高速数据传输。

这种外设的基本架构很容易描述。它要有多个具有单独并行总线的通道,经配置后可以容纳超过一个字的长度。此外,它还要有内部 DMA 块,这样其工作就无需占用内核的 MIPS 预算。单、双倍数据速率以及多种数据打包格式也是可以使用的。

uPP 在以 75MHz 的最高时钟速率运行时,能够以远超串行端口外设的速度传输数据。例如,单个运行在 75MHz 速率下的 16 位 uPP 通道能够比运行在 50MHz 速率下的 SPI 外设快 24 倍。

简化的方框图见图 3。

图 3:uPP 的简化方框图

uPP 最重要的特性包括:

·     具有单独数据总线的两个独立通道;

o           两个通道可同时以相同或相反方向运行

·     具有极少控制引脚的简单协议(可配置:每通道 2 ~ 4 个);

·     单倍及双倍数据速率(使用时钟信号的单沿或双沿);

o           双倍数据速率要求 37.5MHz 的最高时钟速率;

·     支持 9 ~ 15 位数据位宽的多种数据打包格式;

·     数据交错模式(限单通道)。

PRU

可编程实时单元 (PRU) 是一种小型 32 位处理引擎,可为片上实时处理提供更多的资源。PRU 专门用于AM1x MPU与OMPAP-L138解决方案中的 TI 嵌入式处理器,可为系统设计人员提供具有高灵活性的额外措施,通常可降低组件成本。

PRU 设计的一个重要目的就是尽可能地创建灵活性,以便执行各种功能。PRU 的高灵活性可帮助开发人员在其终端产品(不管是触摸屏、集成型显示屏还是存储功能)中整合更多的接口,以进一步扩展产品功能或者其自己的专有接口功能。该目标主要是通过提供包括所有系统存储器、I/O 以及中断在内的 PRU 全面系统可视性实现的。

虽然 PRU 能够全面访问系统资源,但其内部资源相对来说比较普通。它具有 4K 字节的指令存储器和 512 字节的数据存储器。此外,PRU 还具有自己的GPIO,时延仅为数纳秒。

PRU 可通过使用简单的汇编语言代码编程来实施定制逻辑。该指令集可分为四大类:

·         将数据移入或移出处理器内部寄存器;

·         执行算术运算;

·         执行逻辑运算;

·         控制程序流。

图 4:采用 PRU 扩展现有设备外设的功能

除了用来顶替 IO,PRU 经编程后还可执行各种控制、监控或其它片上没有提供的功能。这种灵活性对于一些应用而言特别有帮助,这些应用包含的控制要求与任何标准处理器配置提供的控制要求不匹配。

ARM子系统与外设集成

在评估 ARM 处理器中的外设接口时,理解外设与 ARM 子系统的集成方式非常重要。

典型 ARM 子系统包括下列组件组合:

·     ARM内核 (例如:ARM926EJ-S或ARM Cortex-A8?)

o           协处理器15 (CP15)

o           MMU

o           写入缓冲器

o           指令高速缓存

o           数据高速缓存

o           Neon单指令、多数据 (SIMD) 协处理器

o           矢量浮点协处理器 (VFP)

·     ARM内部存储器

o           RAM

·     总线判优器

o           用于访问内部存储器的总线判优器

o           用于访问系统及外设控制寄存器的总线判优器

o           用于访问外部存储器的总线判优器

·     调试、跟踪以及仿真模块

o           JTAG

o           ICECrusher?

o           嵌入式跟踪宏单元 (ETM)

·     系统控制外设

o           ARM中断控制模块

o           锁相环 (PLL) 及时钟控制模块

o           电源管理模块

o           系统控制模块

可参考图 5,了解典型 ARM9 ARM 子系统的方框图。

图 5:ARM 子系统方框图

对于 USB、EMAC、SATA、uPP 以及 PRU 等外设而言,ARM 子系统可访问外设的控制与配置寄存器、时钟以及电源管理控制。

结论

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:No source template was found from input data: [clone vm via /api/provision_requests]
下一篇:Spring Boot 2.6.x整合Swagger启动失败报错问题的完美解决办法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~