USB 管道 && 端点】的更多相关文章

管道是对主机和usb设备间通信流的抽象.      管道和usb设备中的端点一一对应,一个usb设备含有多少个端点,其和主机进行通信时就可以使用多少条管道,且端点的类型决定了管道中数据的传输类型.   端点数是由软件决定的,所以管道自然也是软件决定的咯.          端点: 每一个USB设备在主机看来就是一个端点的集合.主机只能通过端点与设备进行通讯,以使用设备的功能.每个端点实际上就是一个一定大小的数据缓冲区,这些端点在设备出厂时就已定义好.在USB系统中每一个端点都有唯一的地址,这是由…
USB设备,分为3层:1.底层为传送和接受数据的总线接口:2.中间层处理总线和不同端点的数据传输:3.最高层由串行总线设备提供.主要研究中间层. USB设备状态,主要研究外部可见状态. 1,连接态-->USB设备可从Host上连接或者断开. 2,加电态-->设备对电源的支持能力是通过配置描述表来反映的. 3,缺省态-->加电后尚未复位之前不应对总线相应,在接收到复位信号后,设备在缺省地址处可寻址. 4,编址态-->设备由主机分配一个唯一的地址后,就保持这个地址. 5,配置态--&g…
Preface   USB体系支持多种类型的设备. 在 Linux内核,所有的USB设备都使用 usb_driver结构描述.    对于不同类型的 USB设备,内核使用传统的设备驱动模型建立设备驱动描述,然后映射到 USB设备驱动,最终完成特定类型的 USB设备驱动    USB驱动·入门:http://infohacker.blog.51cto.com/6751239/1226257   USB串口驱动      USB串口驱动关键是向内核注册串口设备结构,并且设置串口的操作. 下面是一个典…
转自:http://www.cnblogs.com/lcw/p/3159370.html Preface USB体系支持多种类型的设备. 在 Linux内核,所有的USB设备都使用 usb_driver结构描述. 对于不同类型的 USB设备,内核使用传统的设备驱动模型建立设备驱动描述,然后映射到 USB设备驱动,最终完成特定类型的 USB设备驱动 USB驱动·入门:http://infohacker.blog.51cto.com/6751239/1226257 USB串口驱动 USB串口驱动关键…
本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 设备框架可以被分成三层: 最底层是总线接口层,传送和接收包. 中间层处理在总线接口和设备的各种端点之间路由数据.如同USB 2.0,端点时最终的数据消费者或提供者.它可以被想作是数据源或者目的.端点的特性在端点描述符中描述,例如,端点的传输类型,最大负载(MaxPacketSize),以及一次可以接收或者发送的包个数(Burst Size). 最上层是由串行总线设备提供的功能性,例如,鼠标或者视频摄像头接…
本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章列出并定义本规范通篇将使用的术语及缩略语. 术语/略缩语 定义 ACK(确认包) 表示积极肯定的握手包. ACK Tx Header Sequence Number(ACK Tx 头包序列号) 等待确认的链路控制字中期望的头包序列号. Active Device(活动设备) 处于供电状态而不是挂起状态的设备. Asynchronous Data(异步数据) 对时延要求宽松的,不定期的(irregula…
ref : https://blog.csdn.net/u010142953/article/details/82627591 USB 基本知识  USB的重要关键概念:  1. 端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点.输出端点.配置端点.批量传输端点)  2. 帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作…
通用串行总线(USB)是主机和外围设备之间的一种连接.最新USB规范修订增加了理论上高达480Mbps的高速连接. 从拓扑上看,USB子系统并不是以总线的方式来布置的,它是一颗由几个点对点的连接构建而成的树. USB是四线缆:地线.电源线.两根信号线 USB主控制器负责询问每一个USB设备是否有数据需要发送. 一个USB设备在没有主控制器要求的情况下是不能发送数据的. 方便搭建即插即用的系统. 只担当设备和主控制器之间通信通道的角色,对它所发送的数据没有任何特殊的内容和结构上的要求. USB协议…
概观 本教程是为出发点使用NI-VISA与USB设备进行通信.它不打算作为一个起点,学习USB构架或USB通讯中使用的各种协议.阅读本教程后,您应该能够安装一个USB设备,并使用NI-VISA与该设备进行通信,只要你理解了设备的通信协议. 目录 USB与VISA的背景 配置NI-VISA来控制USB设备 使用NI-VISA以沟通与您的USB设备 USB在Linux®和Mac 1.USB与VISA的背景 VISA是用于仪器总线进行通信的高级API.它是独立于平台,独立总线和环境的独立.换句话说,相…
USB设备描述符和请求命令 介绍标准的USB设备描述符和请求命令. 标准的USB描述符 当USB设备第一次连接到主机上时,要接收主机的枚举和配置,目的就是让主机知道该设备具有什么功能.是哪一类的USB设备.需要占用多少USB的资源.使用了哪些传输方式以及传输的数据量多大等等.只有主机完全确认了这些信息后,设备才能真正开始工作.这些信息是通过存储在设备中的USB描述符来体现的. USB设备的属性包括很多内容,为了便于管理,USB协议1.1将这些信息做了分类,定义了很多种描述符,其中标准的描述符包括…
USB URB的status及其代表的意义 平时在处理客户问题时,经常需要分析出现问题时抓取的usbmon log,这个log中有一个字段非常重要:URB Status word,这个字段就是struct urb结构体中的status成员变量. 通过这个status的值,可以分析出模块端和HOST端usb的一些状态,有利于定位到问题点. Linux内核中对该成员变量的注释如下: 表明该字段仅仅表示批量传输.控制传输和中断传输的URB状态,等时传输不在其中,不过我们的模组也没有等时传输的端点. 在…
文章目录 1. USB 发展历史 1.1 USB 1.0/2.0 1.2 USB 3.0 1.3 速度识别 1.4 OTG 1.5 phy 总线 1.6 传输编码方式 2. 总线拓扑 2.1 Device 内部的逻辑关系 2.2 Compound/Composite Device 2.3 Hub 2.4 Configure Descriptor 3. 总线调度 3.1 Frames/Microframes 3.2 Bulk Transactions 3.3 Control Transfers 3…
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(三): 基于FwLib_STC8的模数转换ADC介绍和演示用例说明 STC8H开发(四): FwLib_STC8 封装库的介绍和使用注意事项 STC8H开发(五): SPI驱动nRF24L01无线模块 STC8H开发(六): SPI驱动ADXL345三轴加速度检测模块 STC8H开发(七…
HDF(Hardware Driver Foundation)驱动框架是HarmonyOS硬件生态开放的基础,为开发者提供了驱动加载.驱动服务管理和驱动消息机制等驱动能力,让开发者能精准且高效地开发驱动程序. 本期,我们将为大家带来HDF驱动框架中USB DDK的解析与指导. 一.USB DDK介绍 USB(Universal Serial Bus)通用串行总线,用于规范电脑与外部设备的连接和通讯,包含了主机端(Host)和设备端(Device).其中,主机端负责USB总线中的数据传输及端口管理…
本文转载自:http://www.360doc.com/content/12/0321/14/8363527_196286673.shtml 注意,该文件是2.4的内核的驱动源文件,并不保证在2.6内核中可用.文件路径为kernel/driver/usb/usb_skelton.c 该文件是usb驱动的一个框架,很多usb的驱动都可以在这个文件的基础上进行修改得到. 下面就是该源文件,中文部分是我的注释,如有错误的地方,欢迎指出. /* * USB Skeleton driver - 0.6 *…
本文转载自:http://www.360doc.com/content/12/0504/19/8363527_208666082.shtml 编写USB驱动程序步骤:1所有usb驱动都必须创建主要结构体struct usb_driverstruct usb_driver->struct module *owner   (有他可正确对该驱动程序引用计数,应为THIS_MODULE)->const char *name   (驱动名字,运行时可在查看 /sys/bus/usb/drivers/)-…
(一)DeviceIoControl的PInvoke /* ---------------------------------------------------------- 文件名称:DeviceIoControl.cs 作者:秦建辉 MSN:splashcn@msn.com QQ:36748897 博客:http://blog.csdn.net/jhqin 开发环境: Visual Studio V2010 .NET Framework 4 Client Profile 版本历史: V1.…
背景: USB理论知识光看着空想总觉着丢三落四,好像哪里没法理解到位,自己做个总结. 正文: 1. USB通信的最基本单位是“包”.如果把“包”肢解的话,可以分为各种“域”(7类,即一串二进制数.每类域均有具体的位数规定). 包有三种:令牌包,数据包,握手包 a)      令牌包:输入包,输出包,设置包,帧起始包.(通俗理解为,主机要求设备做什么) b)      数据包:Data0 / Data1. c)      握手包:ACK正确应答包,NAK无效包,STALL延时包. 2. USB是一…
dscr51里放的是USB描述符表,EZ-USB在重枚举阶段会读取或设置相应的描述符: db    DSCR_DEVICE_LEN          ;; Descriptor length db    DSCR_DEVICE                  ;; Decriptor type dw   0002H                                 ;; Specification Version (BCD) db    00H                  …
2.1 LM3S处理器简介 Luminary Micr公司Stellaris所提供一系列的微控制器是首款基于Cortex-m3的控制器,它们为对成本尤其敏感的嵌入式微控制器应用方案带来了高性能的32位运算能力. 这些具备领先技术的芯片使用户能够以传统的8位和16位器件的价位来享受32位的性能,而且所有型号都是以小占位面积的封装形式提供. <ignore_js_op> Stellaris系列芯片能够提供高效的性能.广泛的集成功能以及按照要求定位的选择,适用于各种关注成本并明确要求具有的过程控制以…
USB简介   USB是英文Universal Serial BUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术.USB接口支持设备的即插即用和热插拔功能. USB的电气特性 USB连接器包含四条线:2条用于电源供电(VBUS和GND),2条用于USB数据传输(D+和D-).VBUS提供5V电源,电流可达500mA.D+和D-为双向信号线,信号传输速率为12Mbps(每位83ns).D+和D-信号电平为3.3V  USB的特点  1)…
#ifndef __USBREG_H #define __USBREG_H /* usb设备中断定义 usb_devintst usb_devinten usb_devintclr usb_devintdet*/ #define FRAME_INT           0x00000001  //每隔1MS产生一次帧中断,该中断用在同步包的传输中 #define EP_FAST_INT         0x00000002  //端点的快速中断,在端点中断优先级中设置端点优先级别 #define…
LPC1768芯片带有USB设备控制器,前面写的文章都是在说比较简单的设备驱动,今天来说复杂一点的 首先是硬件层的配置 #ifndef __USBHW_H__ #define __USBHW_H__ #include "debugSerial.h" #include "usbreg.h" #include "usb.h" #include "usbuser.h" #include "usbcfg.h" #i…
源:STM32 USB 问题汇总 汇总1:STM32的USB例程修改步骤,来自http://blog.csdn.net/cy757/archive/2010/01/01/5117610.aspx 以下是笔者将ST的Custom_HID例程修改为“自定义USB设备”例程时总结出来的,因为笔者也是刚刚学USB开发不久,某些方面理解错误在所难免,请各位大虾指正. 一.usb_desc.c文件 根据你程序使用的通信方式修改.usb_desc.h文件中定义要根据usb_desc.c文件中的数组的大小:Co…
目录 usb输入子系统写程序 小结 内核修改 怎么写代码 类型匹配 probe disconnect 程序设计 1th匹配probe 2th 获取usb数据 3th 输入子系统上报按键 title: usb输入子系统写程序 tags: linux date: 2018/12/18/ 18:46:04 toc: true --- usb输入子系统写程序 目标:usb鼠标模拟一个键盘,左键L,右键S,中键enter 参考: drivers/hid/usbhid/usbmouse.c这是自带的USB鼠…
参考博客 https://www.cnblogs.com/xiao987334176/p/9025072.html#autoid-1-1-0 进程同步(multiprocess.Lock.Semaphore.Event) 锁 —— multiprocess.Lock 通过刚刚的学习,我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启也不受我们控制.尽管并发编程让我们能更加充分的利用IO资源,但是也给我们带来了新的问题. 当多个进程使用同一份数据…
前面学习了USB相机硬件固件.设备驱动,可以实现USB设备识别.数据发送的功能.然后,非常重要的一部分,USB设备发出的数据,我要怎么接受,怎么查看发送的数据是否是正确的.网上百度了下,大部分人都使用的是C++的开发平台,而我想在.NET下使用C#制作上位机来实现USB设备数据的接收以及数据的显示,这里的数据为图像数据.查找了很久,C#部分的设计确实很少,大体的思路都有说道,但是更加清晰详细的解释没有.下面就针对我这几天查阅的资料作一分享: 基于VS开发平台,.NET架构下C#的USB设备编程,…
昨日内容回顾 进程 multiprocess Process —— 进程 在python中创建一个进程的模块 start daemon 守护进程 join 等待子进程执行结束 锁 Lock acquire release 锁是一个同步控制的工具 如果同一时刻有多个进程同时执行一段代码, 那么在内存中的数据是不会发生冲突的 但是,如果涉及到文件,数据库就会发生资源冲突的问题 我们就需要用锁来把这段代码锁起来 任意一个进程执行了acquire之后, 其他所有的进程都会在这里阻塞,等待一个releas…
https://developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web Access USB Devices on the Web 访问USB设备通过Web By François Beaufort Dives into Chromium source code If I said plain and simple "USB", there is a good chance that you wil…
之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host功能,首先你需要确定你的平板(手机)设备是否支持USB Host的功能,你可以从手机开发商的简介里面看到,这个功能是由CPU直接关联的,和软件没有关系,所以,你可以把你的外设模块插进去你的Android设备看看有没有反应(比如:指示灯亮),假如没有反应,那肯定是不支持的. 废话说了那么多了,进入正题…