当前位置:首页 > 工业控制 > 电子设计自动化

  摘 要: 在USB收发器基础上设计UTMI时应注意的细节问题,并给出了最后的仿真波形。

  关键词: UTMI USB1.1 CPLD

  研制和开发使USB的数据能够在普通网线上传播,以延长USB设备和主机之间距离的装置具有广泛的应用价值[1]。为此需要一个能够透明地转换USB数据的设备。该设备在功能上与集线器有些相似,但现有的集线器芯片不能满足这一要求。因此有必要自行设计一种UTMI(USB Transceiver Macrocell Interface)。利用这种UTMI还可以更方便地设计相应的串行接口引擎(SIE)及更进一步设计应用的外部设备。本文以Philip公司的ISP1105为例,详细介绍在USB transceiver的基础上设计UTMI的细节问题,并给出了最后的仿真波形。

1USB收发器

  UTMI是在USB收发器的基础上工作的。ISP1105完全兼容USB1.1协议[2],支持12Mbps全速传输和1.5Mbps低速传输。既可以用作设备收发器,也可以用作主机收发器,同时支持单边和差分2种检测方式,其功能框图如图1所示。图中:为低电平时驱动器处于发送状态,高电平时为接收状态。当MODE为高电平时,ISP1105驱动器处于差分驱动模式(模式1),其对应的引脚功能(输出功能)如表1所示,接收引脚的功能(输入功能)如表2所示。详细资料请参考Philip公司网站[3]

2UTMI设计

  UTMI位于USB收发器和SIE之间,负责USB收发器的串行差模数据和SIE的并行数据之间的相互转换。图2描述了UTMI在USB应用中的位置。

2.1 UTMI结构框图

  UTMI结构框图如图3所示。UTMI主要由接收部分、发送部分和时钟逻辑模块组成。时钟逻辑模块根据USB总线上的数据产生同步时钟,并利用这个基本的时钟来接收和发送数据。接收数据时,依次进行NRZI解码、剔除填充位、串并转换,然后输出到SIE;发送数据时,依次进行并串转换、位填充、NRZI编码,然后由发送模块输出到USB收发器。

2.2 DPLL

  USB是一种异步传输模式,发送端和接收端的时钟来自不同的晶振,虽然额定速率都是12Mbps或1.5Mbps,但仍然可能造成0.25%的偏差。因此,为了保证时钟和数据相互锁定,需要产生一个可以调节的时钟源,该时钟源即由DPLL(Data Phase Lock Logic)来实现。以全速传输为例,USB主机或集线器以12Mbps的速率发送数据,而在接收端则采用48MHz的时钟对数据进行过抽样(over sample)。正常情况下,4个48MHz的时钟宽度正好等于1个接收位的宽度。当主机的速率大于或小于12Mbps时,DPLL就减少或者增加1个时钟的高低电平来进行调节。这一功能由图4所示的DPLL状态机来实现。

  在图4中,A是在48MHz时钟的上升沿对RCV采样的数据,B是在48MHz时钟的下降沿对RCV采样的数据。由图4可以看出,DPLL状态机有0~7和B~F共13个状态。系统复位以后进入状态C,状态C和D可以锁定接收到的差模数据流,因为系统在经过D进入状态5之前数据流至少存在2个边沿的跳变(一般是在SYNC的前2个位)。对应于接收到的差模数据“1”和“0”,状态机会在5-7-6-4和1-3-2-0之间循环。DPLL处于5、4、1、0以及C、D时输出低电平,处于7、6、3、2和B、F时输出高电平。当接收到的位宽度没有变化时,系统就在5-7-6-4和1-3-2-0处循环;当位宽度变窄时,系统就绕过4和0,转而在6和2处开始循环,以减少1个48MHz的低电平;当位宽度变宽时,系统就绕过B和F再分别转到2和6,从而增加1个48MHz的高电平,这样就保证了时钟和数据的相互锁定。用Verilog语言实现的DPLL状态机的仿真波形如图5所示。

  图5中:CLK为原始时钟,USB_IN为输入的差模数据,CLK_OUT为输出时钟,STATE为DPLL所处的状态,SD_OUT为USB_IN的采样输出数据。由图5可以看出,当接收位较宽时,状态机额外增加了1个状态B的高电平;当接收位较窄时则越过状态4,由状态6直接转到状态1,状态机减少了1个低电平,从而达到了数据同步的目的。

2.3 SYNC及EOP的检测

  完整的SYNC是0x80,由KJKJKJKK 8个位组成。第1位由于集线器重放等原因可能产生畸变,因此检测SYNC时可以只检测最后几位。第1个SYNC时DPLL从第2个状态J开始才能有时钟输出,而以后的SYNC则从第1个状态K就有时钟输出。观察一下SYNC的组成,不难看出只要最后4个位KJKK就可以完全检测到SYNC了。由此,可得出如图6所示的SYNC检测状态机以及如图7所示的相应的仿真波形图。

  EOP的检测也存在同样的问题。USB规定全速率接收器必须将后跟1个J变化的、大于等于82ns宽的SE0作为一个有效的EOP来予以接收。对于低速收发器来说,这个宽度则是330ns。EOP检测状态机以及相应的仿真波形图如图8所示。

