2种USB接口传感器设计
0赞
1 引言
图像处理、瞬态信号检测等领域要求高速度、高精度、高实时性的数据采集与处理技术,因此对高速图像采集系统的数据传输提出更高要 求。现在高速图像采集系统一般采用高性能数字信号处理器(DSP)和高速总线的框架结构。DSP完成计算量巨大的实时处理算法,高速总线实现处理结果或采 样数据的快速传输,可采用ISA、PCI、USB等高速总线,而USB总线具有安装方便、高带宽、易扩展、传输速率高达480 b/s,已成为计算机接口的主流。因此,这里介绍一种采用USB2.0接口和高性能DSP的高速图像采集处理系统,主要应用于井下视频检测,也可应用于光 纤通信、雷达信号处理等领域。
2 图像采集系统硬件设计
2.1 系统硬件设计架构
图1为该高速图像采集系统硬件 设计架构。该系统设计选用ICX205AL型CCD传感器来采集图像,前端被测物体的光线经光学系统聚集在CCD传感器上,然后输出信号经低噪声的 OP37传输至高速、高精度的AD9220型A/D转换器,所转换的数据再经DSP预处理,通过USB接口器件传输给PC机,这样就完成了图像采集过程。

ICX205AL型高速面阵CCD传感器的有效像素可达到1145 M(1 392 Hx1 040 V),水平驱动频率141 318 MHz,并具有灵敏度高、暗电流小、分辨率高、转移速度快、连续可调电子快门等特点。
该系统设计选用TMS320DM6437型高性能的数字媒体 处理器DSI作为核心控制。TMS320DM6437通过HPI接口访问USB接口器件。HPI接口是一个并行端口,16位数据总线宽度,8级深度内部读 写缓存,通过HPIC、HPIA、HPID 3个寄存器组合易于实现主机对DSP的控制。主机(上位机)通过HPI接口直接访问DSP的全部存储空间,包括存储映射的外围设备。主机和DSP都可访问 HPI的控制寄存器(HPIC),此外,主机还可访问地址寄存器(HPIA)和数据寄存器(HPID)。
USB接口器件采用 Cypress公司的CY7C68033,其内部集成有USB2.0收发器、串行接口引擎(SIE)、增强型的8051内核和可编程控制的外围接口 (GPIF),可提供高速数据传输有效、方便的解决方案。CY7C68033的固件程序位于内部RAM中,由uSB或电子可擦写可编程只读存储器 (EEP-ROM)下载;具有4个可以自由编程分配控制的端点;8位或16位外部数据接口:内部具有4个集成的FIFO,对外有两种接口模 式,Master模式使用GPIF接口,Slave FIFO模式使用集成的FIFO供外部设备读写,很容易与外部的专用集成电路或DSP器件连接;内置增强型的8051内核时钟最高可达48 MHz,其指令周期只需4个时钟周期;具有2个通用异步收发器(UART)、3个定时计数器、扩展的中断系统;内置2个I2C总线控制模块。
2.2 USB接口设计
图2是该高速图像采集系统的USB接口电路连接图。

图2中,CY7C68033的PA3~PA2引脚作为地址线与 TMS320DM6437 DSP的HCNTL[1:0]相连,用于选择HPI的寄存器与工作模式;FD[15:0]作为16位数据总线与HPl的数据总线HD[15:0]相连,用 于交换数据;CTLx引脚为GPIF的输出控制信号,RDYO引脚为GPIF的输入控制信号。由于访问HPI寄存器需两次半字传输,因此使用 CY7C68033的CTL0引脚进行控制。TMS320DM6437的HR/W接至CTL1,用来作为读/写选择标志;HDS1与CTL2相连,作为数 据选通信号。HRDY与输入信号线RDYO相连,用于查询HPI接口状态,GPIF通过监测该信号以控制内部存取操作。TMS320DM6437的 HINT与CY7C68033的INT0引脚相连,DSP复位时HINT引脚启用,该引脚也用于DSP向CY7C68033发送外部中断请求。另 外,TMS320DM6437的HCS3引脚接地表示可对HPI进行连续存取操作。
USB(通用串行总线)作为一种外设连接技术,是计算机外设连接技术的重大变革,USB具有速度快、通用性好、扩展性强、功耗低、稳定、易开发等众 多优点,在实践中获得了广泛的应用,逐步成为PC机的一种标准接口。USB接口控制芯片是实现USB设备与主机建立通信所必须的芯片,目前国内的USB开 发者所采用的芯片都是由国外的芯片商所提供,如Cypress、NEC、Motorola等大的IC设计公司,价格较贵。由于USB的广泛应用,国内外众 多科研机构和集成电路设计公司都把目光投向USB这项具有广阔市场前景的技术。USB内核(USB Core)是USB接口控制芯片的关键模块,设计一个稳定、高速的USB内核更是芯片成功推向市场的前提。
1 USB通信原理
USB 通信逻辑上分成了3层:信号层、协议层和数据层。信号层用来实现在USB设备和主机的物理连接之间传输位信息流的信息。逻辑层用来实现在USB设备和 USB主机端的协议软件之间传输包字节流的信息,它们在信号层被编码成NRZI位信息后传送出去。数据传输层用来实现在USB主机端的客户端驱动程序和设 备端的功能接口之间传输有一定意义的信息,这些信息在协议层被打包成包格式。
1.1 传输的基本单元
包(Packet)是USB系统中信 息传输的基本单元。结构,如图1所示,根据USB规范,包的类型有:令牌包、数据包、握手包和专用包。

