方寸 i560 安全存储加密芯片 SoC 存储安全芯片技术手册
1.1 产品简介
i560 是由方寸微电子自主研发的新一代SoC 存储安全芯片,具有功能丰富、性能强劲、功
耗低、安全性高等特点,可广泛适用于安全U 盘、SD 卡等存储领域产品,也可应用于USB 转
UART、USB 转SDIO 等接口领域产品。
该芯片集成32 位国产高性能RISC CPU,可支持USB3.0、SD Host、SD Device、eMMC5.1
等多种高速接口,并集成多种国密算法 (如SM2、SM3、SM4),可满足国家信息安全领域需
求;同时该芯片也支持国际标准AES 加密算法及ECC 算法,可应用于全球通用安全市场。
该芯片提供完整的SDK 供客户进行定制化开发,尤其针对典型应用场景提供了源码级方
案支撑,可帮助客户缩短产品开发周期、降低整体开发成本,提升产品市场竞争力。
1.2 应用产品
1.3 芯片架构
1.4 芯片特性
1.4.1 CPU 资源
集成32 位国产CPU CK803s
最高工作频率150Mhz
内置16KB I Cache
1.4.2 USB3.0 Device 接口
支持一路USB3.0 Device 接口速率5Gbps,向下兼容USB2.0/USB1.1
支持控制/批量/中断/等时传输类型
符合Universal Serial Bus(USB) revision 3.0 标准协议
1.4.3 eMMC 接口
支持 1 路 eMMC 接口
支持 eMMC5.1 协议标准
最高接口速率 HS400 ,向下兼容
支持 3.3V/1.8V IO 电压
1.4.4 安全引擎
支持 SM4 、 AES256 数据加密,加密性能 600MB/s@150Mhz
支持 ECB 、 CBC 、 OFB 、 CFB 、 CTR 、 XTS 6 种加密模式
RSA(可选 CRT):512~4096 比特
ECC(素数域):192、224、256、384 和 521 比特
支持大数模加、模减、模乘运算协处理
SM2 密钥对生成速度 250 对 /s
支持 SM2 签名验签,性能 ≥600/300 次 /s@100Mhz
RSA1024 密钥对生成时间 <0.2s
支持 RSA1024 签名验签,性能 ≥600/6000 次 /s@100Mhz
RSA2048 密钥对生成时间 <2s
支持 RSA2048 签名验签,性能 ≥100/2000 次 /s@100Mhz
支持 SM3/SHA1/SHA224/SHA256 算法
支持一路 TRNG 发生器,生成速率 ≥30Mbps@50Mhz
*
以上为硬件引擎性能,非最终产品性能
1.4.5 存储资 源
32KB ROM
32KB SRAM
512KB 片内 flash
1.4.6 其他资源
内置硬件 DMA
内置 POR Power on reset )电路
内置 8 个定时器
内置中断控制器
内置 1 个看门狗
支持1路SPI Flash控制器接口
支持 1 路 SPI 主 从接口
支持 1 路 I2C 主 从接口
支持 2 路 UART 接口
支持 1 2 位 GPIO 接口
支持在线调试
1.4.7 安全特性
支持电压检测
支持物理探测防护
每颗芯片具备全球唯一 ID
1.4.8 物理规格
Core 电压为 1.0V
IO 电压为 3.3V/1.8V
支持 QFN64/TF 卡封装
工作温度 0~70℃ 40~85℃
2.4 管脚复用
在芯片内部,
GPIO 、 UART1 、 SPI SD 等模块复用 12 根 IO 线,复用模式如下表 2.2 所
示:
GPIO
可通过 SCU 寄存器配置为 0 、 1 、 2 、 3 四种功能模式。其中 GPIO[3:0] 在任何功能模
式下可通过 SCU 寄存器切换成不同的 IO 接口, GPIO[11:6] 仅在功能模式 3 下可以切换成不同
的 IO 接口。
2.8 PCB 设计建议
请参考《i560 PCB 设计指南》
3.1 CK803S 处理器
3.1.1 简介
CK803S
是面向控制领域的 32 位高能效嵌入式 CPU 核,具有低成本、低功耗、高代码密
度等多种特点。 CK803S 采用 16/32 位混合编码指令系统,设计了精简高效的 3 级流水线。
CK803S
提供多总线接口,支持系统总线、指令总线、数据总线的灵活配置。 CK803S 针
对内存拷贝应用做了特殊优化,可以获得极致的内存拷贝性能。此外, CK803S 对中断响应做
了特殊加速,中断响应延时仅需 13 个周期。
3.1.2 特性
精简指令集( RISC )处理器架构
32 位数据, 16 位 /32 位混合编码指令
16 个 32 位通用寄存器
3 级流水线
最高工作频率 150Mhz
单位性能 1.5DMIPS/MHz
按序发射、按序执行、按序退出
支持 AHB 系统总线和 AHB Databus 总线接口
内置 16KB 高速缓存
内置 8 个内存保护单元
内置紧耦合矢量中断控制器与计时器
支持 1:1 处理器与系统时钟比
中断响应延时仅为 13 个处理器周期
静态分支预测
支持硬件乘除法
支持连续内存访问
仅支持 little endian
3.1.3 架构
3.1.4 矢量中断控制器
矢量中断控制器(VIC)是一个与 CK803S 紧耦合的 IP 单元,用于中断的高效处理。矢
量中断控制器最大可支持 32 个中断源(IRQ[31:0]),每个中断源拥有软件可编程的中断优先
级。矢量中断控制器收集来自不同中断源的中断请求,依据中断优先级对中断请求进行仲裁。
最高优先级的中断将获得中断控制权并向处理器发出中断请求,当处理器响应中断请求,返回
中断请求响应信号给VIC;当处理器退出中断服务程序(ISR),返回中断退出信号给VIC。
矢量中断控制器支持中断嵌套。当处理器正在处理一个中断请求时来了一个更高优先级的
中断请求,处理器将暂停当前中断服务程序,响应更高优先级的中断请求。在更高优先级的中
断请求处理结束时,CPU 返回被暂停的中断服务程序继续执行。矢量中断控制器允许高优先
级的中断请求抢占低优先级的中断请求,但不允许同级别或者低优先级的中断抢占,保证了中
断响应的实时性。
矢量中断控制器的系统结构图如图所示。
3.1.5 系统计时器
系统计时器Core Timer 是CK803S 内部集成的一个紧耦合模块,主要用于计时。Core Timer
提供了一个简单易用的 24 位循环递减的计数器,当Core Timer 使能时,计数器开始工作,当
计数器递减到 0 时,会向矢量中断控制器发起中断请求,申请获得处理器响应并处理Core
Timer 的事务。
Core Timer 的结构框图如图所示:
3.2 存储
芯片内部包含3 块存储单元:ROM、Nor flash 和SRAM。
内置32KB ROM 固化了Bootrom 程序,用于上电固件引导及固件下载,用户无法修改;
内置512KB Nor flash,可用于存储固件代码及用户敏感信息;
Nor flash 主要参数如下:
页大小:512B
8/16/32bit 读、32bit 写
擦写次数:10 万次
内置1 片32KB SRAM 可供用户使用。可用于高速固件代码执行、临时数据存储和算法运
算等,拥有独立AHB 和AXI 接口访问通道,可大大提升AHB 和AXI 接口之间数据搬运效
率。
3.3 DMA
3.3.1 模块概述
DMA (Direct Memory Access)是为了降低CPU 负担专门用来进行数据搬运的模块。在T680
中,单纯的DMA 模块只在AHB 总线上集成了一个,如果AXI 总线上需要进行数据搬运,可
以通过CRYPTO 模块中的DMA 实现。
DMA 模块架构如下:
3.3.2 模块特性
支持8 路可配DMA 通道
通道共享16 个字节buffer
支持链表模式传输
可在AHB、AXI、APB bus 间进行数据搬运
支持8/16/32 位数据传输
仅支持little-endian 传输
支持INCR 和FIXED 地址传输模式
3.4 定时器
3.4.1 模块概述
定时器模块挂载于APB 总线上,可提供8 个独立的计数器,用于生成定时中断给CPU 进
行定时任务处理。同时定时器模块可生成并输出一路PWM 信号,用于芯片外设时钟或者电机
类设备的控制。
模块框图如下:
3.4.2 模块特性
支持8 个独立的32 位计数器
支持一路PWM 输出,最高频率20Mhz
PWM 极性和占空比可配
支持自动加载模式
3.5 看门狗
3.5.1 模块概述
看门狗模块用于防止芯片固件跑飞或部分硬件造成的系统卡死情况,一旦发生上述情况,
看门狗可以产生硬件复位,让整个芯片重新复位启动。
看门狗模块结构如下:
3.5.2 模块特性
支持一路系统复位输出
复位输出时间可配置
支持一路CPU 中断输出
内置32 位递减计数器
3.6 SCU
3.6.1 模块概述
SCU 模块是系统控制单元,主要对芯片时钟、复位、功耗等芯片级配置进行控制。
SCU 模块架构如下:
3.6.2 模块特性
支持各模块时钟分频及门控
支持各模块复位控制
支持PLL 输出频率可配
支持PLL、OSC 时钟切换
支持管脚复用配置
内置看门狗复位状态寄存器
3.6.3 时钟树
4.1.1 模块概述
CRYPTO 模块的作用主要是对进入模块的数据进行加解密操作。目前支持SM4、AES 两
种对称加密算法,同时支持SM3、SHA1、SHA224、SHA256 四种HASH 算法。两者之间相互
独立,SM4、AES 数据走AXI 总线,SM3、SHA1、SHA224、SHA256 数据走AHB 总线。当
数据从AXI SLAVE 端口、AXI MASTER 端口或者AHB SLAVE 端口进入CRYPTO 模块之后,
CPU 通过AHB 总线配置CRYPTO 模块寄存器,选择对应功能,直至加解密结束。
7.3.2 模块特性
支持Motorola SPI 协议标准
最高接口工作频率20 MHz
支持主从模式
输出时钟的极性、相位、频率可配
串行数据支持MSB 或者LSB first 模式
集成32bytes TXFIFO
集成32bytes RXFIFO
TXFIFO/RXFIFO 阈值中断可配
支持中断和查询模式
独立的SPI 工作时钟
独立可配置的中断使能
7.4 UART0 控制器
7.4.1 模块概述
UART0 控制器与通用的16C550 UART 完全兼容。
7.4.2 模块特性
完全兼容高速NS 16C550A UART
最高波特率为3Mbit/s
集成32bytes TX FIFO
集成32bytes RX FIFO
支持奇偶校验方式或无校验
支持帧错误检测
支持FIFO 溢出报警
波特率可配置
支持数据位和停止位的位宽配置,数据位宽可配置为5/6/7/8bits,停止位可配置为
1/1.5/2bits
7.5 UART1 控制器
UART1 控制器与UART0 控制器内部结构及逻辑完全相同,只是基地址不同。
7.6 GPIO 控制器
7.6.1 模块描述
GPIO 提供12 位可编程的输入输出管脚。每个管脚可配置为输入或输出。管脚用于生成特
定应用的输出信号或采集特定应用的输入信号。输入管脚,GPIO 可作为中断源;输出管脚,
每个GPIO 都可以独立地清0 或置1。
GPIO 的12 个管脚输入状态下也可以根据电平或跳变值产生可屏蔽中断。
7.6.2 模块特性
12 个管脚可独立设置为输入或输出
每个管脚均可以设置为bypass 模式
每个管脚输入状态下可作为中断源
输入中断源可以设置为电平触发或边沿触发
每个端口可通过SCU 配置为上拉或下拉
输出状态下每个bit 都可单独设置0 或1
所有管脚上电复位后默认为输入
8.1 电压检测
8.1.1 模块概述
电压检测模块VDT 用于检测当前IO 电压是否正常,当IO 电压低于配置电压时,电压检
测模块将触发CPU 中断,可有效防止各种电压攻击手段。
8.2.2 后端设计防护
采用
Chip Level 层 Flatten 的方法,将接口电路 、功能电路、密码算法电路和随机电路等完
全进行混合布线,可有效防止后端电路反向分析等外部攻击。
8.3 芯片 ID
8.3.1 模块概述
芯片内置
OTP One Time Programmable )电路,提供一次性编程机会,可作为芯片全球唯
一识别号。
8.3.2 模块特性
有效数据位宽 64bits
可支持出厂烧写和用户烧写 2 种模式
用户可自定义烧写内容
支持低功耗模式