3 综合与仿真

  接收数据时,UTMI首先匹配SYNC字段。匹配完成后,系统进入接收数据状态,此时RxActive为高电平。UTMI对接收到的串行数据进行NRZI解码,去掉填充位,送入接收移位寄存器,满8位后输出到并行数据线,并置RxValid为高电平。UTMI检测到EOP以后,就拉低RxActive,表明接收1个分组的结束。接收1个SETUP分组的仿真波形如图9所示,数据为SETUP(0xB4)+Addr(0x00)+EndPoint(0x00)+CRC5(0x08)。

  发送数据时,UTMI需要置OE为低电平,以使驱动器处于发送状态。此时,TxValid应为高电平,表明并行数据线上有数据等待发送。UTMI首先发送SYNC,然后读取并行数据线上的数据,完成串并转换后,依次进行位填充和NRZI编码,再根据表1的规定将数据发送到VPO和VMO上。完成1个字节的发送后,UTMI应该置TxReady为高电平,表明UTMI可以继续发送下一个字节。数据发送完成后,UTMI应该继续发送EOP信号,然后拉高OE,表明1个分组发送完毕。发送1个ACK分组(0x4B)的仿真波形如图10所示。

4 结束语

  在Lattice公司的ISP expert7.0开发平台上,利用Verilog HDL语言实现了USB1.1的UTMI,并完成了最后的综合和仿真测试。

参考文献

1 张念淮,江浩.USB总线接口开发指南.北京:国防工业出版社,2001

2Universal Serial Bus Specification Revision1.1.http://www.usb.org,2003.10

3 ISP1105 datasheet.http://www.semiconductors.philips.com.2003.10

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘要:文中采用Quartus II开发平台,基于可编程逻辑器件CPLD设计出多波形信号发生器,可输出频率、幅度可调的三角波、正弦波和方波。任意波形模块可由用户输出用户所需的特殊波形,满足了教学实

关键字: cpld 信号发生器

  引 言   目前微米、纳米技术的研究非常活跃,使得微小技术、微型机械电子系统(MEMS)技术得到迅速发展,从而大大促进,医用器材的微型化、微观化,出现了医用光电微传感器(如无线内窥镜

关键字: cpld 无线内窥系统 jpeg-ls

  目前,许多厂商都提供通用的串行通信芯片,其传输方式分为同步方式和异步方式。其中,异步芯片大多与INTEL的8250芯片兼容;而同步方式,由于一般涉及到所支持的传输协议(BSC、HDLC、SD

关键字: FPGA cpld vhdl 通信芯片

  随着计算机科学和自动控制技术的发展,越来越多的不同种类的智能机器人出现在工厂、生活当中,机器人视觉系统作为智能机器人系统中一个重要的子系统,也越来越受到人们的重视。它涉及了图像处理、模式识别

关键字: DSP cpld 机器人 视觉系统 服务机器人

  引言   随着新技术的不断发展,数字化变电站正在兴起。在智能电网规划的推动下,未来数字化变电站将成为新建变电站的主流。众所周知,电网信号量极多且相关性很强,这给采集计算和实时监测带来

关键字: DSP 智能电网 cpld

本文中,小编将对CPLD单稳态电子电路设计进行讲解。如果你对本文即将探讨的内容具有兴趣,不妨继续往下阅读哦。

关键字: cpld 指数 电子电路设计

波形发生器有多种类型,任意波形发生器便是其中一种。对于任意波形发生器,小编曾带来相关介绍,如高速任意波形发生器的设计等。本文中,讲为大家讲解采用单片机和CPLD控制的任意波形发生器的设计。如果你对本文即将要讲解的内容存在...

关键字: cpld 任意波形发生器 波形发生器

现在FPGA运用的越来越广泛了,FPGA 即现场可编程逻辑阵列。是在 CPLD 的基础上发展起来的新型高性能可编程逻辑器件。FPGA 的集成度很高,其器件密度从数万门到数千万门不等

关键字: cpld FPGA 电路设计

可编程逻辑控制器(PLC)主机是通过背板总线支持扩展模块的连接,背板总线是PLC主机同I/O扩展模块之间的高速数据通路,支持主机和扩展模块之间的I/O数据刷新。

关键字: cpld plc 总线与接口 接口芯片

怎样在嵌入式CPU 80C186XLDRAM刷新控制单元的基础上,利用CPLD技术和80C186XL的时序特征设计一个低价格、功能完整的DRAM控制器的方法,并采用VHDL语言编程实现.

关键字: cpld dram控制器 嵌入式 嵌入式处理器
关闭