驱动开发

嵌入式软件应用

文章编号:l帅8—0570(2∞8)08吨—∞86一m2

中文核心期刊‘微计算机信息)(嵌入式与soc)2008年第24卷第8-2期

Linux+ARM下的USB驱动开发

UsBDnverDeve|0pmentUnderLinuxandARM

(重庆邮电大学)周永光唐伦刘光明

ZHOU

Yong_guangTANG

Lun

UU

Guang—m^ng

摘要:本文介绍了嵌入式“n眦下设备驱动程序的编写原理,并阐述了在Lin呱下z228usB的驱动程序的具体实现。在开发成功的案例下。讨论了USB驱动的编写技术。中图分类号:TP311.1

关键词:嵌入式Li眦;驱动程序;uSB;ARM;嘞大容量存储设备类

文献标识码:A

A№ct:This

Key

in协讨uc∞tlIeprincipleofthede“cedrvierpmgmmminginembedded“n吐,coinstaIltaIleousexpoundtlleini-

plement0fZ228USBdiverinLinux,andintroduceh洲to州teaLin呱USB蕊哪baBed伽a鲫ccessfuldevel叩mentcase.

paper

。’

wor山:咖bedd酣Lin呱;d—ve倦;USB;ARM;USB

MASS

1引言

当工程技术人员还沉湎于RS一232及打印机并口设计时,一种新型的接口标准已经迅速发展成熟,这便是uSB。1994年,一个由4个行业伙伴(Compaq

Inter

的是,“n眦内核提供了一个称为USB核心(usBco婶)的子系统来详细处理大部分的复杂性。uSB设备的构成,包括配置、接口和端点。以及uSB驱动程序如何绑定到USB接口上.而不是整个UsB设备。

挂在“nux系统上的每个设备都被描述为设备驱动程序文件。一些与设备有关的设备参数文件被保存在/dev目录下。用户自己提供或编写设备驱动时.也需要在,dev目录下有一个设备文件。设备驱动程序可以分为三个主要组成部分:(1)自动配置和初始化子程序(2)服务于I,0请求的子程序(3)中断服务子程序。设备驱动程序是操作系统内核和机器硬件之间的接口,为应用应用程序屏蔽了硬件细节。应用程序可把硬件设备当普通文件看待,并对其进行操作。设备驱动程序是内核的一部分,它主要完成以下功能:对设备进行初始化;使设备投入运行和退出服务;把数据从内核传送给设备和从设备接受数据;检测和处理设备出现的错误。

Micr080fI和NEC)组成的联

盟开始制定usB协议。2004年4月,发表了uSB2.0版本,理论支持高达480Mbps的传输速率。

usB由于具有即插即用、数据传输速度快、易扩展等优点.因此被广泛的应用在PC机和嵌入式系统当中。usB设备端常见的开发模式有PhilipPDIul2芯片+8051单片机、然后使用EasyusB开发套件等等,但这些开发模式都是基于8位的微处

理器控制单元(MCu),而以J蛀m为开发基础的32位SoC近年

来发展迅速。

随着简单实用的uSB接口技术的不断发展成熟,在嵌入式系统中开发usB接口已成为大势所趋。本文着重研究讨论利用

上海Jade自主研发的芯片z228(ARM926EJ)自带的uSB一07陀

接口,采用Linux操作系统技术.用ARM+unll)【来开发并且实现UsB大容量存储设备类。

3Z228

USB—OTG硬件描述

z228是一款高度集成的低功耗的具有强大多媒体处理能

力的SOC芯片。它的特点是内置266MHz的ARM926EJ内核。片内集成usB?07rG控制模块,同时支持便携式usB主设备或USB外设相连.可用于与PDA、读卡器和打印机等设备直接相连,而无需Pc机介入。

