摘要:针对企业生产
手机USB数据线时需要进行性能测试方面的要求,设计出一款以
FPGA为处理核心,USB接口
芯片为控制对象,辅之
电源、存储器、键盘、显示、静电保护和反馈输出接口等
模块组成的手机USB数据线测试仪;该测试仪按照USB通信协议把USB数据包通过被测数据线进行传输,然后通过计算其传输 USB数据包的错误率来判断数据线性能的质量好坏;通过与误码率分析仪、电脑海量传输实测的结果对比和实际应用表明,该仪器较其它测试方法具有测试速度快,测试结果准确等优点,可广泛地应用于USB数据线生产企业。
手机USB数据线是手机
用户必备的用品之一,主要功能是给手机充电和联接电脑进行数据传输。在生产手机USB 数据线时,需要进行基本电气特性检测和传输性能检测。性能检测是检测其作为USB数据线传输数据的特征,检测其传输数据的性能,最快能达多少。目前主要有3个方法。
1)使用误码率分析仪,测量数据线传输数据的误码率;
2)使用
示波器观察眼图;
3)连接电脑进行实际数据传输。使用误码率分析仪至少需要20秒,用示波器观察眼图则需要30秒,而连接电脑进行实际数据传输则需要3分钟以上。这3种方法都有设备成本高和测试速度慢的缺点,无法满足生产线的需要,所以企业只能对产品进行抽测,无法对每条数据线都进行检测,即无法保证每条数据线的传输性能。本文设计的手机USB数据线测试仪,具有测试速度快,测试性能准确等优点。可以用在数据线生产的产线上对每一条数据线进行性能检测。
1、测试原理
设计是针对手机USB数据线的特点,在企业生产线上对手机USB数据线进行性能测试。测试原理和方法是∶按照USB通信协议把USB数据包通过被测USB数据线进行传输,然后通过计算其传输USB数据包的错误率来判断数据线性能的好坏。具体实施为,如图1所示,使用两个USB接口芯片A和B连接数据线的两端,由主
控制器控制USB接口芯片A 发送数据,USB数据包经过USB数据线后,就传到USB接口B,然后主控制器从B口接收数据,最后通过比较收和发的USB数据的差异性来计算实际的传输数据包的速度,最终判断数据线性能的好坏。(如与手机USB接口对应的数据线,一般采用USB2.0的协议,其最大传输速率为60MB/s,那么我们可以认为,如果传输USB数据包的速度小于40MB/s的数据线是不合格的)。
USB通信协议中规定了控制传输、中断传输、实时传输(同步传输)和批量传输等4种数据传输事务。控制传输和中断传输主要用于低速的如USB鼠标键盘等设备;实时传输主要用于USB音响和摄像头等音
视频设备;批量传输则用于USB存储器等海量USB设备,在使用USB数据线连接手机和电脑传输数据时就是使用了批量传输事务。所以在测试时主要使用批量传输事务和同步传输事务。
2、硬件系统设计与实现
整个USB数据线测试仪的硬件系统如图2所示。系统由FPGA为核心,USB接口芯片为控制对象,辅之相应的存储器、电源、
串口和人机界面等组成。
在衡量性价比的基础上FPGA芯片选用A
LTEra公司的Cy-clone Ⅲ系列的 EP3C25F256C8N。该芯片具有24,624个LE 单元,516kbit的存储单元和156个可用IO口,内部操作频率可达250MHz。通过内建N
IOSⅡ的32位
处理器,可实现外部总线150MB/s以上的读写速度。足于满足USB测试时的数据存储需求。
电源为整个系统提供能源动力,具有20W的功率,输出5V,3.3V和1.2V等3种电压,能满足系统各部分的电源需求。
LED为3颗彩色LED用于作为运行和状态指示灯。
晶振选用50 MHz有源晶振,在FPGA内部的PLL倍频为250HMz为系统运行提供时钟。
系统中设计了3个串口,其中一个为开发调试作用,一个为跟上位机通信使用,另一个为与其它机器通信使用。
键盘采用4*4的矩阵键盘,在FPGA内部建立键盘扫描模块,负责键盘扫描。
LCD选用7寸的TFT屏,具有320*240的
分辨率,满足良好的人机操作界面和测试功能显示的需求。
USB接口芯片为ISP1581,这是一种价格低、功能强的USB接口器件,符合USB2.0规范,并为基于
微控制器或微处理器的系统提供了高速USB通信能力。系统中USB数据包的收发处理都在在芯片内完成,外部为16位的数据总线与FP-GA系统相连,最快的读写速度为20 ns,能满足USB2.0的最大传输速率需求,
电路图如图3所示。
SED保护芯片选用NUP4114UPXV6,这是一款非常适合USB高速数据线路
ESD保护的
tvs二极管阵列。该器件满足13kV接触放电的系统级IEC61000——4——2标准,能在仪器使用过程中,起因拔插数据线产生静电保护USB接口芯片的作用。
SRAM使用了4片512*16Kbit的IS61LV51216组成4Mbit存储器作为系统的内存使用,该芯片为16位总线接口,最快的读写速度为125MHz,可提供250MB/S的读写带宽,满足数据线最高传输速率60MB/s的要求。
FLASH为AM29LV160B,芯片有16MBit的容量,作为系统的程序存储器,用于存储系统运行的程序和非易失性数据。该芯片为AMD公司生产的
CMOS Flash存储器提供16位的数据宽度,典型的访问时间为50 ns,为系统的高速运行提供保障。
PROMS是FPGA是重配置芯片,选用EPCS16SI16N,提供了16 MBit的容量,可满足系统设计的重配置要求。
3、软件设计
本系统的软件设计采用至顶向下的模块化设计方法。软件都是FPGA内完成的,很多处理电路采用硬件软件化的技术在FPGA内完成。软件结构图如图4所示,软件设计分两大部分,一个基于VHDL的FPGA设计,另一个基于
C语言的Nios Ⅱ的程序设计。
3.1 FPGA设计
FPGA的设计主要是采用VHDL语言设计,有串口通信控制器、TFT驱动控制器和键盘扫描控制器等。
用Mealy状态机实现了3个串口通信控制器并给主控程序开放了收发寄存器。用Moore状态机实现5*5矩阵键盘的扫描,该状态机能自动识别键盘的变动,并输出中断
信号给Nios Ⅱ主控器。采用
Altera公司提供的TFT驱动控制器IP核,该IP核提供了4位的配置器,可实现16种彩色的320*240屏的显示和控制。
3.2 Nios Ⅱ的程序设计
NiosⅡ的程序主要有主控程序、通信程序、界面程序和USB读写程序等4大块。通信程序是负责3个串口通信的功能;根据主控程序要求实现串口数据的收发。界面程序负责界面的绘制与显示。USB 读写程序负责USB接口芯片的读写,实现USB数据包的收发功能。
主控程序是系统运行的主程序,负责调用各个子程序完成系统的运行,如读取键盘扫描的按键信息,判断用户的操作意图,然后通知界面程序完成界面的操作显示。主要工作是通过
读写USB接口芯片,实现USB数据包的收发和差错统计。
更多详细内容请下载附件查看