首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第4章_USB 设备编程

4.2 USB 系统硬件框架和软件框架 4.2.1 实验现象 现象: 把 USB 设备比如 Android 手机接到 PC 右下角弹出"发现 android phone" 跳出一个对话框, 提示你安装驱动程序...答 2. windows 里已经有了 USB 的总线驱动程序, 接入 USB 设备后, 是"总线驱动程序" 知道你是"android phone"、提示你安装的是"设备驱动程序"。...4.2.2 硬件框架 在 USB 系统中, 有 2 个硬件概念: USB Host:它跟处理器相连,处理器通过 USB Host 跟各类 USB 设备通信。...USBX 是 Azure®RTOS USB 主机和 USB 设备嵌入式堆栈。它与 ThreadX 紧密耦合。在某些 类中, 它需要 FileX 和 NetX Duo 堆栈。...它允许使用具有多种配置的 USB 设备、复合设备和 USB OTG 进行操作。它支持 USB 电源管理。 USBX 为 USB 主机和 USB 设备堆栈提供了大量的 USB 类。

20610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    odrive教程(处理器2O11接口)

    如果要在odrivetool中读取GPIO1上的电压,可以输入以下内容:odrv0.get_adc_voltage(1)。...端口 注意:如果您使用的我们提供的库时,无需纠结本节中描述的细节,只需大概了解即可。 USB 本节假定您熟悉通用USB体系结构,尤其是诸如“配置”,“接口”和“端点”之类的术语。...在USB上,ODrive提供单一配置,该配置是由CDC设备(虚拟COM端口)和特定于供应商的设备组成的复合设备。 什么是USB复合设备? 复合设备是通过接口关联描述符对接口进行分组的设备。...对于此类设备,主机操作系统会加载一个中间驱动程序,因此每个接口组都可以像单独的设备一样对待,并具有自己的主机侧驱动程序。...如果您打算直接访问USB端点,建议您使用接口2。其他接口(与CDC设备关联的接口)通常由主机OS的CDC驱动程序声明,因此如果没有第一个接口,则无法使用接口2。

    1.3K10

    USB OTG简单介绍

    在USB2.O规范中也添加了USB嵌入式设备的标准——On-The-Go(OTG),它使外设能够在主机和设备之间相互切换,即当其连接至PC时,它是1个USB设备,而与其它USB设备相连接时,它便作为USB...2 USB OTG 2.1 USB OTG简单介绍 DSBOTG是USB2.O版本号的补充,并非独立的标准,它保留了USB2.0的全部特点。OTG使2个USB外设在脱离PC的情况下能够直接通信。...对于嵌入式USB主机来说,提供大量的设备驱动程序是不现实的也没有必要,1个嵌入式USB主机仅仅需支持部分特定设备,这些设备就是它的外设列表。...在OTG中还定义了一种新的接口——微型AB插座(mini-ABreceptacle)以及微型A插头(mi-ni-Aplug)和微型B插头(mini-Bplug)。...在OTG中,如果设备的ID引脚接地(即mini-A插头连接的设备,如图l右側的设备),则此设备默觉得主机,否则为外设。同一时候,在设备连接使用过程中,通过主机协商协议,同意主机和外设功能互换。

    1.4K20

    单片机外围模块漫谈之五,USB开发,这个错误你犯了吗?

    2.例程 我们打开ST的Cube库中的CDC例程: STM32Cube_FW_F1_V1.8.0\Projects\STM3210C_EVAL\Applications\USB_Device\CDC_Standalone...3.USB枚举(Enumeration) 当我们给设备上电,程序控制芯片内集成的上拉电阻连接至USBDP时,USB主机(PC端)会检测到这一变化并向设备供电。此时设备处于Powered状态。...主机通过0地址向该设备发送Get_Descriptor标准请求,获取设备的描述符。...主机再次复位该PORT,并发送标准请求Set_Address给设备分配一个地址,之后的通信都是用此地址,设备进入Address状态。...4.数据传输 我们已经了解所有USB传输都是由USB主机(Host)发起的,作为USB设备只能是被动的等待。当Host下发请求时会在设备中产生各种中断,设备完成各种中断的处理就行了。

    69620

    一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)

    大部分USB外设无需单独的供电系统。 由于 USB 的诸多特点,在PC的外围设备中,取代了大部分传统的接口。但在智能仪器仪表中,还大量地使用RS一232C接口。...图4 Micro USB接口图 图5 各USB 版本传输速率与输出电流对比 2.2 USB通信过程 图5 USB通信过程 一般的USB主机和设备之间遵循主从通信的原理,每一次的数据传输都是又主机发起...对于某一具体设备来说,使用哪个驱动来管理,就要由协议栈驱动程序通过读取设备描述符进行挑选。选择好驱动程序之后,协议栈驱动程序还要给USB设备分配地址。...在通信主机(USB)和RS-232/RS-485/RS-422串口设备之间可以实现数据的双向传输。...因为Framework层中并没有封装关于串口通信的类库,所以我们需要通过Android NDK来实现打开、读写串口,然后提供接口供Java本地调用。

    11.4K10

    【STM32F407】第2章 ThreadX USBX协议栈介绍

    2.3.2 USBX的USB规范认证 已使用 USB IF 标准测试工具 USBCV 对 USBX 设备堆栈进行严格的测试,以确保完全符合 USB 规范以及与不同主机系统的互操作性。...2.3.4 USBX设备类支持 USBX 设备支持大多数流行类,包括 CDC/ACM、CDC/ECM、DFU、HID、PIMA (PTP/MTP) (w/MTP)、RNDIS 和 STORAGE。...2.3.5 USBX主机类支持 USBX 主机支持大多数流行类,包括 ASIX、AUDIO、CDC/ACM、CDC/ECM、GSER、HID(键盘、鼠标和远程控制)、HUB、PIMA (PTP/MTP...当相机或手机连接到打印机时,打印机为 USB 主机,照相机为 USB 设备。 然而,在使用 Pictbridge 时,相机显示为主机,而且命令是从相机驱动的。 相机是存储服务器,打印机是存储客户端。...Pictbridge 使用 USB 作为传输层,但依赖于 PTP(图片传输协议)作为通信协议。

    42620

    【STM32H7】第2章 ThreadX USBX协议栈介绍

    2.3.2 USBX的USB规范认证 已使用 USB IF 标准测试工具 USBCV 对 USBX 设备堆栈进行严格的测试,以确保完全符合 USB 规范以及与不同主机系统的互操作性。...2.3.4 USBX设备类支持 USBX 设备支持大多数流行类,包括 CDC/ACM、CDC/ECM、DFU、HID、PIMA (PTP/MTP) (w/MTP)、RNDIS 和 STORAGE。...2.3.5 USBX主机类支持 USBX 主机支持大多数流行类,包括 ASIX、AUDIO、CDC/ACM、CDC/ECM、GSER、HID(键盘、鼠标和远程控制)、HUB、PIMA (PTP/MTP...当相机或手机连接到打印机时,打印机为 USB 主机,照相机为 USB 设备。 然而,在使用 Pictbridge 时,相机显示为主机,而且命令是从相机驱动的。 相机是存储服务器,打印机是存储客户端。...Pictbridge 使用 USB 作为传输层,但依赖于 PTP(图片传输协议)作为通信协议。

    65310

    【STM32F429】第2章 ThreadX USBX协议栈介绍

    2.3.2 USBX的USB规范认证 已使用 USB IF 标准测试工具 USBCV 对 USBX 设备堆栈进行严格的测试,以确保完全符合 USB 规范以及与不同主机系统的互操作性。...2.3.4 USBX设备类支持 USBX 设备支持大多数流行类,包括 CDC/ACM、CDC/ECM、DFU、HID、PIMA (PTP/MTP) (w/MTP)、RNDIS 和 STORAGE。...2.3.5 USBX主机类支持 USBX 主机支持大多数流行类,包括 ASIX、AUDIO、CDC/ACM、CDC/ECM、GSER、HID(键盘、鼠标和远程控制)、HUB、PIMA (PTP/MTP...当相机或手机连接到打印机时,打印机为 USB 主机,照相机为 USB 设备。 然而,在使用 Pictbridge 时,相机显示为主机,而且命令是从相机驱动的。 相机是存储服务器,打印机是存储客户端。...Pictbridge 使用 USB 作为传输层,但依赖于 PTP(图片传输协议)作为通信协议。

    77630

    4G模组拨号上网功能

    4G模组拨号上网功能同样是Android设备上面的标配功能。...然后更底层,就是各个厂家的libreferece-ril.so要和Linux的驱动进行交互,这些驱动包含在内核中,源码由modem制造商提供。这一部分不是Android的标准。...移远通信会提供QMI_WWAN源码,文件名为qmi_wwan_q.c,将这个源码放到kernel/drivers/net/usb里面,然后修改Makefile 图片 这个qmi_wwan.c是内核原本就有的...因此这里qmi_wwan_q.o在Makefile中必须放在qmi_wwan.o前面,这样编译的时候,qmi_wwan_q.o就会靠前,当识别到EC20模组的interface 4设备时,就会先于qmi_wwan...图片 另外还要给这个设备节点权限,在device/rockchip/common/ueventd.rockchip.rc增加一行 /dev/cdc-wdm0 0666 radio radio 上述修改完成之后

    2.7K90

    高通SDX12平台:LINUX上MBIM功能异常

    值,再通过USB_CDC_SET_NTB_INPUT_SIZE设置到模块内部,而linux上仅有获取,没有设置,导致从ioctl中获取到的NTB INPUT SIZE值为0。...在cdc_mbim驱动cdc_mbim_bind中会去调用cdc_ncm驱动中的cdc_ncm_bind_common函数: \drivers\net\usb\cdc_mbim.c static int...中调用cdc_ncm_setup去启动设备,在cdc_ncm_setup中会调用cdc_ncm_update_rxtx_max进行rx和tx size的更新: static int cdc_ncm_setup...(dev, def_rx, def_tx); … } cdc_ncm_update_rxtx_max中根据host默认最大值和通过USB_CDC_GET_NTB_PAR AMETERS命令获取到的值进行比较...= ctx->rx_max 通过2.5节的分析和在驱动中添加log打印,确认在cdc_ncm_update_rxtx_max中,val值为16384,ctx->rx_max值也为16384,恰好不符合设置条件

    2.7K20

    如何在Openharmony中实现USB复合设备

    背景 如何让Openharmony设备HDC接口(OTG接口)作为一个复合设备,实现HDC(HDC:鸿蒙设备连接器) + CDC ACM(USB 虚拟串口),而设备本身支持HDC。...,分为USB设备主机侧驱动(主模式),或者USB设备从机侧驱动(从模式)。...同时,工作在主模式的USB控制器,称为USB主机控制器(UHC:USB Host Controller),工作在从模式的USB控制器,称为USB设备控制器(UDC: USB Device Controller...这里所谓模拟,是指通过USB来模拟这些设备的行为,而这些对于连接对端的USB主机是透明的。...其中USB设备控制器(UDC)驱动负责USB设备控制器(UDC)和主机侧USB控制器(UHC)之间的数据传输;而Gadget功能驱动(function)负责实现功能协议(如UDC等)。

    39110

    加密钱包再爆严重漏洞,看我怎么“榨干”你的钱包

    硬件钱包允许用户在计算机设备上通过USB端口来完成加密货币的交易活动,但是它们并不会跟主机设备共享钱包私钥,因此恶意软件就无法获取硬件钱包的密钥了。...Ledger硬件钱包 在对Ledger的硬件设备进行分析时,Saleem Rashid发现这些设备中包含一个安全处理器芯片以及一个不安全的微型控制器芯片。...安全处理器芯片(A)其实也是一种微型控制器,它存储了交易所需的私钥以及其他凭证数据,而另一个不安全的微型控制器(B)主要用来处理一些对安全性要求不高的任务(代理),例如在显示屏上显示文本信息、处理USB...在Ledger当前的架构中,A只能直接跟B通信,但B可以代表A来与其他外部设备通信。...尽管Ledger设备通过某种方法实现了设备中代码运行的完整性保护控制,但是由于微型控制器B缺乏验证机制,因此研究人员仍然能够绕过这种保护机制,并在Ledger产品中运行恶意代码。

    71740

    【一文秒懂】Linux ADB调试环境搭建指南

    image-20240418110611723 1、ADB介绍 ADB:Android Debug Bridge,安卓调试桥,是用的最多的一种命令行工具,它能够在电脑端和安卓支持的设备端进行通信,其通信方式有两种...环境搭建 3.1 主机端安装 如果你的主机端是linux,则 sudo apt install adb 如果你的主机端为windows,则需要下载安装包:【adb】,安装完后,可以在当前路径下运行,也可以加入环境变量中...# USB功能文件系统,启用USB 功能文件系统支持 # 可选的一些功能 CONFIG_USB_CONFIGFS_ACM=y # 一种USB设备模式,用于模拟串口设备的通信。...CONFIG_USB_CONFIGFS_MASS_STORAGE=y # USB大容量存储功能 内核配置打开后,一定不要忘了在dts设备树中打开USB配置。...4、如何使用 我们想要使用adb,首先需要在开发板上启动adbd后台进程,adbd与主机端的adb通信是通过USB或者Tcp/Ip的,所以就需要提前配置。

    1K10

    nfc手机与手机数据传输_iphone数据传输已取消

    我正在尝试为医院开发Android应用程序.在该系统中,需要使用NFC技术将存储在Android手机中的数据库中的患者信息获取到台式计算机中.无论如何我在哪里可以使用NFC USB读取设备(ACR122U...NFC智能卡读卡器RFID编写器5 Mifare USB)将数据从手机传输到我的台式电脑?...真实情况是,在医院,当一个人想要获得一些测试结果时,他将到达柜台并将移动设备放置在安装在柜台上的NFC读取器设备上,这样做了关于患者的所有细节应该转移到柜台的台式机....>如果您只需支持Android 4.4及更高版本的Android设备(即使不支持所有Android NFC设备,请参阅this),您也可以在读写器模式下使用ACR122U.在读写器模式下,ACR122U...可以与非接触式智能卡进行通信.有关如何访问此类ISO / IEC 14443-4非接触式智能卡,请参阅reader’s manual.在Android端,您将使用基于主机的卡仿真(HCE)模式.有关Android

    1.2K10

    USB HOST与 USB OTG的区别及工作原理

    目前USB硬件接口分三种,普通PC上使用的叫Type;原来诺基亚功能机时代的接口为Mini USB;目前Android手机使用的Micro USB。...2个两用OTG设备连接在一起时可交替以主机和从机的方式工作,这个特点兼容了现有USB 规范主机/外设的结构模型。OTG主机负责初始化数据通信的任务,比如:总线复位、获取USB 各种描述符和配置设备。...因此,OTG 规范要求每个两用OTG设备有一个支持的外设式OTG目标设备的列表,列表中包括设备的类型和制造商等信息。...USB2.0中定义三种类型: HOST(主机),Device(设备), HUB OTG新增两种设备: Dual-role device(两用设备),Perip-heral-only OTG device...一个Mini-B插座(不能使用Mini-AB) Android usb如何实现既可以发现accessory设备,同时也可以发下host设备 做usb通信,首先要先弄清楚哪边是HOST那边是SLAVE

    10K30

    【STM32F429】第8章 学习USB协议栈前要了解的基础知识

    USB 3.2规范于2017年9月发布。 USB4规范于2019年8月29日由USB-IF发布。 8.3 USB架构 系统中只能有一个主机,并且与设备进行的通信是从主机的角度进行的。...端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...8.6 USB传输速度 不同USB版本的速度如下: 8.7 USB通信(重要) USB是轮询总线,USB主机发起所有数据交换。数据往返于USB设备中的端点。...USB主机中的客户端将数据存储在缓冲区中,但没有端点。USB主机和外围USB设备具有不同的层,如下图所示。层之间的连接是每个层之间的设备接口。在连接之间,使用Pipes传输数据。...例如,USB主机的客户端可以将数据发送到端点1。来自USB主机的数据将发送到OUT端点1。准备就绪后,微控制器上的程序将立即读取数据。

    2.2K20

    【STM32F429】第4章 ThreadX USBX协议栈基础知识

    USB 3.2规范于2017年9月发布。 USB4规范于2019年8月29日由USB-IF发布。 4.3 USB架构 系统中只能有一个主机,并且与设备进行的通信是从主机的角度进行的。...端口是设备上的 USB 物理连接点。集线器是一个专用设备,允许主机同总线上的多个外设进行通信。与 USB 外设(例如鼠标)具有实际功能不同,集线器设备是透明的,并且作为直通连接使用。...4.6 USB传输速度 不同USB版本的速度如下: 4.7 USB通信(重要) USB是轮询总线,USB主机发起所有数据交换。数据往返于USB设备中的端点。...USB主机中的客户端将数据存储在缓冲区中,但没有端点。USB主机和外围USB设备具有不同的层,如下图所示。层之间的连接是每个层之间的设备接口。在连接之间,使用Pipes传输数据。...例如,USB主机的客户端可以将数据发送到端点1。来自USB主机的数据将发送到OUT端点1。准备就绪后,微控制器上的程序将立即读取数据。

    62810

    Android Automotive及IVI概述

    它与手机和平板电脑等设备上搭载的 Android 使用相同的代码库,位于同一个存储区中。...和Android Auto的区别 Android Auto是一个基于用户的手机运行的平台,可通过USB连接将Android Auto用户体验投射到兼容的车载信息娱乐系统。...在描述面向用户的Android Automotive设备功能时,通常将该术语作为车机(HU)的同义词 区域互连网路(LIN):车载组件之间通信时所用的串行网络协议 车载HAL:该接口会定义原始设备制造商...usb usb接口 5M ---- 3. framework车机模块 Android Framework,可以理解成是Android系统的中间件层,⼤致分为以下⼏部分: Core APP:区别于第三方...当呈现仪表板时,CarService会在启动过程中读取config.xml的InstrumentClusterRendererService密钥,以定位InstrumentClusterService实现

    5.2K40

    带你遨游USB世界

    Linux USB驱动总体结构图 从Host侧看,在Linux驱动中,处于USB驱动最底层的是USB主机控制器硬件,在其上运行的是USB主机控制器驱动,在主机控制器上的为USB核心层,再上层为USB设备驱动层...主机控制器驱动负责识别和控制插入其中的USB设备,USB设备驱动控制USB设备如何与主机通信,USB Core则负责USB驱动管理和协议处理的主要工作。...从Device侧看,UDC驱动程序直接访问硬件,控制USB设备和主机间的底层通信。Gadget API是UDC驱动程序回调函数的包装。Gadget Driver具体控制USB设备功能的实现。...2.3、USB描述符 对应上述USB设备的构成,USB采用描述符来描述USB设备的属性,在USB协议的第九章(chaper 9)中,有对USB描述符的详细说明,在Linux驱动的以下文件中,定义了USB...在JNI中,会打开MTP文件节点"/dev/mtp_usb",然后调用MtpServer对象的run()方法不断的从中读取消息并进行处理。

    2.7K21
    领券