<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于DSP和USB的高速數據采集與處理系統設計

基于DSP和USB的高速數據采集與處理系統設計

作者: 時(shí)間:2008-05-28 來(lái)源:網(wǎng)絡(luò ) 收藏
  在圖像數據系統中,常常需要對信號進(jìn)行采集與。例如,在光傳感技術(shù)中對光脈沖散射信號的測量,在雷達工程中對電磁脈沖信號的測量等,都需要對信號進(jìn)行采集與運算,而且此類(lèi)信號的測量,往往對系統提出嚴格的要求。本文并實(shí)現一種的高速與處統。該系統電路簡(jiǎn)單,可靠性好,具有一定的通用性,并且可以進(jìn)行多通道擴展。


1 原理概述
  
的高速與處統的原理框圖如圖1所示。系統上電后,、FPGA分別由各自的FLASH加載程序,采集與處統開(kāi)始運行。在A(yíng)/D變換器完成轉換后由FPGA向DSP發(fā)送中斷0申請信號,DSP從A/D FIFO RAM中讀取數據,并進(jìn)行小波變換去噪處理,處理結束后DSP向控制器發(fā)送中斷申請信號,USB控制器將處理后的數據發(fā)送至PC機,由主機應用程序顯示數據。主機應用程序還可以對整個(gè)采集、處理系統進(jìn)行控制,主要設定三個(gè)功能:接收處理后的數據,接收處理前的數據,設定A/D的采樣頻率和采樣點(diǎn)數。

2 系統硬件
  
系統硬件主要分為三大部分:DSP部分、FPGA部分、USB部分。

2.1 DSP部分設計

本系統使用的DSP芯片為T(mén)I(德州儀器)公司的TMS320VC33,它是TI公司推出的性?xún)r(jià)比極高的32位浮點(diǎn)型數字信號處理芯片,是目前在國內外使用最為廣泛的浮點(diǎn)DSP之一。

TMS320VC33具有以下特點(diǎn):哈佛結構;流水線(xiàn)操作;專(zhuān)用的硬件乘法器;特殊的DSP指令;快速的指令周期。另外,TMS320VC33還具有強大的浮點(diǎn)運算能力,運算速度可達  150MFLOPS(每秒百萬(wàn)次浮點(diǎn)運算),處理能力達到75MIPS(每秒百萬(wàn)次指令周期)。而且,它還采用3.3V I/O電壓和1.8V處理器核電壓使功耗降低到200mW。
  
DSP部分的電路設計主要是為T(mén)MS320VC33的外圍電路設計。TMS320VC33的STRB0和引腳分別連接存儲器的片選和使能引腳,實(shí)現程序/數據存儲器的擴展;引腳接到高電平,INT2引腳接到低電平,實(shí)現上電后程序自加載;由TMS、TDI、TDO、TCK、、EMU0、EMU1等引腳組成程序下載口,以方便DSP程序調試。

2.2 FPGA部分設計


  因為本系統的邏輯比較復雜,為了有效地減少硬件的體積、提高硬件系統的可靠性,這里把所有的邏輯控制電路、各種存儲器/寄存器的地址譯碼電路都用一塊超大規?,F場(chǎng)可編程邏輯門(mén)陣列(FPGA)XC3090來(lái)實(shí)現。邏輯控制電路包括:命令寄存器、采樣點(diǎn)數/采樣頻率設定寄存器、中斷申請信號發(fā)生器、將A/D結果寫(xiě)入FIFO RAM的控制電路、USB及其FIFO和A/D FIFO狀態(tài)檢測電路。

2.3 USB部分設計

  TMS320VC33與USB控制器AN2136SC之間通過(guò)雙向FIFO 交換數據,握手信號使用AN2136SC的PC口。當USB為接收緩沖器時(shí),DSP讀,AN2136SC寫(xiě);當USB為發(fā)送緩沖器時(shí),DSP寫(xiě),AN2136SC讀。PC(0)~(3)用作二者的讀寫(xiě)通道,方向可編程確定; PC(4)用于TMS320VC33向AN2136SC申請中斷;PC(5)用于A(yíng)N2136SC復位USB接收緩沖器;PC(6)用于USB接收器滿(mǎn)標志,若接收器已滿(mǎn)則禁止AN2136進(jìn)一步對USB接收緩沖器寫(xiě)入;PC(7)用于USB發(fā)送緩沖器空標志,若緩沖器已空則禁止AN2136SC進(jìn)一步對USB發(fā)送緩沖器讀出。

3 系統軟件設計


  系統軟件主要包括五大部分:DSP程序(用于A(yíng)/D采樣控制、數據處理、DSP與USB總線(xiàn)之間的信息交換)、USB總線(xiàn)驅動(dòng)程序、USB固件程序(用于PC機與DSP之間的數據交換與處理)、主機應用程序、FPGA中對地址的譯碼程序和各個(gè)寄存器的實(shí)現程序。