USB总线操作(通讯过程)都可以归结为3种包的传输:令牌包、数据 包和应答包。任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号,称之为令牌包Foken Packet。然后由在令牌中指定的数据发送者发出一个数据包Data Packet或者报告它没有数据可以传输。而数据的目的地一般要以一个应答包Handshake Packet做出响应表明传输是否成功。
1.2 事务处理
事务处理(Transaction)是指USB总线上数据信息的一次接收或发送的处理过程。事务处理的类型包括输入事 务、输出事务、设置(Setup)事务,帧开始(SOF),帧结束(EOF)等类型,下面以输入事务处理为例加以介绍。
如图2显示了输入事务处理 中无差错事务情况,首先由主机向总线发出输入令牌包通知某个设备向主机发送数据;当所指定的设备接收到此令牌包并检验身份后,将准备好的数据组装成数据包 向主机传送出去;接着当主机接收到的数据经校验无差错后,创建一个ACK的握手包返回给设备通知主机已正确接收到数据,然后进行新的事务处理过程。若主机 接收数据包错误,则不发送ACK握手包,表示处理过程没有成功;若设备未准备好数据,设备会向主机发送NAK握手包,提醒主机暂时不能发送数据;若设备出 错,则返回主机STALL握手包通知设备出错。

1.3 总线传输
为了满足不同外设和用户的要求,USB提供 了4种传输方式:控制传输、实时传输、中断传输、批量传输。它们在数据格式传输方向数据包容量限制和总线访问限制等方面有着各自不同的特征。
控制 传输用来对设备进行初始化和配置管理,所有USB设备必须直接控制传输,是总线传输中最复杂的传输方式;实时传输用来传送音频或视频的数据;中断传输用来 传输类似PCI或ISA总线上中断信号的数据;批量传输用于打印机或扫描仪等传输大块数据的设备。
控制传输一般包括2或3个事务处理阶段,即设置 阶段,数据阶段(可选)和状态阶段。图3给出了设置阶段的细节。如果数据没有正确接收设备就会忽略它,而且不返回应答包。

2 USB IP模块设计和代码编写
USB接口主要有 UTM(USB Transceiver Macrocell)、SIE(SefiM Interface Engine)和设备功能总线组成。电路结构,如图4所示,时钟域分为:Transceiver时钟域,SIE时钟域和Wish- bone总线时钟域。

2.1 UTM模块
USB总线数据线由DP和DN组成,是 I/O端口。并行通过对DP和DN的上拉、下拉来区别低速USB设备和高速USB设备。
USB总线上的数据首先通过UTM,进行 NRZI****和位剥离后,串并转换为8位并行数据,传送给SIE中的UTMI或从UTMI接收8位并行数据,经过NRZI编码和位填充后,发送到 USB总线。由于USB系统采用NRZI编码,对于一串0来说,它的数据线的电平状态会按位跳变,对以一串l则不然,电平会长时间不变,可能导致数据接受 方的时间同步漂移,为了避免漂移,每遇到6个1就在NRZI编码之前加0,即位填充。
NRZI的vefilog实现代码为:


2.2 串行接口引擎
串行接口引擎(Serial Interface Engine,SIE)主要由PL(Protocol Layer),MA(memory buffer arbiter),UTMI(UTM Interface)等组成。PD,PA,PE3个模块组成了USB SIE的协议层(PL)。
UTMI(UTM Interface)是UTM和SIE的接口主要功能是检测总线状态以及识别总线速度。负责PL与UTM的数据交换。
PD将UTMI接收到的信 息数据包进行解析,解析出包标识(PID)、端点地址和设备地址以及包含在包中的有效数据命令。在****时,对PID进行校验,即 PID[7:4]~PID[3:0],还要对必要的令牌包进行CRC5校验,对数据包进行CRCl6校验。CRCl6,CRC5多项式 为:x16+x15+x2+1和x5+x2+1。
设计中把命令****电路也设计在PD上,****电路的设计思路是:通过一个计数器将8 bit的命令数据分别存放在8个:Register中,然后对Register进行****,来判断该条命令带表的含义和执行的操作。例如:Get Descriptor命令,主机发送的命令数据为8’ha0,8’h06,8’h00,8’h01,8’h00,8’h00,8’h4O,8’h00,然 后****电路根据这8 bit来判断命令的含义。如果主机发送命令有误,或该设备不支持命令,则这条命令被忽略或返回NAK握手包。
PA根据 PE(Protocol Engine)送来的PID组织相应的信息包,把要发送的数据安排在相应的数据包,或者令牌包。发送令牌包时,不必产生CRC5校验位。在发送数据包寸, 需要把有效数据的CRCl6校验位放在包末尾一起发送。
PE可以对IN,OUT以及Setup事务进行单线程处理,且确定当前传输事务要操作的端 点地址,所有对MA和RF的当前操作都基于这个端点地址。PE要根据当前端点的配置或当前状态处理传输事务,并在传输事务中实时更新控制/状态寄存器 CSR。SIE还能通过CSR中的中断向量请求设备总线的控制支持。
3 系统仿真与实现
设计中包含了UTM,SIE,并 根据协议写出了含有设备描述符的ROM。这样IP具有USB接口的功能,可以作为一个USB设备与主机进行通信。根据USB协议,模拟主机动作编写 Testbench,它主要由模拟主机数据包(Send Data),Stuffing检测,CRC校验检错等来仿真。仿真波形,如图5所示。


最后将电路用ASIC实现。采用0.35μm CMOS工艺实现后端设计,数字电路采用单元库自动布线,模拟电路手工绘制版图,并进行DRC和LVS检查,最终版图预览图,如图8所示,芯片面积为 1.2 ms2;经过后仿真得出:工作频率为120 MHz,工作电流9 mA,静态电流40μA。工作频率可以实现高速USB协议的要求,功耗、电流等参数也符合设计要求。
推荐阅读:
