日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
FX2的波形描述符設(shè)計及應(yīng)用
FX2的波形描述符設(shè)計及應(yīng)用
 更新時間:2008-8-4 4:45:27  點擊數(shù):14
【字體: 字體顏色


    

摘  要  本文介紹了符合USB2.0協(xié)議的FX2系列芯片利用可編程控制接口GPIF與外設(shè)進(jìn)行高速數(shù)據(jù)傳輸?shù)幕緳C制,及其軟配置波形描述符的實現(xiàn)原理,并詳細(xì)闡述了波形描述符的結(jié)構(gòu)和各字段的含義,最后給出了據(jù)此進(jìn)行波形描述符設(shè)計的基本方法和實例。
關(guān)鍵詞   FX2  GPIF  波形描述符  USB2.0協(xié)議 
  
1 引言 
EZ-USB FX2系列芯片是CRPRESS公司推出的針對USB2.0規(guī)范的高速外設(shè)控制器,它提供了對USB2.0的完整解決方案。該芯片包括帶8KB片內(nèi)RAM的高速CPU、16位并行地址總線+8位數(shù)據(jù)總線、I2C總線、4KB FIFO存儲器以及通用可編程接口(GPIF)、串行接口引擎(SIE)和USB2.0收發(fā)器。在代碼的編寫上,它與8051系列單片機兼容,且速度是標(biāo)準(zhǔn)8051的3-5倍。其中,通用可編程接口(GPIF)是最引人注目的一個特點,正是通過這種機制,它才能夠?qū)崿F(xiàn)外設(shè)與主機的高速(480bps)數(shù)據(jù)傳輸。通用可編程接口由用戶編寫的波形描述符(wave descriptor)驅(qū)動,所以說波形描述符的質(zhì)量是能否有效的利用該芯片實現(xiàn)高速數(shù)傳的關(guān)鍵。在固件的設(shè)計過程中,該部分的設(shè)計一般利用公司給定的軟件如GPIFDesigner和EZ-USB Control Panel來完成,考慮到其復(fù)雜性和重要性,公司不建議用戶在字節(jié)這一層上進(jìn)行修改。然而,在實際的固件編寫過程中,為了提高GPIF的執(zhí)行效率,同時更清楚地理解固件驅(qū)動程序,設(shè)計時需要對其有更深入的了解。本文針對該部分設(shè)計,詳細(xì)闡述其實現(xiàn)原理,并給出了具體實例加以說明。
2  波形描述符的實現(xiàn)機制
波形描述符通過硬件接口GPIF實現(xiàn)數(shù)據(jù)的輸入輸出。GPIF是FX2端點FIFO的內(nèi)部控制器。在這種方式下,接口內(nèi)核可產(chǎn)生6個控制輸出端(CTL0-CTL5)和9根線的地址(GADR[8:0])輸出,同時可以接收6個外部輸入(RDY0-RDY5)和2個內(nèi)部輸入。FX2有4個波形描述符控制各個狀態(tài),它們分別是單次讀、單次寫、FIFO讀和FIFO寫。這些波形描述符可以被動態(tài)地配置給任何一個端點FIFO。例如,一個波形描述符可以配置為寫FIFO,而另一個配置為讀FIFO。在程序中進(jìn)行GPIF接口的數(shù)據(jù)操作時,GPIF將自動啟動相應(yīng)的波形描述符。FX2的固件程序可以把這些描述符配置給四個FIFO中的任意一個,配置后,GPIF將依據(jù)波形描述符產(chǎn)生相應(yīng)的控制邏輯和握手信號給外界接口來滿足向FIFO讀寫數(shù)據(jù)的需要。GPIF的數(shù)據(jù)總線既可以是單字節(jié)寬的(8位FD[7:0])也可以是雙字節(jié)寬的(16位FD[15:0])。每個波形描述符包含了S0-S6 7個有效狀態(tài)和一個空閑狀態(tài),在每個有效狀態(tài)對應(yīng)的時間段里,經(jīng)過預(yù)先設(shè)定后,GPIF可以做以下幾件事情:(1)驅(qū)動(使為高或低)或懸浮6個輸出控制端;(2)采樣或驅(qū)動FIFO的數(shù)據(jù)總線;(3)增加GPIF地址總線的值;(4)增加指向當(dāng)前FIFO指針的值;(5)啟動GPFIWF(波形描述符)中斷。除此之外,在每個狀態(tài),GPIF可以對以下幾個信號中任意兩個進(jìn)行采樣,它們是(1)RDYX輸入端;(2)FIFO狀態(tài)標(biāo)志位;(3)內(nèi)部RDY標(biāo)志位;(4)傳輸計數(shù)中止標(biāo)志位,然后把這兩個信號相與、相或或者相異或,根據(jù)結(jié)果跳轉(zhuǎn)到其它任意一個狀態(tài)或延遲1-256個IFCLK個時鐘周期。當(dāng)然也可以根據(jù)一個輸入端的信號進(jìn)行跳轉(zhuǎn)或延遲。每次描述符在執(zhí)行完畢后必須跳轉(zhuǎn)到空閑段才能結(jié)束。在GPIF控制其總線進(jìn)行數(shù)據(jù)傳輸時,可以不用CPU的干涉,直接通過內(nèi)部FIFO與USB總線進(jìn)行數(shù)據(jù)交換,這保證了高速數(shù)據(jù)通道的暢通,其內(nèi)部機理如圖(1)所示。在GPIF接口上同一時刻只能有一個波形描述符在執(zhí)行,要更換波形描述符必須要等到上一個描述符執(zhí)行完畢。

 

3  波形描述符的含義
GPIF的4個波形描述符具有相同的數(shù)據(jù)結(jié)構(gòu),它們被放在一段連續(xù)的地址空間0xE400-0xE47F,在編寫固件程序時,一般放到同一個數(shù)組中,如下圖(2)所示。



對應(yīng)于GPIF的8個狀態(tài),每個波形描述符有8個具有相同結(jié)構(gòu)的控制字段。控制字段包含LENGTH/BRANCH、OPCODE、LOGIC FUNCTION和OUTPUT四個字節(jié),它們分別表示了在本時間段內(nèi)的延時(或跳轉(zhuǎn))設(shè)置、操作碼、要執(zhí)行的邏輯函數(shù)和總線的輸出狀態(tài)。例如,上圖中wave 0的第一個字段是0x0F 0x01 0x37 0xC7。對非判決點(Non-Decision Point)和判決點(Decision Point),其含義也有所區(qū)別。
對于非判決點(DP = 0),它們代表的意義如下表1所示:


對于判決點(DP = 1),它們的意義如下表2所示:

下面對每一個字節(jié)的定義進(jìn)行詳細(xì)的說明:
LENGTH/BRANCH  對于非判決點(DP = 0),該字節(jié)定義了在此狀態(tài)停留的IFCLK的時鐘周期的個數(shù)。但如果值為0的話則表示停留256個IFCLK個時鐘周期的時間。對于判決點(DP = 1),該字節(jié)定義了邏輯函數(shù)所要跳轉(zhuǎn)到的狀態(tài)。1BRANCH:如果邏輯函數(shù)的結(jié)果為1時跳轉(zhuǎn)到的狀態(tài)序號,從0到6或7(空閑態(tài));0BRANCH:如果邏輯函數(shù)的結(jié)果為0時跳轉(zhuǎn)到的狀態(tài)序號,從0到6或7(空閑態(tài));
OPCODE  該字節(jié)定義了一些狀態(tài)特征。DP :定義是了該狀態(tài)是判決點狀態(tài)還是非判決點狀態(tài),=1為判決點,=0為非判決點。DATA:定義數(shù)據(jù)總線的狀態(tài)。進(jìn)行寫操作時,=1:驅(qū)動數(shù)據(jù)總線輸出,=0:三態(tài)(不驅(qū)動數(shù)據(jù)總線);進(jìn)行寫操作時,=1:對數(shù)據(jù)總線上的數(shù)據(jù)進(jìn)采樣并存儲數(shù)據(jù),=0:不采樣數(shù)據(jù)總線上的數(shù)據(jù)。NEXT:在這個狀態(tài)的開始,指針是否指向OUT FIFO的下一個字節(jié)。=1:把OUT FIFO中的下一個數(shù)據(jù)移到頂部;=0:不移動數(shù)據(jù)。當(dāng)波形描述符應(yīng)用于IN FIFO時NEXT 位不起作用。INCAD:決定是否增加GPIF地址總線上的地址。=1:表示在這個狀態(tài)的開始把GPIF地址總線上的地址加1;=0:不增加地址信號。GINT:決定是否在這個狀態(tài)過程中產(chǎn)生GPIFWF中斷。=1:表示在到達(dá)這個狀態(tài)時產(chǎn)生一個GPIFWF中斷信號(在INT4上);=0:表示不產(chǎn)生中斷信號。
LOGIC FUNCTION 該字節(jié)只用于判決點的波形描述符。它指定了一個邏輯函數(shù)和應(yīng)用于這個邏輯函數(shù)的輸入信號(TERMA 和 TERMB)。其結(jié)果將決定采用什么樣的跳轉(zhuǎn)方式,跳轉(zhuǎn)方式已在LENGTH/BRANCH中指定。TERMA 和TERMB:決定選擇什么輸入信號,從000到101分別代表RDY0到RDY5,但是若READYCFG.5=1,則101代表選擇傳輸計數(shù)器的溢出信號。剩下兩種選擇是FIFO的標(biāo)志位和INTRDY。 LFUNC:對輸入信號采用的邏輯函數(shù),從00到11代表到邏輯函數(shù)分別為'與'、'或'、'異或'和"非"。  在每個GPIF時鐘的上升沿對輸入信號進(jìn)行采樣。 在下一個上升沿到來前,GPIF根據(jù)選擇的邏輯函數(shù)對輸入信號進(jìn)行計算,由結(jié)果確定跳轉(zhuǎn)到哪一個狀態(tài)。
OUTPUT  該字節(jié)決定了在進(jìn)入此狀態(tài)后GPIF的6個控制信號(CTL0-CTL5)的狀態(tài)。OEn:如果TRICLT = 1,則該位決定了是否驅(qū)動CTLx信號。=1:驅(qū)動CTLx;=0:使其為三態(tài)。CTLn:決定了該狀態(tài)中CTLn上的電平。=1:輸出為'高電平';=0:輸出為'低電平。如果在寄存器GPIFCTLCFG中CTLx被設(shè)置為1,則輸出方式位集電極開路;如果在寄存器GPIFCTLCFG中CTLx被設(shè)置為0,則輸出方式為CMOS電平。
4  波形描述符的設(shè)計與應(yīng)用
 設(shè)計波形描述符主要就是根據(jù)具體的硬件接口設(shè)計出合理有效的控制字節(jié),一般利用公司給定的軟件GPIF Designer或EZ-USB Control Panel來完成。這兩種軟件都具有可視化的界面,操作簡單,最終形成一個名為*.c關(guān)于波形描述符的源文件。波形描述符的源文件主要由兩部分構(gòu)成,即初始變量(WaveData、FlowStates和InitData)的定義和GPIF初始化函數(shù)GpifInit( )的實現(xiàn)。在初始化函數(shù)中主要做的就是配置與GPIF相關(guān)的寄存器,同時把波形描述符數(shù)據(jù)填入相應(yīng)內(nèi)存空間0xE400-0xE47F。與GPIF相關(guān)的寄存器主要有IFCONFIG、GPIFIE、GPIFADRH和GPIFREADYCFG等,具體的配置方法見參考文獻(xiàn)【1】。對設(shè)計者而言,這種方法無論是設(shè)計還是調(diào)試過程中的修改都缺乏透明度,這給固件的設(shè)計造成了一定的困難。為了更靈活有效地操作GPIF,還需要能從字段的角度對其進(jìn)行修改。
 下面是一個GPIF與高速采樣芯片連接的例子。圖(3)是執(zhí)行圖(1)所列波形描述符中的wave2時接口的工作時序。執(zhí)行這一波形時,每次讀一個數(shù),數(shù)據(jù)讀完后啟動下一次轉(zhuǎn)換。把wave 2的第三個字段0x01 0x00 0x36 0x00改為0x01 0x0a 0x32 0x00后其輸出時序變?yōu)閳D(4)所示的形狀。此時,每次讀兩個通道的兩個數(shù),一個數(shù)據(jù)讀完后,內(nèi)部FIFO地址自動加1,在讀第二個數(shù)據(jù)后通過上升沿啟動下一次轉(zhuǎn)換。從圖上可以清楚的看出各字段和輸出邏輯的對應(yīng)關(guān)系。
              
 
5  結(jié)束語
GPIF的靈活性源于其控制時序即波形描述符的軟件可編程特點,所以正確設(shè)計波形描述符是利用該接口實現(xiàn)其高速數(shù)傳功能的基礎(chǔ)。但是要提高數(shù)據(jù)傳輸?shù)男蔬必須把波形描述與具體硬件外設(shè)電路結(jié)合起來,根據(jù)實際的時序配合關(guān)系,去除多余的狀態(tài),使GPIF的性能到達(dá)最優(yōu)。



[1] [2]  下一頁
  • 上一篇: 基于FPGA的總線型LVDS通信系統(tǒng)設(shè)計
  • 下一篇: FPGA和單片機串行通信接口的實現(xiàn)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1