APP下载

基于STM32 的加密录音笔设计

2014-03-13杨钏钏王加加侯长博

电子科技 2014年6期
关键词:加密算法解密录音

杨钏钏,王加加,侯长博

(西安电子科技大学 电子工程学院,陕西 西安 710071)

随着电子产品对数字信号处理技术的需求广泛应用,语音信息的保密性也成为信息处理领域的一个重要研究方向。模拟音频信号的数字化过程包括采样、量化和编码等,数字信号具有抗干扰能力强、信号动态范围大(S/N >90 dB)以及可进行数据压缩的特点。数据加密是由加密密钥和加密算法将明文数据转化为没有固定意义的密文;数据解密即是由解密密钥和解密算法将密文恢复为明文。

系统使用基于ARM 内核的STM32[1-2]处理器执行加密算法和系统的协作控制。采用TEA[3]加密算法对接收到的音频数据进行实时加密,加密后的语音数据存储到外部SD 卡中,并可将语音文件通过USB接口[4]传输到计算机进行解密处理。文中设计完成了数字录音模块和STM32 外围配置的硬件电路;PCB 布局布线;编写加密录音笔软件,实现了数字录音笔的数据加密与数据存储功能。

1 系统整体设计

系统硬件电路主要分为数字录音模块和STM32处理器模块两部分,如图1 所示。数字录音模块负责模拟音频信号捕获和信号采样、量化以及编码处理;处理器模块实现数字数据的加密运算、数据存储以及系统的整体控制。

图1 系统整体设计框图

语音信号通过麦克风输入后进行数字录音,数字录音电路包括滤波器网络、增益放大和语音处理3 部分。由于系统要求尽可能减小PCB 板面积,所以本文选择能同时满足增益放大、A/D 采样以及编码处理的录音芯片VS1003[5]。STM32 处理器模块负责加密算法的执行和系统的协作控制[6]。VS1003 将采集到的数据通过SPI 接口实时传输到STM32 进行加密处理,并将加密后的密文数据通过另一个SPI 接口存储到外部容量为2 GB 的SD 卡中。

2 硬件电路设计

2.1 STM32 处理器电路

2.1.1 主控芯片配置电路

主控芯片使用STM 公司的STM32F103C6T6 控制器[7-8],该系列32 位闪存微控制器使用ARM 公司具有突破性的Cortex-M3 内核,Cortex-M3 内核基于哈佛架构,指令总线和数据总线相互独立,使STM32 的性能得到明显提高,并在大幅提高了应用程序的执行速度。

STM32 通过BOOT[1:0]引脚选择3 种不同的启动模式,系统使用主闪存存储模式,即主闪存存储器被选为启动区域;系统时钟采用8 MHz 内部时钟经内部倍频为48 MHz。STM32 支持两种调试接口(SWJ):SW 调试和JTAG 调试,且SW 调试和JTAG 调试的部分引脚是复用的。本文采用SW(同步串行协议)调试:SWCLK 为从主机到目标的时钟信号;SWDIO 为双向数据信号;SWDIO 为双向接口,需接100 kΩ 的上拉电阻。STM32 主控芯片的配置结构如图2 所示。

图2 STM32 主控芯片配置图

2.1.2 SD 卡存储电路

安全数码卡(Secure Digital Memory Card,SD)是基于半导体快闪记忆器的多功能存储卡,具有容量大、性能高、安全性强等优点。SD 卡支持3 种传输模式:SPI模式、1 位SD 模式以及4 位SD 模式,文中使用SPI 传输模式与STM32 主控制器进行通信,SD 卡与STM32的连接如图3 所示。

图3 SD 卡连接图图

2.1.3 USB 通信电路

STM32 处理器内部自带一个USB 从控制器,符合USB 通信连接规范。USB 传输所需的48 MHz 时钟由内部系统时钟提供,USB 接口电压由+5 V 供电。其接口电路连接图如图4 所示。

图4 USB 接口电路图

2.2 数字录音电路

数字录音单元通过对输入的模拟音频信号进行低通滤波、增益放大以及采样、量化和ADPCM 编码处理,输出数字音频数据。VS1003 是VLSI 公司的一款支持MP3/WMA/MIDI 音频编解码和ADPCM 编码的芯片,内置一个高性能、低功耗的DSP 处理器内核,具有5 kB 的指令RAM,0.5 kB 的数据RAM,串行控制/数据输入接口,1 个UART 口以及4 个通用IO 口;同时片内带有一个立体声DAC 以及一个可变采样率的ADC。

输入模拟音频信号经LINE_IN 引脚输入到VS1003 进行A/D 采样,量化和ADPCM 编码,并通过SPI 通信协议与STM32 主控制器进行数据与控制信号的传输。录音电路与STM32 的连接电路如图5 所示。

图5 VS1003 电路连接图

VS1003 芯片由外部晶振提供12.288 MHz 时钟作为主时钟,如图5 所示。录音芯片由系统电源模块供电,所需2.5 V 模拟电压、3.3 V 数字电压以及3.3 V模拟电压,由AMS1117 线性电源模块提供。XRESET信号提供录音芯片的硬件复位,当XRESET 为低时,VS1003 处于复位状态。系统通电或硬件复位后,主机通过对各硬件寄存器的设置来实现对录音芯片录音模式和具体参数的设定。

