a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于TMS320VC5410 的DES 加密系統設計

基于TMS320VC5410 的DES 加密系統設計

作者: 時間:2010-11-29 來源:網絡 收藏

  3 系統軟件設計:

  選用TI 公司CCS(Code Composer Studio)作為該軟件設計時的開發和調試工具, 使用C 語言和匯編混合編程的模式完成軟件設計。由于C 語言編程具有便于閱讀、維護、交流和可移植性好的特點,因此采用C 語言完成整個程序的主框架設計, 在對時間要求比較苛刻的地方或對代碼運行效率有較大影響的場合采用匯編指令編寫。

  3.1 DSP 讀IC 卡軟件實現:

  3.1.1 McBSP1 串口配置:

  當把卡片插入卡座時,狀態開關選通,并且電路板上提示燈亮表示插卡到位,DSP 內存中的讀卡狀態標志位設置為‘1’。 開始初始化McBSP1,使其工作在通用IO 口狀態,采用子地址尋址的方式對SPCR11(映射地址為0049h,子地址為00h)、SPCR12( 子地址為01h) 和PCR1(子地址為0Eh)等寄存器進行配置。配置代碼如下:

  SPCR11=0x0000;

  SPCR12=0x0000;

  PCR1=0x3F00;

  此時FSR1、FSX1、CLKR1 和CLKX1 均用作通用輸出管腳。把PCR 中的FSRP 位設置為‘0’,PCR1= 0xFFFB;則卡片VCC觸點電平為低, 卡片處于掉電狀態; 通過語句PCR1|= 0x0004 把FSR1 引腳置高電平給卡片上電。

  由于DSP 的FSX1 引腳與卡片的數據I/O 觸點相連,要求FSX1 引腳具有雙向傳輸的功能,但該引腳在同一時刻只能處于輸入或輸出一種狀態, 為此定義了以下兩個宏實現引腳在輸入與輸出狀態的改變。

  #define set_IOout () SPSA1=PCR1;SPSD1|=0x0800;FSX1 引腳處于輸出狀態

  #define set_IOin () SPSA1=PCR1;SPSD1=0xF7FF;FSX1 引腳處于輸入狀態

  3.1.2 復位與復位應答:

  DSP 檢測到讀卡狀態位為‘1’時,給卡片上電,CLK 和RST 保留于狀態L,開始運行讀卡程序將卡中存儲的密鑰讀取至內存中。首先按照ISO7816-3 標準對SLE5542 卡片進行應答復位,復位可以發生在操作過程的任意時刻。之后,RST 線被置于H 狀態,并維持至少15 μs。在RST 狀態由高電平到低電平的轉換期間CLK 提供一個時鐘脈沖, 卡片內的地址計數器(address counter)清零,I/O 引腳輸出有效數據的第1 位,這一數據可視為復位應答[5];在此后連續31 個時鐘脈沖的作用下,主存儲器中的前4 個地址中的32 位標頭數據被讀出; 下一個時鐘脈沖使I/O 引腳變為高阻狀態,此時卡片復位與復位應答完成。

  3.1.3 DSP 讀卡主程序設計:

  圖4 為DSP 讀IC 卡主程序設計。卡片復位應答之后,則處于等待指令輸入的狀態。SLE5542 每個指令均由控制字節、地址字節和數據字節組成,傳輸時從控制字節的最低位開始??刂谱止潅魉屯戤呏?,依次傳送地址字節和數據字節, 均為低位在前。每個指令的傳輸都開始于一個Start條件(在時鐘信號為高電平狀態,通過DSP 發送卡片IO 口一個下降沿),結束于Stop 條件(在時鐘信號為高電平狀態,通過DSP 發送卡片IO 口一個上升沿)。根據指令作用的不同,SLE5542 接收完成后可能處于數據輸出模式(DSP 讀卡)或者內部處理模式(DSP 寫卡)。


  通過 發送讀卡命令和所要讀取內容的地址(N=0,…,255)后,在CLK 信號的作用下卡片將主存儲器中的數據按比特移至I/O 引腳發送至DSP 內存中。讀取數據完成后,額外的一個時鐘信號將使I/O 引腳變為高阻狀態,卡片退出輸出模式等待接收新的指令,也可以用Break條件(在CLK 為低時,把RST 信號由低電平變為高電平狀態)結束此次操作。

  圖5 顯示了 對SLE5542 卡片讀卡程序的調試結果,為了驗證讀卡功能的實現,系統讀取了卡片中的所有字節的內容。其中前8 個字節為‘A2131091FFFF8115’ 為IC 卡的廠商標識; 之后地址8~20的13 個字節全為‘FF’是寫保護區;地址21~26 是6 個字節的用戶代碼‘D27600000400’, 之后又是5 個字節的寫保護區;從地址32~255 之間的數據是用戶數據區,可以在這些地址里存放的密鑰和其他的用戶信息。


  3.2 PC 通信軟件設計:

  3.2.1 McBSP0 的初始化配置:

  首先通過SPCR10=0x0000,SPCR20=0x0000 把RRST 與XRST 位設置為‘0’,使串口復位。設置PCR0=0x0B0C;采樣率由DSP 內部產生,接收與發送幀同步信號為低有效,時鐘上升沿發送數據、下降沿接收數據。其次通過接收控制寄存器RCR10 ( 子地址為02h) 和RCR20 ( 子地址為03h) 來對DSP 串口接收模式進行設置, 令RCR10=0x0940;RCR20=0x0004;接收幀長度10 字、每字16 bit,忽略除第一個幀同步后的其他幀同步信號。通過傳輸控制寄存器XCR10(子地址為04h)和XCR20(子地址為05h)來對DSP 串口發送模式進行設置, 令XCR10=0x0940;XCR20=0x0004; 使數據的發送與接收模式一致。另外, 采樣率發生器控制寄存器SRGR10(子地址為06h)和SRGR20(子地址為07h)控制采用率發生器的工作模式。本系統中選擇PC 機的串口工作波特率為38 400,采樣率發生器計算公式為:

  CLKGDV=CPU 工作頻率/(16×波特率)-1

  由于TMS320VC5410 工作頻率為100 MHz, 因此CLKGDV=100 000 000/(16×38 400)-1=161, 設置SRGR1=0x00A1,SRGR2=0x2000; 最后通過SPCR1=0x0001,SRGR2=0x2000;對串口使能,處于可操作狀態,至此完成了McBSP0的初始化配置。

  3.2.2 數據格式的統一

  DSP 通過McBSP0 接收外界PC 機數據采用中斷方式。

  這里為了實現TMS320VC5410 同步串口與PC 機異步串口通信時數據格式的統一, 把McBSP 的1 個16 位字等效為PC 機串口傳送的1 個8N1 模式數據(1 個起始位+8 個數據位+1 個停止位) 的1 位。PC 機串口每發送1 個位的數據,DSP 采樣16 次暫存數據接收寄存器DRR10 (地址為21h)中。例如PC 機通過RS232 串口傳送數據為‘1’,則DRR10經過16 次采用后接收一個字的數據為‘FFFFh’,同理若前者后‘0’,則后者為‘0000h’。之后觸發McBSP0 串口接收中斷,DSP 執行中斷服務程序將DRR10 中的有效數據(除去起始位和停止位)取走至內存中,并對計數器加1。當接收到一個完整的幀后,DSP 置串口數據解碼標志位為‘1’,DSP開始運行解碼程序,將‘FFFFh’和‘0000h’分別等效為一個比特位‘1’和‘0’,從而恢復出原始的數據幀。

  當DSP 對接收到的數據完成加密之后需要反饋輸出,TMS320VC5410 串口數據向PC 機發送的過程與數據接收的過程正好相反。每幀數據都需要進行串口編碼之后通過數據發送寄存器DXR10(地址為23h)發出。即把8 位有效數據中的‘0’編碼為‘0000h’,‘1’編碼為‘FFFFh’,按照從低位到高位的順序重新排列編碼后的數據, 并在幀首和幀尾分別添加起始位‘0000h’和結束位‘FFFFh’,將每組10 個數據作為一幀信號發出。

  圖6 顯示了本文設計的的實驗結果。通過PC機和RS-232 串口發送字符‘11112222’ 的十六進制形式為‘3131313132323232’共64 bit,TMS320VC5410 接收到64 bit明文數據后, 通過讀取IC 卡中的64 bit 密鑰‘3100000000000031’并對明文進行 加密后,輸出密文的十六進制形式為‘9*66D*DE9A2D’。結果顯示系統工作穩定可靠,符合設計要求。


  4 結論

  本文采用SLE5542 型IC 卡存儲密鑰,TMS320VC5410中的McBSP 引腳與卡片觸點連接并實現對卡片的應答復位和內容的讀取,同時通過RS232 串口與個人PC 機實時交換數據,接收PC 機發送的明文并對其 加密后反饋輸出。

  由于McBSP 的工作機制是同步串口, 把其當作通用I/O 口和異步串口使用時必須注意內部寄存器的設置和輸入輸出方向的設定。經軟硬件調試,實驗結果表明該方案完全可以滿足大數據量的加密,合理使用了硬件資源,可以進一步升級擴展作為數據采集保密系統的加密模塊。

伺服電機相關文章:伺服電機工作原理



上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