新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ISP1581的USB數據采集系統(tǒng)的實現

基于ISP1581的USB數據采集系統(tǒng)的實現

作者: 時間:2013-09-11 來源:網絡 收藏

  本設計中選用了Philips公司的2.0接口芯片,該芯片屬于純粹的接口芯片。這類接口芯片價格較低,接口方便,靈活性高,針對不同的硬件環(huán)境可以配合多種MCU使用,如單片機、DSP、FPGA。支持2種工作模式:通用處理器模式和斷開總線模式。本設計中采用DSP來控制,連接方式選用通用處理器模式,原理圖如圖3所示。


  2 USB接口軟件開發(fā)

  軟件分為USB固件程序開發(fā)和USB設備驅動程序開發(fā)兩大部分。

  2.1 USB固件程序開發(fā)

  所有基于微處理器及其外圍電路的功能設備的正常工作都離不開固件的參與,固件的作用就是輔助硬件,即控制硬件來完成預期的功能,如沒有固件的參與和控制,硬件設備只是芯片簡單的堆砌,無法實現預期的功能,如同一臺沒有安裝操作系統(tǒng)的計算機,無法正常工作。因此,用戶必須編寫固件程序來輔助硬件完成USB通信任務。具體如下:

  (1)初始化。主要是設置一些特殊寄存器的初值,以實現所需的設備屬性或功能,例如開中斷、使能端點、配置端口等。

  (2)輔助硬件完成設備的重新枚舉(ReNumeration)過程。包括模擬設備的斷開與重新連接,對收到的設置包進行分析判斷,從而對主設備請求做出適當的響應,完成對設備的配置任務。

  (3)對中斷的處理。

  (4)數據的接收和發(fā)送。

  (5)外圍電路的控制。

  固件程序設計成中斷驅動模式,采用模塊化設計,其總體結構如圖4所示。


  各模塊的主要功能如下:

  (1)主程序:完成DSP及USB接口芯片的初始化、數據發(fā)送/接收標志位的判斷及中斷請求等待。

  (2)中斷服務程序:中斷服務程序是整個固件程序設計的重點。首先通過讀取ISP1581中斷寄存器的值判斷所發(fā)生中斷的類型,然后根據具體的中斷類型進入相應的處理子程序或設置相應的標志位。中斷服務程序中需要處理的有總線復位中斷、高速狀態(tài)變化中斷、SETUP中斷及端點的IN/OUT中斷。在所有的中斷處理程序中,EP0SETUP中斷處理是最重要的,它是USB設備與PC機間建立通信鏈路的基礎。

  (3)請求處理程序:USB標準請求處理程序負責處理枚舉階段主機發(fā)給設備的標準請求,以及正常工作時主機發(fā)送的廠商請求。USB2.0協(xié)議中規(guī)定了11種USB標準請求,對這11種標準請求作出正確的響應是設備成功枚舉的重中之重。當固件接收到第1個SETUP中斷后,就進入USB枚舉過程,其過程是由主機發(fā)出一系列USB標準設備請求并要求及時得到設備響應,如果不需要進行操作,也必須指示一個空響應,使主機能為該設備準備其所請求的資源,建立好兩者之間的信息溝通機制。

  (4)數據接收/發(fā)送程序:當用戶通過主機端應用程序向設備索要數據或向設備發(fā)送數據時,DSP調用數據發(fā)送/接收子程序完成數據的發(fā)送/接收。數據的發(fā)送和接收過程如下:

  發(fā)送數據:選擇端點索引→寫發(fā)送緩沖區(qū)長度寄存器→寫發(fā)送數據到數據端口寄存器→等待發(fā)送完畢標志。

  接收數據:選擇端點索引→讀接收緩沖區(qū)長度寄存器→從數據端口寄存器讀取接收到的數據。

  (5)硬件接口訪問程序:硬件接口程序負責完成DSP對ISP1581的讀寫操作,它是整個固件程序中最底層也是使用最頻繁的部分,在這里主要定義了2種類型的函數:ISP1581常用寄存器訪問函數和數據端口寄存器訪問函數。

  常用寄存器訪問函數:

  void outport(unsigned int *reg_addr, unsigned short value);

  unsigned short inport(unsigned int *reg_addr);

  數據端口寄存器訪問函數:

  void write_ep(unsigned short *addr, unsigned short size);

  unsigned short read_ep(unsigned short *addr);

  write_ep為寫端點發(fā)送緩沖區(qū)函數,其中參數*addr為指向待發(fā)送緩沖區(qū)的起始地址指針,參數size為要發(fā)送數據的字節(jié)數;read_ep為讀端點接收緩沖區(qū)函數,參數含義與write_ep函數相同,返回值為接收數據的字節(jié)數。



評論


相關推薦

技術專區(qū)

關閉