2.3 供电电路

系统由外部电源或锂电池供电,采用数字5 V 进行供电,使用CN3052 充电电路对锂电池充电。CN3052A是对单节锂离子或锂-聚合物可充电电池进行恒流/恒压充电的充电器电路,其只需较少的外围器件,且符合USB 总线技术规范。充电模块电路如图6 所示。

图6 充电模块电路图

3 录音笔软件设计

录音系统的软件程序包括加密录音程序和上位机解密程序。加密录音过程为,首先对VS1003 语音芯片进行初始化配置,设定录音参数,通过计数器计数值为文件名,创建WAV 头文件,读取SPI 接口采集的数字音频数据并进行数据加密处理,随后再保存为WAV文件。上位机解密软件通过计算机对加密录音文件进行解密处理。加密录音流程如图7(a)所示。

图7 软件设计流程图

3.1 底层驱动程序

STM32 控制器通过SPI 接口对VS1003 录音芯片进行寄存器配置,然后进行数字音频数据的传输,经加密处理后将数据存储到SD 卡中,上位机通过USB 接口直接对存储器进行读写操作,以方便加密录音文件的拷贝。系统使用VS1003,采样率为8 kHz,采样位数为16 bit,其配置流程如图7(b)所示。STM32 为USB开发工具集提供了完整且经过认证的固件包,从而可轻易实现对各类USB 固件的开发。其中包括:用于普通设备管理任务的控制传输、批量传输、中断传输以及同步传输。USB 接口配置流程如图7(c)所示。

3.2 TEA 加密程序

为满足实时加密的要求,本文采用基于TEA 的加密算法。TEA 是一种小型的对称[6]加解密算法,支持128 位密钥,该加密算法的优点是速度快、效率高。为避免for 循环和除法运算,采用升级版的TEA 加密算法,通过对加密算法的更改,可一次加密512 Byte,符合Flash 一页扇区的存储大小。TEA 加密算法通过加密轮数来保证数据的可靠性,程序采用12 轮加密,故具有较高的可靠性。

算法的主要思想是将输入的512 Byte 明文数据进行分组,得到每组32 bit,共128 组的数组V0,V1,…,V127,并对128 位密钥进行分组得到4 组32 bit 的数组K0,K1,K2,K3,然后将每组数据Vj进行加MX 运算,共进行128 次,完成一轮加密。密钥常量设置为

unsigned char TEA_key[16]=

{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10};

图8 TEA 加密流程图

TEA 加密算法流程如图8 所示。其中,Delta 的初始值为0x9E3779B9,Delta 值的不断变化使得每轮的加密均有所不同。TEA 解密算法是加密的逆运算,对加密后的wav 文件进行解密处理,本文使用C#编写解密界面。

4 实验仿真

打开电源开关,状态指示灯闪烁一次;使用录音中间“一键录音”按键,录音指示灯常亮;再次按键时录音指示灯熄灭,停止录音。本文使用音频处理软件Cool Edit Pro 进行波形观察,加密的录音源文件和解密后的波形文件如图9 所示。

图9 音频文件波形图

通过音频信号的波形对比可看出,加密后的音频信号波形是完全随机的乱码,语音播放时呈噪音状态,解密后的音频文件声音还原性良好。

5 结束语

系统使用VS1003、STM32 等器件实现一键录音加密录音笔的设计,USB 从控制器与PC 机进行通信,实现数据传输。数字录音技术是现代数字信号处理的重要组成部分,其融合了音频数据采集与传输、音频数据处理以及嵌入式等多种技术,具有广阔的应用前景。

[1] 陈志旺.STM32 嵌入式微控制器快速上手[M].北京:电子工业出版社,2012.

[2] ST Microelectronics.Datasheet STM32[M].CA USA:ST Microelectronics,2013.

[3] 谢林栩.基于TEA 加密算法在网络传输中保护文件数据安全的应用[J].广西师范学院学报:自然科学版,2010,27(2):76-80.

[4] 方旭.基于STM32 处理器和PC 主机的USB 通信协议的实现[D].济南:山东大学,2009.

[5] 李媛,吕广申,李笛.基于SPI 协议的音频解码芯片VS1003 的读写机制及实现方法[J].洛阳理工学院学报:自然科学版,2011,21(2):56-59.

[6] 毕磊.基于对称、非对称组合数据加密算法的研究[J].华章,2009(22):145,149.

[7] 夏骏,王甜.基于STM32 和GSM 的远程遥控定时开关装置[J].电子科技,2013,26(1):112-114.

[8] 王铁流,李宗方,陈东升.基于STM32 的USB 数据采集模块的设计与实现[J].测控技术,2009(8):37-40.

猜你喜欢

加密算法解密录音
炫词解密
Funny Phonics
解密“一包三改”
funny phonics
Listen and Choose
炫词解密
Listen and Color
混沌参数调制下RSA数据加密算法研究
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法