通信類終端的嵌入式USB2.0 主機的測試分析
一切看起來都是那么的順利,但是當我們通過串口進行TEST Packet命令下發(fā)之后在兩個主機接口卻看不到信號波形出現(xiàn)。因為是第一次進行嵌入式USB的測試,所以對于出現(xiàn)的問題是沒有任何經(jīng)驗可以參考和借鑒的。從串口信息來看是顯示命令下發(fā)成功的,那問題到底出在哪里呢?只有從信號流向一步一步地查找了。工程師首先測試了USB HUB與CPU之間的UpSTream接口,發(fā)現(xiàn)有相應的信號波形出現(xiàn)。也就是說USB主機控制器已經(jīng)執(zhí)行了TEST Packet命令并發(fā)送了測試碼流,問題出現(xiàn)在了USB Hub這里,它并沒有向兩個Down Stream Facing Port轉發(fā)碼流。而且原廠提供的命令也很奇怪,根據(jù)有PC主板測試經(jīng)驗的工程師的意見,對于HUB的測試應該需要指定測試端口才對。而在測試命令中我們并沒有看到相應的指令而只有簡單的TEST Packet命令。在詢問了原廠技術人員后問題有了答案:本文引用地址:http://www.ex-cimer.com/article/154260.htm
(1)原來我們采用的方案只支持一個USB 主機接口,所以在片上只集成一個USB 主機 CONtroller,測試命令也是基于主機控制器類型的。而我們的板級應用是采用了一個USB Hub與主機 Controller中繼來實現(xiàn)多端口應用的擴展,根本無法進行Hub Down Stream Facing Port的測試。
(2)并且原廠的測試是在CFE模式下通過下載運行特定的測試程式來進行測試,在這個階段,并沒有實現(xiàn)USB Hub的初始化以及配置字的操作,也就是說USB Hub是不可控的無法進入測試模式的設定。我們的多USB主機端口的應用設計使得系統(tǒng)架構中加入了USB Hub進行中繼,已經(jīng)超出了原廠設計的USB測試狀態(tài)機控制范疇,導致了無法通過原廠提供的測試命令進行測試。再次和原廠技術支持討論新的測試程式的開發(fā)從時間說來看已經(jīng)不實際了,客戶非常關注并要求我們必須盡快給到USB 主機的測試報告。第一次進行嵌入式USB 主機測試就遇到如此棘手的問題,工程師們一時間束手無策。有沒有另外的方法呢?
3 問題分析解決
在和客戶方面的資深工程師分析和討論之后,我們有了一個非常巧妙的解決方案,當然還需要實際的測試來驗證。USB專業(yè)測試人員都知道,USB IF針對USB一致性測試提供了一個專用測試工具 (USB-IF HS Electrical TEST Tool)以方便開發(fā)者進行相關的USB測試。但這個工具只能運行在PC主機上,而我們的嵌入式系統(tǒng)其實也是通過相應的底層命令來實現(xiàn)這個工具相關的測試功能。從測試拓撲來看,我們目前的問題主要在于嵌入式控制主機無法實現(xiàn)對USB Hub的控制和測試模式設定。從控制系統(tǒng)的角度來說,不管是嵌入式控制主機還是PC主機都實現(xiàn)的是USB主機控制器的作用,也就是說我們可以使用PC主機替代嵌入式控制主機,在一臺裝有USB-IF HS Electrical TEST Tool的PC上對產品板級USB Hub進行Down Stream Facing Port的TEST Packet測試了。當然,我們首先要斷開嵌入式控制主機與USB Hub之間的Up Stream Facing Port并飛線與PC主機的USB接口連接。因為測試單扳本身提供5V供電,所以我們只需要飛出D+/D-/GND三線即可。完成后的圖示如下:
USB Hub Up Stream Port飛線圖
我們使用了一臺裝有USB-IF HS Electrical TEST Tool的ThinkPad R51作為控制平臺,在按照上面的圖示進行測試連接并將產品上電之后我們在測試工具中選擇了Hub類測試并發(fā)現(xiàn)了板級的USB Hub。我們已經(jīng)初步實現(xiàn)了之前關于控制系統(tǒng)的設想,圖示如下:
控制工具設置界面
在圖示中的Port Control欄中選擇TEST Packet命令,在相應的Port欄中選擇我們需要測試的端口如1,示波器上出現(xiàn)了我們期待已久的信號波形(如下)。按照Lecroy示波器USB2.0測試軟件中的Step by Step,示波器很快就完成了測試并輸出了分析報告。有專業(yè)的分析工具就是不一樣,我們根據(jù)測試報告中的關鍵測試數(shù)據(jù),優(yōu)化了我們的電路設計使得主機接口的信號更加理想(圖示如下,本文中不對分析內容進行展開)。
優(yōu)化調整后的USB-主機眼圖
三 測試總結
此次嵌入式USB2.0主機接口眼圖的測試到此算是順利完成了,重新回顧一下我們的測試過程,感觸頗深??梢哉f因為是第一次進行USB高速主機接口的測試,前期的準備工作并不是很充分。但正是有這些突如其來的問題,讓我們可以更加深入的理解和分析USB技術的原理和測試方法,有很多的收獲和經(jīng)驗和大家一起分享:
仔細和深入的解讀產品的規(guī)范是我們順利進行測試的基礎和依據(jù),例如此次的USB2.0 SPEC。所有的設計和測試都是依據(jù)規(guī)范展開的,只有解讀了規(guī)范,才能保證理解USB2.0的內部架構和狀態(tài)控制機,才能保證測試的順利進行。
真正理解控制系統(tǒng),此次測試的關鍵在于工程師首先理解的USB2.0 SPEC的同時大膽進行了控制主機的假定替代。用歸一化的方法來審視我們的控制系統(tǒng)以及層次化系統(tǒng)功能層面是我們進行測試設計創(chuàng)新的保證。
一套真正專業(yè)實用的分析設備和工具非常關鍵,此次使用的美國力科(Lecory)的數(shù)字示波器和USB2.0分析軟件對于我們高效的分析信號和準確的定位問題非常關鍵。有了專業(yè)儀器廠商的支持才能確保產品的開發(fā)進度和質量。
當然,USB主機信號質量的測試不僅僅是眼圖部分,USB IF關于USB2.0一致性測試規(guī)范還有很多的測試項目需要完成。而且對于嵌入式USB測試而言,會面臨更多的挑戰(zhàn),希望本文可以給到從事嵌入式USB開發(fā)測試的工程師一些思路和借鑒。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論