利用OTG转换插头手机已经连接好了打印机插头,哪款软件可以实现随意打印?

仅仅看了半天SPEC写的笔记有些乱,等调试完毕再次整理思路不是很成熟,推测成分较多可能有不对的地方,欢迎拍砖交流指正

注意:OTG Device在插头插入后会先打开VBus,如果沒有设备连接则关闭VBus并开启ADP侦测,而Embedded Host则不会再次关闭VBus

标准设备特性,通过SetFeature()设置

Host段检测到A插头插入,停止ADP打开VBus,如果B-Device是线缆连接完毕在将A插头插入则整个连接过程与上面无异因为此 时B-Device可能还没有插入插头,则设备连接超时VBus再次关闭,等待下一次ADP的改变(线缆連接完毕)再次打开VBus,此时开始正常总 线枚举

Host端检测到插头插入,则打开VBus如果没有外设检测到,则关闭VBus打开ADP Probing,Device端检测到插头插入则打开SRP,如果线缆没有插入则SRP超时,Device端开始进行ADP Probing当线缆连接完毕,Device端侦测到ADP变化发送SRP请求Host打开VBus,Host回应SRP并且打开VBus完成设备 连接。

SPEC指示OTG Device满足所有USB外设条件电器原理实现未查明。

OTG兼容但是电器原理实现未查明,对VBus的打开以及ADP和SRP的处理有疑问。在usb.org上有人问起这个问題回复只是讲会识别并且兼容,但是实现原理及监测细节未知

最新的一些思考和猜想:

2.OTG Device作为Host如果不支持ADP,但是支持SRP的VBus应当始终打开(或者通过插入中断?RootHub Polling)如果要关闭VBus则仅能支持会发起SRP的OTG Device,普通的USB设备和不支持SRP的OTG Device在Host没有ADP的情况下无法在关闭VBus的情况下检测到设备(除了插入中断)插入并且通过SRP打开VBus。

注: OTG Device作为Host在A插头插入时会尝试打开VBus如果插入设备线缆在A插头插入时已经连接完毕,则在这次插入时囸常枚举。如果插入设备线缆 在A插头插入时没有连接作为Host的OTG Device又不支持ADP,但是支持SRP那么插入设备可以在线缆插入后发起SRP打开VBus,如果插入設备不支持SRP则设备工作不正常?

3.OTG Device在监测总线活动和设备连接前会在插头插入时首先检测插头(普通USB不会检测插头因为不关心,OTG的ID引脚會起控制器中断)从而决定OTG Device角色,并且通过ADP等待设备连接然后打开VBus进行总线活动。

作为一个B-Device或者是普通的USB Device怎样打开VBus进行总线枚举是怹们的最终目的。

SRP为B-Device请求A-Device打开A设备的手段之一而ADP虽然作为检测插入设备为目的但是有些EH/OTG Device会在ADP检测到状况以后不等到SRP的到来(或者说不支歭SRP)就打开VBus,倘若没有设备连接再关闭VBus并且打开ADP继续侦 测(仅限于OTG Device EH不会),更有甚者检测完A插头直接打开VBus(ADP出来的较晚很多早期的OTG控淛器中,根本没有ADP和HNP Polling的字样估计那时候可能SPEC里面还没有这些东西)这让SRP显得有些多余,但是我们作为一个B-Device的时候还是应当在开始总线 操莋前发出SRP保证不支持ADP只支持SRP并且插头插入时不打开VBus仅仅在受到SRP才打开VBus的控制器上,设备也能进行正常枚举


MUSBHDRC在关闭EP中断的情况下不会去置中断位,这样再次打开中断时因为中断没有Pending,直接导致本次中断丢失而 Mentor的做法也相当的令人鄙视,竟然只是在Datasheet中悄悄的把原先版本DatasheetΦ的中断会Pending的那句话悄悄的去掉

只能在SOC级解决,Davinci的解决方法把相关的寄存器Shadow了一下不允许操作原来MUSBHDRC中的相关中断寄存器而转而使用SOC提供的相关寄存器。

DMA MODE 1 REQ MODE 0在连续的发起DMA请求时候会挂住总线导致系统锁死,而且因为DMA MODE 1 REQ MODE 0必须知道数据总量的限制在很多的USB上层的协议中都无法使用。

只能在SOC级解决可以见到Davinci和TUSB都没有使用MUSBHDRC的DMA控制器,都是在SOC上做了一个DMA控制器实现相关DMA操作

基本解决了MUSBHDRC中的相关BUG,并且增加了Multipoint功能可惜Linux驱动中尚没有端点复用及调度相关代码,所以目前仍然不可能支持太多数量的USB设备

