關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > USB通信技術在自動測試系統中的應用

        USB通信技術在自動測試系統中的應用

        作者: 時間:2009-09-22 來源:網絡 收藏

        圖2為GPIF方式硬件連接框圖,其中IFCLK是雙向時鐘信號,當配置為輸出時,IFCLK被FX2驅動為30 MHz/48MHz:當配置為輸入時,時鐘范圍為5~48 MHz;GPIFADR(9)信號為外部設備提供地址線,在總線上地址值是自增的;FD[15:0]是主機通過FX2和外部設備進行數據傳輸的數據線,可配置成8位或16位;CTL[5:0]為外設控制信號,如讀寫選通、使能等;RDY[5:0]為外設狀態檢測信號,如外部FIFO的空、滿等。

        本文引用地址:http://www.104case.com/article/202645.htm

        整個系統的工作原理:主機通過應用軟件設置將相應的測試指令和數據經總線下載到68013A內部FIFO中,按照同件代碼配置相關寄存器、端口和中斷,實現與FIFO和FPGA的數據通信。外部使用兩片FIFO匹配數據傳輸速率,由外部控制信號RD(或RD2)/WR(或WR2)來控制數據的讀/寫。為防止數據的空讀或寫溢出,用標志端EF和HF標明FIFO狀態。這種內外FIFO雙緩沖設計為大容量、高速數據傳輸提供更大的緩沖空間和時序匹配。 FPGA從FIFO1接收數據的同時,按照從PE口收到的Status[7:0]指令,判斷所接收數據的類型和職能,將數據傳輸到相應的測試調理和輸出電路,執行相應操作,判斷被測試對象的工作情況;如從PE端口收到的是自檢命令,則將測試數據回采,判斷系統自身工作情況。被測試對象反饋的信號和測試采集的數據,自檢數據經FPGA數據融合處理,從FIFO2傳到68013A的GPIF接收端口,所有CY7C68013A的內部數據和端口操作全部由固件程序描述。

        4 固件程序設計
        68013A固件負責處理主機各種設備請求,控制68013A與外圍電路FPGA進行數據傳輸,協調主機和FPGA 之間的通信。設計利用Cypress公司生產的EZ-USB固件程序框架,其中包括初始化、處理USB設備請求、中斷和USB電源管理等任務,固件的編譯在KeilμVision2的集成開發環境中進行。68013A固件設計流程如圖3所示。該設計主要包括5個部分:fw.c(框架源文件)、 periph.c(用戶任務調度函數文件)、dscr.a51(描述符表)、USBJmpTb.OBJ(中斷跳轉表)、Ezusb.lib(EZ_USB 庫文件)。用戶僅需對dscr.a51和pe-riph.c修改文件中部分代碼即可完成USB設備的各種功能。periph.c文件通過調用任務分配、標準設備請求和中斷處理等函數來處理USB事件。其中主要修改TD_Init()和TD_Poll()兩個任務分配函數。TD_Init()函數用于負責初始化端點狀態變量,配置外圍I/O接口及設置端口初始值。TD_Poll()主要是初始化功能寄存器,并對設備進行重新列舉,完成主機對設備的配置任務;執行過程中響應中斷,對中斷作相應處理并控制外圍電路。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 辽宁省| 平武县| 繁昌县| 华池县| 贵南县| 汉寿县| 烟台市| 宜宾市| 房山区| 莱芜市| 仙游县| 南川市| 南皮县| 思茅市| 绵阳市| 拉萨市| 大竹县| 高雄市| 泾源县| 玉门市| 英超| 沈阳市| 峨山| 阿瓦提县| 蓬安县| 康平县| 盈江县| 兰溪市| 昌黎县| 高要市| 牙克石市| 麟游县| 丹东市| 江北区| 洪泽县| 德昌县| 西贡区| 沧源| 静乐县| 新安县| 云安县|