USB
文章平均质量分 87
ljzcom
这个作者很懒,什么都没留下…
展开
-
USB HOST之OHCI_1 ED,TD简述
在主机控制器里,介绍几个重要的结构:一:ED(endpoint descriptor)总共16字节对齐。先看第一字主要描述了硬件配置信息。[6:0]为设备地址(function address)[10:7]是端点地址(endpoint number)[12:11]是数据方向,00:方向定义在TD 01: OUT 10:INT 11:TD[13]置位时是低速否则全原创 2012-05-30 13:47:31 · 3512 阅读 · 0 评论 -
USB OTG学习笔记
仅仅看了半天SPEC写的笔记,有些乱,等调试完毕再次整理,思路不是很成熟,推测成分较多,可能有不对的地方,欢迎拍砖交流指正。 1. 概要OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,为连接时候的USB Host,A-Device始终为总线提供电力,ID悬空被称作为B-Device,为连接时候的USB Device,设备的USB Host/U转载 2013-04-24 10:59:27 · 2780 阅读 · 0 评论 -
Linux USB Gadget--软件结构
USB Gadget是分层的软件结构,本文分析的是2.6.32.2版本的Gadget软件结构,这个软件结构与以前版本的变化很大。USB Gadget软件结构总共分为三层:一. UDC层 这一层是与硬件相关层。相关文件s3c2410_udc.c s3c2410_udc.h。s3c2410设备控制器作为一个linux设备在这一层是作为platform设备而注册到linux设备模型转载 2013-04-26 10:39:31 · 1428 阅读 · 0 评论 -
基于GTK的USB视频采集程序
基于GTK的USB视频采集程序 查了几天的资料,今天终于将USB摄像头测试程序调试成功了。这个测试程序很简单,功能就是将USB摄像头采集的数据显示在屏幕上。写这个程序的目的是熟悉usb摄像头的一些基本操作方法,为以后在开发板上编写视频采集程序打好基础。本测试程序包括两部分:一是视频采集部分,主要通过v4l2接口操作摄像头,将采集的视频帧存放在内存缓冲区。二是显示部分,将视频缓冲区转载 2013-04-26 13:38:34 · 1468 阅读 · 0 评论 -
winusb —— 不再为你的usb设备编写驱动
曾几何时我们找工作还发现有个驱动工程师职位,月薪也不低,没接触过的人代码压根看不懂。今天可好了,如果不太追求差异化,不用驱动也能让系统与USB设备通信了,Linux就不说了,libusb很好用,现在说下windows的。Winusb是从XP-SP2起微软提供的一个类似libusb与usb设备通信的中间件,通过它我们就不需要再费奏折的研究和编写USB驱动了。这是几篇资源,先列出来,后面会专门转载 2013-05-10 15:51:14 · 2234 阅读 · 0 评论 -
linux USB HOST之EHCI和OHCI
1. ehci寄存器定义在include/linux/usb/ehci-def.h, 而ohci寄存器定义在drivers/usb/host/ohci.h中。 待续......原创 2012-11-15 15:08:36 · 14445 阅读 · 1 评论 -
USB On-The-Go引脚 说明
USB On-The-Go 是什么 USB 接口的设备现在是随处可见了,打印机、相机、手机、MP3等几乎目前能想到的消费类电子设备都具有 USB接口。USB传输速率快,接口简单、支持热插拔的特性,使其在诸多接口中脱颖而出,大有统一天下之势。但传统的USB协议(USB2.0)限制了在 这庞大的设备群中必须有一个HOST作为主子,通常是PC。两个外设之间的数据交换必须通过这个主子中转才能转载 2013-12-20 15:32:00 · 1652 阅读 · 0 评论 -
linux ehci ehci_urb_enqueue之qh_urb_transaction()分析(一)
以下文字会对linux usb hcd driver中的ehci_urb_enqueue函数做一些说明。先把该函数罗列一下。1. /*2. * non-error returns are a promise to giveback() the urb later3. * we drop ownership so next owner (or urb unlink) can ge转载 2014-06-16 10:56:55 · 2923 阅读 · 0 评论 -
linux EHCI DRIVER之中断处理函数ehci_irq()分析(一)
EHCI的interrupt在HCD中被分为了6种类型,如下宏定义:/* these STS_* flags are also intr_enable bits (USBINTR) */#define STS_IAA (1#define STS_FATAL (1#define STS_FLR (1#define STS_PCD (1#define STS_ERR (1#转载 2014-06-16 10:59:24 · 3456 阅读 · 0 评论 -
linux ehci hcd之qh_urb_transaction()分析(二)
接下来从qtd_fill()中返回到qh_urb_transaction()中,再贴一下返回处的代码,如下1. if (usb_pipecontrol (urb->pipe)) {2. /* SETUP pid */3. qtd_fill(ehci, qtd, urb->setup_dma,4. sizeof (struct usb_ctrlrequest),5. to转载 2014-06-16 10:58:05 · 1949 阅读 · 0 评论 -
USB OTG的工作原理
USB OTG的工作原理 OTG补充规范对USB 2.0的最重要的扩展是其更具节能性的电源管理和允许设备以主机和外设两种形式工作。OTG有两种设备类型:两用OTG设备(Dualrole device)和外设式OTG设备(Peripheralonly OTG device) 。两用OTG设备完全符合USB 2.0规范,同时,他还要提供有限的主机能力和一个MiniAB插座、支持主机流通协议(原创 2013-04-24 10:24:14 · 6705 阅读 · 0 评论 -
usb video class spec概述
概述Video Class设备描述位于USB协议的Interface级,每个设备的Interface分为两类VideoControl Interface(仅仅只用一个)和VideoStreaming Interface(可以具有多个),而与设备的一个相关的所有的USB Interface被称作为一个Video Interface Collection使用IAD(Interface Associ原创 2013-04-24 10:53:11 · 2025 阅读 · 0 评论 -
linux usb驱动开发之数据结构1
内核使用2.6.29.4USB设备其实很复杂,但是Linux内核提供了一个称为USB core的子系统来处理了大部分的复杂工作,所以这里所描述的是驱动程序和USB core之间的接口。在USB设备组织结构中,从上到下分为设备(device)、配置(config)、接口(interface)和端点(endpoint)四个层次。对于这四个层次的简单描述如下: 设备通常具有一个原创 2012-06-26 15:34:00 · 1866 阅读 · 0 评论 -
linux usb驱动开发之数据结构3
编写 USB 驱动程序(本部分的一些示例源码来自drivers/usb/usb-skeleton.c,它是Linux内核为我们提供的最基础的USB驱动程序,USB骨架程序) 驱动程序把驱动对象注册到 USB 子系统中,之后使用供应商(idVendor)和设备(idProduct)标识来判断对应的硬件是否已经安装. 驱动的设备支持列表 struct usb_device_原创 2012-06-26 15:36:52 · 2308 阅读 · 0 评论 -
linux usb驱动开发之数据结构2
USB 设备驱动代码通过urb和所有的 USB 设备通讯。urb用 struct urb 结构描述(include/linux/usb.h )。 urb以一种异步的方式同一个特定USB设备的特定端点发送或接受数据。一个 USB 设备驱动可根据驱动的需要,分配多个 urb 给一个端点或重用单个 urb 给多个不同的端点。设备中的每个端点都处理一个 urb 队列, 所以多个 urb 可在队列清空之原创 2012-06-26 15:35:13 · 1776 阅读 · 0 评论 -
基于Linux的v4l2视频架构驱动编写
其实,我刚开始一直都不知道怎么写驱动,什么都不懂的,只知道我需要在做项目的过程中学习,所以,我就自己找了一个关于编写Linux下的视频采集监控项目做,然后上学期刚开学的时候听师兄说,跟院长做项目,没做出来也没关系,所以直接退出博士的团队,投靠了院长的门下,呵呵,说到这里其实并不是我太见风使驼了,而是····老是让我做单片机的东东,我嫌没意思,他也知道我一开始就要学嵌入式,所以,最后,我想了一下,既转载 2012-04-03 11:22:43 · 1053 阅读 · 0 评论 -
S3C6410添加linux OHCI驱动
idea6410开发手册中提到使用usb-host功能必须将无源晶振改为48MHz有源晶振,最近看了一下,使用OHCI兼容的USB-Host功能,可以通过EPLL提供时钟,也就是说外接晶振完全无用。果然,经过一晚的奋斗,USB-HOST功能搞定,记录一下过程。(1)首先看了S3C6410的数据手册,25章USB-HOST就薄薄两页,和S3C2410基本一样,大意是你去参考OHCI手册吧。这转载 2012-11-21 11:23:50 · 3190 阅读 · 0 评论 -
linux usb系统
1、 简述: USB 出自豪门,一问世便有 IBM,Microsoft,compaq 等前呼后拥,不红实在是没有道理,以致于连三岁小毛孩都知道买游戏手柄要买 USB 的。USB 名气这么大,但 USB 是什么呢?要是想找份写驱动的活谋生,常会被问到这样的要求: “ 给我讲讲 USB 。 ”无论你是谁,遇到这样的问题一定要扭头就跑,不然一定被雷死。 USB 使用方便,硬件转载 2013-02-06 16:57:08 · 17295 阅读 · 1 评论 -
USB OTG miniAB插口
USB2.0仅定义了如下允许的cable类型:在USB OTG中又扩展定义了如下几种cable类型: 当然,USB协议定义的电缆并不能满足所有的要求。当你觉得电缆长度不够,或者当你想把一种带标准A型插头的设备到插入标准B插座主板上时,你可就麻烦了,这时你需要使用USB电缆转接器(cable adapter)。为了使更多的USB设备能连接在一起,USB定义了几种转原创 2013-04-23 08:57:26 · 2961 阅读 · 0 评论 -
usb高速握手过程
低速设备D-上有一个1.5k欧的上拉电阻。高速和全速设别在D+上有一1.5k欧上拉电阻。连接后通过检测电压变化来了解设备是否为低速设别。低速下:D+为“0”,D-为“1”是为“J”状态,“K”状态相反;全速下:D+为“1”,D-为“0”是为“J”状态,“K”状态相反;高速同上。低速下空闲状态为“K”状态;全速下空闲状态为“J”状态;高速下空闲状态为“SE0”状态;原创 2013-04-23 09:05:39 · 2200 阅读 · 0 评论 -
linux usb drivers开发
Linux下的硬件驱动——USB设备(上)(驱动配置部分)http://www.ibm.com/developerworks/cn/linux/l-usb/index1.html Linux下的硬件驱动——USB设备(下)(驱动开发部分)http://www.ibm.com/developerworks/cn/linux/l-usb/index2.html转载 2013-02-06 16:49:33 · 11611 阅读 · 0 评论 -
linux EHCI DRIVER之中断处理函数ehci_irq()分析(二)
先上代码,1. static void scan_async (struct ehci_hcd *ehci)2. {3. struct ehci_qh *qh;4. bool check_unlinks_later = false;5. 6. ehci->qh_scan_next = ehci->async->qh_next.qh;7. while (ehci-转载 2014-06-16 11:00:42 · 3563 阅读 · 0 评论