基于TMS320VC5410 的DES 加密系統(tǒng)設(shè)計(jì)
數(shù)據(jù)加密是為了保證所傳輸信息的安全而在特定參數(shù)(稱(chēng)為密鑰)的控制下按照某種規(guī)律對(duì)原始數(shù)據(jù)進(jìn)行的人為擾亂, 將其轉(zhuǎn)換成秘密形式的信息。數(shù)據(jù)加密標(biāo)準(zhǔn)(DataEncryption Standard, DES)是第一個(gè)廣泛應(yīng)用于商用數(shù)據(jù)保密的、公開(kāi)的密碼算法,在其公布和正式實(shí)施后,成為許多國(guó)家政府、銀行和標(biāo)準(zhǔn)組織的信息安全處理標(biāo)準(zhǔn)。然而DES實(shí)現(xiàn)信息保密的前提是對(duì)于密鑰的有效管理, 這就要求基于DES 的加密系統(tǒng)必須提供可靠、方便的密鑰保存設(shè)備。同時(shí)在近20 年,DSP 處理器的性能得到很大改善, 軟件和開(kāi)發(fā)工具也得到相應(yīng)發(fā)展, 價(jià)格大幅下降, 應(yīng)用也越來(lái)越廣泛。本文選用TI 公司TMS320VC54x 系列DSP,采用軟件方式實(shí)現(xiàn)DES 加密算法,同時(shí)以集成電路卡(Integrated CircuitCard)作為密鑰存儲(chǔ)設(shè)備。為了解決DSP 的通用IO 口較少的問(wèn)題, 使DSP 片上的一些特殊功能引腳工作在通用輸入輸出引腳狀態(tài)顯得尤為重要。本文結(jié)合DSP 運(yùn)算速度快、片上資源多的特點(diǎn),研究并實(shí)現(xiàn)基于DSP 的DES 加密系統(tǒng)及其與IC 卡以及終端PC 機(jī)之間的通信協(xié)議。
1 DES 算法簡(jiǎn)介:
DES 作為美國(guó)國(guó)家標(biāo)準(zhǔn)的加密算法, 既可用于加密又可用于解密。其加密過(guò)程主要分為3 個(gè)部分,如圖1 所示。
首先把輸入的數(shù)據(jù)比特流以每64 bit 為一組進(jìn)行分組得到明文x,之后是一個(gè)初始置換IP,記為x0=IP(x)=L0R0(L0代表左邊32 bit,R0代表右邊32 bit);然后以每一組作為加密單元,在16 個(gè)子密鑰(每個(gè)子密鑰的長(zhǎng)度為48 bit)的控制下根據(jù)下列規(guī)則計(jì)算LiRi(1≤i≤16),進(jìn)行16 輪的非線(xiàn)性變換:
每輪中都有換位和代替運(yùn)算; 最后再經(jīng)過(guò)一個(gè)逆初始置換IP-1(為IP 的逆變換)輸出一組64 bit 長(zhǎng)的密文。
對(duì)于數(shù)據(jù)較大的文件加密要求芯片具有很高的處理速度。出于保密通信系統(tǒng)的需求,該系統(tǒng)設(shè)計(jì)以IC 卡作為密鑰的存儲(chǔ)設(shè)備, 采用TI 公司TMS320VC54x 系列DSP 實(shí)現(xiàn)對(duì)來(lái)自PC 機(jī)的明文數(shù)據(jù)進(jìn)行DES 加密處理。該方案運(yùn)算速度快、保密性好,具有很高的可擴(kuò)展性,用于保密的數(shù)據(jù)采集系統(tǒng)中,對(duì)來(lái)自數(shù)據(jù)采集模塊的信號(hào)進(jìn)行DES 加密后,傳輸給PC 機(jī)。
2 系統(tǒng)硬件設(shè)計(jì):
結(jié)合運(yùn)算速度,外設(shè)接口以及性?xún)r(jià)比等方面的考慮,選用TI 公司TMS320VC54x 系列16 位定點(diǎn)TMS320VC5410 型DSP 作為實(shí)現(xiàn)DES 加密的硬件平臺(tái)。它具有較低的功耗與杰出的性能, 時(shí)鐘最高頻率可以達(dá)到100 MHz。另外,TMS320VC5410 片上提供了3 個(gè)可以設(shè)置為GPIO 接口的多通道緩沖串口(McBSP),這對(duì)外圍設(shè)備接口子系統(tǒng)的設(shè)計(jì)至關(guān)重要。系統(tǒng)中除TMS320VC5410 基本的工作外圍電路如電源晶振模塊、Flash 模塊和JTAG 接口模塊以外,還主要包括以下2 部分:1)TMS320VC5410 與SLE5542 型IC 卡片的接口模塊,主要用于系統(tǒng)工作時(shí)IC 卡向DSP 傳送用于數(shù)據(jù)加密的密鑰和卡片存儲(chǔ)的其他一些用戶(hù)信息;2)DSP與PC 主機(jī)的通信接口模塊, 它是DSP 與個(gè)人電腦的通信接口, 主要用于DSP 接收明文數(shù)據(jù)以及將加密后的數(shù)據(jù)反饋至PC 機(jī)。
2.1 McBSP 簡(jiǎn)介:
TMS320VC5410 片內(nèi)包含了3 個(gè)全雙工的多通道緩沖串口(Multichannel Buffered Serial Ports,McBSP), 分別為McBSP0、McBSP1 和McBSP2。它們可以提供全雙工通信、連續(xù)數(shù)據(jù)流的雙緩沖數(shù)據(jù)寄存器、接收和發(fā)送獨(dú)立的幀和時(shí)鐘, 可以直接和系統(tǒng)中的其他器件接口連接并可以配置為通用IO 口。McBSP 與外設(shè)的數(shù)據(jù)交換,通過(guò)DX 引腳發(fā)送,RX 引腳接收。通信的時(shí)鐘與幀信號(hào)由CLKX、CLKR、FSX 及FSR 引腳來(lái)控制。TMS320VC5410 對(duì)McBSP 的控制由2 個(gè)16 bit 的串口控制寄存器(SPCR[1,2]) 和引腳控制寄存器(PCR) 來(lái)實(shí)現(xiàn)。DSP 的CPU 或DMA 從數(shù)據(jù)接收寄存器(DRR [1,2]) 讀取接收數(shù)據(jù); 發(fā)送時(shí), 向數(shù)據(jù)發(fā)送寄存器(DXR[1,2])寫(xiě)數(shù)據(jù),數(shù)據(jù)寫(xiě)入后通過(guò)傳輸移位寄存器(XSR[1,2]),移位輸出到DX 上。同樣,從DR 上接收的數(shù)據(jù),移位存儲(chǔ)到接收移位寄存器(RSR[1,2]),并復(fù)制到接收緩存寄存器(RBR[1,2])。然后,再由(RBR[1,2])復(fù)制到DRR[1,2]。DRR[1,2]可以由CPU 或DMA 讀出。
2.2 DSP 與IC 卡連接模塊:
選用西門(mén)子公司SLE5542 型卡片, 其引腳定義和功能說(shuō)明如表1 所示。它是一種按字節(jié)操作的多存儲(chǔ)器邏輯加密卡,應(yīng)答復(fù)位符合ISO7816-3 標(biāo)準(zhǔn)。該型卡片內(nèi)置了3 個(gè)存儲(chǔ)器:32 ×1 bit 的PROM 型保護(hù)存儲(chǔ)器、256 ×1 bit 的EEPROM 型主存儲(chǔ)器以及32×1 bit 的EEPROM 型加密存儲(chǔ)器。主存儲(chǔ)器可重復(fù)擦除使用,按字節(jié)操作,并分為保護(hù)數(shù)據(jù)區(qū)和應(yīng)用數(shù)據(jù)區(qū),讀出均不受限制,但應(yīng)用數(shù)據(jù)區(qū)的擦除和寫(xiě)入則受加密存儲(chǔ)器中的密碼及密碼計(jì)數(shù)器保護(hù)。
表1 SLE5542 引腳定義和功能說(shuō)明
IC 卡連接電路如圖2 所示。
為了提高硬件的利用率和解決DSP 片上通用IO 口較少的問(wèn)題, 本系統(tǒng)設(shè)計(jì)將McBSP1 配置為通過(guò)IO 口實(shí)現(xiàn)其與IC 卡片通信的模塊。由于McBSP 引腳中的DX 只能配置用作通用輸出腳,DR 只能配置用作通用輸入腳, 不方便程序編寫(xiě)對(duì)引腳狀態(tài)控制。所以在DSP 對(duì)卡片讀寫(xiě)的硬件電路中選擇了McBSP1 的FSR1、CLKR1、CLKX1、和FSX1 這4個(gè)引腳,它們均可以通過(guò)16 位的引腳控制寄存器(PCR)配置為通用I/O 引腳。FSR1 引腳通過(guò)CD4066 開(kāi)關(guān)電源芯片來(lái)控制SLE5542 卡片的上電與掉電;由CLKR1 連接卡片的RST 觸點(diǎn),卡片復(fù)位時(shí)改變引腳的高低電平狀態(tài);CLKX1 引腳與IC 卡片的時(shí)鐘觸點(diǎn)CLK 相連,該引腳狀態(tài)的高低變化為卡片正常工作提供時(shí)鐘信號(hào);FSX1 連接卡片數(shù)據(jù)I/O 觸點(diǎn),負(fù)責(zé)DSP 與IC 卡片之間讀寫(xiě)命令字和用戶(hù)有用數(shù)據(jù)的傳送。注意CLKX1 和FSX1 引腳要接上拉電阻,且FSX1 配置的輸入或輸出狀態(tài)要根據(jù)DSP 與IC 卡之間數(shù)據(jù)流向而定。
為了使McBSP1 的相關(guān)引腳工作在系統(tǒng)需求的通用I/O狀態(tài), 首先需要將該串口的控制寄存器SPCR1 中的RRST位和SPCR2 中的XRST 位均設(shè)置為‘0’,使串口復(fù)位,串口操作禁止。然后設(shè)置引腳控制寄存器PCR 中的XIOEN 和RIOEN 為‘1’,使串口的接收和發(fā)送引腳均工作在通用I/O模式;另外將FSRM、CLKXM 和CLKRM 位均設(shè)置為‘1’,使FSR1、CLKX 和CLKR 引腳作為通用輸出管腳, 將要輸出的值分別存儲(chǔ)在PCR 中的FSRP 位、CLKXP 和CLKRP; 對(duì)于FSXM 位的設(shè)置,則需要根據(jù)通信時(shí)的具體情況而定。
2.3 DSP 與PC 通信模塊設(shè)計(jì):
系統(tǒng)設(shè)計(jì)中選擇了McBSP0 作為T(mén)MS320VC5410 從外界PC 機(jī)接收明文數(shù)據(jù)和輸出密文的通道,直接通過(guò)PC 機(jī)的RS232 異步串口與TMS320VC5410 之間進(jìn)行加密解密數(shù)據(jù)的傳送。這種方法通過(guò)軟件實(shí)現(xiàn)PC 機(jī)與DSP 之間的串行雙工通信,它的硬件設(shè)計(jì)簡(jiǎn)單且不會(huì)過(guò)多占用CPU 的時(shí)間,可以實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。
RS232 異步串口采用負(fù)邏輯傳送數(shù)據(jù), 以10 V 電壓狀態(tài)表示數(shù)據(jù)‘0’,-10 V 電壓狀態(tài)表示數(shù)據(jù)‘1’;而DSP 的IO口則以3.3 V 表示高電平‘1’狀態(tài)或者無(wú)數(shù)據(jù)傳送,以0 V表示低電平‘0’狀態(tài)。因此為了使TMS320VC5410 的多通道緩沖串口與RS232 接口進(jìn)行通信,需要電平轉(zhuǎn)換電路,本文使用了MAXIM 公司MAX232 電平轉(zhuǎn)換器,如圖3 所示。
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
評(píng)論