华为 海思22AP10(SS524)H.265 编解码处理器用户指南

1.1 概述
22AP10 是针对多路高清 / 超高清( 1080p/4M/5M/4K ) DVR 产品应用开发的新一代专
业 SoC 芯片。 22AP10 集成了 ARM Cortex-A7 四核处理器和性能强大的 图像分析工具
推理引擎,支持多种智能算法应用。同时, 22AP10 还集成了多路 MIPI D-PHY 接口输
入,突破了数字接口的视频输入性能瓶颈,提供两倍于前代产品的视频输入能力。另
外, H.265 视频编解码引擎、视频图像处理的算法效果及性能得到了进一步提升。结
合丰富的外围设备及高速接口,该 SoC 芯片为客户产品提供了高性能、优异图像质量
的模拟高清 DVR 解决方案,广泛用于模拟高清 视频采集 市场。
1.2 应用场景
22AP10 的典型应用场景如 图 1-1 所示。
1.3 架构
1.3.1 概述
22AP10 芯片逻辑框图如 图 1-2 所示。


1.3.2 处理器内核
ARM Cortex A7 四核 @1.2GHz
● 32KB L1 I-Cache , 32KB L1 D-Cache
● 256KB L2 Cache
● 支持 NEON/FPU
1.3.3 多协议视频编解码
● H.265 Main Profile, Level 5.0 编码
● H.265 Main Profile, Level 5.0 解码
● H.264 Baseline/Main/High Profile , Level 5.1 编码
● H.264 Baseline/Main/High Profile , Level 5.1 解码
● MJPEG/JPEG Baseline 编解码
1.3.4 视频编解码处理
● H.265/H.264&JPEG 多码流编解码性能:
− 4x1080p@30fps H.265/H.264 编码 +4xD1@30fps H.265/H.264 编码
+6x1080p@30fps H.265/H.264 解码 +4x1080p@2fps JPEG 编码
− 8x1080p@15fps H.265/H.264 编码 +8xD1@30fps H.265/H.264 编码
+12x1080p@15fps H.265/H.264 解码 +8x1080p@2fps JPEG 编码
● 支持 CBR/VBR/AVBR/CVBR/FIXQP/QPMAP/QVBR 七种码率控制模式
● 输出码率最高 20Mbps
● 支持感兴趣区域( ROI )编码
● 支持彩转灰编码
1.3.5 SVP ( Smart Vision Processing )
图像分析工具 推理引擎( NNIE )
− 支持多种 图像分析工具
− 1.0Tops 运算性能
− 支持完整的 API 和工具链
− 支持 图像分析 、目标检测 / 跟踪等多种应用
● 智能视觉引擎( IVE )
− 支持目标跟踪
● 矩阵运算单元( MAU )
− 支持单精度 / 半精度浮点
− 支持特征向量比对
1.3.6 视频与图形处理
● 支持 de-interlace 、锐化、 3D 去噪、动态对比度增强、马赛克处理等前、后处理
● 支持视频、图形输出抗闪烁处理
● 支持视频 1/15 ~ 16x 缩放
● 支持图形 1/2 ~ 2x 缩放
● 支持 4 个遮挡区域
● 支持 8 个区域 OSD 叠加
1.3.7 视频接口
● 视频输入接口
− 支持 4 个 MIPI D-PHY 接口
◼ MIPI0/1 支持 4 条 lane
◼ MIPI2/3 支持 2 条 lane
◼ 支持 2*4lane 和 4*2lane 两种工作模式
◼ 每条 lane 最高速率为 1.5Gbps
◼ 支持单路输入或 2 路复用 /4 路复用输入
◼ 可复用为 4 个 8bit BT.656 接口
− 每 2 个 BT.656 接口可组成 1 个 16bit BT.1120 接口
− BT.656 和 BT.1120 均支持 148.5MHz 双沿采样
− 支持 16 个视频输入通道
− 支持 8 路在线视频缩放
− 支持同时输出原始图像和缩放后图像
− 最大输入性能: 8 路 1080p@30fps (或相同数据量的 4M/5M/4K 图像)
● 视频输出接口
− 支持 1 个 HDMI 1.4b 高清输出接口,最大输出 4096x2160@30fps
− 支持 1 个 VGA 高清输出接口,最大输出 2560x1600@60fps
− 支持 1 个 BT.1120/BT.656 数字输出接口,最大输出能力分别为
1080p@60fps/1080p@30fps
− 支持 1 个 CVBS 标清输出接口,支持 PAL/NTSC 制式输出
− 支持 2 个独立高清输出通道( DHD0 、 DHD1 )
◼ 支持任意两个高清接口非同源显示
◼ DHD0 支持 16 画面分割
◼ DHD1 支持 16 画面分割
− 支持 1 个独立标清输出通道( DSD0 )
− 支持 1 个 PIP 层,可与 DHD0 或 DHD1 叠加
− 支持 2 个 GUI 图形层,支持 ARGB1555 、 ARGB4444 或 ARGB8888 格式,
分别用于 DHD0 和 DHD1
− 支持 1 个特殊图形层,支持 CLUT2/CLUT4 ,可绑定 DHD0 、 DHD1 或 DSD0
− 支持 1 个硬件鼠标层,格式为 ARGB1555 、 ARGB4444 或 ARGB8888 可配
置,最大分辨率为 256x256
1.3.8 音频接口
● 3 个单向 I 2 S/PCM 接口
− 2 个输入,支持 20 路复合输入
− 1 个输出,支持双声道输出
1.3.9 网络接口

