1 、引言
led 顯示屏具有亮度高, 故障低、能耗少、使用壽命長(zhǎng)、顯示內(nèi)容多樣、顯示方式豐富等優(yōu)點(diǎn), 可廣泛用于公路、金融、證券、車站、碼頭、體育場(chǎng)館等公共場(chǎng)合, 其顯示數(shù)據(jù)通常來(lái)自上位PC 機(jī), 這就要求有一個(gè)高速通道來(lái)傳輸大量的顯示數(shù)據(jù),USB2. 0 接口無(wú)疑是一個(gè)很好的解決方案。USB 由總線提供電源, 傳輸時(shí)具有CRC 檢錯(cuò)、糾錯(cuò)能力, 能實(shí)現(xiàn)真正的實(shí)時(shí)熱插拔, 并支持多個(gè)外設(shè)連接到同一個(gè)連接器上, 從而緩解PC 系統(tǒng)資源沖突, 這些突出的優(yōu)點(diǎn)使得USB1. x 在PC 機(jī)外部設(shè)備上得到了廣泛的應(yīng)用, USB2. 0 傳輸速度高達(dá)480Mb/ s ,是USB1. x 的40 倍, 并向下兼容USB1. x。這樣就使得快速大量的數(shù)據(jù)傳輸?shù)靡詫?shí)現(xiàn)。
2 、CY7C68013 簡(jiǎn)述
帶高速Slave FIFO 通用外部接口的CY7C68013是CYPRESS 公司推出的USB2. 0 集成微處理芯片,片上集成了USB 收發(fā)器(SIE) 、增強(qiáng)型8051 單片機(jī)(其指令系統(tǒng)與普通8051 單片機(jī)完全兼容) 及8k 程序存儲(chǔ)區(qū), 共有4 個(gè)支持USB2. 0 高速傳輸?shù)?ldquo;大”端點(diǎn)(2 個(gè)IN 端點(diǎn)和2 個(gè)OUT端點(diǎn)) 和4kB 片內(nèi)RAM,該RAM可配置為4 個(gè)“大”端點(diǎn)的FIFO ,其中2 個(gè)“大”端點(diǎn)可以配置為雙、三、四緩沖區(qū)( FIFO) ,一個(gè)“大”端點(diǎn)最大可配置為2kB FIFO ,更重要的是,該芯片提供了兩個(gè)用于實(shí)現(xiàn)USB2. 0 高速傳輸?shù)目删幊掏獠吭O(shè)備接口以及Slave FIFO 和GPIF , 這2 個(gè)通用外部接口可通過(guò)與4 個(gè)“大”端點(diǎn)協(xié)調(diào)工作來(lái)實(shí)現(xiàn)USB2. 0 的高速傳輸, 本文只討論Slave FIFO 可編程外部設(shè)備接口的應(yīng)用。
CY7C68013 有56pin、100pin、128pin 三種封裝,其中56pin 已具備所有USB2. 0 功能, 而100pin 則在56pin 基礎(chǔ)上增加了更多I/ O 和更多GPIF 模式下的控制信號(hào), 128pin 又在100pin 基礎(chǔ)上增加了用于擴(kuò)充數(shù)據(jù)存儲(chǔ)區(qū)的地址總線和數(shù)據(jù)總線。本應(yīng)用就是基于可編程外部設(shè)備接口Slave FIFO , 大量數(shù)據(jù)傳輸可直接由FPGA 處理而無(wú)需擴(kuò)充外部數(shù)據(jù)存儲(chǔ)區(qū),在此選擇最經(jīng)濟(jì)的56pin CY7C68013 即可滿足設(shè)計(jì)要求, 其體系結(jié)構(gòu)如圖1 所示。
圖1 56 腳CY7C68013 的體系結(jié)構(gòu)
3、硬件設(shè)計(jì)
圖2 所示是FPGA 與CY7C68013 的連接圖, 除將IFCLK作為FPGA 輸入時(shí)鐘外,其它信號(hào)均在FP2GA 和CY7C68013 之間互連。由于FPGA 片內(nèi)RAM很小, 本系統(tǒng)還使用了一片128k ×8 的高速靜態(tài)RAM(型號(hào)為IS63LV1024 , 讀寫周期為15ns) 作為數(shù)據(jù)暫存器。FPGA 與CY7C68013、RAM、VT6103 的硬件連接見圖2。
圖2 硬件連接總圖
從USB 收到的來(lái)自上位PC 機(jī)數(shù)據(jù)最終將被遠(yuǎn)端安裝在LED 顯示屏屏體內(nèi)的顯示控制部件中, 當(dāng)RAM被填入預(yù)定數(shù)量的顯示數(shù)據(jù)時(shí), FPGA 會(huì)從RAM中連續(xù)取出數(shù)據(jù)并送到與VT6103 連接的4 位數(shù)據(jù)輸出端口, VT6103 收到4 位數(shù)據(jù)后, 其內(nèi)部會(huì)自動(dòng)按照IEEE802. 3 規(guī)范對(duì)該數(shù)據(jù)進(jìn)行4B5B(轉(zhuǎn)換4 位數(shù)據(jù)數(shù)據(jù)碼為5 位數(shù)據(jù)碼) 重新編碼,然后將5B碼送擾頻器,再經(jīng)片內(nèi)整形后輸出給以太網(wǎng)變壓器,以驅(qū)動(dòng)五類雙絞線并將數(shù)據(jù)傳給遠(yuǎn)端顯示控制部件。
4、軟件設(shè)計(jì)
本系統(tǒng)的外部主設(shè)備接口邏輯采用VHDL 硬件描述語(yǔ)言,利用ALTERA 公司QUARTUSII 開發(fā)平臺(tái)進(jìn)行設(shè)計(jì)。軟件設(shè)計(jì)是以FPGA 為核心的,主要由下面3 個(gè)并行執(zhí)行的部分組成, 在此每個(gè)部分分別設(shè)計(jì)為一個(gè)VHDL 進(jìn)程(process) :
進(jìn)程1 : 外部主設(shè)備FPGA 同步讀寫CY7C68013“大”端點(diǎn)FIFO 的時(shí)序邏輯, 并把接收到的數(shù)據(jù)存入FPGA FIFO 中。這部分只需要根據(jù)Slave FIFO 讀寫時(shí)序進(jìn)行設(shè)計(jì),Slave FIFO 時(shí)序圖如圖3 所示。
圖3 Slave FIFO 同步讀時(shí)序
這里需要引起注意的是兩個(gè)建立時(shí)間: 其一是tOEon , 這個(gè)建立時(shí)間是從SLOE 拉低到Slave FIFO 數(shù)據(jù)有效。其二是tSRD ,即從SLRD 信號(hào)拉低到第1 個(gè)同步讀時(shí)鐘上升沿的時(shí)間。這兩個(gè)建立時(shí)間應(yīng)大于等于CY7C68013 數(shù)據(jù)手冊(cè)規(guī)定的時(shí)間。由于該FPGA有59904 bit 的片上RAM, 這里使用其中4k byte 的RAM來(lái)生成FIFO 結(jié)構(gòu),這樣從Slave FIFO 同步接收到的USB 數(shù)據(jù)就可以直接存入FPGA 片上的4k FI2FO 中。圖4 是此進(jìn)程的設(shè)計(jì)流程圖。
圖4 進(jìn)程1 設(shè)計(jì)流程
進(jìn)程2 : 用于完成將FPGA 的FIFO 中數(shù)據(jù)寫入128kB RAM的設(shè)計(jì)。只要FPGA 的FIFO 中有數(shù)據(jù),則該進(jìn)程啟動(dòng), FPGA 會(huì)連續(xù)地把片內(nèi)FIFO 中取出的數(shù)據(jù)存入片外128kB 的高速靜態(tài)RAM( IS63LV1024) 中, 這個(gè)片外的128kB RAM分為兩個(gè)64kB 區(qū),兩個(gè)區(qū)輪流接收來(lái)自FPGA 片內(nèi)FIFO 的數(shù)據(jù), 當(dāng)一個(gè)區(qū)接收完規(guī)定的顯示數(shù)據(jù)后, FPGA 會(huì)置位send data flag 去啟動(dòng)進(jìn)程3 ,如果FPGA 片內(nèi)FIFO中還有數(shù)據(jù), 則FPGA 會(huì)把RAM切換到另一個(gè)區(qū)繼續(xù)接收片內(nèi)FIFO 中的數(shù)據(jù),其設(shè)計(jì)流程圖如圖5 所示。
圖5 進(jìn)程2 設(shè)計(jì)流程
進(jìn)程3 : 此進(jìn)程由send data flag 信號(hào)啟動(dòng), 當(dāng)發(fā)送數(shù)據(jù)標(biāo)志被置位時(shí), 此進(jìn)程啟動(dòng)。此后, FPGA 開始從已完成顯示數(shù)據(jù)接收的RAM區(qū)讀取數(shù)據(jù)并送到4 位寬度的數(shù)據(jù)輸出口, 此輸出口與VT6103 相連。VT6103 以25MHz 時(shí)鐘每次接收半個(gè)字節(jié)(4bit) ,然后經(jīng)片內(nèi)4B5B 編碼、整形后將數(shù)據(jù)由差分輸出口TX+ 和TX- 串行輸出, 以把數(shù)據(jù)從USB2. 0 接口模塊發(fā)給外部的顯示處理模塊。其設(shè)計(jì)流程圖如圖6所示。其中, VT6103 接收顯示數(shù)據(jù)時(shí)序如圖7 所示。每次接收4bit 后, 芯片內(nèi)部都將自動(dòng)對(duì)每次接收到的4bit 數(shù)據(jù)進(jìn)行處理并以100MHz 的時(shí)鐘頻率串行差分輸出給以太網(wǎng)變壓器。
圖6 進(jìn)程3 設(shè)計(jì)流程
圖7 接收顯示數(shù)據(jù)時(shí)序