- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种Linux下USB设备主从切换实现
一种Linux下USB设备主从切换实现 摘 要 USB协议是严格的主从协议,通讯过程中必须有一个做Host,一个做Device。本文阐述了一种在Linux下实现USB Host和Device身份切换的方法。
【关键词】USB OTG Host Device
1 引言
USB协议是严格的主从协议,通讯过程中规定通讯双方必须有一个做Host(比如PC),一个做Device(比如U盘)。但是有些设备可能会希望同时具有两种身份,在某个时刻做Host,另外一个时刻做Device,于是USB IF官方制定了OTG协议,规定两个都支持OTG协议的USB设备可以动态地根据需要进行主从切换。但是真正支持OTG协议的设备并没有流行起来,原因应该有如下:
(1)OTG协议实现要复杂些,而实际应用需求不强,市面上真正支持OTG协议的设备也很难找到,单方面支持OTG协议是没有用的,因此各大厂商没有动力推出OTG设备。
(2)USB协议规定Host要给Device供电,而大部分USB设备都是便携设备,对另外一个USB设备供电能力不足。
既然真正支持OTG协议的设备几乎难觅,那么为什么目前市面上很多的音视频播放器或平板电脑都号称支持OTG呢?其实这些设备并没有真正实现OTG协议(包括HNP协议和SRP协议),而只是通过USB线上ID Pin的状态来确立自己究竟是做主设备还是做从设备,一旦身份确认,在通讯过程中是无法动态切换的,所以严格来说这只是一种伪OTG设备。本文将讨论的就是Linux下这种情况的一种具体实现方法。
2 Linux下主从切换方案设计
Linux下该方案总体设计思路如图1:
首先,该方案在内核空间实现一个名为umonitor.ko的驱动程序,该驱动负责侦测USB接口上的变化,判断是否有USB连线,以及是做主设备还是从设备等核心检测工作。如果判断目前是做USB Host,则发出“A_IN”的UEVENT消息;如果判断是做USB Device,则发出“B_IN”的UEVENT消息。
用户空间会有一个名为Umonitord的进程来监听内核的UEVENT消息,如果收到“A_IN”消息,则加载USB Host Controller驱动。USB Host Controller驱动因控制器不同而不一样,比如有ehci驱动或xhci驱动等,上图统一命名为uhc.ko。
同样的,如果Umonitord收到“B_IN”消息,则加载USB Device Controller驱动,该驱动在上图中命名为udc.ko。驱动一旦加载,就执行硬件初始化,并向内核注册,进一步触发进入到设备的枚举通讯流程。
当USB线拔出时,umonitor.ko驱动同样会检测到USB口上的变化(Vbus或ID pin的状态变化),并进而发出“A_OUT”或“B_OUT”消息,由用户空间的Umonitord进程接收到后执行卸载对应驱动的操作。
3 USB Monitor驱动检测流程
前面讲到umonitor.ko驱动完成了核心的插拔判断和主从身份识别的工作,图2是其具体实现流程:
首先如果一个USB设备要实现Host和Device两种身份,它必须在设备接口上采用5 Pin (包括ID pin)的USB接口,而不能采用无ID pin的4 Pin接口(比如PC上常见的Standard A口)。
需要实现主从切换的USB设备,一般会采用5 Pin的mini-AB型插座。图3中左边是USB设备作Host时需要采用的连线,右边是做Device时需要采用的连线(如连接PC)。没有插入连接线时,ID pin默认处于上拉状态,电平状态为1,当做Host时,连接线的ID pin会下拉到地,电平状态为0;当做Device的时候,连接线的ID pin会维持上拉,电平状态为1。主从判断流程中,最关键的一步就是先通过ID pin的状态来确立USB设备的主从判断路径。
当ID pin状态为0时,Vbus上5V供电,此时如果有USB设备插入,会把Dp或Dm Pin执行上拉操作,检测程序通过Dp和Dm上的电平状态判断到有USB设备插入,确立Host身份,发出A_IN消息。
当ID pin状态为1时,Vbus上先断开5V供电,此时如果有通过USB线连接到USB主机端或充电器,Vbus上会依然处于有电状态,检测程序判断确立Device身份,发出B_IN消息。
A_IN消息发出后,USB控制器正式进入Host工作角色,此时如果发生拔线,则ID pin状态会跳变为1,umonitor.ko驱动检测到后发出A_OUT消息,进入下一次检测循环。同样地,B_IN消息发出后,USB控制器进入Device工作角色,此时发生拔
您可能关注的文档
- 《劳动合同法》中竞业限制制度文献综述.doc
- 《凤凰早班车》电视新闻播报特色研究.doc
- 《劳动合同法》服务期违约金条款之法经济学研究.doc
- 《了不起盖茨比》电影改编艺术琐谈.doc
- 《南亚》自然地理环境教学设计.doc
- 《历史和社会》中考高效复习探索和实践.doc
- 《反对本本主义》文本学阐释和现实意义.doc
- 《古书疑义举例》中训诂文例探析.doc
- 《叫我第一名》美国精神解读.doc
- 《叶净能诗》中古新副词.doc
- 2025年三鼎控股集团有限公司校园招聘模拟试题附带答案详解完整版.docx
- 2025年三鼎控股集团有限公司校园招聘模拟试题汇编.docx
- 2025年三鼎控股集团有限公司校园招聘模拟试题带答案.docx
- 湖南省长沙市麓山国际2024-2025学年高二下学期3月月地理试卷含答案.docx
- 2025年上汽通用五菱汽车股份有限公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案.docx
- 2025年三鼎控股集团有限公司校园招聘模拟试题附带答案详解带答案.docx
- 2025年三鼎控股集团有限公司校园招聘模拟试题及答案1套.docx
- (八省联考)2025年福建省新高考综合改革适应性演练数学试卷带解析及参考答案(精练).docx
- 2025年三鼎控股集团有限公司校园招聘模拟试题及答案参考.docx
- (八省联考)2025年福建省新高考综合改革适应性演练数学试卷带解析及参考答案(考试直接用).docx
最近下载
- IEC 61730-1 2023 必威体育精装版版中文标准.doc
- 论融资管理中存在问题与对策以格力电器为例_.docx
- 配置管理程序(ISO20000-1:2018).docx VIP
- 德国柏曼年品牌策划.ppt
- 《内科护理》4第四节 糖尿病病人的护理 教学课件.ppt VIP
- 云南白药股份有限公司财务报表分析.doc VIP
- APPROACHES AND METHODS IN LANGUAGE TEACHING教师专业发展.pdf
- 生鲜农产品冷链物流配送中心选址研究——以西安市为例.docx
- 陕西专升本英语3500词汇与高频词组.pdf VIP
- 2025年海南省公务员省考《行测》真题(含答案).pdf VIP
文档评论(0)