ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
DMAC 使用具有两个端口的 AHB 主适配器工作。一个端口是外部 AHB 端口,用于对外部 AHB 子系统执行读取和写入操作。该端口可对完整的 32 位地址范围进行寻址。第二个端口是内部 TCM 端口(主 TCM),用于对加密内核 AES 引擎和密钥存储区的内部模块执行读写操作。必须在主控制模块中选择分配用于 DMA 运行的内部模块(请参阅节 13.5.4.1.1);因此,DMAC 中不需要内部地址。
从 AHB 主模块的 TCM 端口到内部模块的数据路径位于 DMAC 外部。DMAC 仅观察传输的字数,以确定相应通道所请求的 DMA 运行何时完成。
密钥存储区是一个 32 位存储器块,深度为 32 个字,整体采用了控制逻辑。当 AES 模块配置为通过 DMA 将密钥写入该密钥存储区模块时,密钥存储区会根据其寄存器设置在内部管理对密钥存储区 RAM 的访问(包括生成密钥库 RAM 地址)。AES 模块仅支持对密钥存储区进行 DMA 写入操作。
AES 引擎具有一个用于加密或解密输入数据的 32 位写入接口,和一个用于结果数据和标签的 32 位读取接口。AES 模块的写入接口将 32 位数据收集至 128 位输入块中(AES 块大小)。当接收到一个完整块时,接收到的块的 AES 计算开始。当接收到最后一个块的最后一个字时,DMAC 和主控制器会向加密引擎生成一个“数据完成”信号。使用目标接口,对模式、消息长度和可选参数进行编程。
在 TCM 端,密钥库模块立即接受所有数据,无延迟周期,而加密模块在数据块边界上运行。在 TCM 端,密钥库模块立即接受所有数据,无延迟周期,而加密模块在数据块边界上运行(其处理需要多个时钟周期)。DMAC 和加密模块之间使用了特殊的握手信号: