【文章內(nèi)容簡介】
方式。 45 讀操作:同步方式下,當(dāng) FIFO 指針在 SLRD 有效時, IFCLK 的每一個上升沿累加;異步方式下, FIFO 指針在每次 SLRD 激活 到撤銷激活變化時累加;SLOE 提供 FD[7:0] 的使能信號。寫操作:同步方式下,當(dāng) SLWR 被激活時, FD總線上的數(shù)據(jù)在每個時鐘信號的上升沿來時被寫入 FIFO(且 FIFO 指針加 1);異步方式下, FD 總線上的數(shù)據(jù)在每次 SLWR 激活到撤銷激活變化時寫入 FIFO(并且指針加 1 )。 在讀或者寫的過程中,通過 FIFOADR[1:0]來選擇 68013A 模塊內(nèi)部的四個EP2,EP4,EP6,EP8( End Point)端點中哪一個端點和 FD 數(shù)據(jù)線相連接, FLAG、FLAGB、 GLAGC、 FLAGD 來標(biāo)志端點的 滿或者空,防止數(shù)據(jù)傳輸時的溢出,PKTEND 用來限定傳輸數(shù)據(jù)包的大小。 上 電下 載 固 件8 0 5 1 微 控 制 器復(fù) 位運 行 下 載 固件 , 完 成 配 置插 入 U S B 連 接 接口設(shè) 備 已 枚 舉設(shè) 備 枚 舉創(chuàng) 建 連 接 , 啟動 設(shè) 備驅(qū) 動 程 序 下 載確定傳輸時鐘和數(shù)據(jù)傳輸方式讀 O R 寫 操 作 ?F I F O 是 否 滿 狀態(tài)F I F O 是 否 滿 狀態(tài) ?S L R D 有 效 , 讀 操 作S L W R 有 效 , 寫 操 作分 配 新 的 F I F O 端 點Y E SS L O E ?N O傳 輸 到 F D 信號 線低 電平存 儲 到 V i r t e x芯 片等 待 S L O E 變成 低 電 平高 電 平分 配 新 的F I F O 端 點Y E S傳 輸 到 F D 總線N O寫 入 到 外 部U S B 設(shè) 備 圖 21 USB 模塊工作流程圖 Adept USB 模塊的結(jié)構(gòu)框圖如下所示: 46 F L A G D / C S S L O ES L R DS L W RP K T E N DF L A G AF L A G BF L A G CI F C L KF I F O A D R [ 1 : 0 ]F I F O D A T A [ 7 : 0 ]T M ST C KT D OT D IV i r t e x 5F P G A J T A GP r o g r a m m i n gp o r tC Y P R E S S6 8 0 1 3 AS C KS D AI I C R O M( V I D / P I D )D _ PD _ NM i c r o n U S BD i l i g e n t A d e p tU S B p o r tP R O G R A MF P G A 下 載 配置 模 塊 圖 22 Adept USB 的邏輯結(jié)構(gòu)圖 其信號功能如下表: 表 21 Adept USB 系統(tǒng)外部接口表 信號名稱 信號流向 寬 度 信號描述 FLAGA 輸出 1 CY7C68013A 芯片內(nèi) FIFO 的標(biāo)志管腳,映射 FIFO 的當(dāng)前狀態(tài)為滿或空 FLAGB 輸出 1 FLAGC 輸出 1 FLAGD/CS 輸入 1 端點 6FIFO 選擇信號,低電平有效 SLOE 輸入 1 Slave 模式下控制 FD 的使能信號 SLWR 輸入 1 FIFO 的寫選通信號 SLRD 輸入 1 FIFO 的讀選通信號 IFCLK 雙向 1 接口時鐘 PKTEND 輸入 1 數(shù)據(jù)包結(jié)束信號 FIFOADR[1:0] 輸入 2 選擇四個 FIFO 端點的地址線 FIFO DATA[7:0] 雙向 8 數(shù)據(jù)傳輸線 TMS 輸出 1 模式選擇, TCK 上升沿前建立 TDO 輸出 1 數(shù)據(jù)輸出, TCK 下降沿輸出 TDI 輸入 1 數(shù)據(jù)輸入 TCK 輸出 1 時鐘輸入 47 PROGRAM 輸出 1 FPGA 重新配置信號 內(nèi)部各模塊之間接口定義: 表 22 Adept USB2 內(nèi)部各模塊之間接口表 信號名稱 寬 度 信號流向 信號描述 SDA 1 E2PROM與接口控制,雙向 IIC的數(shù)據(jù)傳輸線 SCK 1 接口控制模塊流向 E2PROM IIC的時鐘控制線 D_P 1 Micro_USB與接口控制模塊,雙向 USB的數(shù)據(jù)信號線正 D_N 1 Micro_USB與接口控制模塊,雙向 USB的數(shù) 據(jù)信號線負 48 Adept USB 模塊內(nèi)部包含 3 個子模塊: 68013A 模塊, E2PROM 模塊,硬件接口模塊。 68013A 模塊是該主模塊的核心部分,需要支持 協(xié)議模塊中的 8 位數(shù)據(jù)信號可以保證 USB 中數(shù)據(jù)的快速并行傳輸,并且支持 JTAG 來配置連接的芯片,同時也要支持數(shù)據(jù)傳輸。 E2PROM 模塊是存儲固件程序以及 VID/PID/DID,在上電后加載到 USB 控制模塊的芯片上。 IIC PROM 模塊的實現(xiàn)需要考慮存儲空間大小、工作頻率和主控芯片是否相匹配、 是否內(nèi)嵌 IIC 控制器等問題。 MicroUSB 是提供該模塊與 PC 主機的連接,接受來自 USB 接口數(shù)據(jù)。 Adept USB 子模塊 68013A 模塊原理 68013A 模塊提供主機與設(shè)備之間的物理連接、發(fā)送連接和數(shù)據(jù)包連接。目前的 USB 芯片有 CH37 CYPRESS 系列、 PIC18FF4550。其中 CH375 芯片具有 HOST 和 Slave 模式,不過只支持 。 PIC18FF4550 是 Microchip 公司出品的帶全速 USB 的 8 位高檔單片機;全速 下有 1KB 的雙端口,支持 32個端點( 16 對)和兩種數(shù)據(jù)傳輸速率 12MMbps 和 ),其數(shù)據(jù)端點和模塊設(shè)計中的數(shù)據(jù)不匹配。 CYPRESS 的 EZUSB FX2 系列也是帶有微處理器 USB芯片,自持全速和高速的數(shù)據(jù)傳輸,也支持 IIC 總線接口,而且在市面是價格比較便宜,但具有處理能力強,構(gòu)成系統(tǒng)電路簡單,而且功耗較低,外圍接口功能強大。 68013A 模塊的硬件實現(xiàn)是選取 Cypress 公司的 EZUSB FX2 系列芯片中的CY7C68013A 芯片。該芯片集成了 系統(tǒng)微處理器,兼容 ;不過該芯片只支持兩種傳輸速率:全速 12Mbps 和高速 480Mbps,不支持低速;芯片內(nèi)嵌有 IIC PROM 控制器,可以直接在 IIC 總線上懸掛 E2PROM存儲器。 1. CY7C68013A 芯片介紹 CY7C68013A ( EZUSB FX2LP?)芯片是 CYPRESS 公司研發(fā)的世界上第一款集成 USB 協(xié)議的微處理器接口控制芯片,也是高集成、低功耗 USB 微控制器 EZUSB FX2? (CY7C68013) 的一個低功耗版本,它支持 12Mbps 的全速以及 480Mbps 高速傳輸,可使用控制傳輸,中斷傳輸,塊傳輸和同步傳輸?shù)人姆N傳輸方式進行數(shù)據(jù)傳輸。 CY7C68013A 上集成有 16KB 的片內(nèi) RAM、增強的 8051 微處理器、 16 位并行地址總線、 8 位數(shù)據(jù)總線、 I2C 總線、雙串口、 4K FIFO 的可配置的存儲器以及通用可編程接口( GPIF)、智能串行接口引擎( SIE)和 收發(fā)器。 49 50 68013A 模塊的內(nèi)部邏輯結(jié)構(gòu)原理圖: 圖 23 68013A 模塊邏輯結(jié)構(gòu) 68013A模塊中有三個大小固定為 64字 節(jié)的端點緩沖區(qū)和 4KB 的公用緩沖區(qū)(圖 23 中的 4KBFIFO),其中 4KB 的空間可以配置成多種組合。其端點的分布如圖 24: 圖 24 端點化沖區(qū)配置圖 端點緩沖區(qū)分為大小兩種。 EP0 和 EP1 是小端點,大小為 64 字節(jié),只能被 CPU 讀取,不能直接與外部邏輯連接。 EP EP4 、 EP EP8 是大的,可配置的邏輯端點;緩沖深度分為 3 或 4,也是可以配置的。 EP4 和 EP8 固定為 512 自己,是雙緩沖;端點 EP2 和 EP6 大小為 512 字節(jié)或者 1024 字節(jié),可 51 以配置成 3 或 4 緩沖。流過大緩沖區(qū) 端點的數(shù)據(jù)通常是由 FIFO 接口控制,通常不許要 CPU 參與,但必要時 CPU 可以存取這些。 EP0 則是唯一的控制傳輸端點,也是唯一的雙向傳輸端點, EP1IN 和 EP1OUT 可配置為中斷和批量端點。 EP EP EP EP8 用來處理高帶寬的 傳輸,可配置為中斷、批量或者同步端點。在數(shù)據(jù)傳輸時,端點 /接口 FIFO 直接以 速率傳輸數(shù)據(jù),無需 CPU 干預(yù)。 雙緩沖區(qū)的作用是允許一個數(shù)據(jù)包在被 8051 微控制器訪問時,另一個緩沖區(qū)可以進行 USB 數(shù)據(jù)傳輸;三或四則允許兩個或三個緩沖區(qū)被 8051 微控 制器訪問時,另一個緩沖區(qū)可以進行 USB 數(shù)據(jù)傳輸。這樣就可以把數(shù)據(jù)包的延遲降到最小,從而增加帶寬的吞吐量。 68013A 可以運行在全速( 12Mbps)或者高速( 480Mbps)兩種模式下。當(dāng)運行在全速模式下時, EP EP EP EP8 緩沖區(qū)仍以小緩沖區(qū)出現(xiàn),數(shù)據(jù)傳輸類型和緩沖區(qū)可以配置;運行在高速模式時,固件可以配置大端點緩沖區(qū)的大小、數(shù)據(jù)傳輸類型、緩沖深度。由于 規(guī)范和 下的數(shù)據(jù)最大包大小不同,在高速或者全速模式下, CEPRESS 68013A 緩沖區(qū)有不同大小。 表 23 數(shù)據(jù)傳輸類型 數(shù)據(jù)最大包大?。ㄗ止?jié)) 控制傳輸 8,16,32,64 64 批量傳輸 8,16,32,64 64 中斷傳輸 164 11024 同步傳輸 11024 11024 68013A 內(nèi)集成了 4KB 的 FIFO 存儲區(qū),這些 FIFO 與普通 FIFO 每次傳輸一個字節(jié)的原理不同,它則是以數(shù)據(jù)包的形式傳輸,因而得名“量子 FIFO”。量子 FIFO 的數(shù)據(jù)包傳輸對于外部接口是不可見的;外部接口通過檢查 FULL 和EMPTY 標(biāo)志位控制與 FIFO 的數(shù)據(jù)傳輸。量子 FIFO 結(jié)構(gòu)見圖 23。 8 0 5 1 微 控 制 器R A M / F I F O端 點 F I F OU S B應(yīng) 用 環(huán) 境 圖 25 端點 FIFO架構(gòu) 68013A 模塊的這種獨特 FIFO 技術(shù),使得 USB 接口和應(yīng)用環(huán)境可以直接共 52 享 FIFO,而且微控制器不用參與數(shù)據(jù)傳輸,但允許微控制器以 FIFO 或者 RAM的方式訪存這些共享 FIFO。這種量子 FIFO 結(jié)構(gòu)很好地確保了高速模式下的數(shù)據(jù)傳輸。 3. CY7C68013A 芯片工作方式 CY7C68013A芯片有三種接口模式: PORTS, GPIF主控和 Slave FIFO。 ●PORTS接口模式實 際上就是普通的 IO端口模式,相當(dāng)于 8051通用的輸入輸出口。 ●GPIF主控模式,即主機模式,該模式下, GPIF作為內(nèi)部主機控制端點 FIFO,其 GPIF ore成為一個可編程的狀態(tài)機,可以生成多達 6個控制輸出信號和 9個地址輸出信號,能外接 6個外部 Ready輸入信號和 2個內(nèi)部 Ready輸入信號。用戶可以通過 GPIF Designer來控制狀態(tài)機,從而和多種外圍器件無縫連接。 ●Slave FIFO模式,即從機模式,外部主控制器可以像對待普通的 FIFO一樣對 CY7C68013A的多重緩沖 FIFO進行讀寫。 要配置該芯片處于何種工作模式,可以通過 IFCONFIG[1:0]寄存器來選擇工作模式。而端口模式是在加電時默認配置,可以通過 E2PROM 上的固件程序配置或者上電后進行編程來改變配置模式。 4. 68013A 模塊芯片邏輯連接: 圖 26 CY7C68013A 芯片邏輯連接 E2PROM 模塊和 Micro USB 模塊 E2PROM 模塊提供 USB 上電后的固件加載。 固件是 FIREWARE 的對應(yīng)中文詞 ,它實際上是單片機的程序文件 ,其編寫語言可以采用 C 語言或是匯編語言 .它的操作方式與硬件聯(lián)系緊密 ,包括 USB 設(shè)備的連接 USB 協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,開發(fā)者需要對端口、中斷和硬件 53 結(jié)構(gòu)非常熟悉。固件程序一般放入 MCU 中,當(dāng)把設(shè)備連接到主機上( USB 連接線插入插孔)時,上位機可以發(fā)現(xiàn)新設(shè)備,然后建立連接。因此。固件程序的一個最主要的目的就時讓 Windows 可以檢測和識別設(shè)備。 24AA128 芯片具有 IIC