基于TMS320VC5410的DES加密系統(tǒng)設(shè)計
2 系統(tǒng)硬件設(shè)計
結(jié)合運算速度,外設(shè)接口以及性價比等方面的考慮,選用TI公司TMS320VC54x系列16位定點TMS320VC5410型DSP作為實現(xiàn)DES加密的硬件平臺。它具有較低的功耗與杰出的性能,時鐘最高頻率可以達到100 MHz。另外,TMS320VC5410片上提供了3個可以設(shè)置為GPIO接口的多通道緩沖串口(McBSP),這對外圍設(shè)備接口子系統(tǒng)的設(shè)計至關(guān)重要。系統(tǒng)中除TMS320VC5410基本的工作外圍電路如電源晶振模塊、Flash模塊和JT-AG接口模塊以外,還主要包括以下2部分:1)TMS320VC541O與SLE5542型IC卡片的接口模塊,主要用于系統(tǒng)工作時IC卡向DSP傳送用于數(shù)據(jù)加密的密鑰和卡片存儲的其他一些用戶信息;2)DSP與PC主機的通信接口模塊,它是DSP與個人電腦的通信接口,主要用于DSP接收明文數(shù)據(jù)以及將加密后的數(shù)據(jù)反饋至PC機。
2.1 McBSP簡介
TMS320VC5410片內(nèi)包含了3個全雙工的多通道緩沖串口(Multichannel Buffered Serial Ports,McBSP),分別為McBSP0、McBSPI和McB-SP2。它們可以提供全雙工通信、連續(xù)數(shù)據(jù)流的雙緩沖數(shù)據(jù)寄存器、接收和發(fā)送獨立的幀和時鐘,可以直接和系統(tǒng)中的其他器件接口連接并可以配置為通用IO口。McBSP與外設(shè)的數(shù)據(jù)交換,通過DX引腳發(fā)送,RX引腳接收。通信的時鐘與幀信號由CLKX、CLKR、FSX及FSR引腳來控制。T-MS320VC5410對McBSP的控制由2個16 bit的串口控制寄存器(SPCR[1,2])和引腳控制寄存器(PCR)來實現(xiàn)。DSP的CPU或DMA從數(shù)據(jù)接收寄存器(DRR [1,2])讀取接收數(shù)據(jù);發(fā)送時,向數(shù)據(jù)發(fā)送寄存器(DXR[1,2])寫數(shù)據(jù),數(shù)據(jù)寫入后通過傳輸移位寄存器(XSR[1,2]),移位輸出到DX 上。同樣,從DR上接收的數(shù)據(jù),移位存儲到接收移位寄存器(RSR[1,2]),并復(fù)制到接收緩存寄存器(RBR[1,2])。然后,再由 (RBR[1,2])復(fù)制到DRR[1,2]。DRR[1,2]可以由CPU或DMA讀出。
2.2 DSP與IC卡連接模塊
選用西門子公司SLE5542型卡片,其引腳定義和功能說明如表1所示。它是一種按字節(jié)操作的多存儲器邏輯加密卡,應(yīng)答復(fù)位符合ISO78 16-3標(biāo)準(zhǔn)。該型卡片內(nèi)置了3個存儲器:32×1 bit的PROM型保護存儲器、256×1 bit的EEPROM型主存儲器以及32x1 bit的EEPROM型加密存儲器。主存儲器可重復(fù)擦除使用,按字節(jié)操作,并分為保護數(shù)據(jù)區(qū)和應(yīng)用數(shù)據(jù)區(qū),讀出均不受限制,但應(yīng)用數(shù)據(jù)區(qū)的擦除和寫入則受加密存儲器中的密碼及密碼計數(shù)器保護。
為了提高硬件的利用率和解決DSP片上通用IO口較少的問題,本系統(tǒng)設(shè)計將MeBSPI配置為通過IO口實現(xiàn)其與IC卡片通信的模塊。由于McB-SP引腳中的DX只能配置用作通用輸出腳,DR只能配置用作通用輸入腳,不方便程序編寫對引腳狀態(tài)控制。所以在DSP對卡片讀寫的硬件電路中選擇了MeBSP1 的FSR1、CLKR1、CLKX1、和FSX1這4個引腳,它們均可以通過16位的引腳控制寄存器(PCR)配置為通用I/O引腳。FSR1引腳通過 CD4066開關(guān)電源芯片來控制SLE5542卡片的上電與掉電;由CLKR1連接卡片的RST觸點,卡片復(fù)位時改變引腳的高低電平狀態(tài);CLKX1引腳與IC卡片的時鐘觸點CLK相連,該引腳狀態(tài)的高低變化為卡片正常工作提供時鐘信號;FSX1連接卡片數(shù)據(jù)I/O觸點,負(fù)責(zé)DSP與IC卡片之間讀寫命令字和用戶有用數(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è)置為‘O’,使串口復(fù)位,串口操作禁止。然后設(shè)置引腳控制寄存器PCR中的XIOEN和RIOEN為‘1’,使串口的接收和發(fā)送引腳均工作在通用I/0模式;另外將FSRM、CLKXM和CLKRM位均設(shè)置為‘1’,使FSR1、CLKX和CLXR引腳作為通用輸出管腳,將要輸出的值分別存儲在PCR中的FSRP位、CLKXP和CLKRP;對于FSXM位的設(shè)置,則需要根據(jù)通信時的具體情況而定。
評論