基于FPGA的PCI硬件加解密卡設計
2.4 USB接口模塊設計
本系統(tǒng)的USB選用CH375B,工作于USB-HOST主機方式,采用并行接口。在USB主機方式下,CH375B支持各種常用的USB全速設備,外部單片機需要編寫固件程序按照相應的USB協(xié)議與USB設備通訊。USB接口模塊電路圖如圖7所示。本文引用地址:http://2s4d.com/article/191636.htm
CH375B并行接口信號線包括:8位雙向數(shù)據(jù)總線D7~DO、讀選通輸入引腳RD#、寫選通輸入引腳WR#、片選輸入引腳CS#、中斷輸出引腳INT#以及地址輸入引腳A0。CH375B的RD#和WR#可以分別連接到單片機的讀選通輸出引腳和寫選通輸出引腳,CS#由地址譯碼電路驅(qū)動,INT#輸出的中斷請求是低電平有效,可以連接到單片機的中斷輸入引腳,單片機使用中斷方式獲知中斷請求。當WR#為高電平并且CS#和RD#及A0都為低電平時,CH375B中的數(shù)據(jù)通過D7~DO輸出;當RD#為高電平并且CS#和wR#以及A0都為低電平時,D7~DO上的數(shù)據(jù)被寫入CH375B中;當RD#為高電平并且CS#和WR#都為低電平而AO為高電平時,D7~DO上的數(shù)據(jù)被作為命令碼寫入CH375B中。
3 軟件的設計與實現(xiàn)
軟件主要分為驅(qū)動程序和應用程序兩部分,分別用DriverStudio和Visual C++開發(fā)。驅(qū)動程序的設計關鍵是如何完成硬件操作。基本功能包括設備的初始化、IO端口的讀寫操作、內(nèi)存讀寫操作、中斷的設置響應和調(diào)用等部分。PCI卡插入主機時,從設備中讀出產(chǎn)品ID(PlD)和廠商ID(VID),由這2個值來搜索匹配的inf文件,再由inf文件加載相應的驅(qū)動。應用程序通過調(diào)用Win32 API函數(shù)CreatFile來打開設備,然后使用DeviceloControl與驅(qū)動程序通信。在應用程序退出前使用CloseHandle關閉設備。DeviceIoControl使用不同的IOCTL命令來調(diào)用驅(qū)動程序完成不同的任務。
4 結(jié)束語
經(jīng)測試,本PCI加解密卡數(shù)據(jù)加密存儲速度為612 KByte/s,解密讀取速度為630 KByte/s。FPGA使用情況:total logicelements 903l/12060(75%),total pin 84/173(49%)。在以后的設計中,應重點解決系統(tǒng)加解密速度較慢的問題,另外,FPGA和USB的選型、加解密算法的優(yōu)化等有待改進。
本設計的創(chuàng)新點在于用硬件加解密方法取代了通常的軟件加解密方法,采用更為安全可靠的DESX算法來彌補DES算法的不足,使用了FPGA的IP軟核設計方法實現(xiàn)DESX加解密模塊和PCI接口模塊,提高了系統(tǒng)集成度,可移植性好,便于系統(tǒng)升級。在加解密速度方面,用邏輯綜合式取代時鐘驅(qū)動級聯(lián)式,使加解密一組數(shù)據(jù)的時間由16個周期縮短為1個周期。本系統(tǒng)在需要高級保密的商業(yè)和軍事領域,有著較好的應用前景。
超級電容器相關文章:超級電容器原理
評論