USB2.0控制器CY7C68013的接口設計實現
發布時間:2008/5/26 0:00:00 訪問次數:748
    
    
     來源:國外電子元器件 作者:林 愿 吳淑泉 冼志妙 摘要:介紹了一種基于usb2.0控制器cy7c68130的usb-ata接口,將普通硬盤轉化為usb mass -storage的解決方案,文中給出了利用gpif實現該方案的相關設計方法。
     關鍵詞:usb2.0 ata接口 cy7c68130 gpif1 引言 usb(universal serial bus)接口以其速度快、功耗低、支持即插即用(plug & play)、使用安裝方便等優點而得到了廣泛的應用。目前usb2.0標準的傳輸速度已達480mb/s,這使得usb可以推廣到硬盤、信息家電網絡產品和其它快速外設。在某些應用場合,如基于硬盤的大容量數據采集與分析系統中,為了使用方便,需要將普通硬盤轉化成海量存儲器,這樣在使用時就不需關機重啟或打開機箱來安裝。本文介紹一種利用帶usb接口的單片機芯片cy7c68013來控制普通硬盤的讀寫,從而半普通硬盤轉化為usb2.0海量存儲器的可行方案,本系統可擴展,完全可用于實現基于硬盤的大容量數據采集與分析系統。2 硬件設計2.1 usb接口芯片 本設計選用的是cypress公司的ez-usbfx2系列芯片中的cy7c68013,這是一種帶usb接口的單片機芯片,雖然采用低價的8051單片機,但仍然能獲得很高的速度。它包括一個8051處理器、一個串行接口引擎(sie)、一個usb收發器、一個8.5kb片上ram、一個4 kb fifo存儲器及一個通用可編程接口(gpif)。fx2可提供全面集成的解決方案。它有56ssop、100tqfp、128tqfp三種封裝,本設計選用占用電路板空間較少的56ssop封裝。如果要進行擴展,也可選用128tqfp封裝。 2.2 ata接口 ata接口是在st506的基礎上改進而成的,它將控制器集成到驅動器中,采用8個端口寄存器(即命令寄存器)來完成對硬盤的讀寫,ata有兩種工作模式:pio模式和dma模式。本設計采用的dma傳輸模式不需要處理器參與整個數據傳輸過程,而是由i/o口直接將數據傳送到存儲器中,從而節約大量的cpu時間以更好的處理其它事件。控制器對硬盤的操作分為兩種:8位數據的命令操作和16位數據的數據傳輸操作。在對硬盤輸出控制命令之前,程序需對端口完整輸出7字節的命令塊。其中前六個端口為參數,最后一個端口為命令碼。讀寫操據端口一般以512字節作為數據塊進行。硬盤執行命令后發出中斷請求以表示操作結束(結束傳輸),也可以置控制器狀態為空閑,以表示扇區請求傳輸(數據傳輸)。最后,由控制器讀取硬盤狀態寄存器,以檢測硬盤操作的成功與否。如操作正常,則進行下一次動作;否則進入錯誤處理程序。2.3 gpif與ata接口 fx2芯片的最主要特點是可通過usb2.0的通用可編程接口(gpif)為特定的應用接口編程,以便使用多種協議完成與外圍器件的無縫連接,如eide/atapi,ieee1284,utopia等。其編程可以根據需要進行,且其中不需要cpu的干預,只是通過一些cpu標志和中斷即可與增強型8051內核進行通訊。系統結構框圖如圖1所示。 本設計采用“gpif主控”接口模式,并使用portb和portd雙向fifo數據線來構成通向四個fx2端點fifo(ep2、ep4、ep6、ep8)的16位數據接口,以用來連接數據線dd[15:0]并進行數據的傳送;gpif作為內部主控器與fifo相連,并通過產生用戶可編程的控制主控器與fifo相連,并通過產生用戶可編程的控制信號ctl[2:0]與外部接口進行通信。同時,gpif還可以通過rdy[1:0]引腳采用外部信號并等待外部事件。由于gpif的運算速度比fifo快得多,因此其時序信號具有很好的編程分辨率。 fx2用4個波形描述符來控制各個狀態。這些波形描述符可動態的配置給任何一個端點fifo。配置后,gpif將依據波形描述符產生相應的控制邏輯ctl及握手信號rdy來和外界接口,以滿足向fifo讀寫數據的需要。gpif的數據總線可以是8位fd[7:0],也可以是16位fd[15:0],本設計采用16位數據總線。其硬盤讀數據控制波形如圖2所示。 每個波形描述符包含了s0~s6七個有效狀態和一個空閑狀態。在每個有鏟狀態對應的時間段里,經過預先設置,gpif可以做出以下幾件事件;驅動(使高或低)或浮接ctl輸出、采樣或驅動fifo的數據總線、增加gpif地址總線的值、增加指向當前fifo指針的值和啟動gpifwf(gpif波形)中斷。除此之外,在每個狀態,gpif還可以對以下幾個信號中的任意兩個進行采樣,它們是:rdyx輸入端、fifo狀態標志位、內部rdy標志位和傳輸計數終止標志位。每個gpif動作都由七段組成,每個狀態都可以定義為non-decision interval (ndp)或decision point interval(dp)。當某個狀態定義為ndp時,在執行此狀態動作時,系統只是用簡單的延時來確定產生指定電平的延續時間;而當執行dp狀態時,它將根據rdy0、rdy1上的輸入信號狀態把其中的兩個信號相與、相或或者相異,然后根據結果跳轉到其它任意一個狀態或延遲1~256個ifclk時鐘周
    
    
     來源:國外電子元器件 作者:林 愿 吳淑泉 冼志妙 摘要:介紹了一種基于usb2.0控制器cy7c68130的usb-ata接口,將普通硬盤轉化為usb mass -storage的解決方案,文中給出了利用gpif實現該方案的相關設計方法。
     關鍵詞:usb2.0 ata接口 cy7c68130 gpif1 引言 usb(universal serial bus)接口以其速度快、功耗低、支持即插即用(plug & play)、使用安裝方便等優點而得到了廣泛的應用。目前usb2.0標準的傳輸速度已達480mb/s,這使得usb可以推廣到硬盤、信息家電網絡產品和其它快速外設。在某些應用場合,如基于硬盤的大容量數據采集與分析系統中,為了使用方便,需要將普通硬盤轉化成海量存儲器,這樣在使用時就不需關機重啟或打開機箱來安裝。本文介紹一種利用帶usb接口的單片機芯片cy7c68013來控制普通硬盤的讀寫,從而半普通硬盤轉化為usb2.0海量存儲器的可行方案,本系統可擴展,完全可用于實現基于硬盤的大容量數據采集與分析系統。2 硬件設計2.1 usb接口芯片 本設計選用的是cypress公司的ez-usbfx2系列芯片中的cy7c68013,這是一種帶usb接口的單片機芯片,雖然采用低價的8051單片機,但仍然能獲得很高的速度。它包括一個8051處理器、一個串行接口引擎(sie)、一個usb收發器、一個8.5kb片上ram、一個4 kb fifo存儲器及一個通用可編程接口(gpif)。fx2可提供全面集成的解決方案。它有56ssop、100tqfp、128tqfp三種封裝,本設計選用占用電路板空間較少的56ssop封裝。如果要進行擴展,也可選用128tqfp封裝。 2.2 ata接口 ata接口是在st506的基礎上改進而成的,它將控制器集成到驅動器中,采用8個端口寄存器(即命令寄存器)來完成對硬盤的讀寫,ata有兩種工作模式:pio模式和dma模式。本設計采用的dma傳輸模式不需要處理器參與整個數據傳輸過程,而是由i/o口直接將數據傳送到存儲器中,從而節約大量的cpu時間以更好的處理其它事件。控制器對硬盤的操作分為兩種:8位數據的命令操作和16位數據的數據傳輸操作。在對硬盤輸出控制命令之前,程序需對端口完整輸出7字節的命令塊。其中前六個端口為參數,最后一個端口為命令碼。讀寫操據端口一般以512字節作為數據塊進行。硬盤執行命令后發出中斷請求以表示操作結束(結束傳輸),也可以置控制器狀態為空閑,以表示扇區請求傳輸(數據傳輸)。最后,由控制器讀取硬盤狀態寄存器,以檢測硬盤操作的成功與否。如操作正常,則進行下一次動作;否則進入錯誤處理程序。2.3 gpif與ata接口 fx2芯片的最主要特點是可通過usb2.0的通用可編程接口(gpif)為特定的應用接口編程,以便使用多種協議完成與外圍器件的無縫連接,如eide/atapi,ieee1284,utopia等。其編程可以根據需要進行,且其中不需要cpu的干預,只是通過一些cpu標志和中斷即可與增強型8051內核進行通訊。系統結構框圖如圖1所示。 本設計采用“gpif主控”接口模式,并使用portb和portd雙向fifo數據線來構成通向四個fx2端點fifo(ep2、ep4、ep6、ep8)的16位數據接口,以用來連接數據線dd[15:0]并進行數據的傳送;gpif作為內部主控器與fifo相連,并通過產生用戶可編程的控制主控器與fifo相連,并通過產生用戶可編程的控制信號ctl[2:0]與外部接口進行通信。同時,gpif還可以通過rdy[1:0]引腳采用外部信號并等待外部事件。由于gpif的運算速度比fifo快得多,因此其時序信號具有很好的編程分辨率。 fx2用4個波形描述符來控制各個狀態。這些波形描述符可動態的配置給任何一個端點fifo。配置后,gpif將依據波形描述符產生相應的控制邏輯ctl及握手信號rdy來和外界接口,以滿足向fifo讀寫數據的需要。gpif的數據總線可以是8位fd[7:0],也可以是16位fd[15:0],本設計采用16位數據總線。其硬盤讀數據控制波形如圖2所示。 每個波形描述符包含了s0~s6七個有效狀態和一個空閑狀態。在每個有鏟狀態對應的時間段里,經過預先設置,gpif可以做出以下幾件事件;驅動(使高或低)或浮接ctl輸出、采樣或驅動fifo的數據總線、增加gpif地址總線的值、增加指向當前fifo指針的值和啟動gpifwf(gpif波形)中斷。除此之外,在每個狀態,gpif還可以對以下幾個信號中的任意兩個進行采樣,它們是:rdyx輸入端、fifo狀態標志位、內部rdy標志位和傳輸計數終止標志位。每個gpif動作都由七段組成,每個狀態都可以定義為non-decision interval (ndp)或decision point interval(dp)。當某個狀態定義為ndp時,在執行此狀態動作時,系統只是用簡單的延時來確定產生指定電平的延續時間;而當執行dp狀態時,它將根據rdy0、rdy1上的輸入信號狀態把其中的兩個信號相與、相或或者相異,然后根據結果跳轉到其它任意一個狀態或延遲1~256個ifclk時鐘周