《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > DSP核信號采集系統(tǒng)通訊接口設(shè)計(jì)
DSP核信號采集系統(tǒng)通訊接口設(shè)計(jì)
摘要: 因此在本系統(tǒng)設(shè)計(jì)中其通訊方式采用USB(Universal Serial Bus)總線接口方式。USB 控制芯片采用Cypress 公司EZ-USB SX2 系列的CY7C68001 控制芯片,DSP 選用TI公司的定點(diǎn)DSP 芯片TMS320VC5502。
Abstract:
Key words :

 

   隨著數(shù)字信號處理技術(shù)理論的不斷發(fā)展,數(shù)字信號處理器的發(fā)展也是日新月異。不僅執(zhí)行指令速度越來越快,而且其功耗也越來越低。許多儀器或檢測設(shè)備都不約而同地將DSP應(yīng)用到那些數(shù)據(jù)量龐大而且需實(shí)時傳送數(shù)據(jù)的系統(tǒng)中。核信號數(shù)據(jù)采集系統(tǒng)也不例外,利用DSP 可以實(shí)時有效地處理采集的信號,并將處理數(shù)據(jù)發(fā)送至上位機(jī)進(jìn)行進(jìn)一步處理。通常數(shù)據(jù)采集系統(tǒng)下位機(jī)與上位機(jī)的通訊采用串口方式,這種方式不僅協(xié)議簡單,而且連接方便。但是這種方式的數(shù)據(jù)傳送速率不高,而USB 總線接口具有方便快捷、支持即插即用、可實(shí)現(xiàn)高速數(shù)據(jù)通訊等優(yōu)點(diǎn),在很多領(lǐng)域得到廣泛應(yīng)用。USB 總線接口在USB1.1 協(xié)議下傳輸速率可達(dá)12Mbps ,USB2.0 協(xié)議下可達(dá)480Mbps ,完全可以滿足目前的數(shù)據(jù)采集控制系統(tǒng)對于數(shù)據(jù)實(shí)時傳輸速率越來越高的要求。
 
  因此在本系統(tǒng)設(shè)計(jì)中其通訊方式采用USB(Universal Serial Bus)總線接口方式。USB 控制芯片采用Cypress 公司EZ-USB SX2 系列的CY7C68001 控制芯片,DSP 選用TI公司的定點(diǎn)DSP 芯片TMS320VC5502。
 
  1.CY7C68001USB 控制芯片介紹
  CY7C68001 是由美國Cypress 公司開發(fā)的高速USB 芯片,支持USB2.0 協(xié)議。其內(nèi)部集成有USB 收發(fā)器(物理層)、USB 串行接口引擎SIE(鏈路層,實(shí)現(xiàn)底層通信協(xié)議)、4KB的FIFO 以及電壓調(diào)節(jié)器、鎖相環(huán);可工作于全速(12Mb/s)和高速(480Mb/s)兩種傳輸模式,支持8 位和16 位數(shù)據(jù)總線方式,具有同步和異步的FIFO 接口。CY7C68001 被用來與DSP、ASIC、FPGA 等控制器連接實(shí)現(xiàn)USB 的功能,其內(nèi)部不含微控制器。同時CY7C68001 提供4 種傳輸方式(控制傳輸、中斷傳輸、批量傳輸和同步傳輸),可滿足用戶對各種傳輸方式的要求。由于該控制芯片內(nèi)不含微控制器,USB 的應(yīng)用層協(xié)議應(yīng)該由DSP 編程實(shí)現(xiàn),USB固件的加載必須靠DSP 控制CY7C68001 完成。

  2.通訊接口系統(tǒng)硬件設(shè)計(jì)
  整個采集系統(tǒng)包括的部分有傳感器信號調(diào)理電路、A/D 轉(zhuǎn)換電路、FIFO 數(shù)據(jù)緩沖單元、DSP 控制器、FLASH 程序存儲單元、CPLD 邏輯控制單元、與上位機(jī)連接的USB 通訊單元。其中與PC 機(jī)通訊的USB 單元硬件接口框圖如下圖所示。
