一種基于STM32的加密錄音筆設(shè)計(jì)
本文引用地址:http://2s4d.com/article/256482.htm
3.1 底層驅(qū)動(dòng)程序
S7M32控制器通過(guò)SPI接口對(duì)VS1003錄音芯片進(jìn)行寄存器配置,然后進(jìn)行數(shù)字音頻數(shù)據(jù)的傳輸,經(jīng)加密處理后將數(shù)據(jù)存儲(chǔ)到SD卡中,上位機(jī)通過(guò)USB接口直接對(duì)存儲(chǔ)器進(jìn)行讀寫操作,以方便加密錄音文件的拷貝。系統(tǒng)使用VS1003,采樣率為8 kHz,采樣位數(shù)為16 bit,其配置流程如圖7(b)所示。STM32為USB開發(fā)工具集提供了完整且經(jīng)過(guò)認(rèn)證的固件包,從而可輕易實(shí)現(xiàn)對(duì)各類USB固件的開發(fā)。其中包括:用于普通設(shè)備管理任務(wù)的控制傳輸、批量傳輸、中斷傳輸以及同步傳輸。USB接口配置流程如圖7(c)所示。
3.2 TEA加密程序
為滿足實(shí)時(shí)加密的要求,本文采用基于TEA的加密算法。TEA是一種小型的對(duì)稱加解密算法,支持128位密鑰,該加密算法的優(yōu)點(diǎn)是速度快、效率高。為避免for循環(huán)和除法運(yùn)算,采用升級(jí)版的TEA加密算法,通過(guò)對(duì)加密算法的更改,可一次加密512 Byte,符合Flash一頁(yè)扇區(qū)的存儲(chǔ)大小。TEA加密算法通過(guò)加密輪數(shù)來(lái)保證數(shù)據(jù)的可靠性,程序采用12輪加密,故具有較高的可靠性。
算法的主要思想是將輸入的512 Byte明文數(shù)據(jù)進(jìn)行分組,得到每組32 bit,共128組的數(shù)組V0,V1,…,V127,并對(duì)128位密鑰進(jìn)行分組得到4組32 bit的數(shù)組K0,K1,K2,K3,然后將每組數(shù)據(jù)Vj進(jìn)行加MX運(yùn)算,共進(jìn)行128次,完成一輪加密。密鑰常量設(shè)置為
unsigned char TEA_key[16]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10};
TEA加密算法流程如圖8所示。
其中,Delta的初始值為0x9E3779B9,Delta值的不斷變化使得每輪的加密均有所不同。TEA解密算法是加密的逆運(yùn)算,對(duì)加密后的wav文件進(jìn)行解密處理,本文使用C#編寫解密界面。
4 實(shí)驗(yàn)仿真
打開電源開關(guān),狀態(tài)指示燈閃爍一次;使用錄音中間“一鍵錄音”按鍵,錄音指示燈常亮;再次按鍵時(shí)錄音指示燈熄滅,停止錄音。本文使用音頻處理軟件Cool Edit Pro進(jìn)行波形觀察,加密的錄音源文件和解密后的波形文件如圖9所示。
通過(guò)音頻信號(hào)的波形對(duì)比可看出,加密后的音頻信號(hào)波形是完全隨機(jī)的亂碼,語(yǔ)音播放時(shí)呈噪音狀態(tài),解密后的音頻文件聲音還原性良好。
5 結(jié)束語(yǔ)
系統(tǒng)使用VS1003、STM32等器件實(shí)現(xiàn)一鍵錄音加密錄音筆的設(shè)計(jì),USB從控制器與PC機(jī)進(jìn)行通信,實(shí)現(xiàn)數(shù)據(jù)傳輸。數(shù)字錄音技術(shù)是現(xiàn)代數(shù)字信號(hào)處理的重要組成部分,其融合了音頻數(shù)據(jù)采集與傳輸、音頻數(shù)據(jù)處理以及嵌入式等多種技術(shù),具有廣闊的應(yīng)用前景。
濾波器相關(guān)文章:濾波器原理
濾波器相關(guān)文章:濾波器原理
低通濾波器相關(guān)文章:低通濾波器原理
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理 晶振相關(guān)文章:晶振原理 上拉電阻相關(guān)文章:上拉電阻原理 數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理 離子色譜儀相關(guān)文章:離子色譜儀原理
評(píng)論