USB
文章平均质量分 89
qingkongyeyue
拼搏到无能为力,坚持到感动自己,有些路走下去很长,很累,但是不走会后悔。人生最大的痛苦,莫过于,坚持了不该坚持的,而放弃了不该放弃的
展开
-
USB子系统的树形结构
1、为什么要开发USB2、USB子系统的树形结构这棵大树主要包括USB连接(1)USB主机控制器(2)Hub(3)usb连接(4)Conpound Device 和Composite Device原创 2016-10-11 20:02:23 · 864 阅读 · 0 评论 -
usb_serial部分分析3
转自http://blog.csdn.net/aaronychen/article/details/3555885generic.c:static int generic_probe(struct usb_interface *interface, const struct usb_device_id *id){转载 2017-07-01 16:38:05 · 722 阅读 · 0 评论 -
usb_serial部分分析2
转自http://blog.csdn.net/aaronychen/article/details/3555885好了,是时候分析usbserial模块了. 我们知道当把一个模块加载进系统时会调用这个模块里的一个由module_init()声明的一个初始化函数. usbserial当然也不另外, usb-serial.c:module_init(usb_serial_i转载 2017-07-01 16:41:29 · 1051 阅读 · 0 评论 -
usb_serial部分分析4
转自http://blog.csdn.net/aaronychen/article/details/3555885接着看usb_serial_probe()usb-serial.c:.... /* found all that we need */ dev_info(&interface->dev, "%s converter detected/n"转载 2017-07-01 16:40:18 · 966 阅读 · 0 评论 -
usb_serial部分分析5
转自http://blog.csdn.net/aaronychen/article/details/3555885我们先来了解下probe的过程Driver的prob的调用顺序: 1 device_add(): 把device注册到相应的bus上去,并创建相应的device file,最后调用bus_attach_device()2 bus_attach_device()调转载 2017-07-01 16:39:41 · 2732 阅读 · 0 评论 -
usb_serail部分分析1
转自http://blog.csdn.net/aaronychen/article/details/3555885通用USB设备驱动源码分析Author:aaron前段时间写了篇驱动小结>的文章,描述了自己如何为高通的一个usb modem设备写驱动的过程,最近发现实际上可以使用Linux自带的一个叫usbserial的模块作为这个modem的驱动并能良好的工作,所以写了这转载 2017-07-01 13:02:15 · 530 阅读 · 0 评论 -
USB 设备驱动开发之几个重要结构体分析
转自http://blog.csdn.net/winscar/article/details/6312812该部分所有结构体的声明均可以在内核源文件 usb.h 内找到,有兴趣的朋友可以阅读源码。 USB设备其实很复杂,但是Linux内核提供了一个称为USB core的子系统来处理了大部分的复杂工作,所以这里所描述的是驱动程序和USB core之间的接口。在USB设备组转载 2017-07-03 22:25:45 · 2419 阅读 · 0 评论 -
USB的端点与管道以及设备、配置、接口、端点
1、端点的引入2、端点与管道3、特殊端点4、USB端点的四种类型5、USB逻辑设备原创 2016-10-11 20:35:10 · 4145 阅读 · 1 评论 -
usb_control_msg函数用法
转自http://blog.csdn.net/jiang_dlut/article/details/5836398//usb_control_msg是没有用到urb的在USB中简单进行发送和接收的一种机制,用于少量的数据通信linux+v2.6.35/drivers/usb/core/message.c104/**105 * usb_control_msg - Buil转载 2017-07-03 22:25:08 · 6911 阅读 · 0 评论 -
USB驱动程序之USB总线驱动程序学习笔记
USB总线驱动程序的作用1. 识别USB设备1.1 分配地址1.2 并告诉USB设备(set address)1.3 发出命令获取描述符描述符的信息可以在include\linux\usb\Ch9.h看到 (Ch9是指USB规范的第九章)2. 查找并安装对应的设备驱动程序3. 提供USB读写函数把USB设备接到开发板上,看输出信原创 2016-11-27 11:39:44 · 3168 阅读 · 0 评论 -
hotplug_uevent机制学习笔记
1、为什么有hotplug_uevent机制(1)查看驱动程序,以前是构造file_operation结构体。(2)在入口函数来注册它。(3)为什么还要创建类,为什么还要在类下创建设备,这样做是为了让mdev根据这些信息来创建设备节点(4)分析为什么class_device_create这个函数能让mdev创建设备节点class_device_create原创 2016-11-24 19:48:24 · 2193 阅读 · 0 评论 -
USB驱动程序之概念介绍学习笔记
现象:把USB设备接到PC1. 右下角弹出"发现android phone"2. 跳出一个对话框,提示你安装驱动程序问1. 既然还没有"驱动程序",为何能知道是"android phone"答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone" 提示你安装的是"设备驱动程序"原创 2016-11-27 11:06:37 · 2016 阅读 · 1 评论 -
sysfs目录树
uusb2是内核的USB Core给Root Hub分配的编号2-1表示USB总线上的每设备都以Root Hub的编号作为其名字的第一个号码,这个号码后跟着一个“-”字符,以及设备所插入的端口号。2-1:1.0表示2-1后面跟一个“:”和USB配置(configuration)的编号,然后是一个“.”和该接口的编号原创 2016-10-11 21:09:37 · 277 阅读 · 0 评论 -
USB从了解都熟悉2-----USB通信协议
1、包(由五部分构成)2、信息包格式根集线器:从电脑上接一个出多个usb接口的一个usb设备原创 2016-10-13 20:25:50 · 885 阅读 · 0 评论 -
USB驱动程序之USB设备驱动程序1简单编写
1、驱动编写分析(1)usb总线驱动程序在我们接入USB设备的时候会帮我们构造一个新的usb_device.注册到总线里面来。左边这一块已经帮我们做好了,我们要做的是右边这一块。我们要构造一个usb_driver结构体,然后注册进去。usb_driver结构体里面的id_table表示能够支持哪一些设备,里面的probe函数表示能够支持接入设备时会被调用。(2)目的USB鼠标用作键原创 2016-11-28 22:28:38 · 9834 阅读 · 0 评论 -
USB的VID和PID,以及分类(Class,SubClass,Protocol)
转自http://blog.csdn.net/gaojinshan/article/details/7878330USB(Universal Serial BUS,通用串行总线)协议规定,所有的USB设备都有VID(Vendor ID,供应商识别码)和PID(Product ID,产品识别码)。VID由供应商向USB-IF(Implementers Forum,应用者论坛)申请。每个供应商转载 2016-11-23 18:22:53 · 4273 阅读 · 0 评论 -
USB通信协议
目录(?)[+]基本概念包Packet1 PID类型即包类型 12 Token Packets3 Start-of-FrameSOF Packets4 Data Packets 5 Handshake Packets事务Transaction1 输入IN事务处理2 输出OUT事务处理3 设置SETUP事务处理 USB传输类型1 控制传输 Control T转载 2016-11-23 18:40:22 · 690 阅读 · 0 评论 -
USB_interface结构体分析
转自http://liu1227787871.blog.163.com/blog/static/20536319720129149102907/struct usb_interface { //本接口对应的所有的设置(与配置不是一个概念) struct usb_host_interface *altsetting; struct usb_host_interface *c转载 2016-11-25 17:40:03 · 5500 阅读 · 0 评论 -
USB从了解都熟悉1-------USB概念、接口构成、信号技术和通信格式、通信原理和设备连接检测
1、先了解一下什么是USB通用串行总线(英语:Universal Serial Bus),从字面上看有两个关键词,一个是串行,这个串行可能让大家联想到串口,数据虽然都是串行传输,但是与串口有以下不同:USB —— 传输速度快,接插方便(支持热拔插),可发展性好。传输距离短,成本高,开发复杂,需要驱动程序支持(通用设备os直接支持)。COM —— 传输速度慢,接插不便,接近于淘汰原创 2016-10-13 19:54:35 · 8926 阅读 · 1 评论 -
linux USB驱动层次
USB 采用树形拓扑结构,主机侧和设备侧的USB 控制器分别称为主机控制器(HostController)和USB 设备控制器(UDC),每条总线上只有一个主机控制器,负责协调主机和设备间的通信,而设备不能主动向主机发送任何消息。如图20.1 所示,在Linux 系统中,USB 驱动可以从两个角度去观察,一个角度是主机侧,一个角度是设备侧。 如图20.1 的左侧所示,从主机侧的观原创 2016-11-22 18:00:52 · 529 阅读 · 0 评论 -
USB驱动程序之USB设备驱动程序2鼠标用作键盘学习笔记
1、usbmouse.c(1)在这个probe函数后判断是不是一个鼠标,先得到usb_host_interface结构体,除了端点0外,端点个数如果不是1,返回错误,表示不是自己能支持的设备。如果只有一个端点,放在endpoint这个数组里面。endpoint[0]是表示除了端点0外的第一个端点。得到它的端点描述符。 如果不是输入(中断)类型端点,输入输出是站在主机角度说的,鼠标是输入设备原创 2016-12-03 10:49:51 · 1790 阅读 · 1 评论 -
hotplug_uevent机制_修改mdev配置支持U盘自动挂载学习笔记
1、接入U盘,看输出打印信息并分析(1)输出信息自动创建设备节点(2)用ls命令查看这里/dev/sda表示整个U盘,/dev/sda1表示这个U盘的第一个分区。(3)手动挂载,查看文件,手动卸载2、想自动卸载和挂载(1)查看mdev(看它除了创建设备节点外,还做什么事情)查看mdev_main函数如果有mdev.conf配置文件,根据配原创 2016-11-26 17:01:45 · 2347 阅读 · 0 评论