東莞理工學(xué)院電子工程與智能化學(xué)院 葉清新 陳平平 張志堅
基于ISP1161的手機USB數(shù)據(jù)線測試儀的研制
東莞理工學(xué)院電子工程與智能化學(xué)院 葉清新 陳平平 張志堅
本文介紹了一種基于ISP1161的手機USB數(shù)據(jù)線測試儀的設(shè)計方案,詳細(xì)介紹了其測試原理,以及系統(tǒng)硬件及軟件設(shè)計與實現(xiàn)。該方案以USB接口芯片ISP1161為USB主機,以USB接口芯片PDIUSBD12為USB設(shè)備,以STM32為主控制器;根據(jù)USB2.0協(xié)議把USB數(shù)據(jù)包通過USB主機發(fā)送,通過被測USB數(shù)據(jù)線傳到USB設(shè)備,然后計算USB數(shù)據(jù)包的出錯率來判斷USB數(shù)據(jù)線性能的好壞。
ISP1161;PDIUSBD12;USB;數(shù)據(jù)線;測試儀
隨著智能手機的大量普及,手機USB數(shù)據(jù)線給手機用戶帶來越來越多的便利,通過USB數(shù)據(jù)線跟電腦連接,手機用戶可以從電腦上面免費下載圖片、鈴聲、電影等等,甚至還可以實現(xiàn)手機跟電腦雙向上網(wǎng)[1-2]??梢?,手機USB數(shù)據(jù)線對手機用戶來說非常重要。手機USB數(shù)據(jù)線在生產(chǎn)出來后,需要進行質(zhì)量檢測,主要包括基本電氣特性檢測和傳輸性能檢測。測試USB數(shù)據(jù)線基本電氣特性的方案已經(jīng)比較成熟,也有很多相關(guān)的測試儀器。但是對USB數(shù)據(jù)線傳輸性能檢測的方法,目前主要有誤碼率分析儀分析法、示波器眼圖觀察法、連接電腦進行實際數(shù)據(jù)傳輸法,以及專門的USB數(shù)據(jù)線傳輸性能測試儀測試法等[3-6]。前面三種方法都存在耗時長、成本高等問題,最后一種方法雖然測試速度快,但是價格昂貴。本文介紹的基于ISP1161的手機USB數(shù)據(jù)線測試儀的設(shè)計方案,具有測試速度快、準(zhǔn)確度高、成本低等特點,可滿足企業(yè)對USB數(shù)據(jù)線傳輸性能檢測的需求。
1.1 理論基礎(chǔ)
USB2.0協(xié)議規(guī)定了4種傳輸類型:批量傳輸、等時傳輸(同步傳輸)、控制傳輸和中斷傳輸??刂苽鬏斨饕糜赨SB枚舉;中斷傳輸通常用于數(shù)據(jù)量不大,但對時間要求比較嚴(yán)格的鼠標(biāo)、鍵盤等設(shè)備。批量傳輸主要用于USB打印機、掃描儀等數(shù)據(jù)量大、對數(shù)據(jù)的實時性要求不高的設(shè)備。等時傳輸主要用于USB音響、USB攝像頭等數(shù)據(jù)量大、對實時性要求高的設(shè)備[7-8]。手機通過USB數(shù)據(jù)線連接電腦,與電腦進行數(shù)據(jù)傳輸?shù)倪^程中使用的就是批量傳輸。所以本系統(tǒng)主要對USB數(shù)據(jù)線進行批量傳輸和等時傳輸測試。
1.2 測試原理
本設(shè)計根據(jù)手機USB數(shù)據(jù)線的特點,先對手機USB數(shù)據(jù)線進行簡單的短斷路測試,如果被測手機USB數(shù)據(jù)線沒有短斷路的情況,然后進行傳輸性能測試。測試原理和方法是:
①簡單的短斷路測試原理和方法:如圖1所示,首先向A1輸出高電平信號,理論上,只有對應(yīng)的B1端口的狀態(tài)為高電平,其它的A2-A4、B2-B4端口都應(yīng)該為低電平。如果B1端口為低電平,則表示發(fā)生斷路(即連著A1和B1的線斷了);如果檢測到A2-A4、B2-B4的任何一個端口為高電平,則表示此端口對應(yīng)線與A1或B1端口發(fā)生短路。
圖1 簡單短斷路測試原理
②傳輸性能測試原理:如圖2所示,根據(jù)USB2.0協(xié)議,由主控制器產(chǎn)生USB數(shù)據(jù)包,寫到USB主機(USB接口芯片A)RAM,通過其發(fā)送出去,然后從USB接口A傳到被測USB數(shù)據(jù)線,經(jīng)被測USB數(shù)據(jù)線傳到USB接口B,接著由USB設(shè)備(USB接口芯片B)接收,最后主控制器從USB設(shè)備(USB接口芯片B)RAM中讀取USB數(shù)據(jù)包,通過計算USB數(shù)據(jù)包的錯誤率來計算實際的USB數(shù)據(jù)包傳輸速度,從而判斷被測USB數(shù)據(jù)線性能的好壞。
圖2 傳輸性能測試測試原理
基于ISP1161的手機USB數(shù)據(jù)線測試儀的硬件系統(tǒng)如圖3所示。本系統(tǒng)由主控制器STM32、電源、聲光報警模塊(LED和蜂鳴器)、人機交互模塊(按鍵和LCD)、USB接口芯片高速模擬開關(guān)和靜電保護等模塊組成。
圖3 硬件結(jié)構(gòu)圖
2.1 元器件選型
USB接口芯片A(USB主機)為ISP1161,這是一款既帶主機控制器(HC)又帶設(shè)備控制器(DC)的USB接口芯片,符合USB2.0規(guī)范。本系統(tǒng)使用了其中一個主機接口,其為基于微控制器或微處理器的系統(tǒng)提供了全速(12Mbit/s)USB通信能力[8]。ISP1161通過16位的并行數(shù)據(jù)總線與STM32系統(tǒng)相連,其最高的傳輸速率可達15Mbyte/s,能滿足USB2.0的全速(12Mbit/s)傳輸速率需求。
USB接口芯片B為PDIUSBD12,這是一顆通用的USB接口芯片。它支持USB2.0的全速模式(12Mbit/s),具有軟連接功能和數(shù)據(jù)流指示燈[7];它使用8位并行數(shù)據(jù)口與STM32連接,1 Mbyte/s的數(shù)據(jù)傳輸數(shù)據(jù),能滿足USB2.0的全速(12Mbit/s)傳輸速率需求。
STM32芯片選用ST公司的STM32F10X系列STM-32F103VET6。該芯片具有64KB SRAM、512KB FLASH、5個串口、8個定時器和85個通用IO口。CPU速度可達72MHz,具有30Mbit/s以上的IO讀寫速度,足于滿足USB測試時的數(shù)據(jù)傳輸控制和數(shù)據(jù)存儲需求。
ESD保護芯片采用NUP4114UPXV6,這是專門用作高速數(shù)據(jù)線防靜電保護的TVS陣列,非常適合USB2.0設(shè)備使用。所以本系統(tǒng)采用其來保護USB接口芯片,防止拔插USB數(shù)據(jù)線過程中產(chǎn)生靜電把芯片燒壞。
高速開關(guān)選用FSUSB30MUX,這是一款低功率、雙通道、高速USB2.0開關(guān)。滿足本系統(tǒng)中進行短斷路測試時D+/D-線在USB接口芯片和STM32 IO口之間的切換要求。
圖4 ISP1161的外圍電路圖
2.2 ISP1161的外圍電路
ISP1161外圍電路圖如圖4所示。采用3.3V供電Vcc、Vreg(3.3)、 Vhold1、Vhold2引腳直接接3.3V電源,由于本系統(tǒng)中USB主機接口端,無需給USB設(shè)備端供電,所以無需過流檢測,H_OC1通過10KΩ電阻上拉到3.3V即可。本系統(tǒng)僅使用ISP1161的主機端口1,所以對于其主機端口2和設(shè)備端口相關(guān)引腳采取懸空處理。ISP1161主機端口1的2個下行端口的下拉電阻通過對寄存器的設(shè)置選用內(nèi)部的2個15 KΩ下拉電阻[9-10]。
2.3 PDIUSBD12的外圍電路
PDIUSBD12的外圍電路圖如圖5所示。同樣采用3.3V供電,其VDD和VOUT3.3引腳直接接3.3V即可。本系統(tǒng)不使用其DMA功能,所以DMA相關(guān)引腳上拉處理。
圖5 PDIUSBD12的外圍電路圖
軟件結(jié)構(gòu)圖如圖6所示。
圖6 軟件結(jié)構(gòu)圖
本系統(tǒng)程序主要包含主控程序、串口通信程序、界面程序、USB通信程序和USB數(shù)據(jù)線短斷路測試程序等5大部分。通信程序主要負(fù)責(zé)2個串口通信的功能,為程序調(diào)試和TFT屏數(shù)據(jù)傳輸服務(wù)。界面程序負(fù)責(zé)把需要的信息顯示出來以及采集TFT屏的觸摸輸入信息。USB通信程序負(fù)責(zé)ISP1161和PDIUSBD12的底層驅(qū)動,以及主控制器對這兩個USB芯片的讀寫,以實現(xiàn)USB數(shù)據(jù)包的收發(fā)功能。
3.1 ISP1161軟件設(shè)計
PTD(Philips Transfer Descriptor)數(shù)據(jù)結(jié)構(gòu)提供了HCD與ISP1161A1 USB HC之間的通信,PTD稱為PTD數(shù)據(jù)頭,其結(jié)構(gòu)如圖7所示,其中字節(jié)7保留。
圖7 PTD數(shù)據(jù)頭結(jié)構(gòu)
其C語言實現(xiàn)如下。
//PTD數(shù)據(jù)頭結(jié)構(gòu)體定義
typedef struct PTD
{
volatile union
{
unsigned short Word;
struct
{
unsigned int ActualBytes :10;
unsigned int Toggle :1;
unsigned int Active :1; unsigned int CompletionCode :4
} BIT;
} Word0;
volatile union
{
unsigned short Word;
struct
{
unsigned int MaxPacketSize :10;
unsigned int Speed :1;
unsigned int Last :1;
unsigned int EndpointNumber :4;
} BIT;
} Word1;
volatile union
{
unsigned short Word;
struct
{
unsigned int Totalbytes :10;
unsigned int DirectionPID :2;
unsigned int :4;
} BIT;
} Word2;
volatile union
{
unsigned short Word;
struct
{
unsigned int FunctionAddress :7;
unsigned int Format :1;
unsigned int :8;
} BIT;
} Word3;
} PTD_TypeDef;
3.2 主控程序程序設(shè)計
主程序流程圖8所示。
主控程序主要通過調(diào)用各個子程序完成系統(tǒng)的運行,包含系統(tǒng)參數(shù)初始化(如STM32時鐘初始化,IO口初始化以及USB接口芯片的初始化配置)、顯示系統(tǒng)菜單界面、USB數(shù)據(jù)線短斷路測試、USB枚舉(包括USB設(shè)備的設(shè)置地址和設(shè)置配置請求)、出錯時聲光報警、正常時進行批量傳輸和等時傳輸?shù)冗^程,其主要工作是通過對USB接口芯片的讀寫,來實現(xiàn)USB數(shù)據(jù)包的收發(fā)和錯誤率計算。
圖8 主控程序流程圖
本文設(shè)計并實現(xiàn)了一種基于ISP1161的手機USB數(shù)據(jù)線測試儀,詳細(xì)介紹了其測試原理,以及系統(tǒng)硬件及軟件設(shè)計與實現(xiàn)。本手機USB數(shù)據(jù)線測試儀具有測試速度快、準(zhǔn)確度高、成本低等特點,可滿足企業(yè)對USB數(shù)據(jù)線傳輸性能測試的需求。
[1]李小翠.實現(xiàn)Android雙向上網(wǎng)[J]電腦迷,2011(19):34-35.
[2]王謙,符秀輝.基于手機的網(wǎng)絡(luò)遙操作機器人系統(tǒng)實現(xiàn)研究[J].儀器儀表學(xué)報,2014,29(4):365-367.
[3]陳平平,楊雷,張志堅.手機USB數(shù)據(jù)線測試儀的研制[J].計算機測量與控制,2015,05:1841-1843.
[4]從德強.USB2.0 Hi-speed在手機設(shè)計中的應(yīng)用及信號完整性分析[J].電腦知識與技術(shù),2008(Z1):43-44.
[5]胡為東.USB3.0一致性測試方法[J].國外電子測量術(shù),2011,30(10).
[6]瀟瀟.R_S公司為RTO示波器的USB測試方案增加觸發(fā)與解碼選件[J].電信網(wǎng)技術(shù),2014,10:88.
[7]Universal Serial Bus Specification,Revision2.0[EB/OL].http://www.usb.org/developers/docs/usb20_docs/,2000.
[8]劉榮.圈圈教你玩USB[M].北京:北京航空航天大學(xué)出版社,2013.
[9]PhiIips.ISP1161 Product Data Sheet[EB/OL].http:/www.semiconductors.phiIips.com/buses/usb/products/host/ispll6X/,200l.
[10]張玘,金光虎,馬旭哲.基于ISP1161的USB HOST技術(shù)應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2004(12).
Development of Mobile Phone USB Data Cable Tester Based on ISP1161
YE Qingxin,CHEN Pingping,Zhang Zhijian
(School of electronic engineering and intelligent engineering,Dongguan University of Technology,Dongguan,Guangdong,523808)
The design scheme of a USB data wire test instrument based on ISP1161 was introduced in this paper,The testing principle,hardware and software design and implementation of the system were described in detail.The program uses USB interface chip ISP1161 as the USB host,USB interface chip PDIUSBD12 as the USB device,STM32 as the main controller.According to the USB2.0 protocol,the USB data packet is sent through the USB host and transmitted to USB device through the tested USB cable.And then calculate the error rate of USB packets to determine the performance of USB data cable is good or bad.
ISP1161;PDIUSBD12;USB;Data cable;Tester
葉清新(1993—),男,廣東茂名人,大學(xué)本科在讀,研究方向:電子信息工程。
2015年國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201511819002);廣東省科技計劃項目(2016B090918131,2015A020214024)。
陳平平(1983—),女,廣東湛江人,碩士,高級實驗師,主要從事嵌入式、電子測控方面研究。