基于TMS320VC5410的DES加密系統設計
通過(guò)TMS320VC5410發(fā)送讀卡命令和所要讀取內容的地址(N=0,…,255)后,在CLK信號的作用下卡片將主存儲器中的數據按比特移至I/O 引腳發(fā)送至DSP內存中。讀取數據完成后,額外的一個(gè)時(shí)鐘信號將使I/O引腳變?yōu)楦咦锠顟B(tài),卡片退出輸出模式等待接收新的指令,也可以用Break條件 (在CLK為低時(shí),把RST信號由低電平變?yōu)楦唠娖綘顟B(tài))結束此次操作。

圖5顯示了TMS320VC5410對SLE5542卡片讀卡程序的調試結果,為了驗證讀卡功能的實(shí)現,系統讀取了卡片中的所有字節的內容。其中前8個(gè)字節為‘A2131091FFFF8115’為IC卡的廠(chǎng)商標識;之后地址8~20的13個(gè)字節全為‘FF’是寫(xiě)保護區;地址21~26是6個(gè)字節的用戶(hù)代碼‘D27600000400’,之后又是5個(gè)字節的寫(xiě)保護區;從地址32~255之間的數據是用戶(hù)數據區,可以在這些地址里存放加密系統的密鑰和其他的用戶(hù)信息。
3.2 PC通信軟件設計
3.2.1 MeBSP0的初始化配置
首先通過(guò)SPCR1O=0x0000,SPCR20=Ox0000把RRST與XRST位設置為‘O’,使串口復位。設置PCR0=0x0BOC;采樣率由DSP內部產(chǎn)生,接收與發(fā)送幀同步信號為低有效,時(shí)鐘上升沿發(fā)送數據、下降沿接收數據。其次通過(guò)接收控制寄存器RCR1O(子地址為02h)和 RCR20(子地址為03h)來(lái)對DSP串口接收模式進(jìn)行設置,令RCR10=0x0940;RCR20=0x0004;接收幀長(cháng)度10字、每字16 bit,忽略除第一個(gè)幀同步后的其他幀同步信號。通過(guò)傳輸控制寄存器XCR10(子地址為04h)和XCR20(子地址為05h)來(lái)對DSP串口發(fā)送模式進(jìn)行設置,令XCR10=0x0940;XCP20=0x0004;使數據的發(fā)送與接收模式一致。另外,采樣率發(fā)生器控制寄存器SRGR10(子地址為 06h)和SRGR20(子地址為07h)控制采用率發(fā)生器的工作模式。本系統中選擇PC機的串口工作波特率為38 400,采樣率發(fā)生器計算公式為:
CLKGDV=CPU工作頻率/(16x波特率)-1
由于TMS320VC5410工作頻率為100 MHz,因此CLKGDV=100 000 000/(16x38 400)-1=161,設置SRGR1=0x00A1,SRGR2=0x2000;最后通過(guò)SPCR1=0x0001,SRGR2=0x2000;對串口使能,處于可操作狀態(tài),至此完成了McBSPO的初始化配置。
3.2.2 數據格式的統一
DSP通過(guò)McBSP0接收外界PC機數據采用中斷方式。這里為了實(shí)現TMS320VC5410同步串口與PC機異步串口通信時(shí)數據格式的統一,把 McBSP的1個(gè)16位字等效為PC機串口傳送的1個(gè)8N1模式數據(1個(gè)起始位+8個(gè)數據位+1個(gè)停止位)的1位。PC機串口每發(fā)送1個(gè)位的數據,DSP采樣16次暫存數據接收寄存器DRR10(地址為21h)中。例如PC機通過(guò)RS232串口傳送數據為‘1’,則DRR10經(jīng)過(guò)16次采用后接收一個(gè)字的數據為‘FFFFh’,同理若前者后‘0’,則后者為‘0000h’。之后觸發(fā)McBSPO串口接收中斷,DSP執行中斷服務(wù)程序將DRR1O 中的有效數據(除去起始位和停止位)取走至內存中,并對計數器加1。當接收到一個(gè)完整的幀后,DSP置串口數據解碼標志位為‘1’,DSP開(kāi)始運行解碼程序,將‘FFFFh’和‘0000h’分別等效為一個(gè)比特位‘1’和‘0’,從而恢復出原始的數據幀。
當DSP對接收到的數據完成加密之后需要反饋輸出,TMS320VC5410串口數據向PC機發(fā)送的過(guò)程與數據接收的過(guò)程正好相反。每幀數據都需要進(jìn)行串口編碼之后通過(guò)數據發(fā)送寄存器DXR1O(地址為23h)發(fā)出。即把8位有效數據中的‘0’編碼為‘0000h’,‘1’編碼為‘FFFFh’,按照從低位到高位的順序重新排列編碼后的數據,并在幀首和幀尾分別添加起始位‘0000h’和結束位‘FFFFh’,將每組10個(gè)數據作為一幀信號發(fā)出。

圖6顯示了本文設計的加密系統的實(shí)驗結果。通過(guò)PC機和RS-232串口發(fā)送字符‘11112222’的十六進(jìn)制形式為‘3131313132323232’共64 bit,TMS320VC5410接收到64 bit明文數據后,通過(guò)讀取IC卡中的64 bit密鑰‘310000000000031’并對明文進(jìn)行DES加密后,輸出密文的十六進(jìn)制形式為‘96B466D634DE9A2D’。結果顯示系統工作穩定可靠,符合設計要求。
4 結論
本文采用SLE5542型IC卡存儲密鑰,TMS320VC5410中的McBSP引腳與卡片觸點(diǎn)連接并實(shí)現對卡片的應答復位和內容的讀取,同時(shí)通過(guò)RS2 32串口與個(gè)人PC機實(shí)時(shí)交換數據,接收PC機發(fā)送的明文并對其DES加密后反饋輸出。由于McBSP的工作機制是同步串口,把其當作通用I/O口和異步串口使用時(shí)必須注意內部寄存器的設置和輸入輸出方向的設定。經(jīng)軟硬件調試,實(shí)驗結果表明該方案完全可以滿(mǎn)足大數據量的加密,合理使用了硬件資源,可以進(jìn)一步升級擴展作為數據采集保密系統的加密模塊。
本文引用地址:http://dyxdggzs.com/article/156883.htm
評論