.. _chip_function_description: 功能描述 ============================== 处理器 ---------------------------------- Nuclei N300 系列是由芯来科技公司为微控制器、物联网或其他低功耗应用设计的 RISC-V 处理器。N300 产品是与 ARM Cortex-M3/M4/M4F/M33 处理器核心相竞争的产品。 点击这里,查看 `N300 详细特性 `_。 T0 芯片中的 N300 处理器主频 200MHz,支持 3 级流水线,支持ECC,支持ICACHE、DCACHE,3.45 coremark/MHz。 Nuclei UX900 系列是芯来科技公司为实时或高性能嵌入式应用设计的 RISC-V 处理器。UX900 产品是与 ARM Cortex-M7/R4/R5/R7/R8/A35/A53/A55 处理器核心竞争的产品, 可用于 AIoT 边缘计算、存储、其他实时、人工智能、安全或应用处理场景。点击这里,查看 `UX900 详细配置 `_。 T0 芯片中的 UX900 处理器主频 400MHz,支持 9 级流水线,支持ECC,支持ICACHE、DCACHE,5.2 coremark/MHz。 片上存储器 ---------------------------------- 硬件安全模块(HSM)里面有 128KB ROM 用于程序启动,8KB EFUSE 用于安全信息存储; 系统上有 258KB 的 sram 不仅可以用于数据存储,还可以作为系统的 cache(System cache); 处理器内部的 ILM/DLM 不仅可以程序运行,还可以作为系统上的sram 用于数据存储, 其中core0 内部有 64KB ILM 和 64KB DLM, cluster2 内部有两个 core,每个 core 内部都有 32KB ILM 和 32KB DLM。 System cache ---------------------------------- 系统缓存(Syscache)用于存储数据,以便后续对这些数据的请求能够更快地得到响应; 缓存中存储的数据可能是之前计算的结果,或者是存储在内存中的数据的副本。 当请求的数据能在缓存中找到时,就称为缓存命中; 而当无法在缓存中找到时,则称为缓存未命中。 通过从缓存中读取数据来实现缓存命中,这种方式比重新计算结果或从速度较慢的数据存储中读取数据要快得多; 因此,从缓存中能够响应的请求越多,系统的运行速度就越快。 - 最多可配备 4 个通用的 AXI4 从端口,供其他 AXI4 主机使用 - 支持高达 32 位的 AXI4 地址宽度 - 支持多达 16 路缓存,缓存行大小高达 512 位,缓存容量高达 64 千字节 - 支持本地内存 - 支持 AXI 乱序传输和未完成传输 - 支持多达 4 条加载/存储行缓冲区以提高系统性能 - 支持纠错码(ECC) SPI ---- SPI(串行外设接口)是一种专门用于单线、双线或四线 SPI 闪存存储器的通信接口。 - 可配置主从模式。 - 可编程时钟极性与相位(CPOL/CPHA)。 - 可配置的最高位优先或最低位优先。 - 主/从模式可配置的频率(FPCLK/2)。 - 支持摩托罗拉和德州仪器的 SPI 格式。 - 硬件 CRC 功能。 - SDR 和 DDR 支持。 - 对 DDR 模式可配置的 SCK 采样点。 GMC --- GMC 可用于访问外部 NOR/PSRAM,SDRAM。GMC 控制器的主要特性如下: - 支持突发模式 - 可编程连续时钟输出,用于异步和同步访问 - 8 位、16 位或 32 位宽数据总线 - 对每个存储芯片独立选择控制 DDR ---------------------------------- DDR 控制器可以访问外部 DDR4/LPDDR4 颗粒。 - DFI4.0 接口包括 - 写数据和读数据接口 - 控制器启动和物理层启动的更新接口 - 物理层启动的主接口 - 低功耗接口 - 仅支持物理层独立训练模式 - 1:2 频率比 - 软件触发和硬件触发的 ZQ 短校准 - DDR4 自刷新退出后进行的 ZQ 长校准 - LPDDR4 自刷新退出后进行的 ZQ 校准/锁存 - 可配置的 CAM 用于进行乱序调度以优化带宽使用和延迟 - 可编程的 SDRAM 时序参数 - 可编程的 SDRAM 数据总线宽度,支持全总线宽度或半总线宽度(仅适用于 DDR4) - 支持 1、2 或 4 个内存通道 - 对 DDR4 支持 BL8 读写操作(带突发切分) - 对 LPDDR4 支持 BL16 读写操作 - 写后读(WAR)和读后写(RAW)这样的地址冲突情况提供保证一致性 - 无数据传输时候自动下电和退出 - 软件触发的自刷新进入与退出 - 在软件控制下支持 SDRAM 模式寄存器的更新 - 灵活的地址映射逻辑 - 控制器在可编程的时间段内处于空闲状态时的智能刷新控制 - 智能的节能设计,以避免不必要的命令、地址和数据的切换 - 在 DDR4 模式下支持精细粒度的刷新 - 支持数据总线反转(DBI) - 在 DDR4 模式下支持最大节能模式(MPSM) - 在 DDR4 模式下支持多用途寄存器(MPR)的读取和写入 - 在 DDR4 模式下支持每个 DRAM 的可寻址性(PDA) - 在 DDR4 模式下支持命令/地址延迟 - 支持 DDR4 的边带纠错(SECDED) - 支持 DDR4 和 LPDDR4 的内联纠错(SECDED) - 可编程的 AXI 端口编号和 AXI 数据宽度,支持多达 16 个 AXI 端口 - 支持异步 AXI 时钟 - 支持 AXI 增量和环绕式突发类型 - 支持 AXI 读取数据的乱序和交错 uDMA ---------------------------------- uDMA控制器用于在外设/内存与内存之间进行直接的数据传输,无需 CPU 的干预,减轻 CPU 对大数据块传输的负担。 - 支持 8 条内存到内存通道,并可通过软件设置优先级。 - 支持 8 条用于片外内存传输的外围通道。 - 支持以 1 到 16 字节为增量的连续或重复可配置 N 次的内存访问模式。 - 支持可配置的数据宽度 8、16、32、64 位(取决于数据总线宽度)。 - 支持固定或递增地址生成。 - 支持内存到内存的连续或重复可配置 N 次传输模式。 - 支持独立的源和目标基地址设置,字节、半字或字对齐。 - 支持在 32M 字节范围内任意的传输块大小。 - 支持中断生成、屏蔽和清除。 ADC ----------------------------------- - 12bit精度。 - 一共 36 个通道,29 个外部通道。 - 各个通道的 A/D 转换可以采用单次、连续、扫描或非连续模式进行 - 模拟看门狗功能能够检测输入电压是否超过用户定义的高或低阈值 - ADC VSS ≤ VIN ≤ VREFP。 - 温度传感器。 - 测量 VBAT 通道 - 供电要求 1.8V 至 3.6V,典型供电电压为 3.3V。 DAC ----------------------------------- DAC(数模转换器)模块是一款 12 位的电压输出数字-模拟转换器。该转换器可设置为 8 位或 12 位模式,并可与 DMA 控制器配合使用。 在 12 位模式下,数据可以左对齐或右对齐。 该转换器具有两个输出通道,每个通道都有自己的转换器。 在双 DAC 通道模式下,转换可以独立进行或同时进行,当两个通道组合在一起用于同步更新操作时。 有一个输入参考引脚 VREF+(与其他模拟外设共享),用于提高分辨率。在同一个输入上也可以设置内部参考。 请参考电压参考缓冲器(VREF)部分。 当 DAC 输出与输出引脚断开连接并连接到芯片上的外设时,DAC_OUTx 引脚可用作通用输入/输出(GPIO)。 可以选择启用 DAC 输出缓冲器,以允许高驱动输出电流。可以在每个 DAC 输出通道上单独进行校准。DAC 输出通道支持低功耗模式和采样保持模式。 - 一个数模转换接口,最多两个输出通道。 - 在 12 位模式下,左或右数据对齐。 - 同步更新功能。 - 产生噪声波和三角波。 - 双数模转换通道,可实现独立或同步转换。 - 每个通道的 DMA 功能,包括 DMA 丢失数据错误检测。 - 外部触发转换。 - 数模转换输出通道的缓冲/非缓冲模式。 - 缓冲偏移校准。 - 每个数模转换输出均可与 DAC_OUTx 输出引脚断开连接。 - 数模转换输出可连接到芯片内部的外设。 - 输入电压参考来自 VREF+ 引脚或内部 VREF 参考。 TSENS ----------------------------------- 片内温度传感器嵌入在 ADC 控制器中。 COMP ----------------------------------- T0 芯片具有两个比较器。 - 轨到轨比较器。 - 每个比较器都有可配置的模拟输入源。 - 差分输入信号 - 输出比较结果 VREF ----------------------------------- 电压参考缓冲器可用作 ADC、DAC 的电压参考源,也可通过 VREF 引脚作为外部组件的电压参考源。 当内部电压参考缓冲器关闭时,可通过 VREF 引脚提供外部电压参考。 OPAMP ----------------------------------- T0 有两个轨到轨运算放大器(OPAMP1 和 OPAMP2),具备外部或内部跟随器连接功能以及 PGA(基准放大器)能力。 - PGA 具有非反相增益和反相增益 - 一个正输入连接到 DAC - 输出连接到内部 ADC - 每个都有两个输入和一个输出 GMAC -------- T0 有两个以太网,一个千兆以太网,一个百兆以太网。 - 支持 GMII/RGMII/MII/RMII 接口。 - AXI 系统数据接口 - 符合 IEEE 802.3-2008 标准和 IEEE 802.3az 标准。 - 支持接收数据包和发送数据包的 MIB 统计信息。 - 异步/同步流量控制。 - SVLAN 和 VLAN 检测。 - CVLAN 标签插入/删除。 - 组播帧、广播帧和单播地址过滤。 - 支持最大 4KB 的超大数据包。 - 支持第 22 条和第 45 条 MDIO 操作。 - IPv4、IPv6、TCP、UDP、ICMP 在接收路径中的校验。 - IPv4、IPv6、TCP、UDP、ICMP 在发送路径中的校验卸载。 - 支持动态时钟门控以节省电力。 - 支持 1588 PTP 协议。客户在配置 IP 时可以选择此功能。 - 支持 PPS_OUT 功能,将本地 RTC 值输出到外部 PPS_OUT 引脚。 - 当作为 1588 主机时,支持将本地 RTC 与外部 PPS_IN 引脚同步。客户在配置 IP 时可以选择此功能。 USB ----------------------------------- 通用串行总线(USB)控制器符合 USB 2.0 规范,能够支持高速、全速或低速的数据传输,支持作为主机和从设备。 它是一个双角色控制器,用于与另一设备进行即插即用(OTG)通信,支持会话请求协议(SRP)和主机协商协议(HNP)。 该控制器最多支持 7 个发送或接收端点(包括端点 0)。 端点 0 用于控制传输以完成枚举过程,其他端点则支持批量、中断和异步传输。 每个端点都有一个 FIFO 用于传输或接收数据,FIFO 的地址和深度可以进行配置。 当作为主机时,TX 表示输出事务,RX 表示输入事务。 当作为从设备时,TX 表示输入事务,RX 表示输出事务。 对于 TX 操作,CPU 或 DMA 将数据写入 FIFO,控制器从 FIFO 读取并发送出去。 对于 RX 操作,控制器接收数据并写入 FIFO,然后 CPU 或 DMA 从 FIFO 读取。 此外,内部直接内存访问(IDMA)在配置后可以访问 FIFO。 该控制器可被配置为提供 UTMI 低引脚接口(ULPI)以实现高速传输,以及 FS PHY 接口以实现全速和低速传输, 或者配置为 USB 2.0 转接器宏单元接口(UTMI)以实现所有高速、全速和低速传输。 - 符合 USB 2.0 标准。 - 支持动态主机-外围设备角色切换。 - 支持高速(480 Mb/s)、全速(12 Mb/s)或低速(1.5 Mb/s)的 USB 2.0 主机模式。 - 支持高速或全速的 USB 2.0 外围模式。 - 支持控制、批量、中断和异步传输。 - 支持高带宽的异步和中断传输。 - 支持挂起和恢复信号。 - 支持在外围模式下的远程唤醒。 - 支持在高速主机模式下的集线器连接。 - 一个用于外部 PHY 的 ULPI。 - 最多 7 个发送和接收端点(包括端点 0)。 - 符合高速 OTG 标准。 - 支持 SRP 和 HNP 协议。 - 支持对端点 FIFO 的内部或外部 DMA 访问。 - 内部 DMA 最多有 7 个通道。 USART ----------------------------------- USART(通用同步异步接收发送器)提供了一种灵活的全双工数据交换方式,可与需要采用行业标准 NRZ 异步串行数据格式的外部设备进行通信。 它还通过采用小数波特率发生器提高了波特率的准确性。 USART 支持同步单向通信和半双工单线通信,同时还支持智能卡协议和调制解调器操作(CTS/RTS)。 通过使用具有 DMA 控制器的 DMA 通道,可以实现高速数据通信。 - 全双工、异步通信。 - 两个内部的 FIFO(先进先出存储器)用于传输和接收数据 - 共用可编程的发送和接收波特率 - 自动波特率检测 - 可编程的数据字长(5/6/7/8/9 位)。 - 可配置的停止位(0.5/1/1.5/2 个停止位)在发送和接收端。 - 奇偶校验控制 - 单线半双工通信。 - 同步主/从模式以及同步通信的时钟输出/输入。 - 支持与 DMA 控制器配合使用以进行高速数据通信的 DMA 访问。 - 分别为发送器和接收器设置的使能位 - 支持调制解调器的硬件流控制。 - 可编程的数据顺序(最高有效位优先或最低有效位优先移位)。 - 发送和接收的独立信号极性控制。 - 可交换的发送器/接收器引脚配置。 - 支持 RS-485 收发器。 - 智能卡模式,ISO/IEC 7816-3 标准定义的 T=0 和 T=1 异步协议的智能卡。 I2C ----------------------------------- I2C(集成电路间通信)总线接口是微控制器与串行 I2C 总线之间的接口。 它具备多主控制能力,并能控制所有 I2C 总线相关的顺序、协议、仲裁和时序。 它支持标准模式(standard mode,最高可达 100 千赫兹)、快速模式(fast mode,最高可达 400 千赫兹)、 快速模式增强模式(fast mode plus,最高可达 1 千兆赫兹)以及高速模式(high speed 模式,最高可达 3.4 千兆赫兹)。 根据具体的设备实现情况,可以提供直接内存访问(DMA)功能,以减轻 CPU 的负担。 - 并行总线/I2C 协议转换器。 - 主机和从机功能:同一接口既可以作为主机也可以作为从机。 - 两个内部 FIFO 用于发送和接收数据 - I2C 支持主机模式和从机模式 - 状态标志位:发送/接收模式标志;字节结束传输标志;busy 状态位。 - 支持使用 DMA 控制器进行 DMA 访问以实现高速数据通信。 - 可编程 SCL 和 SDA 时序参数。 - 停止与起始条件之间的总时延。 - 兼容 PMBus 1.1 标准。 - 兼容 SMBus 2.0 标准。 I3C ----------------------------------- 改进型集成互联电路(I3C)是 MIPI 联盟所定义的一组通信协议的一部分。 该规范旨在通过为传感器提供快速、低成本、低功耗的双线数字接口,来简化移动无线产品中的传感器系统设计架构。 MIPI I3C 主控制器是一个数字核心,实现了与主控制器相关的所有协议功能,这些功能在 MIPI I3C 规范中有所定义。 MIPI_I3C 核心在系统(应用)与 I3C 接口之间提供接口,允许与 I3C 设备和具有 MIPI I3C 规范中所规定限制的传统 I2C 设备(从机)进行通信。 MIPI_I3C 控制器可以配置为 I3C 主控制器或 I2C 主/从控制器。该控制器满足 MIPI I3C 规范中规定的 I3C 协议和 I2C 协议的要求。 - 双线 I3C 串行接口,由一条串行数据线(SDA)和一条串行时钟线(SCL)组成 - 仅支持主从模式,即发送大部分 I3C 命令(CCC),这些命令可以是广播形式(向总线上所有从设备发送)或定向形式(针对特定的单个从设备发送) - 仅支持单数据速率通信(SDR) - 在主模式中支持时钟停止功能 - 硬件辅助动态地址分配(DAA) - 检测因接收 IBI 而导致的仲裁丢失,并随后重新传输命令 - 在线中断(无数据包)处理 - 支持多缓冲数据通信的 DMA 访问 - 兼容 I2C 协议 SDIO ----------------------------------- SDIO(安全的数字输入/输出接口) 协议是基于 SD 卡协议发展而来的。在很多方面,SD 卡的读写协议得以保留。 同时,SDIO 协议在 SD 卡协议的基础上新增了 cmd52 和 cmd53 命令。 因为SDIO 和 SD 卡规格之间的一个重要区别在于增加了低速标准。 低速卡的目标应用是通过最小的硬件投入来支持低速 I/O 功能。 - 符合 EMMC(嵌入式多媒体卡)系统规范版本 5.1。 - 支持三种不同的数据总线模式:1 位(默认)、4 位和 8 位(HS400 不支持)。 - 与之前的 EMMC 版本完全兼容(向后兼容)。 - 符合 SD 存储卡规范版本 4.2(SPI 模式和 UHS-II 模式不支持)。 - 符合 SDIO 卡规范版本 4.0。支持两种不同的数据总线模式:1 位(默认)和 4 位(SPI 模式和 UHS-II 模式不支持)。 - 支持 SDIO 从模式(仅 I/O 模式) LGPIO ----------------------------------- LGPIO(逻辑通用输入/输出)控制器是映射在内部内存映射中的一个外围设备。 - 输出状态:推挽式或开漏式 + 上拉/下拉。 - 输出数据来自输出数据寄存器(GPIOx_OVAL)。 - 输入状态:浮空、上拉/下拉。 - 输入数据至输入数据寄存器(GPIOx_IVAL)。 - 对每个 LGPIO 进行灵活的位操作,位设置(GPIOx_BIT_SET 寄存器),位复位(GPIOx_BIT_RESET 寄存器),位翻转(GPIOx_BIT_TOGGLE 寄存器)。 - 提供锁定机制(GPIOx_MASK)以冻结 I/O 端口的椭圆部分。 - 高度灵活的引脚复用允许将 I/O 引脚用作 LGPIO 或作为多个外设功能之一。 - 支持噪声滤波功能,噪声的长度可通过软件进行配置。 XKAN ----------------------------------- XKAN 模块是一种通信控制器,它遵循 CAN 协议规范的 2.0 版本 A、B 部分以及具有灵活数据速率协议规范的 1.0 版本 CAN 协议。 XKAN 子系统中有一个 8K 字节的随机存取存储器(RAM), XKAN 内部的 RAM 用于接收 CAN 基本格式(2.0 A 版本)和扩展格式(2.0 B 版本)的滤波器、接收缓冲区和发送缓冲区。 所有这些功能组件的数量可以通过 XKAN 寄存器进行配置。 - 支持 CAN 协议版本 2.0 A、B 及具有灵活数据速率协议规范版本 1.0 的 CAN - 符合 ISO 11898-1 标准 - CAN 错误记录 - 改进的接收滤波 - 两个可配置的接收 FIFO - 最多 64 个专用接收缓冲区,每个接收缓冲区可配置为存储 8、12、16、20、24、32、48 或 64 字节的数据长度 - 最多 32 个专用发送缓冲区,每个发送缓冲区可配置为存储 8、12、16、20、24、32、48 或 64 字节的数据长度 - 可配置的发送 FIFO - 传输中断功能 - 可编程的环回测试模式 - 基于 16 位自由运行计时器的时间戳 - 在以更快的数据速率传输具有灵活数据速率消息的 CAN 时的收发器延迟补偿功能利率 - 可屏蔽模块中断 - 支持睡眠模式 ADVANCED_TIMER ----------------------------------- 高级控制定时器由一个 32 位自动重载计数器组成,该计数器由可编程预分频器驱动。 它可用于多种用途,包括测量输入信号的脉冲长度(输入捕获)或生成输出波形(输出比较、脉宽调制、带有死区插入的互补脉宽调制)。 通过定时器预分频器和 RCC 时钟控制器预分频器,可以将脉冲长度和波形周期从几微秒调节到几毫秒。 - 32 位上升、下降、上升/下降自动重载计数器。 - 32 位可编程预分频器,允许以任意 1 至 4294967296 的倍数)对计数器时钟频率进行分频。 - 最多 4 个独立通道 - 配套输出,具有可编程死区时间。 - 同步电路用于通过外部信号控制计时器,并将多个计时器相互连接。 - 重复计数器,仅在计数器的给定数量的周期后更新计时器寄存器。 - 支持增量(四象限)编码器和霍尔传感器电路,用于定位目的。 - 外部时钟触发输入或逐周期电流管理触发输入。 BASIC_TIMER ----------------------------------- 基本定时器由一个 32 位的自动重载计数器和一个可编程预分频器驱动组成。它完全独立,可作为通用定时器用于生成时间基准。 - 32 位自动重载计数器。 - 使用 16 位可编程分频器来降低计数器时钟频率。 - 通过两个更新事件源生成中断/直接内存访问请求 RTC ----------------------------------- RTC(实时时钟)能够自动唤醒,用于管理所有低功耗模式。 实时时钟是一个独立的计时器,提供了一组持续运行的计数器,软件可以利用这些计数器来实现时钟日历功能。 - 可编程预分频器:分频系数可达 2^20。 - 64 位可编程计数器,用于长期测量。 - 两个独立的时钟: - ICB 时钟用于 ICB 接口 - RTC 时钟用于 RTC 计数器 - 两种独立的复位类型: - 寄存器总线接口复位 - rtc专用复位,一般为系统 por 复位 - 三种专用可屏蔽中断: - 报警中断,用于生成软件可编程的报警中断 - 秒中断,用于生成具有可编程周期长度的周期性中断信号 - 越界中断,用于检测内部可编程计数器何时滚到零 - 数字校准电路(周期性计数器校正)在数秒的校准窗口内获得。 WWDG ----------------------------------- WWDG(窗口看门狗)用于检测软件故障的发生,这类故障通常是由外部干扰或未预见的逻辑条件引起的,会导致应用程序程序放弃其正常流程。 看门狗电路会在设定的时间段到期时触发微控制器复位,除非程序在计数器清零之前刷新了下计数器的内容。 如果在下计数器达到窗口寄存器值之前刷新了下计数器值,也会触发微控制器复位。 WWDG 计数器必须在有限的时间窗口内进行刷新。 - 可编程自由运行递减计数器。 - 条件复位: - 当下降计数器的值小于 0x40 时(若看门狗已激活),进行复位(若看门狗已激活)。 - 如果下降计数器在窗口范围外被重新加载,则进行复位(若看门狗已激活)。 - 早期唤醒中断(EWI):(若已启用且看门狗已激活)当下降计数器等于 0x40 时触发。 - 在 JTAG 调试模式下计数器停止。 IWDG ----------------------------------- IWDG(独立看门狗)适合那些要求看门狗程序作为独立进程在主应用程序之外运行,但对定时精度要求较低的应用场景。 它用于检测并解决由于软件故障导致的故障,并触发系统复位。 - 自由运行的递减计数器。 - 当 32 位递减计数器的值达到 0x0000_0000 时,会进行复位(如果看门狗已启动)。 - 在 JTAG 调试模式下计数器会停止运行。 MDIOS ----------------------------------- 如果系统中的主芯片需要管理(配置和获取状态数据)一个或多个从芯片,可以使用 MDIO 总线读取其中一个从器件的 MDIOS 寄存器内容,或者将数据写入其中 一个从器件的 MDIOS 寄存器。 - 32个 MDIOS 寄存器地址,每个地址使用单独的输入和输出数据寄存器进行管理 - 可配置从(端口)地址 - 可单独屏蔽的中断/事件 - 能够在停止模式下工作以及从停止模式唤醒 HDMIC-CEC ----------------------------------- 消费电子控制(CEC)是 HDMI(高清晰度多媒体接口)标准一部分,用于在各种视听产品之间提供高级控制功能。 CEC以较低的速度运行,具有最小的处理和内存开销。HDMI-CEC 控制器为该协议提供了硬件支持。 - 符合 HDMI-CEC v1.4 规范 - 在停止模式下工作,适用于超低功耗应用 - 可配置外围地址(OAR) - 支持监听模式 -C 允许接收发送至与 OAR 不同的目的地址的 CEC 消息,同时不会干扰 CEC 线路 - 传输错误检测(TXERR) - 仲裁丢失检测(ARBLST) - 传输欠载检测(TXUDR) - 接收溢出检测(RXOVR) SWPMI ----------------------------------- 单线协议主接口(SWPMI)是与 ETSI TS 102 613 技术规范中定义的非接触式前端(CLF)相对应的主接口。 CAPC ----------------------------------- 电容式触摸感应控制器常用于手指触摸检测,支持 8 个通道电容检测、支持防潮功能、遇水保护功能和接近感应模式。 SAI ----------------------------------- SAI 接口(串行音频接口)因其灵活性和广泛配置而提供了多种音频协议。 它可以针对许多立体声或单声道音频应用进行设计。 例如,可以采用 I2S 标准、低位有效或高位有效格式,以及 PCM 协议等。 当音频模块配置为发送器时,会提供 SPDIF 输出。 为了实现这种灵活性和可重新配置性,SAI 包含两个独立的音频子模块。 每个子模块都有自己的时钟发生器和 I/O 线控制器。 SAI 有两种配置模式:主模式或从模式。音频子模块要么是接收器,要么是发送器,并且可以同步工作或不同步工作(相对于另一个子模块)。SAI 可以与其他 SAIs 连接以实现同步工作。 - 独立的四个 SAI(SAI0、SAI1、SAI2、SAI3)。 - 独立的音频子块,既可以作为发送器也可以作为接收器,并且每个音频子块都有各自的 FIFO 在 SAI 中。 - 每个音频子块都有 16 字节的集成 FIFO。 - 音频子块之间可以同步或异步工作。 - 可以在多个 SAI 之间实现同步。 - 两个音频子块的主从配置都是独立的。 - 每个音频块都有一个时钟发生器,当两个音频子块都配置为主模式时,用于针对独立的音频频率采样。 - 数据大小可配置:8、10、16、20、24、32 位。 - 音频协议:I2S(I2S 飞利浦标准、I2S LSB 或 I2S MSB-支持、长 PCM 或短 PCM)、TDM、AC’97、spdif、PDM。 - PDM 接口,支持多达 4 个麦克风对,并支持主接收模式。 - 自由协议(I2S、LSB 或 MSB-支持、短 PCM、长 PCM)接口,支持最多 4 根线。 - 如果需要,可提供 SPDIF 输出。 - 最多 16 个 slot 可用,可配置大小。 - 每帧的位数可以配置。 - slot 的活动水平可配置(偏移、位长度、电平)。 - slot 中的第一个活动位位置可配置。 - 数据传输采用 LSB 首先或 MSB 首先的方式。 - 静音模式。 - 立体声/单声道音频帧功能。 - 通信时钟上升沿可配置(SCK)。 - 可启用相关中断的错误标志。 DFSDM ----------------------------------- DFSDM(数字滤波同步模数转换器)是一种高性能模块,配合Σ-Δ器件的使用,可进行高精度、高速率的AD测量。 - 多达 8 个复用输入数字串行通道 - 高达 24 位的输出数据分辨率 - 可通过软件触发、内部定时器、外部事件同步启动转换 - 模拟看门狗功能 - 中断:结束转换,溢出,模拟看门狗,短路,通道时钟缺失 SPDIFRX ----------------------------------- SPDIFRX 接口处理 S/PDIF 音频协议。 - 提供多达 4 路输入 - 自动符号率检测 - 最大符号率:12.288 MHz - 支持 8 kHz 到 192 kHz 的立体声 - 支持 IEC-60958 和 IEC-61937 音频标准,消费类应用 - 可在 S/PDIF 流内插入 SOPD B、M 和 W - 奇偶校验位管理 - 使用 DMA 通信进行音频采样 - 对于控制和用户信息采用 DMA 通信 - 中断功能 DISP ----------------------------------- 显示控制器(DISP)提供并行数字 RGB(红、绿、蓝)信号以及水平、垂直同步、像素时钟和数据使能信号作为输出,可直接与各种 LCD 和 TFT 屏幕接口。 - 24 位 RGB 或 20 位 BT1120 并行像素输出;每像素 8 位(RGB888) - 1 个显示 FIFO(32×24 位) - 每层最多 256 种颜色的色查找表(256×24 位) - 不同显示面板的可编程时序 - 可编程背景颜色 - HSYNC、VSYNC 和数据使能的可编程极性 - 每层最多可选择 8 种输入颜色格式 - ARGB8888 - RGB888 - RGB565 - ARGB1555 - ARGB4444 - L8(8 位亮度或色查找表) - AL44(4 位透明度 + 4 位亮度) - AL88(8 位透明度 + 8 位亮度) - 低通道每位伪随机抖动输出 - 支持两个图层融合 - 颜色键(透明颜色) - 可编程窗口位置和大小 - 支持薄膜晶体管(TFT)彩色显示 - 最多 4 个可编程中断事件 DCMI ----------------------------------- DCMI(数字相机接口)能够接收来自外部 8 位、10 位、12 位、14 位或 16 位 CMOS 相机的高速数据流, 还能够完成一些简单的图像处理算法,例如数据格式转换、统计直方图、图像裁剪和降采样。 - 支持 DVP 接口摄像头(GC0308/OV5640)的图像和视频捕捉功能。 - 支持并行数字视频解码芯片(TVP5150)的图像和视频捕捉。 - 支持 8 位、10 位、12 位、14 位、16 位并行输入数据。 - 支持 RGB565/YUV422/RAW/JPEG 格式,可直接将 RAW/JPEG 格式数据写入用户可配置的内存,无需解码。 - 支持嵌入式代码同步和硬件同步。 - 支持图像裁剪。 - 支持 2 倍、4 倍和 8 倍图像下采样。 - 支持可配置中断,帧结束时触发中断、溢出和错误。 - 支持数据格式转换:YUV422 到 RGB565、YUV422 到 RGB888、YUV422 到灰度、RGB565 到 RGB888 和 RGB565 到灰度。 - 支持可配置地址内存写入,能够分别以不同格式(如 RGB565、ARGB8888、图像直方图、灰度值、R 值、G 值和 B 值)单独写入不同的地址。 - 支持将 RAW 和 JPEG 数据格式写入配置地址,无需解码。 - 支持生成图像直方图并将其写入配置地址。 G2D ----------------------------------- 图形 2D 加速器(G2D)是一种专门用于图像处理的直接内存访问(DMA)设备。 - 一个寄存器配置从总线。 - 一个内存访问的内部主总线(该总线的地址宽度可为 32 ~ 64 位,数据宽度为 32 位)。 - 从一个区域复制到另一个区域。 - 在源图像和目标图像之间进行像素格式转换的复制。 - 从两个具有独立颜色格式的源进行独立的色彩格式复制并进行混合。 - 用固定颜色填充区域。 - 用户可编程的工作区域大小。 - 源区域和目标区域的偏移量可用户编程。 - 整个空间上的源和目标地址可用户编程。 - 最多 2 个源进行混合操作。 - 可修改的 Alpha 值(源值、固定值或调制值)。 - 用户可编程的源和目标颜色格式。 - 支持从 4 位到每像素 32 位的 11 种颜色格式(间接(L8,AL44,AL88,L4)或直接(ARGB8888,RGB888,RGB565,ARGB1555,ARGB4444,A8,A4)颜色编码)。 - 2 个内部存储器用于间接颜色模式下的 CLUT 存储。 - 通过 CPU 自动加载或编程 CLUT。 - 用户可编程的 CLUT 大小(最大大小为 32x256 位)。 - 4 种工作模式:寄存器到内存、内存到内存、带有像素格式转换的内存到内存、以及带有像素格式转换和混合的内存到内存操作。 - G2D 操作的中止和暂停。 - 在用户可编程的目标行上触发中断。 - 在总线错误或访问冲突时生成中断。 - 在进程完成时生成中断。 - 用户可编程的图像大小。 - 支持 3 种镜像模式(X、Y、XY)。 - 支持裁剪窗口。 - 支持下采样(采样率可为 1 至 8)。 - 支持 RGB 像素顺序和 BGR 像素顺序。 JPEG ----------------------------------- 硬件 JPEG 编解码外设符合 JPEG 标准(JPEG ISO/IEC 10918-1 ITU-T建议T.81)。它可以解码/编码JPEG压缩图像,每个样本8位。 JPEG 编解码加速器为熵编解码段(ECS)编码和解码提供硬件加速。 支持 JPEG 文件头生成和解析,支持JFIF(JPEG文件交换格式), 并且可以灵活地指定要对每个分量使用的量化表和霍夫曼表。 - 支持JPEG解码和编码。 - 对每个像素数据进行编解码只需一个时钟周期。 - 支持RGB、 YCbCr、YCMK和BW(灰度)图像色彩模型。 - 编解码时每图像分量8位深度。 CRC ----------------------------------- 采用多项式生成器的 CRC(循环冗余校验)计算单元,适用于 8 位/16 位/32 位数据字的 CRC 计算代码。基于 CRC 的技术也常被用于验证众多应用中数据传输或存储的完整性。 - 支持完全可编程的奇数多项式,以及可编程的 CRC 宽度(7、8、16、32 位)。 - 支持处理 8、16、32 位数据宽度。 - 支持对 32 位数据寄存器进行间接访问。 - 支持输入缓冲区以避免计算过程中出现总线阻塞。 - 支持针对 32/16/8 位数据宽度在 4/2/1 系统时钟周期内完成 CRC 计算。 FFT ----------------------------------- 快速傅里叶变换(FFT)是一种用于数字计算离散傅里叶变换(DFT)的高效算法类。在信号处理过程中,可以收集并分析信号的时域和频域信息。 - 支持变换点大小 n = 2^m,其中 m = 4 至 12 。 - 支持 16 位和 32 位定点数据格式。 - 支持最大总线传输宽度 64 位。 - 支持基数为 2 的时域衰减(DIT)和频域衰减(DIF)FFT、IFFT 算法。 - 支持在蝶形运算后进行舍入和截断饱和处理,以防止溢出。 - 支持三种输入数据数组类型:虚部和实部(IRIR)、实数先于虚数(RnIn)、仅实部(_R_R)、实部和虚部分离(RR、II)。 - 支持单端口本地 SRAM 缓存,并且总线可以独立访问 SRAM 功能。 - 支持类似于计算单元的外部功能加速,例如缩放、复数乘法、实数乘法、偏移等。 FILTER ----------------------------------- FILTER 是一种专用的直接内存访问(DMA)设备。 它能够从两个存储器中获取操作数,在多种模式下对操作数进行计算,将算术运算的结果进行二值化处理。 - 一个用于寄存器配置的从总线。 - 一个用于内存访问的主总线(该总线的地址宽度可以为 32 ~ 64 位,数据宽度为 32 位)。 - 同时从两个不同模式的存储器中获取操作数。这些模式包括:线性、滑动、循环、二维 - 输出支持以下模式:线性、二维列、二维行 - 运算单元支持以下模式(A 和 B 是来自存储器的两个数据,REG0 和 REG1 是可配置的寄存器): - AxB - AxB + REG0 - AxB 进行累加 - AxA - AxA + B - AxA - B - AxA 进行累加 - AxA + REG0 - AxREG1 - AxREG1 + B - AxREG1 - B - AxREG1 + REG0 - AxREG1 累加 - A + B - A - B - A+REG0 - 将 alu 计算结果进行二值化处理。 CORDIC ----------------------------------- CORDIC 能够对电机控制、计量、信号处理等众多应用中常用的数学函数(主要是三角函数)进行硬件加速。 与软件实现相比,它能加快这些函数的计算速度,从而有可能降低运行频率。 - 24 位 CORDIC 旋转引擎 - 圆形和双曲线模式 - 旋转和变向模式 - 正弦、余弦、双曲正弦、双曲余弦、反正切、反正切2、反双曲正切、模、平方根、自然对数、指数 - 可编程精度 - 低延迟总线从机接口 - 结果可在准备好时立即读取,无需轮询或中断 - 支持 DMA 读写通道 - 通过 DMA 可以对多个寄存器进行读写操作 FILTER MATH ----------------------------------- 数学加速滤波器能够处理有限脉冲响应滤波器(FIR)和无限脉冲响应滤波器(IIR)。 - 支持 q7、q15 和 q31 数据类型 - 支持 FIR 和 IIR(直接形式 1)函数,最大抽头数量为 1023 - 内部 sram 中最多可以定义三个区域用于数据缓冲区(两个输入,一个输出),通过可编程基地址指针和相关大小寄存器来定义 - 输入和输出缓冲区可以是循环的,系数缓冲区为固定缓冲区 - 支持向量函数:点积、卷积、相关 - ICB 从接口 - 支持DMA 读取和写入请求及确认通道 - 内部 sram 可在 SoC 中被其他主设备访问 NACC ----------------------------------- 神经网络加速器(NACC)能够提升神经网络的推理性能。NACC 的数据类型包括 INT8 和 INT16, 并支持卷积、深度卷积、平均池化、最大池化、全连接、激活函数以及矩阵乘法等加速功能。 例如,它可以加速 ResNet、MobileNet、Alexnet、VGG16、YOLO、LSTM/RNN 等网络结构。 可用作 NMSIS 中功能的加速器,也可用于开源的 TensorFlow Lite。 - 支持 8 位、16 位定点数据格式。 - 支持 128 位总线传输数据宽度。 - 支持本地单端口静态随机存取存储器缓存,且总线能够独立访问该存储器功能。 - 支持在 NMSIS 中加速卷积、RGB 卷积、深度卷积、池化、全连接、元素级操作、激活函数。 - 支持在 NMSIS 中加速矩阵乘法功能。 - 支持 IFM 分割宽度或高度、卷积核分割。 - 支持多核模式。 - 具有共享的静态随机存取存储器用于存储 IFM、临时数据和 OFM。 ACRYP ----------------------------------- 非对称加密加速器(ACRYP)适用于嵌入式应用,具有进行基本运算和常用加密操作的能力。 - RSA - RSA 密钥大小可达 8192 位。 - RSA 密钥对生成。 - ECC(包括 SM2) - GF(p) 和 GF(2^m) 上的 ECC 曲线。 - GF(p) 上的 ECC 密钥大小可达 521 位。 - GF(2^m) 上的 ECC 密钥大小可达 571 位。 - 短韦伊斯特拉斯特曲线和科布利茨曲线,包括来自标准 NIST、brainpool、SEC 2 和 SM2 的曲线。 - 蒙哥马利曲线 25519/448。 - 爱德华兹曲线 25519/448。 - 功能 - 大数运算。 - 非对称加密操作。 - 在 GF(p) 和 GF(2^m) 上均可使用的双域处理器。 - 可配置的系统总线接口(寄存器配置总线)。 - 可配置的字节大小,分别为 32 位或 64 位。 - 可配置的 SRAM 深度。 - 按字节大小可编程的运算符范围从 32 位到 8192 位。 - 内置操作可供用户使用,并具有丰富的控制选项,有助于构建新的应用程序。 - 驱动程序工作时支持以下应用 - 密钥交换方案(DHKE、ECDH、X25519/X448)。 - 加密方案(RSAES-OAEP、RSAES-PKCS1-v1_5、ECIES)。 - 签名方案(RSASSA-PSS、RSASSA-PKCS1-v1_5、DSA、ECDSA、Ed25519/Ed448、SM2 签名)。 - RSA CRT、素性测试。 CRYP ----------------------------------- 对称加密处理器(CRYP)可采用 DES、Triple-DES、AES 或 SM4 算法对数据进行加密和解密。 - 兼容由联邦信息处理标准出版物(FIPS PUB 46-3,1999 年 10 月)和美国国家标准协会(ANSI X9.52)定义的数据加密标准(DES)和 Triple-DES(TDES)。 - 兼容由联邦信息处理标准出版物(FIPS PUB 197,2001 年 11 月)定义的高级加密标准(AES)。 - 兼容GB/T 32907-2016 中的 SM4 加密标准。 支持多种密钥大小和链接模式: - 兼容 DES/TDES 链接模式 ECB 和 CBC,支持每个密钥 8 位奇偶校验的标准 56 位密钥。 - SM4 链接模式 ECB、CBC、CTR、GCM、GMAC、CCM,适用于 128 位密钥。 - AES 链接模式 ECB、CBC、CTR、GCM、GMAC、CCM,适用于 128、192 或 256 位密钥。 CRYP 是一个 32 位总线外设。它支持对输入和输出数据的 DMA 传输(需要两个 DMA 通道)。该外设还包括输入和输出 FIFO(每个 8 个字节深)以提高性能。 HASH ----------------------------------- 哈希计算是安全哈希算法(SHA-1、SHA-224、SHA-256、SHA-384、SHA-512)、 MD5(消息摘要算法 5)以及 SM3 哈希算法以及 HMAC(密钥哈希消息认证码)算法的完全兼容实现,适用于多种应用场景。HMAC 适用于需要消息认证的应用。 - 适用于数据认证应用,符合以下标准: - 支持联邦信息处理标准出版物 FIPS PUB 180-4,安全哈希标准(SHA-1 和 SHA-2 系列) - 支持互联网工程任务组(IETF)请求规范 RFC 1321 MD5 消息摘要算法 - 支持互联网工程任务组(IETF)请求规范 RFC 2104 HMAC:密钥哈希消息认证码,以及联邦信息处理标准出版物 FIPS PUB 198-1,密钥哈希消息认证码(HMAC) - 支持对国家机密的数字签名和验证 SM3 标准。 - 从连续消息块中获取的摘要的 32 位字节相加,形成整个消息的摘要。 - 自动进行 32 位字节的交换,以符合输入位串的内部小端表示形式。 - 支持字节、字节对、32 位字的字节对交换。 - 自动填充以使输入位串符合摘要最小块大小 512 位(16 x 32 位)或 1024 位(32 x 32 位)的要求。 - 快速计算 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、SM3 和 MD5。 - 输出消息摘要的 16 个 32 位字(H0 至 H15)。 - 具有直接内存访问(DMA)支持的数据流自动控制功能,通过一个通道实现 4 个字节的突发传输。 - 基于块(512 位或 1024 位)的可中断消息摘要计算 - 一个内部输入 FIFO TRNG ----------------------------------- TRNG 是一种真正的随机数生成器,能够提供 32 位高质量的随机数。它由两部分组成,即实时噪声源(物理部分)和后处理单元。 在噪声源内部,有多个振荡器,它们采用不同的工作机制。振荡器的输出存在抖动,这是随机性的来源。该输出被采样、后处理,然后形成 32 位数据并存储在输出缓冲区中。 这是一种轻量级且低功耗的随机数生成器,适用于中等吞吐量的应用。 - 符合 NIST SP 800-90B 和 AIS-31 标准的熵源。 - 随机数通过了 NIST SP 800-22 测试套件的测试。 - 集成了 1 种物理随机源 - 输出 32 位随机数 - 可配置的输出缓冲区大小(默认为 4×32 位) - 硬件调节组件 - 可编程:启用/禁用 - 使用基于 AES 的块密码衍生函数(BC_df)(符合 NIST SP 800-90B) - 可配置和可编程的 AES 密钥大小 128/192/256 位。 - 可编程的输入长度。高级用户可以根据原始样本的质量来确定此长度,以调整随机数的吞吐量。 - 内置健康测试 - 启动测试和连续测试。 - 窗口大小和阈值可编程。 - 支持两种范围:线性/聚合。在线性范围内对单个线进行测试(由特定输出位形成的流)。在聚合范围内对所有线进行集体测试。 - 有两个测试套件可用。 (1)(符合 NIST SP 800-90B 标准)重复次数测试和自适应比例测试。 (2)(符合 AIS-31 标准)单比特测试、运行测试和扑克测试。 - 每项测试均可通过软件进行启用/禁用。 - 可配置。测试套件可以被移除以节省资源。 - 低功耗。 - 设备在一定时间处于闲置状态时可以进入睡眠模式,睡眠期间噪声源被关闭。 - 在健康测试警报或致命错误发生时自动关闭。 - 中断 - 有多个中断信号,用于数据就绪、健康测试警报、错误等。 - 一个中断输出信号,为电平信号。 - 可配置的系统总线接口(例如 AXI/AHB/APB),数据宽度为 32 位。 - 可配置的外部数据端口数量。 MAILBOX ----------------------------------- maibox 是 hsm 系统与主机处理器之间的通信通道。 主机处理器通过 AXI 从接口与 mailbox 进行通信,而 mailbox 则通过系统总线与内部系统进行通信。 所有主机处理器都可以访问外部可见的 16K 字节地址映射,包括 mailbox 内存、 mailbox 状态和 mailbox 控制寄存器。 访问 mailbox 由主机 ID 和每个 mailbox 的状态来控制,而访问中断控制则完全由主机 ID 管理。 FRTDEC ----------------------------------- 实时解密引擎 FRTDEC 能够根据读取请求地址信息实时解密 AXI 通信数据。 在 FRTDEC 中可以定义四个独立且不重叠的加密区域,每个区域可选择执行只读或永不执行的限制。 FRTDEC 使用 AES-128 以计数器模式实现最低可能的延迟。 因此,每次一个加密区域的内容发生变化时,整个区域都必须使用不同的加密上下文(密钥或初始化向量)重新进行加密。 这种限制使得 FRTDEC 适用于解密例如存储在外部 NOR 闪存中的只读数据或代码。 注意:当 FRTDEC 与 SPI 控制器结合使用时,必须使用闪存控制器的内存映射模式来访问外部只读内存。CPU 内存和 FRTDEC 采用小端格式,而 AES 硬件加速器采用大端格式。 - 在 SPI 控制器的内存映射读取操作(单次或多次)过程中,可实时进行 128 位解密。 - 使用 AES 的计数器(CTR)模式,带有密钥流 FIFO(深度为 4) - 支持任何读取大小 - 读取的物理地址用于加密/解密 - 最多四个独立的加密区域 - 区域定义的粒度:4096 字节 - 区域配置写锁定机制 - 两种可选的解密模式:仅执行模式和从不执行模式。 - 每个区域都有其自身的 128 位密钥、两个字节的固件版本和八个字节的应用定义的随机数。 - 每次应用程序执行加密操作时,至少必须更改其中一项。 - 加密密钥的保密性和完整性保护 - 仅写入型寄存器,带有软件锁定机制 - 提供 8 位 CRC 作为公开密钥信息 - 支持预取机制。 - AMBA AHB 从属外设,仅通过 32 位字单访问可访问(否则会生成 AHB 总线错误,并且写访问将被忽略)。 EFUSE ----------------------------------- EFSUE 实现芯片的动态实时重新编程功能。此外,它还可以作为一次性可编程只读存储器使用,并能存储其他数据,例如 AES 密钥和 SRAM 自修复数据。 - 6.5Kb 用于通用数据。 - 384b 用于 sram bisr 数据。 - 768b 用于密钥。 - 128b 用于 efuse 数据块控制标志。 - 128b 用于修复坏像素(最多 8 个)。 JTAG ----------------------------------- JTAG是联合测试工作组(Joint Test Action Group)的简称,T0 中主要用于下载器,将固件下载到设备中;DEBUG调试模式。 ATB2AXI ----------------------------------- ATB2AXI 是一种协议转换模块。它能够通过 ATB 总线从处理器获取 etrace 数据,并且通过 AXI 总线将 etrace 数据传递给 AXI 总线控制器。 - 一组用于寄存器配置的 APB 总线。 - 支持多达 32 组 ATB 总线,用于多个核心的跟踪数据输入。 - 一组用于跟踪数据输出的 AXI 总线。 - 支持软件可配置的跟踪数据写入起始地址。 - 支持软件可配置的跟踪数据写入数据大小。 - 支持 8 字节的突发传输。 - 支持固定数量为 256 脉冲的未完成传输。 - 支持软件可配置的中断使能。 - 支持软件可配置的跟踪数据开启/关闭。 - 支持软件可配置的中断生成的最大时间值。 - 支持软件可配置的跟踪数据环绕模式。 - 支持软件可配置的跟踪数据压缩。 I2C2ICB ----------------------------------- I2C2ICB 采用 I2C 协议向 ICB 总线发送写入和读取命令,或者总线上的其他组件状态。 它支持 I2C 协议中的标准模式。 I2C2ICB 的主要特性如下: - 向 ICB 总线发送写入和读取命令,包括地址和数据。 - 支持发送 64 位 ICB 总线地址。 - 接收来自 ICB 总线的响应,包括数据和错误。 - 默认支持 I2C 协议中的标准模式。 - I2C2ICB 的 CLK 和 SCL 频率应满足:f_clk > 160 * f_scl - 支持 SCL 和 SDA 数字噪声滤波器。