999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CPLD在USB協議分析儀中的作用

2008-12-31 00:00:00趙小麗
電腦知識與技術 2008年34期

摘要:在USB協議分析儀中,CPLD利用自身硬件的優點,快速處理USB信號,把USB數據流轉換成MCU數據包以供單片機接收,進行下一步的工作。

關鍵詞:CPLD;信號;數據包

中圖分類號:TP212文獻標識碼:A 文章編號:1009-3044(2008)34-1853-02

CPLD是一種用戶根據各自需要而自行構造邏輯功能的數字集成電路。其基本設計方法是借助集成開發軟件平臺,用原理圖、硬件描述語言等方法,生成相應的目標文件,通過下載電纜(“在系統”編程)將代碼傳送到目標芯片中,實現設計的數字系統。它具有編程靈活、集成度高、設計開發周期短、適用范圍寬、開發工具先進、設計制造成本低、對設計者的硬件經驗要求低、標準產品無需測試、保密性強、價格大眾化等特點,可實現較大規模的電路設計,因此被廣泛應用于產品的原型設計和產品生產之中。

CPLD是整個系統中非常關鍵的一個部件,它直接決定系統實現的成功與失敗。如果CPLD設計有任何缺陷,就有可能導致整個系統性能變差,甚至完全失敗。所以,CPLD這一部分必須認真分析需求,周密設計代碼,合理仿真功能,力求最大限度地有效利用CPLD的功能。

CPLD的工作流程如下:打開集成開發軟件(Xilinx的ISE)→畫原理圖、寫硬件描述語言(Verilog)→編譯→給出邏輯電路的輸入激勵信號,進行仿真,查看邏輯輸出結果是否正確→進行管腳輸入、輸出鎖定→生成代碼→通過下載電纜將代碼傳送并存儲在CPLD芯片中。

1 功能分析

CPLD接收從USB收發器收到的數據流,構建MCU數據包,然后輸出MCU數據包至FIFO存儲器,可以說CPLD就是一個成幀器。

為了能夠準確地接收USB的數據流,CPLD中設置了一套去噪聲模塊。即使接收的數據中混入了一定的噪聲,接收器也能正常工作。

要正確獲得數據,首先要正確恢復時鐘。低速USB的發送時鐘為1.5MHz,全速USB的發送時鐘為12MHz,CPLD也必須生成相應的接收時鐘信號。為此,CPLD中設置了一個數字鎖相環電路(DPLL),該電路監視輸入信號的變化,一旦發現信號出現了邊沿,立即調整接收時鐘的相位,確保與發送時鐘同步,這實際上也就是保證了讀取數據的準確性。

DPLL電路還輸出一個數據抽樣點,這個抽樣點總是處于一個數據位的中心,在這個抽樣點獲得的數據是最準確的。

在抽樣點處獲得的數據送至串并轉換器,當接收8個數據位后形成一個字節。這個字節將被保存在輸出隊列中準備發送到外部FIFO緩存。為了消除“位插入”產生的額外數據,CPLD中有一個“位計數器”,如果發現6個連續的“1”,自動消除其后的數據位。

在CPLD中,有一個有限狀態機FSM,它指示用戶USB總線的當前狀態。該狀態機共有4個狀態,分別對應初始狀態、SE0、空閑狀態和接收狀態。通過狀態機,可以得知一個USB數據包的開始與結束,也可以得知USB數據包的傳輸速率,還可以知道每一個狀態出現的絕對時間,通過換算,能夠知道數據包的持續時間,還能夠知道SE0是處于EOP中還是復位中。當發現USB數據包的開始(SOP),立即把STX送入輸出隊列。STX是MCU數據包的開始,與SOP對應。一旦發現USB數據包結束,則把ETX 送入輸出隊列。ETX是MCU數據包的結束,與EOP對應。

在輸出USB數據包的數據時,如果某一字節的數值正好等于STX、ETX或者Byte_Stuff,則在它們前面插入一個Byte Stuff。這也是一種插入技術,但它是面向字節的。

輸出隊列按照順序保存要輸出的數據,輸出電路從輸出隊列中一個字節一個字節地讀出數據,然后向外輸出,每輸出一個字節,就產生一個寫入信號。

以上所有這些電路在復位信號有效時(Rst=0)都停止工作,設置為預置的值,如WR=1、 FSM=0。

對于輸出電路來說,還有一個輸出使能信號(OE)。當OE=0時,輸出信號正常輸出;當OE=1時,輸出信號呈現高阻態。

