基于USB接口的OTG应用技术开发

基于USB接口的OTG应用技术开发

ID:40640065

大小:149.50 KB

页数:8页

时间:2019-08-05

基于USB接口的OTG应用技术开发_第1页
基于USB接口的OTG应用技术开发_第2页
基于USB接口的OTG应用技术开发_第3页
基于USB接口的OTG应用技术开发_第4页
基于USB接口的OTG应用技术开发_第5页
资源描述:

《基于USB接口的OTG应用技术开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、随着移动终端的普及,为了不使用pc,直接在移动终端间进行数据交换,提出了otg技术。usbotg(on-the-go)标准在完全兼容usb2.0的基础上,追加了hnp(hostnegotiationprotocol)和srp(sessionrequestprotocol)协议。在硬件方面增添了更小的连接器和电缆,包括袖珍型的a插头和插槽(mini-a),袖珍型的ab插槽(mini-ab)。通过hnp和srp协议可以实现主从设备的交换,从而实现脱离pc的移动设备间数据的直接交换。isp1362芯片的结构飞利浦的isp1362有otg控制器,高级主机控制器和一个基于isp1181的

2、外设控制器。同时通过一个数据总线接口与外部cpu相连。主机与外设控制器都配有缓冲usb通信流量的内置存储器。isp1362用软件执行hnp和srp,一系列的寄存器提供支持hnp和srp控制和状态的监视能力。otg有一般的收发器,还有内置充电泵,电压比较器,数据线上的上拉/下拉电。结构如图1。otg规范的hnp和srphnp的事件序列图2给出了hnp的事件序列图。(1)a设备使用完总线并停止所有的总线活动(即挂起总线)。(2)b设备检测到总线处于空闲状态,启动hnp序列。(3)a设备在总线上检测到b设备要成为主机的请求,连接其d+线上拉电阻以作为响应。(4)b设备发现d+线是高电

3、平d线是低电平,这表示a设备识别来自b设备的hnp请求,此时,b设备成为主机而且发送总线复位信号,开始使用总线。(5)当b设备使用完总线后,它停止所有的总线活动。(6)a设备在一定的时间内检测到没有总线活动时就会断开其d+线上的上拉电阻。(7)b设备连接其上拉电阻。(8)a设备发现d+线是高电平d线是低电平,表示b设备正在发送连接信号并准备作为外围设备响应,此时,a设备变为主机,并发送总线复位信号开始使用总线。srpotg规范定义了两种b设备向a设备请求开始会话的方式,称为数据线脉冲调制(data-linepulsing)和vbus脉冲调制(vbuspulsing)。这两种方法

4、组成了会话请求协议(srp)。srp的初始条件是:b设备必须在确定a设备前一次会话结束以后才能尝试启动新的会话。a设备通过检测到vbus下降到低于其会话有效阈值来确定会话结束。b设备在检测到d+和d线至少在2ms的时间内为低电平(se0),这确保a设备检测到设备的断开。数据线脉冲调制时,b设备等待满足上述条件后,接入其数据线上拉电阻(d+或d)。双重角色b设备只能在全速初始化srp,因此只能上拉d+。vbus脉冲调制时在满足初始条件后驱动vbus。b设备先执行数据线脉冲调制,然后执行vbus脉冲调制,a设备设计为能响应其中一种srp的方式。linux操作环境下驱动程序的编写当o

5、tg双角色设备以主机方式工作时(如图5),usb主设备软件包工作,以从机方式工作时,usb设备软件包工作。otg通过驱动连接器中的id的不同连接,或通过是否有主设备转换协议spr以确定双角色设备的工作方式,并确定使用usb主设备软件包或usb设备软件包。usb驱动程序由主机驱动程序,usb子系统,usb设备驱动程序组成。在linux操作系统中,存在一个连接usb设备驱动程序和主控制器驱动程序的子系统usbcore,它通过定义一些数据结构,宏和功能函数来抽象所有的硬件设备。usbcore提供了为硬件处理的所有下层接口。包含所有usb设备驱动和主机控制的通用程序,可称为uppera

6、pi和lowerapi。usb子系统提供与设备驱动程序的接口,读取并解释usb设备描述符,配置描述符。为usb设备分配唯一的地址,使用默认的配置来配置设备,支持基本的usb命令请求,连接设备与相应的驱动程序,转发设备驱动程序的数据包。设备驱动程序是内核的一部分,它完成以下的功能:(1)对设备初始化和释放。(2)把数据从内核传送到硬件和从硬件读取数据。(3)读取应用程序传送给设备文件的数据和会送应用程序请求的数据。(4)监测和处理设备出现的错误。用户对设备的访问,主要有以下的函数:open打开函数,read、write读写函数,ioltrl设备控制函数,用户各类设备的特殊控制。设

7、备驱动程序的设计就是实现上述四个函数与外加一个设备初始化的函数,这些函数在设备驱动程序中可以skel_init()、skel_open()、skel_read()、skel_ioctrl()等调用。声明一个称之为fileoperation的结构体将用户级的open等函数与设备skel_open()等函数联系起来。staticstructfile_operationsskel_fops={.owner=this_module,.read=skel_read,.write=skel_write,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。