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

USB總線信號分析系統的設計與實現

2010-11-25 02:37:16盧宇清
制造業自動化 2010年15期
關鍵詞:信號用戶設備

盧宇清,張 巍

LU Yu-qing1,2, ZHANG Wei2

(1.河南師范大學 物理與信息工程學院,新鄉 453007;2.河南農業職業學院,鄭州 451450)

1 研究背景和意義

Universal Serial Bus(USB)是連接外部設備和主機的一種標準接口。隨著微軟在操作系統中內置了對USB接口的支持模塊,加上USB設備的日漸增多,USB接口逐步走進了實用階段。

USB是一種靈活的接口技術,可替代計算機中串行口或并行口,支持許多新型的接口。USB的超強性能意味著要比它所替代的老式串行接口和并行接口都復雜。實現USB接口是一個極大的挑戰。不管是USB主機一側的開發,還是USB設備一側的開發,從技術角度來講,都有相當的難度。

2 USB總線信號分析系統的組成及功能分析

USB總線信號分析系統其整體功能的實現是一個軟硬件協同工作的過程。USB總線信號分析系統由六部分組成:用戶USB總線信號采集電路、CPLD硬件與Verilog程序、FIFO存儲器、MCU硬件與固件程序、設備驅動程序和信號分析軟件。前四部分裝配在一塊線路板上,構成系統的硬件;后兩部分安裝在分析主機上,為系統的高層軟件。為使系統正常工作,必須把各種設備正確連接起來,還要安裝設備驅動程序和信號分析軟件。

2.1 用戶USB總線信號獲取

USB電纜兩端各有一個連接器,中間不允許分叉。連接到用戶USB總線上需要使用兩個USB連接器,通過板上的布線直接相連。一個通過一條電纜連接到用戶USB主機,另一個連接器通過另外一條電纜連接到用戶設備。在線路板上放置一個USB收發器,與兩個USB連接器相連。在信號傳輸的時候,就能同時接收USB總線上的信號。

2.2 CPLD編碼

CPLD是一種用戶根據需要而自行構造邏輯功能的數字集成電路。CPLD是整個系統中非常關鍵的一個部件,它直接決定系統實現的成功與失敗。因此,必須認真分析需求,周密設計代碼,合理仿真功能,力求最大限度地有效利用CPLD的功能。

2.2.1 CPLD功能

在USB總線信號分析系統中,為了準確地接收USB的數據流,CPLD中設置了去噪聲模塊,既使接收的數據中混入了噪聲,接收器也能正常工作。要正確獲得數據,首先要正確恢復時鐘。低速USB的發送時鐘為1.5MHz,全速USB的發送時鐘為12MHz,CPLD也必須生成相應的接收時鐘信號,為此,CPLD中設置了一個相位跟蹤電路(DPLL)。

2.2.2 相位跟蹤電路

DPLL(Digit Phase Lock Loop)是一種使輸出信號相位與輸入信號相位保持一致的電路,也就是相位跟蹤電路。在UPA11中,DPLL根據用戶USB總線的速率產生1.5MHz或12MHz數據接收時鐘,該電路監視輸入信號的變化,一旦發現信號出現了邊沿,立即調整接收時鐘的相位,確保與發送時鐘同步,同時保證了讀取數據的準確性。

2.2.3 有限狀態機(FSM)

FSM(Finite State Machine)稱為有限狀態機,是CPLD/FPGA中最常用的部件之一。通常,用FSM實現各種各樣的狀態轉換圖。FSM有四個狀態,即初始狀態、SE0狀態、空閑狀態和接收狀態,用來表示用戶USB總線的活動。這四個狀態覆蓋了所有用戶USB總線狀態和用戶USB總線事件,低速和全速也都支持。

用戶USB總線有四種基本狀態:SE0狀態、空閑狀態、J狀態和K狀態。空閑狀態與J狀態的差別僅在于驅動器是否驅動,它們對應的DP、DM和RCV都是相同的。為此,把空閑狀態與EOP中的J狀態合二為一,統稱為空閑狀態。

用戶USB總線傳輸數據包時,涉及到的狀態只有兩個,即J狀態和K狀態。把這兩個狀態合并為接收狀態,為“正在接收用戶USB總線上的數據包”之意。接收狀態也包括遠程喚醒信號,只不過接收到的將是以FE打頭,后跟若干個FF的數據包。

用戶USB總線的事件有設備插入、設備拔出、設備復位、設備掛起、設備恢復等,對應FSM的一種或幾種狀態。

綜上所述,用戶USB總線狀態和事件都可以歸納到FSM狀態機的一種或幾種狀態。

根據USB 1.1規范,USB總線的速率是由D+或D-的上拉電阻決定的。識別速率的最準確的位置應該是從SE0狀態轉換到空閑狀態的時刻。如果空閑狀態時DP=1,則用戶USB總線是全速。否則,如果DM=1,則用戶USB總線是低速。

2.2.4 MCU數據包裝配

CPLD輸入信號是DP,DM和RCV,輸出的則是MCU數據包。MCU數據包是對USB數據包的再次封裝,其一般格式為:

STX USB數據包 ETX

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

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

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

2.2.5 數據輸出

數據輸出包括輸出隊列的管理、輸出總線和寫入信號管理兩部分。輸出隊列的管理包括取數據和指針移動。

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

2.3 MCU固件

MCU(Micro Controller Unit),簡稱單片機,是指隨著大規模集成電路的出現及其發展,將計算機的CPU、RAM、ROM、定時器和多種I/O接口集成在一片芯片上,形成芯片級的計算機。

MCU主要功能有:MCU初始化;中斷服務程序;USB標準請求服務程序;讀取FIFO數據;向分析主機轉發數據。MCU的主要作用是把CPLD生成的數據轉發給分析主機。

MCU固件分中斷服務程序和主程序,這兩部分程序交叉執行,中斷可能在主程序的任何地方發生并開始執行中斷服務程序。中斷服務程序基本上是線性執行的,主程序除了初始化部分以外則是無窮循環執行。

2.4 分析軟件的實現

USB總線信號分析系統必須配合適當的分析軟件才能發揮作用。分析軟件安裝在計算機上,由應用程序、動態連接庫、設備驅動程序三部分組成,它們相互協調,完成數據控制、傳輸、分析等工作。

2.4.1 驅動程序

馬戴的思鄉情結與隱逸情懷也是聯系在一起的,他在詩中每次提到回到家鄉就是要去過隱居生活,如其《客行》云:

所有USB設備必須有匹配的設備驅動程序才能正常工作,UPA11的設備驅動程序來自Microchip公司的通用USB驅動程序,當前最新版本是Microchip MCHPFSUSB v2.1,可從該公司網站免費下載。

2.4.2 應用程序對UPA11硬件的訪問

應用程序對硬件的訪問包括開始捕捉、停止捕捉和讀取數據。

控制捕捉是通過向OUT1管道發送一個控制位來實現的,如果向OUT1端點發送的第一個字節的最高位為1,就會打開硬件捕捉功能;否則關閉捕捉。捕捉的數據是通過IN1端點傳輸到應用軟件的。一旦開始捕捉,應用軟件必須始終讀取UPA11的數據,否則可能丟失數據。

2.4.3 快速讀取UPA11的數據

一旦啟動捕捉,在短時間內,CPLD可能輸出大量數據。為了防止數據丟失,唯一的辦法就是使用緩存。當FIFO緩存中存有數據以后,MCU必須盡快取出,并存儲到IN1端口的數據區,一旦MCU收到主機發來的IN數據包,可以立即發送出去。為了減少時間延遲,MCU內部設置了14個IN1端口的數據區,作為數據緩沖。

對于從FIFO取來的數據,MCU只是簡單地放入某一個IN1數據區,當一個數據區放滿,則轉到下一數據區,除非所有數據區都存滿了數據。

2.4.4 USB數據包分離、檢測、過濾

從硬件得到的是連續的數據流,首先必須從這些數據流中分離出一個一個的USB數據包,然后才能對它們進行分析和顯示。CPLD在發送USB數據包時采用了編碼,在應用程序中,必須對這種編碼后的數據進行解碼,還原出原來的USB數據包。

當一個USB數據包被分離出來后,首先必須進行錯誤檢測,找出其中可能存在的各種錯誤,包括同步錯、PID錯、CRC5錯、CRC16錯等。分析出錯誤的類型以后,用戶可以查找錯誤的原因。

過濾是UPA11的重要功能,通過使用過濾器,可以僅顯示那些感興趣的數據包,而那些SOF、NAK之類的數據包可以被屏蔽。

2.4.5 USB數據包分析

USB包(Packet)是最小的傳輸單位,其中的數據不容易被人們理解,但顯示這些數據卻是必需的。如果把一個USB事務的所有包集中為獨立的一項,并根據令牌包恰當命名,便很容易讓人們在更高的層次上理解其作用。一個USB傳輸或USB請求可能有1~n個USB事務組成。如果能在USB傳輸或USB請求的級別上進行歸納分析,并以樹狀層次顯示出來,將有很大的價值。

為實現這些功能,必須跟蹤USB主機和USB設備的所有數據包,確定每一個數據包所處的位置,并根據上下文總結出符合邏輯的功能描述。當收到一個USB數據包以后,應用程序需要做以下處理:根據狀態機的當前狀態和輸入的包,決定下一狀態;根據當前狀態和下一狀態,在顯示樹的不同層次上建立相應的顯示節點;如果條件滿足,為更高的層歸納出一個概括性的功能。為此,應用軟件內部設置了一個USB數據包狀態機,該狀態機始終描述USB主機與設備之間數據傳輸的狀態,它支持USB的四種傳輸類型。

3 結束語

本文在USB1.1規范的基礎上,根據國內外USB接口的發展現狀,做了一些研究,也得到了一些有意義的結果,完成了USB總線信號分析系統的設計與實現。但是USB總線信號分析研究仍處于初級階段,后期可以進行硬件、固件的升級和應用軟件的擴展。

[1] 蔡軍生.USB協議深入分析.[J/OL].

[2] 中國IT實驗室.USB設備的調試與測試技巧.[J/OL].

[3] Microchip Technology Inc.PIC18F2550 Data Sheet(Chinese).[J/OL].

猜你喜歡
信號用戶設備
諧響應分析在設備減振中的應用
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: av无码一区二区三区在线| 欧美日韩导航| 中文字幕66页| 精品无码一区二区三区在线视频| 日韩在线第三页| 九九视频免费看| 色九九视频| 伊人久久综在合线亚洲91| 久久99热这里只有精品免费看| 99免费在线观看视频| 99久久性生片| 亚洲伊人天堂| 狠狠v日韩v欧美v| 五月天久久婷婷| 欧美日韩成人| 亚州AV秘 一区二区三区| 免费99精品国产自在现线| 在线观看av永久| 狠狠做深爱婷婷久久一区| 亚洲第一区欧美国产综合 | 少妇精品网站| 免费高清a毛片| 欧美成人第一页| 国产精品欧美亚洲韩国日本不卡| 人妻一本久道久久综合久久鬼色| 国模极品一区二区三区| 色精品视频| 无码视频国产精品一区二区| 欧美激情,国产精品| 九九热视频精品在线| 久久久精品久久久久三级| 亚洲日产2021三区在线| 中文毛片无遮挡播放免费| 无码有码中文字幕| 欧美国产日韩在线播放| 黄色国产在线| 666精品国产精品亚洲| 美女视频黄频a免费高清不卡| 国内精品视频在线| 国产精品分类视频分类一区| 亚洲国模精品一区| 国产精品久久久精品三级| 99国产精品一区二区| 成人午夜天| 国产精品自在线天天看片| 欧美日韩一区二区三区四区在线观看| 亚洲欧美国产五月天综合| 国产精品久久久久久久久| 亚洲免费福利视频| 91免费观看视频| 麻豆国产在线观看一区二区| 无遮挡一级毛片呦女视频| 久久久久久久久亚洲精品| 亚洲Aⅴ无码专区在线观看q| 精品国产91爱| 久久一本精品久久久ー99| 精品人妻无码中字系列| 毛片视频网址| 日韩欧美中文字幕一本| 精品人妻系列无码专区久久| 就去色综合| 日本欧美精品| 免费看的一级毛片| 国产色婷婷| 中文无码精品A∨在线观看不卡 | 国产精品开放后亚洲| 国产精品一区二区不卡的视频| 国产美女无遮挡免费视频| 99激情网| 亚洲综合精品香蕉久久网| 伊人国产无码高清视频| 免费A级毛片无码无遮挡| 欧美日韩综合网| 国产欧美日韩91| 在线高清亚洲精品二区| 中文字幕调教一区二区视频| 伊人色综合久久天天| 亚洲色图在线观看| 亚洲国产天堂久久九九九| 国产精品久久精品| 亚洲不卡av中文在线| 77777亚洲午夜久久多人|