1 个千兆以太网接口

支持 RGMII 、 RMII 两种接口模式

支持 10/100Mbit/s 半双工或全双工

支持 1000Mbit/s 全双工

支持 TSO ,降低 CPU 开销
● 1 个百兆以太网接口
− 集成 FE PHY
− 支持 10/100Mbit/s 半双工或全双工
− 支持 TSO ,降低 CPU 开销
1.3.10 安全引擎
● 支持 AES 128/192/256 bit 加解密算法
● 支持 RSA 2048/4096 bit 加解密算法
● 支持 SHA256/HMAC_SHA256
● 支持 OTP ,提供 28Kbit 用户可烧写空间
● 支持硬件真随机数发生器
● 支持安全启动
● 支持安全内存隔离
1.3.11 外围接口
● 支持 2 个 SATA3.0 接口
● 支持 3 个 USB 2.0 Host 接口
● 支持 5 个 UART 接口,其中 1 个支持 4 线
● 支持 2 个 SPI 接口
● 支持 1 个 IR 接口
● 支持 2 个 I 2 C 接口
● 支持多个 GPIO 接口
1.3.12 存储器接口
● 1 个 32bit DDR4/DDR3 接口
− DDR4 最高时钟频率 1333MHz
− DDR3 最高时钟频率 1066MHz
− 最大容量支持 3GB
● 1 个 SD/MMC 接口
− 支持 eMMC5.0
− 支持 HS400 ( 150MHz 双沿)
− 支持 SDIO2.0 和 SDIO 3.0
− 支持 SD2.0 卡
● SPI NOR Flash/ SPI NAND Flash 接口
− 支持 2 个片选,可分别接不同类型的 Flash
− 对于 SPI NOR Flash
◼ 支持 1 、 2 、 4 线模式
◼ 支持 3Byte 、 4Byte 地址模式
◼ 支持最大容量: 256MB
− 对于 SPI NAND Flash
◼ 支持 SLC Flash
◼ 支持 2KB/4KB 页大小
◼ 支持 8/24bit ECC ( ECC 以 1KB 为单位)
◼ 支持最大容量: 2GB
1.3.13 独立供电 RTC
RTC 可通过电池独立供电
1.3.14 多种启动模式
● 支持从 BootROM 启动
● 支持从 SPI NOR Flash 启动
● 支持从 SPI NAND Flash 启动
● 支持从 eMMC 启动
1.3.15 SDK
● 支持 Linux SMP 32bit
● 提供多种协议的音频编解码库
● 提供 H.265/H.264 的高性能 PC 解码库
1.3.16 芯片物理规格
● 功耗
− 典型场景( 4 路 1080p@30fps 编码 + 4 路 1080p@30fps 解码 + 图像分析方
智能算法)功耗: 3.3W
− 支持多级功耗控制
● 工作电压
− 内核电压为 0.9V
− CPU 电压为 1.0V
− IO 电压为 1.8V/3.3V
− DDR4 接口电压为 1.2V
− DDR3 接口电压为 1.5V
● 封装
− RoHS , TFBGA
− 管脚间距: 0.8mm
− 封装大小: 19mmx19mm
− 工作温度: 0 ° C ~ 70 ° C
1.4 启动模式
1.4.1 概述
芯片中内置启动 ROM ( BOOTROM ),芯片复位撤销后由 BOOTROM 开始执行启动
引导程序。
芯片支持安全启动和非安全启动两种启动模式,启动模式由 OTP 进行控制。
启动介质选择
支持从以下两种介质启动:
● 从 SPI NAND/NOR Flash 存储空间启动
● 从 eMMC 存储空间启动
烧写模式
芯片还可以通过串口来对启动介质进行烧写 ( 升级 ) 。
1.4.2 启动介质和对应的信号锁存值对应关系
当芯片上电复位时,启动介质由
SFC_EMMC_BOOT_MODE/FAST_BOOT_MODE/BOOT_SEL1/BOOT_SEL0 信号的
值决定。
说明:

BOOT_SEL0 信号为芯片管脚 GPIO1_2 的上电锁存值;

BOOT_SEL1 信号为芯片管脚 GPIO1_1 的上电锁存值;

FAST_BOOT_MODE 信号为芯片管脚 GPIO1_3 的上电锁存值。

SFC_EMMC_BOOT_MODE 信号为芯片管脚 GPIO1_4 的上电锁存值。
通过系统控制寄存器 SYSSTAT[11] 和 SYSSTAT[4:2] 可以获取当前的
SFC_EMMC_BOOT_MODE/FAST_BOOT_MODE/BOOT_SEL1/BOOT_SEL0 的状
态。请参考"系统"章节的 SYSSTAT 寄存器中的描述。
启动介质和这些信号的关系如 表 1-1 所示。
1.4.3 启动模式
芯片支持安全启动模式和非安全启动模式,安全启动模式和非安全启动模式由系统控
制寄存器 SYSSTAT[31] 的值来决定 ( 此值来源于 OTP 中的安全启动标志位 ) 。
● 在安全启动模式下,芯片将对 uBoot 进行验签。验签通过,则系统启动;验签不
通过,则系统不能启动。
● 非安全启动模式下,芯片不对 uBoot 进行验签。
2.1 封装与管脚分布
2.1.1 封装
22AP10 芯片采用 TFBGA 封装,封装尺寸为 19mm x 19mm ,管脚间距为 0.8mm ,
管脚总数为 424 个。详细封装请参见 图 2-1 ~ 图 2-4 ,封装尺寸参数请参见 表 2-1



2.6 接口时序
2.6.1 DDR 接口时序
2.6.1.1 写操作时序
dqs_out 相对于 dq_out 的写操作时序
dqs_out 相对于 dq_out 的写操作时序的主要时序参数是 tDS 和 tDH 。
图 2-8 DDR3 中 dqs_out 相对于 dq_out 的写操作时序图

dqs_out 相对于 ck 的写操作时序
dqs_out 相对于 ck 的写操作时序。 DDR3 的时序如 图 2-9 所示。
图 2-9 DDR3 中 dqs_out 相对于 ck 的写操作时序图

