嵌入式linux内核添加USB模块(U盘)支持

使用menuconfig工具进行配置

1、Device Drivers->SCSI device support->SCSI disk support此选项必须勾选

2、Device Drivers->USB support->Support for Host-side USB 此选项选中后会出现子菜单,故必须选中

3、Device Drivers->USB support->USB Mass Storage support 此选项必须选中,否则/dev/下没有设备

4、因为我是在DM6467平台下,所以需要Device Drivers->USB support->Inventra USB Highspeed Dual Role Controller Support选项,并选择其子选项下的DaVinci 644x USB support下Driver Mode为Host

编译内核即可,下载内核后成功支持USB的热插拔及其文件系统

以上选项仅基于我自己的平台,且测试条件单一(只有一个U盘、linux内核为2.6.0.10)

EHCIOHCI,UHCI的比较和区别 

2012-07-20 23:25 34488人阅读 评论(1) 收藏 举报

interface工作

什么是 ehci?什么是 ohci?就是host controller 的接口

EHCI和OHCI的比较和区别
   什么是 ehci?什么是 ohci?就是host controller 的接口.从硬件上来说,usb 设备要想工作,除了外设本身,必须还有一个咚咚叫做 usb host controller.一般来说,一个电脑里有一个 usb host controller就可以了,她就可以控制很多个设备了,比如 u 盘,比如 usb 键盘,比如 usb 鼠标.所有的外设都把自己的请求提交给usb host controller.然后让 usb host controller 统一来调度.
   现在一般的USB桥接器模块有两种类型,UHCI和OHCI。在决定插入那一个桥接器模块时,可以察看/proc/pci文件来决定。。一般而言,UHCI类型的桥接器它的插入模块是uhci或usb-uhci(由内核版本决定);而对于OHCI类型的桥接器它的插入模块是ohci或usb-ohci。

uhci(universal host controller interface): Intel用在自家芯片组上的usb 1.1主控制器(host controller)的硬件实例
    ehci(enhanced host controller interface): usb 2.0的主控制器标准接口。
     ohci(open host controller inferface):一个不仅仅是usb用的主控制器接口标准。主要是遵循csr (configuration space register)标准。是其他厂商在设计usb host controller时遵循的标准,如via, nec, ali, 包括nvidia等等。
     ehci是满足usb 2.0 specification里面对usb host controller (high speed)的要求的硬件设计。

为了实现USB主机功能的统一,提高系统的可靠性与可移植性,上游芯片生产厂家在确定USB标准的同时,也确定了相应的主机规范。现在用得比较广泛的有三种,其中的用于USB2.0高速设备的EHCI(Enhanced Host Control Interface增强主机控制接口)规范是INTEL用于USB2.0高速主机的。而同是INTEL推出的UHCI(Universal Host Control Interface 通用主机)与前Compaq 、Microsoft等推出的OHCI(Open Host Control Interface开放主机控制接口)可用于全速与低速USB系统中,硬件的要求与系统性能、软件复杂的要求相对较低,也能够满足大部分的具有USB接口嵌入式系统的要求。而在UHCI与OHCI的对比中,UHCI对硬件的要求相对较少,但对系统的处理能力与软件的开发要求相对要高(PC机就较多地采用了UHCI);OHCI则把较多的功能定义在硬件中,软件需要处理的内容就相对容易,对系统的处理能力和系统资源的要求就低。

因此,在嵌入式的USB HOST功能中,较多地选用了遵循OHCI的规范的硬件,从而简化了系统的设计。

EHCI 驱动程序的功能包括:

  • 符合支持 USB 2.0 的增强主机控制器接口的标准。
  • 支持高速控制、批处理和中断传输。
  • 目前尚不支持高速同步事务。
  • USB 2.0 芯片包含一个 EHCI 控制器以及一个或多个 OHCI 或 UHCI 控制器。
  • USB 1.1 设备插入后会动态分配给 OHCI 或 UHCI 控制器。USB 2.0 设备插入后会动态分配给 EHCI 控制器。

    简单地讲,OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.0的接口标准。

  • 1. OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,还支持其他的一些接口,比如它还支持Apple的火线(Firewire,IEEE 1394)接口。与UHCI相比,OHCI的硬件复杂,硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单。主要用于非x86的USB,如扩展卡、嵌入式开发板的USB主控。
  • 2. UHCI(Universal Host Controller Interface),是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容。UHCI的软件驱动的任务重,需要做得比较复杂,但可以使用较便宜、较简单的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。
  • 3. EHCI(Enhanced Host Controller Interface),是Intel主导的USB2.0的接口标准。EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。
  • 4. xHCI(eXtensible Host Controller Interface),是最新最火的USB3.0的接口标准,它在速度、节能、虚拟化等方面都比前面3中有了较大的提高。xHCI支持所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed)。xHCI的目的是为了替换前面3中(UHCI/OHCI/EHCI)。

