<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 基于USB2.0與FPGA技術(shù)的高速數據采集系統的設計

基于USB2.0與FPGA技術(shù)的高速數據采集系統的設計

作者:袁江南 時(shí)間:2008-07-25 來(lái)源:電子技術(shù)應用 收藏

  近年來(lái)筆記本電腦迅速普及和更新,其中大部分已經(jīng)不配置RS232接口,而接口已成為今后一段時(shí)間PC機與外設接口的主流。本采集系統的設計構建了一個(gè)基于接口的多功能通用數據采集、傳輸平臺,將嵌入式系統的實(shí)時(shí)性、靈活性和PC機強大的數據存儲、處理、顯示功能結合起來(lái)。該采集系統在智能儀器儀表、測控系統、工控系統等領(lǐng)域有廣闊的應用前景。

本文引用地址:http://dyxdggzs.com/article/86243.htm

1 系統總體結構設計

  1.1 系統總體結構

  系統總體結構框圖如圖1所示,系統包括:接口模塊、模塊、信號調理及模塊。其中,外圍電路相對簡(jiǎn)單,整個(gè)系統主要通過(guò)PC機的程序界面控制操作;USB接口負責與PC機通信;模塊負責完成數據的采集與緩存。

  1.2 與USB接口模塊

  本設計的目的是構建以PC機為平臺的數據采集系統,單片機的功能僅限于接收PC機的命令、控制工作。PC機作為整個(gè)系統的人機界面,控制整個(gè)數據采集系統進(jìn)行采集、存儲和處理。由此單片機可以選擇低成本的8XC51系列。為了提高系統的靈活性,采用單片機與USB接口芯片分離的方案,選擇Philip公司的ISP1581 USB2.0接口芯片。該芯片與8XC51系列單片機的接口非常簡(jiǎn)單,可以極大地降低系統成本。

  1.3 FPGA模塊

  采用FPGA進(jìn)行采樣控制的最大特點(diǎn)是系統具有重構性和通用性。設計中采用了Altera公司的低成本FPGA的Cyclone系列(實(shí)際試驗時(shí),在更便宜的Acex1k器件上也可以實(shí)現),控制高速芯片以20MSPS的速度采樣。FPGA模塊的設計具體包括FIFO、單片機接口、控制接口、DMA控制模塊和主控制器等子模塊的設計。

  1.4 PC機端軟件平臺

  PC機采集程序使用VC++實(shí)現,直接調用Philips公司提供的驅動(dòng)程序進(jìn)行數據讀寫(xiě),大大降低了開(kāi)發(fā)難度與風(fēng)險。本設計中,PC機端軟件設計包括應用程序的界面設計、多線(xiàn)程數據采集、存儲與處理模塊的設計,以及與USB底層驅動(dòng)程序的通信動(dòng)態(tài)鏈接庫的設計。

2 USB接口模塊設計

  2.1 USB接口芯片

  USB接口芯片ISP1581具有體積小、高速、與單片機的接口相對簡(jiǎn)單等特點(diǎn)。除了控制端點(diǎn)外,ISP1581還有7個(gè)輸入(IN)端點(diǎn)和7個(gè)輸出(OUT)端點(diǎn)。每個(gè)端點(diǎn)可以靈活配置數據傳輸方式以及數據緩存區(FIFO)的大小,端點(diǎn)FIFO最大容量可以達到2KB。ISP1581芯片在配置枚舉時(shí)需要單片機固件的支持,一旦正確完成了配置和驅動(dòng)加載,單片機對于ISP1581芯片就如同普通存儲器一樣可以進(jìn)行讀寫(xiě)操作,以發(fā)送或接收數據。

  2.2 固件編程

  USB通信完全由PC主機發(fā)起。在這種結構下,固件總是一直在等待主機命令,再根據命令去執行相應的程序。固件的基本思想是采用模塊化設計,分成 main.c等7個(gè)模塊。ISP1581固件結構如圖2所示。圖中,main.c為主循環(huán),isr.c主要負責中斷處理,Chap9.c主要負責響應主機的請求。用戶(hù)的應用程序將來(lái)也可以包括在main.c循環(huán)中。

  2.3  單片機端程序設計

  單片機端程序主要包括初始化模塊,外圍Flash、EEPROM、RAM、液晶顯示器、按鍵等的讀寫(xiě)控制模塊,USB接口芯片固件模塊,A/D采樣工作模式、速度以及采樣數據的讀寫(xiě)的FPGA硬件控制模塊等。本設計的指導思想是:充分利用PC機和嵌入式系統的優(yōu)點(diǎn),對MCU端的要求盡量簡(jiǎn)化。具體軟件流程示意圖如圖3所示。


  USB作為一個(gè)通信接口,首先必須完成配置,然后才能進(jìn)行用戶(hù)數據的發(fā)送/接收,在循環(huán)中必須隨時(shí)檢查是否有主機的配置命令。配置枚舉過(guò)程是USB固件編程當中較為復雜的部分,其流程如圖4所示。USB設備接入到主機并被主機識別后,主機首先以默認的地址(00H)發(fā)送一個(gè)設置(SETUP)包,新接入的設備必須接收此包并響應請求。然后主機會(huì )發(fā)送輸入包讀取設備描述符,初步判斷設備的屬性后,再設置設備的地址,隨后再用這個(gè)地址讀取設備的各種描述符以識別并且配置設備??梢?jiàn),在設備配置過(guò)程中,主機讀取的數據較多,設備一旦接收到一個(gè)SETUP包之后便會(huì )判斷主機的請求類(lèi)型,然后進(jìn)入請求處理循環(huán)等待主機的進(jìn)一步命令,如果再次收到一個(gè)IN令牌便會(huì )向控制端點(diǎn)中寫(xiě)入數據,并且根據數據長(cháng)度再次寫(xiě)端點(diǎn)直到數據發(fā)送完畢。USB的標準請求包括讀取設備描述符、配置描述符、端點(diǎn)描述符、設置地址、配置設備等,廠(chǎng)商請求由用戶(hù)自行定義。

 


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 單片機 USB FPGA A/D

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>