存儲測試系統USB接口的設計與實現

從SRAM讀取存儲數據時,單片機首先置片選信號CE和讀控制信號OE為低電平,測試系統的時序控制電路在OE信號的作用下推動SRAM的地址,SRAM則將對應地址的數據放在總線上。單片機讀取數據總線后,判斷FT245R的寫允許信號TXE是否為低電平,若為低電平則進入向FT245R發送數據子程序,若為高電平說明FT245R忙,不能寫數據,單片機繼續判斷TXE信號,直到變低為止。發送數據時,單片機首先置FT245R的寫控制信號WR為高電平,然后將讀取的PORTD端口的數據發送至PORTB端口,接著將WR變回低電平。之后,繼續判斷TXE的狀態,變低后發送從PORTC端口讀取的數據,完成12 b數據自測試系統讀取并經FT245R發送的過程,流程如圖4所示。在編程時,根據測試系統SRAM的存儲容量,重復上述操作即可實現測試數據經USB接口發送至計算機。

3.2 計算機編程
計算機端程序采用VB 6.0編寫,通過調用FTDI提供的動態鏈接庫,進行讀、寫函數等的調用與操作。在VB程序中,首先需要在模塊里聲明動態鏈接庫“FTD2XX.DLL”。然后,在主程序里需要先對FT245R進行初始化,包括打開設備、復位設備、清理緩沖區、設定等待時間等步驟,初始化流程如圖5所示。其他工作參數如波特率、奇偶校驗、溢出控制等使用默認設置即可。

對FT245R初始化完成后,就可以進行數據發送和接收。發送數據時,將數據賦值到發送數組,調用發送函數FT_Write,然后判斷函數返回值是否等于1。若為1說明數據發送成功,否則需要重新發送。接收數據時,首先需要設定接收超時時間。然后調用FT_Getstatus函數讀取接收緩沖區的狀態,判斷接收隊列中是否有數以及是否滿足設定的讀取字節數閾值。若滿足瀆取條件,則調用讀數函數FT_Read,讀取當前緩沖區的數據并存入數組,否則就一直等待,直到滿足讀取條件或產生接收超時。若產生超時,程序自動跳出接收程序,避免陷入死循環。接收流程如圖6所示。

4 結論
設計的USB接口數據傳輸率達到1 MB/s,滿足存儲測試系統數據讀取速率的要求。
該接口符合USB 2.0協議,在計算機上安裝驅動即可,使用簡單方便。
該接口具有體積小、運行可靠等特點,非常適合嵌入到存儲測試系統中,也可將接口與外部數據線做成一體,進一步減小測試系統體積。
評論