Si102x/3x
14.4.1 。 AES分组密码加密使用DMA
通常,在AES块用于与DMA 。这提供了最好的性能和最低的功率变
消费。在使用DMA 8051编译器无关的C代码提供了代码示例。它是高度
建议使用代码示例。这些步骤在这里列出的完整性。
步骤加密使用简单AES块加密数据( ECB模式)
准备的加密密钥和数据,以在XRAM被加密。
通过清除AES0BCFG的第2位AES复位模块。
在DMA0EN清0〜2位禁用前三个DMA通道。
配置第一DMA通道AES0KIN
第一DMA通道通过把0x00写入DMA0SEL
配置第二个DMA通道,以移动XRAM到AES0KIN写入0×05到DMA0NCF
写0x01至DMA0NMD ,使包装
写的加密密钥DMA0NBAH和DMA0NBAL的XRAM位置。
将密钥的长度,以字节为DMA0NSZL
清除DMA0NSZH
清除DMA0NAOH和DMA0NAOL 。
SELECT
配置第二个DMA通道AES0BIN SFR 。
第二个DMA通道通过写0x01至DMA0SEL 。
配置第二个DMA通道写入0×06到DMA0NCF移动XRAM到AES0BIN 。
清除DMA0NMD禁用包装。
写的数据的XRAM地址进行加密,以DMA0NBAH和DMA0NBAL 。
写字节中的16个字节到DMA0NSZH和DMA0NSZL倍数被加密的数。
清除DMA0NAOH和DMA0NAOL 。
SELECT
配置第三个DMA通道AES0YOUT
SELECT
第三个DMA通道写入0X02到DMA0SEL
配置该第三DMA通道写入0x08到DMA0NCF移动AES0YOU的内容对XRAM 。
通过设置DMA0NCF的第7位使传输完成中断。
清除DMA0NMD禁用包装。
写的XRAM地址加密数据DMA0NBAH和DMA0NBAL 。
写字节中的16个字节到DMA0NSZH和DMA0NSZL倍数被加密的数。
清除DMA0NAOH和DMA0NAOL 。
清除前三个DMA中断在DMA0INT清0〜2位。
通过设置位0到2 DMA0EN启用前三个DMA通道。
通过把0x00 AES0DCFG配置的AES模块的数据流的AES分组密码。
写密钥大小为1和0位AES0BCFG的
通过设置AES0BCFG第2位配置AES核心加密
启动加密操作来设置AES0BCFG的第3位
等待从DMA通道2 DMA中断
通过清除AES0BCFG位2禁用AES模块
禁止DMA通过把0x00写入DMA0EN
修订版0.3
187