CPLD中的所有電路都是同步的,都按照48MHz主振蕩器的節拍工作。

2 功能實現

2.1 相位跟蹤電路(DPLL)

DPLL(Digit Phase Lock Loop)是一種使得輸出信號相位與輸入信號相位保持一致的電路,也就是相位跟蹤電路。當輸入信號的相位發生變化時,輸出信號的相位也跟著變化。DPLL根據用戶USB總線的速率產生1.5MHz或12MHz數據接收時鐘,接收時鐘的相位跟蹤輸入信號的相位,二者始終保持一致,這就是數據時鐘的恢復。根據數據接收時鐘的相位,CPLD產生一個數據抽樣信號,該信號指示在何處抽樣,才能讀取到正確的數據。

2.2 有限狀態機(FSM)

FSM(Finite State Machine)稱為有限狀態機,是CPLD中最常用的部件之一。通常,用FSM實現各種各樣的狀態轉換圖。在USB協議分析儀中,FSM有四個狀態,用來表示用戶USB總線的活動。這四個狀態覆蓋了所有用戶USB總線狀態和用戶USB總線事件,低速和全速也都支持。

1) 初始狀態:復位結束后的狀態

2) SE0狀態:用戶USB總線處于SE0

3) 空閑狀態:用戶USB總線處于空閑狀態

4) 接收狀態:用戶USB總線正在傳輸數據包

2.3 MCU數據包裝配

CPLD的輸入信號是獲取的USB總線信號,輸出的則是單片機應接收的MCU數據包。在說明CPLD的這部分功能以前,先簡單說明一下MCU數據包的構成形式。

2.3.1 數據包的格式

MCU數據包是對USB數據包的再次封裝,其一般格式為:STX USB數據包 ETX

STX是MCU數據包的開始,其值為0F;ETX是MCU數據包的結束,其值為04。為了避免USB數據包中的STX、ETX被誤認為MCU數據包的開始結束,特別增加了“字節插入”。 “字節插入”符為ByteStuff,其值為05 。當USB數據包中出現了STX,ETX或ByteStuff時,在其前面都要插入一個ByteStuff。例如:

USB數據包為:80 C3 03 04 05 06

對應的MCU數據包為:0F 80 C3 03 05 04 05 05 06 04

2.3.2 輸出STX

STX是MCU數據包的開始,應該在USB數據包的開始處(SOP)輸出,即一旦發現SOP,就要立即輸出STX。

那么,在CPLD中如何識別SOP?在FSM中,如果當前狀態為空閑狀態,同時輸入信號K有效,此時就是SOP,應該立即輸出STX。

2.3.3 輸出ETX

ETX是MCU數據包的結束,應該在USB數據包的結束處(EOP)輸出,即一旦發現EOP,就要立即輸出ETX。

當FSM的當前狀態為接收狀態,同時輸入信號SE0有效,則認為此時就是EOP,應該立即輸出ETX。

2.3.4 “字節插入”

當FSM為接收狀態時,如果從用戶USB總線接收到了一個字節,首先要判斷其值是否為STX、ETX或Byte_Stuff。如果是其中之一,要先輸出Byte_Stuff,然后再輸出該字節。

經過“字節插入”處理過的MCU數據包在應用程序中要做相反的字節消除,以恢復原始USB數據包。

2.4 數據輸出

數據輸出部分包括輸出隊列的管理、輸出總線和寫入信號管理兩部分。輸出隊列的管理包括取數據和指針移動。由于選擇的CPLD容量有限,原來設計的4字節輸出隊列無法實現綜合,最后只好放棄原來的設計思想,改為輸出隊列只存放標志位,這實際上也是4字節的輸出隊列,但需要的存儲空間大大減少。

之所以采用4字節輸出隊列,是基于這樣的情況:在USB數據包結束處,如果最后一個數據正好是STX、ETX或Byte_Stuff之一,則輸出順序應該是Byte_Stuff、數據、ETX。這三個字節在同一時鐘周期出現,但輸出一個字節要用兩個時鐘周期,并且輸出時一次只能輸出一個字節。這時,把同時出現的數據按照既定的Byte_Stuff、數據、ETX的順序把標志位存放在輸出隊列中等待輸出。

3 仿真

CPLD設計離不開仿真,因為仿真是CPLD功能和性能的驗證工具,也是CPLD的排錯工具。沒有仿真,就無法了解CPLD的工作情況,設計中的錯誤也無法找到根源。

在USB協議分析儀設計過程中,仿真一直發揮著重要作用。有兩點特別需要說明:

1) 仿真為CPLD提供激勵信號。

CPLD只是一個模塊,它的正常工作依賴正確的輸入信號,為此,設計了一個TESTBENCH文件,用于生成激勵信號。而激勵信號則由一個信號定義文件決定。

2) 仿真自動判斷CPLD的輸出信號是否正確。

要知道CPLD是否正常工作,必須有一套判斷邏輯以鑒別輸出結果正確與否。在TESTBENCH文件中,在生成激勵信號的同時,也把預期的輸出結果保存到判斷隊列,當接收到CPLD的輸出以后,仿真自動對比二者并得出正確與否的結論。如果存在錯誤,則錯誤計數器進行計數。

仿真的內容包括不同速率的仿真、固定數據包的仿真、隨機數據包的仿真、抗干擾能力的仿真、各種時間延遲仿真。

4 小結

本文介紹了CPLD的特點和工作流程,詳細說明了CPLD在USB協議分析儀中的功能,最后說明了CPLD的功能仿真。在本文中,完成了USB協議分析儀最重要的工作,就是把從USB收發器收到的數據流轉換成MCU數據包,等待單片機轉發給分析軟件進行分析。

參考文獻:

[1] Compaq,Intel,Microsoft,NEC.Universal Serial Bus Specification 1.1[S].USB-IF,1998.

[2] Janet L.Axelson.USB Complete[S].Lakeview Research LLC, 5310 Chinook Ln,Madison WI 53704,2005.

[3] 姚鴻強.基于FPGA的USB設備接口設計[J].江南大學學報:自然科學版,2004(1).

[4] XilinxInc.ISEWebPACK[EB/OL].[2008-09-27].http://toolbox.xilinx.com/docsan/xilinx10/books/manuals.pdf.

[5] 郇曉輝,郇曉斌,田金文.USB+FPGA系統測試設備開發[J].計算機與數字工程,2005(6).

主站蜘蛛池模板: 在线不卡免费视频| 日韩无码精品人妻| 伊人中文网| 野花国产精品入口| 91网站国产| 国产91小视频| 无码久看视频| 波多野结衣无码AV在线| 久久国产精品影院| 国产99在线| 国产色爱av资源综合区| 中文字幕欧美日韩| 成人蜜桃网| AV不卡在线永久免费观看| a亚洲天堂| 国产欧美一区二区三区视频在线观看| 伊人久久精品无码麻豆精品 | 久久人人97超碰人人澡爱香蕉| 久久精品国产免费观看频道| 国产成人久久777777| 亚洲a免费| 丁香六月激情综合| 国产成人综合亚洲网址| 国产精品久久久久鬼色| 国产麻豆精品久久一二三| 国产亚洲精品在天天在线麻豆 | 91麻豆精品国产91久久久久| 国产亚洲精品91| 精品视频一区在线观看| 九色综合视频网| 精品无码一区二区三区电影 | 国产精品私拍99pans大尺度| 91麻豆久久久| 国产伦精品一区二区三区视频优播| 久久伊伊香蕉综合精品| 一级毛片在线播放| 狼友av永久网站免费观看| 婷婷综合色| 国产导航在线| 亚洲视频黄| 欧美在线中文字幕| 精品99在线观看| 无码高潮喷水专区久久| 亚洲天堂网在线播放| 黄色网址手机国内免费在线观看| 在线日韩一区二区| 国产成人资源| 欧美啪啪视频免码| 2020国产免费久久精品99| 一本无码在线观看| 婷婷激情亚洲| 91精品专区| 四虎影视库国产精品一区| 激情国产精品一区| 青青操国产| 看国产毛片| 无码久看视频| 狠狠色狠狠色综合久久第一次| 中文国产成人精品久久| 1769国产精品免费视频| 日a本亚洲中文在线观看| 经典三级久久| 91午夜福利在线观看| 在线亚洲精品福利网址导航| 18禁黄无遮挡网站| 成人看片欧美一区二区| 亚洲精品中文字幕无乱码| 在线免费看片a| 亚洲欧洲日韩久久狠狠爱 | 日本一区二区不卡视频| 亚洲人在线| 午夜在线不卡| 精品午夜国产福利观看| 亚洲黄色成人| 91外围女在线观看| 99精品在线视频观看| 无码高潮喷水在线观看| 午夜福利网址| 国产黄网站在线观看| 午夜视频在线观看区二区| 大陆精大陆国产国语精品1024| 中文精品久久久久国产网址|