摘 要:本文介绍了用sl811hs设计otg双角色设备的原理,并着重分析了主机协商协议和会话请求协议。
otg概述
在usb的系统上,是由一个主计算机来管理所有的通信,外围设备之间不能直接通信,必须通过主计算机来进行彼此间的联系。2001年发布的on-the-go(otg)是usb2.0规范的补充协议,弥补了usb2.0规范不能用于点对点通信的不足。otg定义了一个功能较少的主计算机,主要用在连接单一usb设备的便携设备上。otg的典型应用有蜂窝电话、pda和机顶盒等。图1是otg应用于pda和机顶盒的实例。
为了更好地支持便携设备,otg要满足有限的主机性能,以降低软件的复杂性,适合便携式设备外形的小usb连接器和节能等要求。
为了达到这些目标,otg补充协议介绍了双角色设备(drd)。drd是usb2.0兼容设备,既能作主机,也能用作外设,它具有如下特性:
?有限的主机性能;
?全速操作(高速可选);
?目标外设列表;
?会话请求协议(srp);
?主机协商协议(hnp);
?一个且只有一个小型ab插座;
?vbus的最小输出8ma;
?与用户进行信息通信的手段。
图1 otg的典型应用
图2 sl811hs的框图
图3 sl811hs otg框图
图4 vbus脉冲调制,d+/d-,和id脚检测
图5 电压比较器
sl811hs概述
sl811hs是双角色主机/外围设备的嵌入式usb控制器,可以与全速或低速usb外设通信。sl811hs可以与微处理器、微控制器、dsp、或者各种总线(如isa和pcmcia)接口。图2是sl811hs的框图。
sl811hs_otg drd参考设计
图3说明了如何用sl811hs外加cpu和一些模拟元件设计otg双角色设备。在软件的控制下,sl811hs可以支持usb主机和外设模式,不需要额外的硬件。
模拟元件的作用
vbus阈值
无论在主机还是外设模式下,都必须监测vbus。为了支持会话请求协议,需要检查vbus处于什么电平,以确定会话何时开始和结束。
本设计中用四个电压比较器监测vbus,它们覆盖了下列otg参数:
a设备vbus有效:va_vbus_vld>4.4v
a设备会话有效:va_sess_vld0.8v-2.0v
b设备会话有效:vb_sess_vld0.8v-4.0v
b设备会话结束:vb_sess_end0.2v-0.8v
vbus脉冲调制
vbus脉冲调制是会话请求协议的一部分,在本设计中将cpu的一个gpio口经过r40连到vbus来实现vbus脉冲调制,如图4所示。
d+和d-的上拉和下拉电阻
为了使设备能够作为主机和外设工作,必须能够切换d+和d-上的上拉和下拉电阻。有许多方法可以控制这些电阻的切换。图4中显示的方法是采用外部cpu的gpio口来切换d+和d-上的电阻。当drd工作在主机模式时,gpioy和gpioz连接15k的下拉电阻到地,并且gpiox浮空1.5k的上拉电阻。当drd工作在外设模式时,gpiox连接1.5k的上拉电阻到电源,同时gpioy和gpioz浮空15k的下拉电阻。(注意,otg补充协议不允许关闭d-上的下拉电阻,本设计中的切换方式仅用于调试目的。)
id脚检测
当用户将插头插入小型ab插座时,id脚用来确定drd是a设备还是b设备。如果id对地短路,就表示插入的是小型a插头,从而使得drd成为a设备。软件通过一个gpio口来监测id脚的状态。
过流检测和控制
当drd是a设备时,在会话期间需要提供vbus。连接的b设备需要的电流有可能超出a设备的负载能力。图5中的比较器1用来检测过流,当vbus跌到4.4v以下时,表示过流情况产生了。另外,图6所示的限流电路提供过流保护,在过流情况下,由软件关闭vbus。
图6 过流检测和控制
图7 srp状态图1
vbus开/关控制
如图6所示,gpio开/关用于控制vbus。当drd是a设备时,由软件打开vbus直到会话结束。当drd是b设备时,vbus必须关闭。
sl811hs_otg的软件
当sl811hs是一个drd时,软件必须支持所有setfeature命令和otg描述符。otg有两个主要功能:会话请求协议和主机协商协议。
会话请求协议(srp)
srp协议能让b设备请求a设备提供电源vbus,并开始会话。当b设备发起srp时,软件促使数据线(d+)发脉冲,然后vbus发脉冲。a设备可以通过提供电源vbus来响应数据线脉冲或者vbus脉冲。图7和图8是srp中两个drd的状态图。
当a设备打开电源vbus时,srp结束。一旦a设备确定vbus已经到达一个有效电平,它就成为usb主机,并且检测b设备。
主机协商协议(hnp)
hnp协议能让b设备变成主机。当连接的drd必须改变角色时,就避免了最终用户交换小型ab电缆的麻烦(通常情况下,用户不明白设备有不同的角色)。
图9是a设备部分hnp状态图,图10是b设备的hnp状态图。要注意的是:a_host状态是将控制从a设备转让给b设备的起始状态,并且也是当控制从b设备归还时的结束状态。同样,b_peripheral是b设备的hnp起始和结束点。
当a设备挂起总线时,对b设备的控制转让开始。如果b设备需要变成主机,它将会通过关闭d+的上拉电阻来发一个“断开”信号。因为a设备已经允许b设备hnp,所以a设备会把这个“断开”状态当作b设备要变成主机的请求。a设备通过打开d+的上拉电阻来完成控制的转让。
图8 srp状态图2
图9 hnp状态图1
图10 hnp状态图2
图11 hnp状态图3
图12 hnp状态图4
当b设备停止所有的总线活动时,控制就归还给a设备。b设备挂起活动之后,引起a设备关闭它的上拉电阻而成为主机。这个“断开”状态被b设备检测到,b设备再次变成外设,并打开它的上拉电阻。
图11阐明了a设备怎样从a_peripheral状态返回到a_host状态。图12阐明了b设备怎样从b_host状态返回到b_peripheral状态。
结语
sl811hs是一个双角色usb主机控制器,通过附加一些模拟元件和一个外部cpu,就能实现整个otg系统。
简述可以提供更精确更稳定的药物缓释的压电聚合物的给药系统
华为麒麟980:全球首款7nm芯片
VR/AR重回大众视野 2020年将会成为VR/AR厂商的转折年
Spartan-7到底有哪些特色、优势,相比前一代有什么不同点
华为ISDP数字化现场作业在第十七届工程建设行业信息化发展大会亮相,备受企业瞩目
用SL811HS实现OTG设备互联
Dialog推出超低功耗Wi-Fi芯片DA16200及模组
什么是电池容量
一文了解飞机飞行原理:伯努利原理
Qualcomm Snapdragon Wear 3100平台 支持面向新一代智能手表的全新超低功耗系统架构
全民认证与紫光国微达成战略合作 共推智慧城市基础设施建设
基于ZigBee的电台电能监测可用国产FRAM PB85RS2MC
Internet的远程虚拟仪表设计方案
AI计算系统设计与优化:从实验到生产
蓝牙吃鸡游戏手柄方案分解资料
Maxim Integrated发布新版健康传感器平台,将可穿戴医疗健康设备开发时间缩短6个月
LED摄影灯制作方法
“互联网+先进制造业”实现以工业互联网深度赋能装备制造业转型
重金属快速检测仪产品的功能特点介绍
华为如何升级鸿蒙系统 华为p40pro怎么升级鸿蒙系统吗