圖1 數(shù)據(jù)采集系統(tǒng)與PC 機(jī)通訊的硬件接口框圖
 
  由圖1 可以看出,通訊部分主要由CY7C68001 USB 控制器、CPLD 邏輯單元、E2PROM、TMS320VC5502 組成。由于整個系統(tǒng)所需的器件數(shù)目較多,由此帶來的邏輯控制較為復(fù)雜,而DSP 的I/O 接口有限,故在系統(tǒng)中加入了CPLD 邏輯控制單元,用于產(chǎn)生電路中需要的邏輯狀態(tài)。同時用CPLD 中還實(shí)現(xiàn)了寄存器功能,這部分寄存器用于表征USB 通訊時各種狀態(tài)信息,便于DSP 查詢。
 
  CY7C68001 USB 控制器與TMS320VC5502 采用EMIF 連接方式,并將USB 控制器中的存儲器配置到CE1 空間。同時采用異步讀寫方式完成TMS320VC5502 與CY7C68001 之間的數(shù)據(jù)和命令交換。系統(tǒng)中E2PROM 的作用是完成USB 控制器的描述表自舉。CY7C68001控制器的自舉方式有兩種:EEPROM 和微控制器,本系統(tǒng)采用EEPROM 方式。
 
       3.通訊接口系統(tǒng)軟件設(shè)計(jì)
  3.1 主機(jī)端軟件設(shè)計(jì)
  主機(jī)端軟件的功能主要是完成下位機(jī)上傳數(shù)據(jù)的接收、顯示、分析等。由于信號采集的數(shù)據(jù)量較大,所以在USB 傳輸方式上采用批量傳輸方式。主機(jī)端軟件的設(shè)計(jì)包含3 個方面:
 
  (1)USB 驅(qū)動程序設(shè)計(jì)
 
  USB 驅(qū)動程序的功能主要是實(shí)現(xiàn)USB 發(fā)現(xiàn)、配置、關(guān)閉以及數(shù)據(jù)的傳送接口控制。USB 設(shè)備驅(qū)動程序的設(shè)計(jì)是基于WDM (Windows driver model ,驅(qū)動程序模型)的。WDM采用分層驅(qū)動程序模型,分為較高級的USB 設(shè)備驅(qū)動程序和較低級的USB 函數(shù)層。其中USB 函數(shù)層由兩部分組成:較高級的通用串行總線模塊(US-BD)和較低級的主控制器驅(qū)動程序模塊(HCD)。在上述USB 分層模塊中,USB 函數(shù)層由操作系統(tǒng)提供,負(fù)責(zé)管理USB 設(shè)備驅(qū)動程序和USB 控制器之間的通信、加載及卸載USB 驅(qū)動程序,與USB 設(shè)備通用端點(diǎn)建立通信來執(zhí)行設(shè)備配置、數(shù)據(jù)與USB 協(xié)議框架和打包格式的雙向轉(zhuǎn)換任務(wù)。
 
  (2)安裝USB 的信息文件(.inf)
 
  這一步用于將驅(qū)動程序綁定到特定設(shè)備的Verdor ID (VID) 和Product ID( PID)。當(dāng)USB設(shè)備插入計(jì)算機(jī)時,計(jì)算機(jī)檢測到設(shè)備插入后自動發(fā)出查詢請求;USB 設(shè)備回應(yīng)該請求,并送出設(shè)備的VID /PID。計(jì)算機(jī)根據(jù)這兩個ID 裝載相應(yīng)設(shè)備驅(qū)動程序,完成枚舉。
 
 ?。?)用戶應(yīng)用程序
 
  用戶應(yīng)用程序是數(shù)據(jù)采集系統(tǒng)的核心,其主要功能為:開啟或關(guān)閉USB 設(shè)備、檢測USB設(shè)備、設(shè)置USB 數(shù)據(jù)傳輸管道、設(shè)置A /D 狀態(tài)和數(shù)據(jù)采集端口、實(shí)時從USB 接口采集數(shù)據(jù)、顯示并分析數(shù)據(jù)。整個應(yīng)用程序采用Microsoft Visual C++編寫,通過對界面的控制實(shí)現(xiàn)A/D 的采樣以及數(shù)據(jù)的顯示。
 
  下面列舉一些與應(yīng)用程序有關(guān)的函數(shù):
 
  BOOLEAN OpenDriver ( ) ;
 
  BOOLEAN CloseDriver ( ) ;
 
  PVO ID Sx2GetDeviceDesc ( ) ;
 
  PVO ID Sx2GetStringDesc ( int stringIndex) ;
 
  PVO ID Sx2GetConfigDesc ( ) ;
 
  BOOLEAN Sx2GetPipe Info ( PVO ID p InteRFace) ;
 
  BOOLEAN Sx2SendVendorReq ( PVO ID myRequest, char * buffer, int bufferSize, int *
 
  recnBytes) ;
 
  BOOLEAN Sx2GetPipe Info ( PVO ID p Interface) ;
 
  3.2 DSP 軟件程序設(shè)計(jì)
 
  USB 主機(jī)與設(shè)備間的數(shù)據(jù)傳輸是通過設(shè)備中的端點(diǎn)(Endpoint)進(jìn)行的。這些端點(diǎn)通過端點(diǎn)號和輸入輸出方向來進(jìn)行標(biāo)識,并為數(shù)據(jù)傳輸分配固定的FIFO 存儲區(qū)。本系統(tǒng)在初始化時將CY7C68001 的4 個端點(diǎn)配置為批量傳輸類型。其中,F(xiàn)IFO2、FIFO4 為輸出端點(diǎn),用于接收上位機(jī)傳來的數(shù)據(jù);FIFO6、FIFO8 為輸入端點(diǎn),用于存放待發(fā)送的數(shù)據(jù)。各個FIFO設(shè)置為異步工作模式。DSP 經(jīng)初始化后打開USB 外部中斷,向CY7C68001 寫入描述符表,等待其枚舉中斷。枚舉成功后,DSP 對CY7C68001 進(jìn)行其他配置并清空FIFO,然后等待主機(jī)發(fā)送用戶請求并進(jìn)行相應(yīng)處理。軟件程序流程圖如圖2 所示。
 
  DSP 軟件程序設(shè)計(jì)主要包括DSP 的初始化、USB 描述符表的寫入和其他命令寄存器的配置以及用戶請求的相應(yīng)處理。DSP 的初始化主要是初始化時鐘速率、配置EMIF 口、配置McBSP 口等。USB 描述符表主要是完成USB 芯片內(nèi)部的初始配置,命令寄存器的配置是完成USB 中斷的開啟、端點(diǎn)數(shù)據(jù)傳輸容量以及方向的配置等。用戶請求是用戶應(yīng)用程序,根據(jù)用戶發(fā)送的請求完成相應(yīng)的數(shù)據(jù)傳輸。
圖2 DSP 軟件程序設(shè)計(jì)流程圖
 
  4. 結(jié)論
 
  本系統(tǒng)采用USB 接口完成了核信號采集系統(tǒng)與上位機(jī)間的數(shù)據(jù)傳輸,上位機(jī)的用戶程序顯示所傳數(shù)據(jù)以及波形圖。經(jīng)驗(yàn)證表明該方法連接簡單,傳輸可靠。與普通串口相比,其速度也得到了提升。
 
  本文創(chuàng)新點(diǎn):將傳統(tǒng)的DSP 信號采集系統(tǒng)用于核信號的采集上,并且將與上位機(jī)進(jìn)行通訊的串行口方式改進(jìn)為USB 方式,采用這種即插即用的接口不僅方便了與上位機(jī)的連接而且提高了傳輸?shù)乃俾省?/div>
 
  參考文獻(xiàn):
 
  [1] 劉澤西,程晶晶,孔力.基于USB2.0 接口的高速實(shí)時數(shù)據(jù)采集系統(tǒng).測控技術(shù),2007,26(2):34-37
 
  [2] 詹鵬,郭勇. 基于DSP 的USB 設(shè)備固件程序開發(fā)【J】.微計(jì)算機(jī)信息,2008,5-2:152-153
 
  [3] Cypress.CY7C68001 Data Sheet.pdf.2003
 
  [4] TI.TMS320VC5502 Data Sheet.pdf.2004
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。