CS 和 ADDR/CMD 相对于 ck 的写操作时序
CS 是 1T 信号, ADDR/CMD 是 2T 信号, CS 和 ADDR/CMD 相对于 ck 的写操作时序
如 图 2-10 和 图 2-11 所示。
图 2-10 CS ( 1T 信号)相对于 ck 的写操作时序图
2.6.1.2 读操作时序
命令和地址相对于 ck 的读操作时序
"命令和地址相对于 ck 的读操作时序"与" CS 和 ADDR/CMD 相对于 ck 的写操作时
序 "相同。
dqs_in 相对于 dq_in 的读操作时序
dqs_in 相对于 dq_in 的读操作时序分为 DDR3/DDR4 SDRAM 输出时序和 DDRPHY
端 dqs_in 和 dq_in 时序。
对于 DDR SDRAM 输出时序,理想情况下, DQS 和 ck 是同相位的,实际情况下,
DQS 相对于 CK 有 tDQSCK 的偏斜。 tDQSQ 是 dq 和 dqs 之间的抖动,是最晚有效
的 dq 相对于 dqs 的抖动, tQHS 是最早有效的 dq 相对于 dqs 的抖动。
DDR3/DDR4 SDRAM 输出时序如 图 2-12 所示。
2.6.1.3 时序参数
DDR 接口时序满足 JEDEC ( JESD79-3F )标准协议,本文中描述的时序都是 DDR
PHY 侧输出的时序。
DDR3-2133 SDRAM 时钟参数如 表 2-24 和 表 2-25 所示。
表2-24 DDR3 时钟参数表
3.6 DMA 控制器
3.6.1 概述
DMA(Direct Memory Access) 是一种高速的数据传输操作,允许不通过 CPU 在外部设
备和存储器之间直接读写数据。 DMAC ( DMA Controller )直接在存储器和外设、外设
和外设、存储器和存储器之间进行数据传输,避免 CPU 干涉并减少了 CPU 中断处理
开销。
芯片只支持一个 DMAC 。
3.6.2 特点
DMAC 有如下特点:
● 提供 8 个 DMA 通道,每个通道可配置用于一种单向传输。
● 支持内存到内存、内存到外设、外设到内存之间的传输。
● 支持 DMA 链表传输。
● 支持通道优先级可配。
● 支持软件配置 DMA 请求。
● 支持 DMA BURST 长度软件可配。
● 支持 8bit 、 16bit 、 32bit 、 64bit 数据位宽方式传输。
● 各个通道均支持安全属性配置。
● 只支持小端模式。
3.6.3 功能描述
3.6.3.1 外设请求线
DMAC 的硬件请求和相应设备的对应关系如 表 3-9 所示。
表3-9 DMAC 外设硬件请求线编号说明
3.7 定时器
3.7.1 概述
Timer 模块主要实现定时、计数功能,可以供操作系统用作系统时钟,也可以供应用程
序用作定时和计数。系统提供 12 个 Timer ,其中 4 个仅支持安全 OS 访问。
3.7.2 特点
Timer 具有以下特点:
● 带可编程 8 位预分频器的 32bit/16bit 减法定时器 / 计数器。
● 计数时钟可配置:
主 SOC 子系统 Timer 的计数时钟可以选择为总线时钟( 50MHz )或 3MHz 时钟。
● 支持 3 种计数模式:自由运行模式、周期模式和单次计数模式。
● 有 2 种载入计数初值的方法,分别通过 TIMERx_LOAD 和 TIMERx_BGLOAD 寄
存器实现。
● 当前的计数值可随时读取
● 当计数值减到 0 时会产生一个中断。
3.7.3 功能描述
Timer 基于一个 32bit/16bit (可配置)减法计数器。计数器的值在每个计数时钟的上升
沿减 1 。当计数值递减到零, Timer 将产生一个中断。
Timer 有以下 3 种计数模式:
● 自由运行模式
定时器持续计数,当计数值减到 0 时又自动回转到其最大值,并继续计数。当计
数长度为 32bit 时,最大值为 0xFFFF_FFFF 。当计数长度为 16bit 时,最大值为
0xFFFF 。在自由模式下,也可以载入计数值,并立即从载入值递减计数,但计到
0 时回转到其最大值。
● 周期模式
定时器持续计数,当计数值减到 0 时从 TIMERx_BGLOAD 寄存器中再次载入初
值并继续计数。
● 单次计数模式
向定时器中载入计数初值。当定时器的计数值减到 0 时就停止计数,直到重新被
载入新值且定时器处于使能状态,才再次开始计数。
每个 Timer 具有一个预分频计数器( prescaler ),可将其工作时钟在 Timer 内部再次进
行 1 分频、 16 分频或 256 分频。进一步提高计数时钟频率的选择灵活性。
对定时器载入计数初值的方法如下:
● 通过写 TIMERx_LOAD 寄存器可对定时器载入计数初值。当定时器处于工作状态
时,如果向 TIMERx_LOAD 寄存器写入值,会导致定时器立刻从新值开始重新计
数。适用于所有计数模式。
● 通过写 TIMERx_BGLOAD 寄存器可以设定周期计数模式的计数周期。写该寄存
器不会立刻影响定时器的当前计数,定时器会继续计数直到计数值减到 0 。然后
载入 TIMERx_BGLOAD 寄存器中的新值开始计数。
3.7.4 工作方式
初始化
系统初始化时应对 Timer 进行初始化。初始化 TimerX ( TimerX 中的" X "取值为
0~11)时应按以下步骤进行配置:
步骤 1 写 TIMERx_LOAD 寄存器,为 Timer 载入计数初值。
步骤 2 当需要 Timer 工作在周期计数模式下、且计数周期与载入 Timer 的计数初值不同时,
写 TIMERx_BGLOAD 寄存器,设置 Timer 的计数周期。
步骤 3 配置 SC_CTRL 寄存器,设置 Timer 的时钟使能信号的参考时钟。
步骤 4 配置 TIMERx_CONTROL 寄存器,设置 Timer 的计数模式、计数器长度、预分频因子
及中断屏蔽,同时启动 Timer 计数。
---- 结束
中断处理
Timer 主要用于定时产生中断,因此 Timer 的中断处理主要是激活等待定时中断的进程。
操作步骤如下:
步骤 1 配置 TIMERx_INTCLR 寄存器,清除 Timer 中断。
步骤 2 激活等待该中断的进程,使其继续执行。
步骤 3 当所有等待该中断的进程完成或再次执行到等待中断的休眠状态时,恢复中断现场,
继续执行当前被中断的程序。
---- 结束
时钟选择
每个 Timer 均有 2 种计数时钟可选择。下面以 Timer0 为例,时钟选择配置流程如下:
选择总线时钟进行计数的步骤如下:
步骤 1 配置系统控制器的 SC_CTRL [timeren0ov]=1 。
步骤 2 初始化 Timer ,开始计数。
---- 结束
选择 3MHz 时钟进行计数的步骤如下:
步骤 1 配置系统控制器的 SC_CTRL [timeren0ov]=0 。
步骤 2 初始化 Timer ,开始计数。
----结束​​​​​​​
3.7.5 Timer 寄存器概览
Timer 模块自有一组寄存器,每个 Timer 的寄存器除基址不相同外其他特性都相同。
● Timer0 基地址: 0x1100_0000
● Timer1 基地址: 0x1100_0020
● Timer2 基地址: 0x1100_1000
● Timer3 基地址: 0x1100_1020
● Timer4 基地址: 0x1100_2000
● Timer5 基地址: 0x1100_2020
● Timer6 基地址: 0x1100_3000
● Timer7 基地址: 0x1100_3020
● Sec_Timer0 基地址: 0x1100_4000
● Sec_Timer1 基地址: 0x1100_4020
● Sec_Timer2 基地址: 0x1100_5000
● Sec_Timer3 基地址: 0x1100_5020
14.1 概述
安全子系统支持以下安全特性:
● 支持硬件产生真随机数,产生的真随机数符合 SP800-22 的随机测试标准。
● 支持 OTP ( One Time Programmable ),用户可用空间达 28Kbit 。
● 支持硬件对称加解密算法和 HASH 算法:
− 对称加解密算法
支持 AES128 、 AES192 、 AES256 , AES 算法的实现符合 FIPS 197 标准。
AES 的工作模式符合 NIST special800-38a 标准。
− HASH 算法
支持 SHA256 、 HMAC-SHA256 。
● 支持硬件非对称加解密算法,支持 RSA 2048/4096 ,符合 PKCS#1 V1.5/2.1 标
准;
● 支持 JTAG 保护;
● 支持 KeyLadder ,用于一级密钥加解密管理,增加安全强度。
● 支持 ARM TrustZone 。
● 支持安全内存隔离。
● 支持安全启动。支持 bootloader 的签名校验和加解密。

相关推荐
xiandong202 小时前
240925-GAN生成对抗网络
图像处理·人工智能·深度学习·神经网络·生成对抗网络·php·gan
PlumCarefree2 小时前
mp4(H.265编码)转为本地RTSP流
音视频·harmonyos·h.265
Einstein·Jun2 小时前
深度学习----------------------------编码器、解码器架构
人工智能·深度学习
weixin_543662863 小时前
一个简单的摄像头应用程序3
人工智能·opencv·计算机视觉
墨染辉3 小时前
微调方法概述
人工智能·python·机器学习
浪子L3 小时前
YOLOv8改进 - 注意力篇 - 引入SEAttention注意力机制
人工智能·深度学习·计算机视觉
Jaisuv3 小时前
【51单片机】点亮LED之经典流水灯
单片机·嵌入式硬件·51单片机
星羽空间3 小时前
win11下 keil报错Cannot load driver ‘D:\Keil_v5\ARM\Segger\JL2CM3.dll‘
arm开发·keil
Bosenya123 小时前
【PyTorch】图像分割
人工智能·pytorch·python