采用多层的AHB总线系统,为01.G模块提供独立的总线。伽[1G子系统的主要硬件框图如图l所示,子系统中最主要的模块包括以下三部分:0TGMAc、0TG1LI、BIu。07rGMAc(Me.

diaAccesscontr01)是将传送或接收数据转换成usB数据格式

LiImx驱动程序的基本原理

【曲ux下开发设备驱动程序的原理较之windo啪系统来说结构层次简单明了。un瞰操作系统中定义了三种设备,即字符设备、块设备和网络设备。字符设备是指存取时没有缓存的设备。块设备的读写都有缓存来支持,并且块设备必须能够随机存取,字符设备则没有这个要求,usB设备主要通过快速串行通信来读写数据,一般把它作为字符设备处理。usB驱动程序存在于不同的内核子系统(块设备、网络设备、字符设备等)和USB硬件控制器之中。uSB核心为uSB驱动程序提供了一个用于访问和控制uSB硬件的接口.而不必考虑系统当前存在的各种不同类型的USB硬件控制器。USB设备是一个复杂的东西,幸运

的硬件模块。07rcTu(TmnsactionIJayerInte血ce)是MAc和应用程序之间的一个数据缓冲层,所有的MAc和应用层的交流都是通过Tu实现的。值得一提的是实现设备主从转换的芯片是Philip的IsPl301,在此不过多介绍它。z228内部通过AHB

从设备总线配置usB控制器,可工作在全速(12M矶)和低速

周永光:硕士

(1.5Mb,s)两种模式下。

一86—360元,年邮局订阅号:82-9伯

arm+linux+usb驱动开发,Linux+ARM下的USB驱动开发相关推荐

  1. STM32MP157驱动开发——设备树下的LED驱动

    STM32MP157驱动开发--设备树下的LED驱动 主要内容:将之前章节中使用新设备设备驱动编写的LED驱动改成设备树形式 文章目录 STM32MP157驱动开发--设备树下的LED驱动 一.主要步 ...

  2. I.MX6ULL ARM驱动开发---设备树下的LED驱动实验

    一.什么是设备树?   设备树(Device Tree),将这个词分开就是"设备"和"树",描述设备树的文件叫做 DTS(Device Tree Source) ...

  3. linux c++开发_Linux/Windows下进行C/C++开发的差异

    1. 平台差异简介 Windows 和Unix是当前两大主流操作系统平台,基于C/C++的开发人员经常会面临这两个平台之间的移植的问题.Unix作为一个开发式的系统,其下有出现了很 多个分支,包括Su ...

  4. linux下无线网卡驱动安装失败,kail下安装无线网卡驱动出错

    kail下安装无线网卡驱动出错 发布时间:2015-04-28 19:09:11来源:红联作者:Nan3r root/rtl8192EU_linux_v4.2.2_7585.20130524/os_d ...

  5. 编译qt的oracle驱动,怎样编译Qt下的Oracle驱动

    Windows下编译Oracle驱动 打开工程: C:\Qt\4.8.1\src\plugins\sqldrivers\oci 修改oci.pro: TARGET = qsqloci SOURCES ...

  6. YDLidar开发-在win10下使用C++/python开发全过程-SDK配置

    文章目录 前言 一. 安装USB转接板的串口驱动 二.使用评估软件LidarViewer 三. 在win10下使用C++的开发 1.下载SDK 2.安装vcpkg,检查系统环境配置情况 3.cmake ...

  7. eclipse linux c开发环境,Eclipse下搭建C/C++开发环境

    首先确保你已经安装了eclipse和JDK. 接下来安装CDT,这个可以去网上下载,CSDN里有很多CDT的下载站点,下载后解压,里面有两个文件夹:features和plusins,把文件夹里的东西拷 ...

  8. Linux——Linux驱动之设备树下platform总线驱动编写实战(手把手教你设备树下platform总线利用GPIO控制蜂鸣器完整实现过程)

    [系列专栏]:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! <QT开发实战> <嵌入式通用开发实战>

  9. matlab xpc 环境pci板卡驱动编写,XPC环境下PCI板卡驱动

    当Simulink 与S-function 相互作用时,Simulink 所调用的第一个程序是mdlInitializeSizes,随后调用的是其它S-function 函数(所有的函数名均以mdl ...

  10. Linux下安装显卡驱动及CUDA程序

    Linux下安装显卡驱动及CUDA程序 系统参数 安装显卡驱动 通过ubuntu菜单下的软件与更新安装驱动程序 通过PPA仓库自动化安装 apt_get安装 查看可以安装的显卡驱动版本 通过apt-g ...

最新文章

  1. python编程工资-看到抖音上Python工程师晒得工资条,我沉默了......
  2. 注意设置httpclient连接数
  3. 决策树c4.5编译,
  4. HDU - 2819 Swap(二分图完备匹配+路径输出)
  5. 在当今移动互联网时代_谁在提供当今最好的电子邮件体验?
  6. mysql 读写引擎_揭秘MySQL存储引擎spider
  7. matlab求零空间,matlab求矩阵的零空间的一组整数基,该怎样操作?
  8. 小小的 Python 编程故事
  9. maven创建java,Maven创建Java项目
  10. linux下c++版本线程池的实现
  11. dbeaver连接Oracle数据库
  12. 常用Windows快捷键大全
  13. 迅雷下载太慢怎么办?
  14. Android 白天黑夜模式切换
  15. DCOS(centos 7.4/7.6)
  16. 换个方式认识一下——微信公众号搜索公众号列表 API
  17. HTML作业简单注册界面
  18. 堆叠hourglass网络
  19. 《七哥说道》第十六章:程序员,江湖见
  20. 单片机秒表c语言,单片机制作秒表计时器(c语言)

热门文章

  1. kaliddos教学
  2. 2.详解DEBUG模式
  3. (Winserver 2019) Hyper-V的安装与使用教程
  4. 2-1. 厘米换算英尺英寸(15)
  5. STM32F4---通用定时器更新中断
  6. Matlab 实现 数值计算方法 二分法
  7. spa:单页web应用(介绍,实现思路及技术点,路由,router-link相关属性)
  8. 前端随录(SPA与MPA和PWA)
  9. Mysql日期的加减法_mysql日期加减
  10. Xen,Hypervisor,XenServer的关系