关于安卓手机是否支持USBusb xhci的主机控制器功能

利用Android智能手机及USB接口与1-Wire从设备通信
> 利用Android智能手机及USB接口与1-Wire从设备通信
利用Android智能手机及USB接口与1-Wire从设备通信
  引言本文引用地址:
  本文介绍如何利用安卓&智能手机上的USB口与从设备通信,而无需计算机系统。文中给出的例子使用手机上的USB端口通过&总线与& iButton&温度记录器通信。
  系统布局
  这种应用的关键是智能手机上的USB接口。当智能手机使用USB OTG时,那么就可利用其作USB主设备来管理其他USB从设备,例如麦克风、闪存、键盘,或者本例中的。最新版本的应用程序接口(API)支持USB在应用层为主的模式。该功能使用户能够安装与USB外设&对话&的应用程序,无需刷机(Root)或在用户的智能手机上安装特殊驱动。
  系统方框图如图1所示。Android智能手机必须使用USB OTG。一般情况下,电话连接至计算机是作为USB从设备,但USB OTG允许将其转换为USB主设备。这种角色转换要求特殊的OTG电缆提供A型USB端口,并指示USB从机已连接至智能手机。
  该应用为主/从系统,Android智能手机作为主机,数据记录器作为从机。系统采用一个USB和一个/iButton把智能手机和数据记录器桥接起来。利用网线中的一根数据线和接头作为总线。数据记录器为iButton Thermochron。
  1-Wire总线的重要角色
  1-Wire总线是单主和多从系统之间的接口。1-Wire为开漏输出,采用类似于I2C的上拉电阻工作。有些1-Wire从机可利用1-Wire总线进行寄生供电,在总线不通信时对从器件中的内部电容充电。每个1-Wire从机也具有工厂激光刻制的唯一64位编号,所以很容易识别和监测总线上的从机。
  1-Wire传输时序(图2)包括一个给从机的复位脉冲(trst)。复位脉冲通将1-Wire总线拉低预定的时间周期,将全部从机置位成已知的确定状态。接着,从机在主机释放总线后,利用将总线拉低的在位检测脉冲(tpd)对主机进行应答。
  复位后,从器件根据唯一的自身编号,可接收发送至从机的各种ROM命令。命令Match ROM将只激活编号正确匹配的某个从器件。Search ROM命令用于检测总线上所有从机的编号。因此,尽管这里我们只介绍一个从机,但可应用于具有多个兼容的1-Wire从器件。
  在我们这个Android例子中,某个ROM命令只要选定,主机即可向每个具体的从设发送该命令。将诸如Thermochron这样的温度记录器作为从设备,主机的命令可能包括读/写其暂存器、存储器、或转换温度。
  1-Wire接口没有时钟线,所以通信分为时隙(tslot),每个时隙承载一个信息位。在时隙开始,主机将总线短暂拉低,预示数据位将开始。当传输的是一个0时,主机或从机会使总线继续保持为低电平;传输是一个1时,主机或从机将释放总线。主机或从机将在主机指示时隙开始后的规定时间(tsample)读取总线。
  USB与1-Wire通信
  DS9490R为1-Wire至USB,有四个USB端点:控制、中断、批输入(epIN)和批输出(epOUT)。通常,控制端用于向1-Wire适配器发送命令,以及配置传输类型;批输入/输出用于数据传输;中断端口接收实时敏感的信息,如状态寄存器的信息和返回的消息。
  用Android作为USB主设
  此处介绍的设计已有先例。Android API从3.1版开始支持USB主模式,Manuel Di Cerbo1曾通过USB将Arduino&微控制器板与Android电话连接在一起。我们的应用在DiCerbo的设计上进行修改,将基本概念扩展至USB至1-Wire适配器,并且微控制器用1-Wire适配器和Thermochron代替。
  本项目以DiCerbo的示例代码为基础。代码首先询问用户是否允许访问连接至Android智能手记的USB设备。然后程序查询制造商和设备ID,并设置用于通信的USB端点。代码提供给conn,用于批传输和控制传输的USB设备连接;配置用于批输入的USB端点epIN及epOUT。这和所有系统中USB初始化及向从机写底层USB命令使用的基本配置没什么区别。
  现在,我们演示如何利用Android去实现让Thermochron进行温度转换,并读取温度结果。每个步骤(表1)均以1-Wire复位开始,然后利用Match ROM命令选择从机,最后为给它的执行命令。
  由USB传输控制执行1-Wire复位,Android API的控制传输函数原代码如下所示。
  // Performs a control transaction on endpoint zero for this device.
  int controlTransfer(int requestType, int request, int value, int index, byte[] buffer, int length, int timeout)
  传输控制用于启动1-Wire Reset、Match ROM或Block I/O。参数说明请参见数据资料。随后,我们将介绍如何使用该函数。
  批数据传输用于Match ROM以及读/写存储器。此处,端点应为epIN或epOUT,取决于我们读数据还是写数据。端点缓冲器储存要发送的数据,或者为空以储存要接收来的数据,长度为接收或发送的字节数。超时为USB的超时设置,单位为毫秒。
  // Performs a bulk transaction on the given endpoint.
  int bulkTransfer(UsbEndpoint endpoint, byte[] buffer, int length, int timeout)
数字通信相关文章:
通信相关文章:
上拉电阻相关文章:
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一关于安卓手机是否支持usb主机功能-中国学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
关于安卓手机是否支持usb主机功能
来源:互联网 发表时间: 3:29:14 责任编辑:李志喜字体:
为了帮助网友解决“关于安卓手机是否支持usb主机功能”相关的问题,中国学网通过互联网对“关于安卓手机是否支持usb主机功能”相关的解决方案进行了整理,用户详细问题包括:RT,我想知道:关于安卓手机是否支持usb主机功能,具体解决方案如下:解决方案1:
安卓手机肯定是要支持usb的,但是得安装驱动,才能连接电脑。
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号android行业知识(3)
1:公司开发一个项目要读取U盘数据。
2:首先搞清楚,什么样的android设备才能读取U盘。
3:能读取U盘数据的android设备必须支持usb host(即android设备为主机)也就是俗话说的otg功能。
总结安卓Android手机能够使用USB Host的必备条件
官网的解释更清楚:
参考之前别人的解释,和后来看到的官网的解释,总结如下:
Android中,USB方面,分两种模式:
4:经项目结束后得到的经验可知,电视盒子(例如小米,百度,开博尔),智能电视肯定都支持。
& 手机价格在2000元以上的绝大部分都支持(因为这些手机不会节约成本把那个芯片去掉)。平板电脑(三星,小米可以。)
5:安卓(Android)支持otg功能设备列表图
6:既然是搞开发的,先提供一段android代码用来测试,该设备是否支持otg
a,运行该程序到手机
b,关闭程序,插上U盘,打开程序,看Toast中的vid是否为空,不为空则支持。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6148次
排名:千里之外
原创:11篇
转载:13篇
(1)(3)(20) 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
android系统中一种usb功能管理模块的优化与实现
下载积分:2000
内容提示:android系统中一种usb功能管理模块的优化与实现,android系统优化,android系统,android系统学习,android内存优化,android系统架构,android 5.0系统,android操作系统,android系统下载,android 代码优化
文档格式:PDF|
浏览次数:17|
上传日期: 00:29:39|
文档星级:
该用户还上传了这些文档
android系统中一种usb功能管理模块的优化与实现
官方公共微信

我要回帖

更多关于 usb xhci的主机控制器 的文章

 

随机推荐