USB光端机

44 篇文章 476 订阅

一、概述。

光端机的结构很简单,由发送端和接收端组成。如下图所示,单向传输。

光端机也可以是双向传输,只要使用2对光模块,或者光模块支持波分复用就可以了。

常用的光端机有:以太网光端机,视频光端机(包括VGA、DVI、HDMI、SDI、DP接口),音频光端机,电话光端机,串口/CAN光端机,还有专用的鼠标、键盘光端机等。

其中较为棘手的是USB光端机(以下只讨论USB2.0光端机),因为所有的USB信号在DP、DM一对差分线上收发,也就是半双工模式,而且最高速率达到480Mbps,还有那些复杂的协议。

主要难点在于USB协议有部分数据包对时间有严格要求。

USB总线的所有通信都由主机发起,从机不能发起。

主机会周期性地发送SOF包给从机。

SOF包由主机发送给设备。
    1) 对于全速总线,每隔1.00 ms ±0.0005 ms发送一次;
    2) 对于高速总线,每隔125 μs ±0.0625 μs发送一次;

SOF包,如果USB设备连续3次没接收到SOF包,则会挂起,然后复位总线。

当主机发起SOF包,从机需要回应EOP包。

由基本的包组成四种传输方式,分别是控制传输、块传输、中断传输、同步传输。

其中,控制传输和块传输对时间没要求。

而同步传输和中断传输的传输时间间隔,则由USB设备决定,最小为1ms。

此外,USB总线上还有一个最长响应时间限制。

当主机连续发送三次需要应答的包,而从机在一段时间内都没有应答,主机就会认为从机挂起。

而这个最长响应时间由主机决定,可以设定在1s~10s。

二、方案论证。

1、CH317方案。

江苏沁恒的CH317,CH317内部封装了USB PHY和以太网PHY。它内部把USB的差分信号打包成以太网的数据包,并通过RGMII接口直接透传到对端。能支持高速、全速、低速设备以及Hub,由于CH317芯片固有的bug,所以传输距离约为260米,而且要单独一条光纤专门传USB信号,增加了成本。

2、AX6800x方案。

AX6800x是一块内部封装了USB PHY的SOC芯片。它内部用代码解析USB协议,再转成串行口输出,只支持键盘、鼠标,也支持Hub下挂载键盘、鼠标。传输距离可达500米以上。由于AX6800x芯片内部代码的问题,所以不支持除键盘、鼠标、全速Hub以外的USB设备。

3、ARM解析协议方案。

ARM9内部集成了USB PHY。利用ARM解析USB协议,并传到对端。能支持U盘、部分串口、部分鼠标。

传输距离达500米以上。但是ARM芯片本身的缺陷(端点数量有限),使得它不能支持更多USB设备。

把ARM9设置为主机模式时,能支持三种速度,而从机模式只支持高速和全速,包括其它ARM芯片,如:Cortex A5、Cortex A8、Cortex A31系列的芯片,从机模式均只支持高速和全速。只有NXP的MCP85xx系列芯片在主、从机模式下均支持三种速度。

4、USB3300或USB3500方案。

USB3300是一块单纯的USB PHY芯片,它能把USB的差模信号转成并行8位的共模信号,并以ULPI接口的形式引出。能支持高速、全速、低速设备以及Hub。

USB3300能配置成USB主机或者USB设备模式。

而USB3500用的是UTMI接口,接的线比USB3300多一些。

下文均以USB3300或USB3500方案展开论述。

三、UTMI接口和ULPI接口对比。

UTMI+接口,分四个等级(0~3级)。

USB3500是UTMI+接口,特点操作时序简单,但是信号线多达31根。

USB3500是UTMI+ Level3芯片,UTMI+接口,QFN56封装,3.3V供电,并行8位数据接口,不需要配置寄存器,直接拉高或拉低引脚以配置芯片的工作模式。

USB3300是ULPI接口,特点信号线只有12根,但是操作时序稍微复杂。

USB3300是UTMI+ Level3芯片,ULPI接口,QFN32封装,3.3V供电,并行8位数据接口,需要配置寄存器才能工作。

由上图可知,若要对USB3300进行操作,则必要先发命令,再发数据,以配置内部寄存器,它才能正常工作。

四、USB3300检测USB设备速度的流程描述。

由于USB主机的DP、DM引脚带有下拉15K欧电阻,而USB设备的DP、DM引脚带有上拉1.5K欧电阻。

所以,当USB设备跟USB主机对接时,能利用上、下拉电阻来设置总线上的电平。

对于低速设备,在DM引脚上拉1.5K。

对于全速设备,在DP引脚上拉1.5K。

对于高速设备,则需要握手协议。

a、USB主机检测到全速设备,即:DP引脚上拉1.5K。

b、USB主机复位总线,即向总线发送SE0,此SE0持续时间不得小于2.5us。

c、高速设备检测到SE0持续时间不小于2.5us后,向总线发送Chirp K信号,此Chirp信号持续时间不小于1ms且不大于7ms。

d、总线回复到SE0状态。如果USB主机支持高速模式,则必须在Chipr K信号结束后100us内做出响应。

e、USB主机在Chipr K信号结束后100us内做出响应,向总线发送连续的Chirp K/J对,每个Chirp K信号或Chirp J信号的宽度不小于40us且不大于60us,每2个相邻的Chirp K和Chirp J信号之间的间隔不应大于2.5us。

f、高速设备在检测到连续的最少3对Chirp K/J对后,在500us内必须断开DP上的上拉电阻,并连接D+和D-上的对地高速端接电阻,完成高速握手,进入高速传输模式。

高速模式的握手协议,反应在USB3300的时序,如下图所示。

五、USB Hub的工作原理。

只要USB Hub工作在高速模式,则接到USB主机的上行(Upstream)速率则固定为高速,全速模式也一样。

在高速模式下传输全速或低速数据包,需要使用SPLIT包,即分离传输,传输过程较复杂。

在全速模式下传输低速数据包,需要使用PRE包。

SPLIT包和PRE包则由传输翻译器(Transaction Translator)翻译成相应的速率,然后传到下行(Downstream)端口,供USB设备使用。

六、USB-HUB控制器USB2422。

USB2422是个USB-HUB控制器,它可以控制DP、DM引脚交换,可以增强USB信号,在高速模式下,可以支持6米以上的距离。

可以说USB2422是个短距离的延长器。

在下游可以把USB3300接到USB2422,最终只要透传USB2422的信号即可。

七、最终方案。

最后把方案调整为如下图所示。

在远端,增加USB2422作为Hub接下游设备,远端和近端都使用STM32来配置USB2422以及处理事务。

这样,可以实现USB透传,解决ARM方案的端点不足问题,也能把处理后的数据包封装在视频上,以减少光纤数量,降低成本。

八、主机延长器。

把USB光端机和视频光端机合并在一起就是主机延长器,这样,可以把主机集中放在机房中,而用户只放一台光端机、鼠标、键盘、显示器。

主机延长器可以应用在网吧、办公室、出租屋中。不用担心主机被偷、数据被偷。主机更新换代时,能二手倒卖更高价格。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值