3.1 DSP程序


  DSP程序首先對DSP進(jìn)行初始化(中斷初始化、片外選通信號初始化、設定系統默認的采樣點(diǎn)數/采樣頻率等),然后等待中斷(中斷0的程序主要用于對A/D數據的讀取和處理,并向主機發(fā)送處理后的數據;中斷1的程序主要用于分析主機的命令,針對主機的命令設定系統的采樣點(diǎn)數/采樣頻率,并發(fā)送主機需要的數據)。程序框圖如圖2所示。



3.2 USB固件程序

  固件程序代碼由USB芯片集成的加強型8051單片機處理。當EZ-USB設備連接到USB口時(shí),主機進(jìn)行總線(xiàn)枚舉,首先根據設備ID使用系統程序將固件下載到芯片內部,然后進(jìn)行重枚舉,固件作為用戶(hù)的功能設備開(kāi)始執行。CYPRESS公司提供的固件程序框架,用來(lái)完成控制傳輸工作和大部分的數據傳輸工作。本接口電路的固件程序就是此固件框架開(kāi)發(fā)的,并使用Keil C進(jìn)行編譯。USB接收的DSP中斷程序如下:
  void  ISR_IDT(void) interrupt INT0_VECT
  {FASTXFR = 0x40;         使能快速傳模式
  AUTOPTRL=LSB((WORD)IN4BUF);   將自動(dòng)指針指向端點(diǎn)4緩沖器
  AUTOPTRH=MSB((WORD)IN4BUF);
  for(i=0;i64;i++)
  {AUTODATA=ACC};          接收數據
  FASTXFR=0x0;
  IN4BC=64;            發(fā)送數據大小
  EZUSB_IRQ_CLEAR();
  IN07IRQ=bmEP4;          使能端點(diǎn)4}

3.3 主機應用程序

  為了實(shí)現與驅動(dòng)程序的通信,應用程序首先創(chuàng )建一個(gè)事件和一個(gè)線(xiàn)程,然后將事件句柄傳遞給WDM,用線(xiàn)程等待WDM發(fā)送的事件消息,接收到事件消息后,就讀取驅動(dòng)程序的數據,顯示數據。

  在Windows中,Win32應用程序調用的API函數有五個(gè):CreateFile()、ReadFile()、WriteFile()、DeviceIoControl()和CloseHandle()。

  應用程序為打開(kāi)一個(gè)WDM設備驅動(dòng)程序,使用CreateFile()函數。它的第一個(gè)參數是一個(gè)符號鏈接名。如果用DriverWorks創(chuàng )建一個(gè)WDM驅動(dòng)程序,通常會(huì )用類(lèi)KUnitizedName生成一個(gè)設備符號鏈接名。這個(gè)名字的后面有一個(gè)數字,一般是一個(gè)0。例如,若符號鏈接名為L(cháng)“USBDevice”,則傳遞給CreateFile()的是“.USBDevice0”。

  一旦應用程序獲得設備的有效句柄,它就能夠調用Win32函數,這將產(chǎn)生對應于此設備對象的相應的IRP,發(fā)送給驅動(dòng)程序,完成相應功能。

  有關(guān)代碼如下:

  HANDLE hDevice hDevice= CreateFile(“.USBDe-vice0”,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,NULL);          //打開(kāi)設備句柄
  ReadFile(hDevice,buf,n,nRead,NULL);    //讀操作

4 試驗結果

  本系統軟硬件調試均已成功,圖3為CCD在半遮擋情況下原始信號的波形。本系統還可以采集和處理圖像信號(例如CCD面陣信號)。


  本文提出了一種基于DSP和USB的高速數據采集與處理系統,詳細地介紹了系統的硬件和軟件設計方法。經(jīng)使用驗證,系統很好地實(shí)現了對CCD信號的采集和處理。利用一塊超大規?,F場(chǎng)可編程邏輯門(mén)陣列,減小了PCB板的制作空間并且大大地增加了系統的可靠性;使用DSP處理器,提高了數據的傳輸速度和處理速度,進(jìn)而保證了系統的實(shí)時(shí)性;由USB主控制器完成與PC機的通信,具有熱插拔、易于使用、傳輸速率高等特點(diǎn);而且整個(gè)系統構成合理、實(shí)現方法簡(jiǎn)單、具有實(shí)用價(jià)值。

參考文獻


1 官章全,劉加明.Visual C++.NET類(lèi)庫大全.北京:電子工業(yè)出版社,2002
2 蘇 濤,藺麗華.DSP實(shí)用技術(shù).西安:西安電子科技大學(xué)出版社,2002
3 顏榮江.EZ-USB 2100系列單片機原理、編程及應用.北京航空航天大學(xué)出版社,2002
4 任曉東. CPLD/FPGA高級應用開(kāi)發(fā)指南.北京:北京電子工業(yè)出版社,2003



評論


相關(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>