基于TMS320VC5410的DES加密系統(tǒng)設(shè)計
2.3 DSP與PC通信模塊設(shè)計
系統(tǒng)設(shè)計中選擇了McBSP0作為TMS320VC5410從外界PC機接收明文數(shù)據(jù)和輸出密文的通道,直接通過PC機的RS232異步串口與TMS320VC54 10之間進行加密解密數(shù)據(jù)的傳送。這種方法通過軟件實現(xiàn)PC機與DSP之間的串行雙工通信,它的硬件設(shè)計簡單且不會過多占用CPU的時間,
可以實現(xiàn)數(shù)據(jù)的高速傳輸。
RS232異步串口采用負(fù)邏輯傳送數(shù)據(jù),以10 V電壓狀態(tài)表示數(shù)據(jù)‘O’,-10 V電壓狀態(tài)表示數(shù)據(jù)‘1’;而DSP的IO口則以3.3 V表示高電平‘1’狀態(tài)或者無數(shù)據(jù)傳送,以0 V表示低電平‘O’狀態(tài)。因此為了使TMS320VC54lO的多通道緩沖串口與RS232接口進行通信,需要電平轉(zhuǎn)換電路,本文使用了MAXIM公司MAX232電平轉(zhuǎn)換器,如圖3所示。
3 系統(tǒng)軟件設(shè)計
選用TI公司CCS(Code Composer Studio)作為該加密系統(tǒng)軟件設(shè)計時的開發(fā)和調(diào)試工具,使用C語言和匯編混合編程的模式完成軟件設(shè)計。由于C語言編程具有便于閱讀、維護、交流和可移植性好的特點,因此采用C語言完成整個程序的主框架設(shè)計,在對時間要求比較苛刻的地方或?qū)Υa運行效率有較大影響的場合采用匯編指令編寫。
3.1 DSP讀IC卡軟件實現(xiàn)
3.1.1 McBSP1串口配置
當(dāng)把卡片插入卡座時,狀態(tài)開關(guān)選通,并且電路板上提示燈亮表示插卡到位,DSP內(nèi)存中的讀卡狀態(tài)標(biāo)志位設(shè)置為‘1’。TMS320VC5410開始初始化 McBSP1,使其工作在通用IO口狀態(tài),采用子地址尋址的方式對SPCR11(映射地址為0049h,子地址為00h)、SPCR12(子地址為 01h)和PCR1(子地址為0Eh)等寄存器進行配置。配置代碼如下:
SPCR11=0x0000;
SPCR12=0x0000;
PCR1=0x3F00;
此時FSR1、FSX1、CLKR1和CLKX1均用作通用輸出管腳。把PCR中的FSRP位設(shè)置為‘O’,PCR1&=0xFFFB;則卡片Voc觸點電平為低,卡片處于掉電狀態(tài);通過語句PCR1l=0x0004把FSR1引腳置高電平給卡片上電。
由于DSP的FSX1引腳與卡片的數(shù)據(jù)I/O觸點相連,要求FSX1引腳具有雙向傳輸?shù)墓δ?,但該引腳在同一時刻只能處于輸入或輸出一種狀態(tài),為此定義了以下兩個宏實現(xiàn)引腳在輸入與輸出狀態(tài)的改變。
3.1.2 復(fù)位與復(fù)位應(yīng)答
DSP檢測到讀卡狀態(tài)位為‘1’時,給卡片上電,CLK(和RST保留于狀態(tài)L,開始運行讀卡程序?qū)⒖ㄖ写鎯Φ拿荑€讀取至內(nèi)存中。首先按照 ISO7816-3標(biāo)準(zhǔn)對SLE5542卡片進行應(yīng)答復(fù)位,復(fù)位可以發(fā)生在操作過程的任意時刻。之后,RST線被置于H狀態(tài),并維持至少15μs。在 RST狀態(tài)由高電平到低電平的轉(zhuǎn)換期間CLK提供一個時鐘脈沖,卡片內(nèi)的地址計數(shù)器(address counter)清零,I/O引腳輸出有效數(shù)據(jù)的第1位,這一數(shù)據(jù)可視為復(fù)位應(yīng)答;在此后連續(xù)31個時鐘脈沖的作用下,主存儲器中的前4個地址中的32位標(biāo)頭數(shù)據(jù)被讀出;下一個時鐘脈沖使I/O引腳變?yōu)楦咦锠顟B(tài);此時卡片復(fù)位與復(fù)位應(yīng)答完成。
3.1.3 DSP讀卡主程序設(shè)計
圖4為DSP讀IC卡主程序設(shè)計??ㄆ瑥?fù)位應(yīng)答之后,則處于等待指令輸入的狀態(tài)。SLE5542每個指令均由控制字節(jié)、地址字節(jié)和數(shù)據(jù)字節(jié)組成,傳輸時從控制字節(jié)的最低位開始??刂谱止?jié)傳送完畢之后,依次傳送地址字節(jié)和數(shù)據(jù)字節(jié),均為低位在前。每個指令的傳輸都開始于一個Start條件 (在時鐘信號為高電平狀態(tài),通過DSP發(fā)送卡片IO口一個下降沿),結(jié)束于Stop條件(在時鐘信號為高電平狀態(tài),通過DSP發(fā)送卡片IO口一個上升沿)。根據(jù)指令作用的不同。SLE5542接收完成后可能處于數(shù)據(jù)輸出模式(DSP讀卡)或者內(nèi)部處理模式(DSP寫卡)。
評論