存儲測試系統(tǒng)USB接口的設計與實現
從SRAM讀取存儲數據時,單片機首先置片選信號CE和讀控制信號OE為低電平,測試系統(tǒng)的時序控制電路在OE信號的作用下推動SRAM的地址,SRAM則將對應地址的數據放在總線上。單片機讀取數據總線后,判斷FT245R的寫允許信號TXE是否為低電平,若為低電平則進入向FT245R發(fā)送數據子程序,若為高電平說明FT245R忙,不能寫數據,單片機繼續(xù)判斷TXE信號,直到變低為止。發(fā)送數據時,單片機首先置FT245R的寫控制信號WR為高電平,然后將讀取的PORTD端口的數據發(fā)送至PORTB端口,接著將WR變回低電平。之后,繼續(xù)判斷TXE的狀態(tài),變低后發(fā)送從PORTC端口讀取的數據,完成12 b數據自測試系統(tǒng)讀取并經FT245R發(fā)送的過程,流程如圖4所示。在編程時,根據測試系統(tǒng)SRAM的存儲容量,重復上述操作即可實現測試數據經USB接口發(fā)送至計算機。
3.2 計算機編程
計算機端程序采用VB 6.0編寫,通過調用FTDI提供的動態(tài)鏈接庫,進行讀、寫函數等的調用與操作。在VB程序中,首先需要在模塊里聲明動態(tài)鏈接庫“FTD2XX.DLL”。然后,在主程序里需要先對FT245R進行初始化,包括打開設備、復位設備、清理緩沖區(qū)、設定等待時間等步驟,初始化流程如圖5所示。其他工作參數如波特率、奇偶校驗、溢出控制等使用默認設置即可。
對FT245R初始化完成后,就可以進行數據發(fā)送和接收。發(fā)送數據時,將數據賦值到發(fā)送數組,調用發(fā)送函數FT_Write,然后判斷函數返回值是否等于1。若為1說明數據發(fā)送成功,否則需要重新發(fā)送。接收數據時,首先需要設定接收超時時間。然后調用FT_Getstatus函數讀取接收緩沖區(qū)的狀態(tài),判斷接收隊列中是否有數以及是否滿足設定的讀取字節(jié)數閾值。若滿足瀆取條件,則調用讀數函數FT_Read,讀取當前緩沖區(qū)的數據并存入數組,否則就一直等待,直到滿足讀取條件或產生接收超時。若產生超時,程序自動跳出接收程序,避免陷入死循環(huán)。接收流程如圖6所示。
4 結論
設計的USB接口數據傳輸率達到1 MB/s,滿足存儲測試系統(tǒng)數據讀取速率的要求。
該接口符合USB 2.0協(xié)議,在計算機上安裝驅動即可,使用簡單方便。
該接口具有體積小、運行可靠等特點,非常適合嵌入到存儲測試系統(tǒng)中,也可將接口與外部數據線做成一體,進一步減小測試系統(tǒng)體積。
評論