Linux USB札记相关推荐

  1. Linux USB 驱动开发(五)—— USB驱动程序开发过程简单总结

    http://blog.csdn.net/zqixiao_09/article/details/51057086 设备驱动程序是操作系统内核和机器硬件之间的接口,由一组函数和一些私有数据组成,是应用程 ...

  2. linux usb初始化

    linux usb 初始化 谨以此文纪念过往的岁月 一.前言 对于usb的普通驱动,我们了解了不少,但是对于usb的真正核心还是不是太理解.该文中对于usb的初始化进行一定的学习,如有不对之处,请各位 ...

  3. linux usb驱动

    0.usb协议     usb的版本:     硬件         usb 1.0     OHCI        微软                 硬件 > 软件         usb ...

  4. Linux USB驱动框架分析 【转】

    转自:http://blog.chinaunix.net/uid-11848011-id-96188.html 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结 ...

  5. garmin USB: linux USB host驱动

    以garmin usb为例: 1)编译生成garmin_usb.ko文件,使用insmod命令安装模块 2)使用lsmod命令可查看内核已经安装好模块:garmin_usb 3)插入USB设备后,使用 ...

  6. linux usb声卡 submit urb,linux usb urb详解

    linux usb urb详解 谨以此文纪念过往的岁月 一.前言 在前文中看过了hub的驱动以及host的驱动还有usb设备的驱动,在把这些东西关联起来的东东中,一个很重要的urb(usb reque ...

  7. linux内核配置usb虚拟串口,Linux USB虚拟串口设备

    Linux内核中usb设备侧驱动程序分成3个层次:UDC驱动程序.Gadget API和Gadget驱动程序.UDC驱动程序(USB控制器)直接访问硬件,控制USB设备和主机间的底层通信,向上层提供与 ...

  8. Linux usb bus日志如何打开,从linux usb bus节点来认识usb linux usb认识

    首先从linux dmesg来认识usb: <6>[   19.610046] msm_hsic_host msm_hsic_host: Qualcomm EHCI Host Contro ...

  9. linux来源usb驱动在哪下载,Linux USB驱动程序基础

    非常好的linux驱动入门,介绍详尽 Linux USB驱动程序基础 来源: ChinaUnix博客日期:2008.04.10 23:55(共有条评论) 我要评论 ( Linux USB Driver ...

最新文章

  1. 消息称中国商务部已批准高通收购恩智浦
  2. Nodejs介绍及其安装
  3. pyqt5入门教程(二)
  4. Java 集合 之 房屋出租实例
  5. Mysql(1)——服务端与客户端建立连接
  6. Morse理论:拓扑不变性特征匹配原理
  7. LeetCode—33. 搜索旋转排序数组
  8. SpringBoot 整合Shiro Ehcache
  9. HarmonyOS 开发避坑指南
  10. jquery 插件解决IE6 PNG不透明
  11. MySql Workbench不支持中文字符找不到my.cnf文件解决办法
  12. 架构之美-读书笔记之一
  13. 计算机一级二级三级四级相当的水平,计算机等级考试通过必看:一至四级通关策略...
  14. Fe3O4 NPs@MIL-53|NH2-MIL-53(Sc)|NH2-MIL-53(Al)|NH2-MIL-125负载银钴合金纳米材料|氨基化mof材料
  15. 关于STM32H7的串口DMA的使用
  16. AcWing 2041. 干草堆(一维差分)
  17. 我这些年从来没有用过算法,除了出去面试的时候
  18. 一图看懂| 人工智能知识体系大全
  19. 全球移动通信系统GSM(2G)
  20. jzxx1176买蛋糕

热门文章

  1. context元素大概解说
  2. Bdsyn百度手机助手是何物,它是怎样神不知鬼不觉地安装到你的电脑里的?
  3. echo 12345678 | base64 产生的结果跟12345678真正的base64编码不对
  4. 详谈asp生成静态页方法
  5. Visual Studio Team System 2008 Team Suite 简体中文正式版
  6. 计算机专业多元协同,项目主导多元协同资源开放—软件技术专业人才培养体系的创新实践.pdf...
  7. mysql count 不等于_Mysql 不同的 count 区别
  8. linux服务器用哪个面板好,Linux服务器管理面板哪家比较好用?
  9. oracle视图查询数据慢,8i查询DBA_FREE_SPACE视图极慢的问题
  10. git安装后找不见版本_无法安装最新版本的Gitlab