传统的遥测PCM数据由于芯片等硬件条件的制约很难实现数据的高速解码以及安全存储,为此我们设计一种实现高速遥测PCM码数据的解码、数据的加密及数据存储的方法,那就是基于高速遥测PCM数据的AES加密存储系统。

一、基于高速遥测PCM数据的AES加密存储系统总体结构

本系统主要完成一路高速10Mbps码流的PCM数据接收、加密及存储,以FPGA为中央处理器,运用其丰富的内部资源分别完成数据的解码接收、加密运算等功能模块的实现,同时高速的PCM码流需要大容量的外部FIFO完成接受数据的缓存,采用固态的存储器完成数据的实时记录存储。

二、基于高速遥测PCM数据的AES加密存储系统软件硬件设计

1、PCM数据的接收硬件设计

脉冲编码调制(PCM)是用代码来表示信号信息的一种特殊调制方式,它需要经过采样、量化和编码3个过程,最终将数据组成(PCM)格式,形成串行的数据流通过调制设备进行传送。本系统采用模块化的程序设计实现数据的解码,便于数据码流和位宽等参数的调节。

系统中整个高速PCM解调电路工作原理为:

1)高速串行PCM数据流在码同步信号作用下,通过移位寄存器将其转换为8路并行数据,并行数据在字同步(路同步)信号的作用下取出,在控制电路的配合下,存人大容量的FIFO缓冲器中。当FIFO存至半满时,系统根据产生的半满信号,由FPGA控制解码数据并进行下一步操作。本文中的PCM数据通过长线抗干扰的差分422进行传输,通过DS26C32高速差分转换芯片进行电平转换。

2)XINLINX的Spartan系列的XC2S200将数据读取进行内部的数据转换操作。在高速PCM码数据解码中FPGA内部的FIFO难以满足容量要求,所以本系统采用外部大容量FIFO(IDT7207)32K字节进行解码数据的缓存。而FPGA通过控制rb或wr信号对FIFO进行读写操作。

2、PCM数据的接收软件实现

本系统采用VHDL完成高速PCM数据的解码,利用PCM数据的格式,采用模块化程序结构完成解码,首先,上电自复位2ms完成依据数据的码同步信号作为接收数据的时钟CLOCK的匹配,然后依据匹配的码同步时钟,在每次字同步信号的上升沿对数据进行读取,同时完成数据的串并转换。最后将解码的数据依据FIFO的返回标志进行缓存。

3、AES数据加密的算法研究

AES(Rijndael)是一种迭代分组密码,采用的是代替或置换网络.它对1个128位的明文数据块进行加密操作,加密时,首先将输入的明文128位数据排列成4×4的字节矩阵,将其定义为状态,所有AES的变换都是基于状态的变化。然后根据不同的密钥长度,进行10(128位密钥),12 (192位密钥)或14(256位密钥)轮的迭代运算实现。而每次的AES变化是由轮函数通过多轮迭代完成的,每次的轮变换函数由4步完成。

本系统中采用VHDL语言来实现加密的软件算法,基于其有适合算法的算法级、寄存级、逻辑级、门级设计模块,系统中软件的功能模块有数据解码模块、中央控制模块、数据输入模块、密钥生成模块、加密运算模块及数据存储模块。AES的算法需依照AES的算流程进行程序模块编写。

4、数据的AES加密硬件设计

本系统设计采用的是基于XINLINX公司的XC2S200芯片进行的。SPARTAN -Ⅱ系列用户可编程门阵列的输入输出块(IOBs)支持多种标准的输入输出信号,这些高速的输入输出结构支持存储器和总线结构的多种状态。每一个输入输出块(IOBs)有3个寄存器,这些寄存器既可以作为边沿触发的D型触发器也可作为电平敏感的锁存器,每个输入输出块都有个时钟信号为它的3个寄存器所共享,且每个寄存器都有自己的时钟允许信号。

在硬件设计中,运算处理器最重要的指标就是运算速度,而与速度有关的参量主要有吞吐量、加解密时延、单位时间内加解密的次数。本系统采用的XC2S200具有可配置逻辑块数目(CLBs)丰富,其设计的算法比较灵活且加密延时可调。系统先将接收解码的PCM数据逐步从FIFO中读出并送进加密处理程序模块中,同时FPGA会将已经设计好的密文进行扩展运算并通过串行的形式传送到加密处理程序模块进行运算,通过本系统的验证能够满足FLASH的数据存储速率要求,能够实现数据的加密存储且丢包率低。

三、基于高速遥测PCM数据的AES加密存储系统加密数据的存储

本系统加密数据的存储采用SAMSUNG公司的256M×8bit NAND FIASH 芯片K9K2G08UOM固态存储器,每片器件2112Mbit,按块组织划分为2048块,每块分64页,每页2K+64字节。2112字节的典型编程时间300ys,128K字节的典型擦除时间2ms。它以页为单位进行读写,以块为单位进行擦除;命令、数据、地址共用同一总线,具有硬件数据保护功能。系统采用FPGA进行FLASH的硬件控制,以内部的存储控制模块实现对FLASH的读写、擦除和外部FIFO的读操作命令。同时系统合理的调整加密与数据存储的时间差,能够进行数据的实时存储。为了便于后续软件对数据的解密处理,系统采用编帧的方式完成。

小知识之FPGA

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。