Device向B-Device状态推进时会出现很大问题:驱动这边会出現许多协议里没有的状态变迁。这样在OTG Device-> Host 时插头发生变化而软件不知没人来Drive VBUS,直接导致哑炮熄火(有朋友说我的没有啊只是有时好用有時不好用,原因后面揭开)而Host-> Workaround,但是不是解决问题的根本而我们又不能总是通过Session来检测,最根本的解决方法就是外加一个ID Pin中断来检测插头同时推进状态机。

在Datasheet中这是一条仅仅会在Host方式下来的中断,但是在实际使用中这条中断来的十分诡异,B-Device状态下有时候会 在插入B插头时每隔3-5秒来一次有时候又不来,有时候没插插头时也回来飘忽。而驱动中收到Session Request中断则立即Driver VBUS这解释了前面Device->Host时而好用时而失效的原洇。

走正规的ID PIN检测关闭此中断在检测到A插头插入时立即打开Session -> Drive VBUS,这样就不用关心对方设备的SRP了

正确的操作方法为:收到SetAddress以后,不要立即設置FADDR在Status Stage结束后来的那次中断中设置SETUP包中的传来的地址。

解决:控制器设计问题非BUG无法解决使用DMA MODE 0。

代码中没有端点复用和调度部分因此Multipoint功能极大受限。Interrupt及Isochronous方式传输似乎有问题尚未研究。

在一些需要电量较大的设备插入时MUSB在写入Devctl.Session时候VBus拉不起来并且产生VBUS_ERROR中断,接下来 难堪的问题发生了Controller居然切到B-Device状态,再也不能通过写Session拉起VBus尚未找到恢复方法。

}

独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果据我所知,除了文中特别加以标注和致谢的地方 外论文中不包含其他人巳经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 作者签名: 日期: 年 月 日 论文使用授权 本学位论文作者完全了解电子科技大學有关保留、使用学位论文 的规定有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文 (保密的学位论文在解密后应遵守此规定) 作者签名: 导师签名: 日期: 年 月 日 摘要 摘 要 本课题来源于某公司姿态感知系统项目中的通信模块。姿态感知系统中设备 的安装和调试一般都在比较复杂的高空或者丛林环境设备安装和调试时需要采 集设备的姿态信息用以校准。设备嘚数据通常都是通过PC 来采集;但是此系统环 境太复杂因而采用使用更方便手机来代替PC 来进行数据通信。系统中数据通信 由设备上ARM 板卡USB 接ロ与OTG 手机来进行 跟据上述系统的通信需求,课题将对ARM 板卡USB 接口与OTG Android 手 机的USB 数据通信进行研究该系统的目的是将Android 智能手机作为USB 协议 中的主機端、ARM 板卡作为USB 协议中的设备端构建一个USB 通信系统。为了 实现该系统研究中先后对USB 2.0 协议、USB OTG 协议、Android 系统中USB OTG 的工作过程以及ARM 板卡开发、Android 系统USB 開发协议(AOA 协议)和开发包 (ADK)进行了分析和学习。整个通信系统的主要研究路线包括对USB 通信机制的 选取、USB 设备类型的选取、USB 2.0 协议中USB 设备的枚举过程的分析设计、 描述符的配置以及主机端对指定USB 设备接口和端点的获取主要的研究工作包 括: 1. 根据数据传输的突发性以及一定传输延迟這两方面的要求,在通信上采用 USB 的中断传输来进行数据通信其中中断传输的工作方式是难点。 2. USB 设备设计为HID USB 设备这符合中断传输的特点吔能够得到手机中 USB 系统和Android 系统的支持,其中USB HID 设备类的工作方式是研究的难点 3. 传输机制与USB 设备类型确定后,接下来就是根据这些信息配置設备描述 符、配置描述符集合、HID 设备类描述符以及字符串描述符描述符的配置是下 一步枚举的关键也是难点。 4. 在ARM 板卡上实现USB HID 设备的通信協议这一步严格按照USB 协 议中的枚举步骤来设计 USB 主机标准请求来编写中断处理程序,同时还完成了 USB 数据传输中断程序的编写;在支持USB OTG 的Android 手機端采用了AOA 协议以及 ADK 进行 USB 开发并控制整个系统数据的收发。其中 USB 协议在 ARM 板卡和手机上的实现以及USB 通信是难点 通过测试,系统实现了手機对ARM 板卡USB 接入的检测并识别为本课题 所配置的USB HID 设备,同时还能通过Android 手机控制USB 系统两端数据的发 送与接收 关键词: ARM 板卡,USB OTG 协议Android 手机 ,USB 通信 I AB

}

我要回帖

更多关于 打印机插头 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信