a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 光電顯示 > 設計應用 > LED顯示屏高速數據通訊接口設計

LED顯示屏高速數據通訊接口設計

作者: 時間:2005-06-13 來源:網絡 收藏

摘要:本文闡述了利用CYPRESS公司EZ-USB FX2系列USB2.0集成芯片CY7C68013的Slave FIFO通用外部來實現PC機和點陣方案,給出了其電路的硬件原理及底層軟件的過程。

關鍵詞:USB2.0;CY7C68013;FIFO;顯示

1 引言

LED具有亮度高,故障低、能耗少、使用壽命長、顯示內容多樣、顯示方式豐富等優點,可廣泛用于公路、金融、證券、車站、碼頭、體育場館等公共場合,其顯示數據通常來自上位PC機,這就要求有一個通道來傳輸大量的顯示數據,USB2.0無疑是一個很好的解決方案。

USB由總線提供電源,傳輸時具有CRC檢錯、糾錯能力,能實現真正的實時熱插拔,并支持多個外設連接到同一個連接器上,從而緩解PC系統資源沖突,這些突出的優點使得USB1.x在PC機外部設備上得到了廣泛的應用, USB2.0傳輸速度高達480Mb/s,是USB1.x的40倍,并向下兼容USB1.x。這樣就使得快速大量的數據傳輸得以實現。

在此強調一下兩個下文將要用到的概念:IN端點和OUT端點。此處的IN、OUT都是相對于上位PC機而言,IN端點指用來接收上位PC機數據的端點,OUT端點則是往PC機發送數據的端點。

2 CY7C68013簡述

Slave FIFO通用外部接口的CY7C68013是CYPRESS公司推出的USB2.0集成微處理芯片,片上集成了USB收發器(SIE)、增強型8051單片機(其指令系統與普通8051單片機完全兼容)及8k程序存儲區? 共有4個支持USB2.0高速傳輸的“大”端點(2個IN端點和2個OUT端點)和4kB片內RAM?該RAM 可配置為4個“大”端點的FIFO,其中2個“大”端點可以配置為雙、三、四緩沖區(FIFO),一個“大”端點最大可配置為2kB FIFO,更重要的是?該芯片提供了兩個用于實現USB2.0高速傳輸的可編程外部設備接口以及Slave FIFO和GPIF,這2個通用外部接口可通過與4個“大”端點協調工作來實現USB2.0的高速傳輸,本文只討論 Slave FIFO可編程外部設備接口的應用。

CY7C68013有56pin、100pin、128pin三種封裝,其中56pin已具備所有USB2.0功能,而100pin則在56pin基礎上增加了更多I/O和更多GPIF模式下的控制信號,128pin又在100pin基礎上增加了用于擴充數據存儲區的地址總線和數據總線。本應用就是基于可編程外部設備接口Slave FIFO,大量數據傳輸可直接由FPGA處理而無需擴充外部數據存儲區,在此選擇最經濟的56pin CY7C68013 即可滿足要求, 其體系結構如圖1所示。

3 Slave FIFO簡介

CY7C68013 雖然可以用內置增強型8051單片機直接處理USB2.0數據,但這樣會受到單片機速度的限制而無法實現USB2.0的高速傳輸。通常為了解決這一矛盾,可使CY7C68013的片上增強型8051單片機僅用于輔助處理USB設備請求和設備列舉以及協調內部“大”端點和外部數據處理設備(如 FPGA,ASIC? DSP,IDE等)的工作,這樣USB數據流就可繞過慢速的8051單片機而直接從“大”端點FIFO進入快速外部主設備或從外部主設備進入“大”端點FIFO,以實現USB2.0高速傳輸。由于CY7C68013“大”端點FIFO的讀寫是受外部數據處理設備控制的,所以這些FIFO稱為 Slave FIFO,上述這種實現USB2.0高速傳輸的模式稱為 Slave FIFO模式。

4 CY7C68013固件程序設計

為方便應用開發,CYPRESS 公司為CY7C68013所屬的EZ-USB FX2系列提供了免費下載的Keil C環境下的USB固件庫,以及C51編寫的固件構架程序和一些典型應用的范例程序,這使得開發者只需理解USB數據傳輸原理,而不用鉆入艱深的USB底層協議就可完成開發,從而大大縮短開發時間,以便把更多的精力放在外部接口設計上。

下面僅就固件程序設計進行論述,整個固件應用程序通常包含3個程序文件:

DSCR.A5――設備描述符表文件,該文件詳細記錄了USB外圍設備的相關信息,這里需要注意的是設備描述符和端點描述符。設備描述符給出了USB的一般信息,其中VID/PID 碼十分重要,上位PC機根據這個碼值才能正確加載USB應用設備驅動程序。至于端點描述符,每個端點都有,上位PC機根據端點描述符的內容來決定每個端點的帶寬要求。本設計用1個“大”端點EP2來接收上位PC機的顯示數據;另用一個“小”端點EP1來處理上位機和通訊接口間開發者自定義的通訊協議,以使上位機可以在需要的時候查詢已被傳送的顯示數據的接收狀況,從而進一步保證顯示數據的有序傳輸。

FW.C――固件構架程序。該固件構架程序主要用于實現USB設備列舉的諸多控制傳輸和USB總線協議的相關工作,完成了USB與外部兼容設備所需的基本功能。該程序的核心函數 void SetupCommand?void? 稱作設備請求剖析器,用于處理上位PC機發送的標準USB設備請求以實現USB設置命令。

APP.C ――開發者在相關范例應用程序的基礎上通過修改或增加一些應用程序段而形成的面向實際的應用程序。本應用中主要修改了Slave FIFO的操作方式以使Slave FIFO接收數據的速度能夠達到最大值,所采用的設置方法如下:

通過寄存器EP2CFG可將EP2設置為OUT端點。當需要首先考慮數據準確性時,可將該端點傳輸模式設置為批量傳輸,其最大包長為512字節,4緩沖區(FIFO)。而當需要傳輸視頻數據時,可將該端點的傳輸模式設置為同步傳輸,最大包長1024字節,雙緩沖區(FIFO)。

通過寄存器EP2FIFOCFG設置下面的內容:將“大”端點EP2設置為16位操作模式(一次可以操作2個字節)以與FD 16位寬度總線匹配; 再設置該OUT端點為AUTOOUT模式,這樣來自上位PC機的數據就可以不通過CY7C68013上的8051單片機,而是自動地填充相應的“大”端點FIFO。

通過寄存器IFCONFIG設置這樣的工作模式:用CY7C68013產生48MHz IFCLK時鐘,將該時鐘作為片上SlaveFIFO與外部主設備的工作時鐘;數據的接收與發送設置為同步讀寫方式,這樣在每個IFCLK 時鐘的上升沿就可以讀寫2個字節,從而使數據讀寫速度可以達到96MHz byte/s。

本設計只使用了EP2這個“大”端點,而且 已將其配置為AUTOOUT操作模式。因此,CY7C68013可繞過片上8051而自動將USB數據接收到EP2的FI-FO中。

需要增加的程序段是CY7C68013片內8051單片機根據上位機查詢回應當前數據接收狀況,這個程序段和普通的8051單片機232串口通訊程序類似,不同的只是原來的232串行口中斷被EP1 IN和EP1 OUT這兩個USB2.0中斷所替換,當EP1 OUT 端點收到上位PC機發來的數據時,將產生EP1 OUT中斷來處理接收到的數據;同樣當CY7C68013片內8051欲發往上位PC機的數據已通過EP1 IN發送完畢時,也會產生EP1 IN中斷以使片內8051可以在該端點放入新的發送數據。

5 硬件設計

圖2所示是FPGA與CY7C68013 的連接圖,除將IFCLK作為FPGA輸入時鐘外,其它信號均在FP-GA和CY7C68013之間互連。由于FPGA片內RAM很小,本系統還使用了一片128k8的高速靜態RAM(型號為IS63LV1024,讀寫周期為15ns)作為數據暫存器。FPGA與CY7C68013、RAM、VT6103的硬件連接見圖2。

從USB收到的來自上位PC機數據最終將被遠端安裝在LED屏體內的顯示控制部件中,當RAM被填入預定數量的顯示數據時,FPGA會從RAM中連續取出數據并送到與VT6103連接的4位數據輸出端口,VT6103收到4位數據后,其內部會自動按照IEEE802.3規范對該數據進行4B5B?轉換4位數據數據碼為5位數據碼?重新編碼,然后將5B碼送擾頻器,再經片內整形后輸出給以太網變壓器,以驅動五類雙絞線并將數據傳給遠端顯示控制部件。

6 軟件設計

本系統的外部主設備接口邏輯采用VHDL硬件描述語言,利用ALTERA公司QUARTUS II開發平臺進行設計。軟件設計是以FPGA為核心的,主要由下面3個并行執行的部分組成,在此每個部分分別設計為一個VHDL進程?process?:

進程1:外部主設備FPGA同步讀寫CY7C68013“大”端點FIFO的時序邏輯? 并把接收到的數據存入FPGA FIFO中。這部分只需要根據Slave FIFO讀寫時序進行設計,Slave FIFO時序圖如圖3所示。

這里需要引起注意的是兩個建立時間:其一是tOEon,這個建立時間是從SLOE拉低到 Slave FIFO數據有效。其二是tSRD ,即從SLRD信號拉低到第1個同步讀時鐘上升沿的時間。這兩個建立時間應大于等于CY7C68013數據手冊規定的時間。由于該FPGA有59904 bit的片上RAM,這里使用其中4k byte的 RAM來生成FIFO結構,這樣從Slave FIFO同步接收到的USB數據就可以直接存入FPGA片上的4k FI-FO中。圖4是此進程的設計流程圖。

進程2:用于完成將FPGA的FIFO中數據寫入128kB RAM的設計。只要FPGA的FIFO中有數據,則該進程啟動,FPGA會連續地把片內FIFO中取出的數據存入片外128kB的高速靜態RAM (IS63LV1024)中,這個片外的128kB RAM分為兩個64kB區,兩個區輪流接收來自FPGA片內FIFO的數據,當一個區接收完規定的顯示數據后,FPGA會置位send data flag去啟動進程3,如果FPGA片內FIFO中還有數據,則FPGA會把RAM切換到另一個區繼續接收片內FIFO中的數據,其設計流程圖如圖5所示。

進程3:此進程由send data flag信號啟動,當發送數據標志被置位時,此進程啟動。此后,FPGA開始從已完成顯示數據接收的RAM區讀取數據并送到4位寬度的數據輸出口,此輸出口與VT6103相連。VT6103以25MHz時鐘每次接收半個字節(4bit),然后經片內4B5B編碼、整形后將數據由差分輸出口TX+和TX-串行輸出,以把數據從USB2.0接口模塊發給外部的顯示處理模塊。其設計流程圖如圖6所示。

其中,VT6103 接收顯示數據時序如圖7所示。每次接收4bit后,芯片內部都將自動對每次接收到的4bit數據進行處理并以100MHz的時鐘頻率串行差分輸出給以太網變壓器。



評論


相關推薦

技術專區

關閉