1.2基于OHCI的USB主机 —— 背景介绍

转载 2012年03月22日 09:38:35
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/226133
使用AT91RM9200作为主控CPU,利用该芯片的USB主机接口访问U盘,根据接收的上层命令把相应数据保存到U盘的指定文件上。不使用额外的专用USB控制芯片,要求稳定可靠,效率高,不能影响运行在该CPU上的其它程序。
AT91RM9200程序加载后直接运行,没有操作系统。
以上就是我做的基于OHCI的USB主机的项目背景,这个项目是做什么的不重要,你可以把它想象成任何项目,关键是这个项目要求使用U盘来保存数据。
另外,在我们的项目中没有使用任何一款嵌入式操作系统,所有的程序都运行在同一个主循环中,自己来实现任务调度。说到操作系统,其实很惭愧,自从我开始从事嵌入式系统的开发到现在,十几年了,从来没有用过任何操作系统,所有程序都是裸机直接运行。好处是系统简单,一切都在自己的掌握之中,出了问题可以很快得到解决。坏处是系统的移植性差,换了个系统有很多通用的代码需要重新编写。
不过我做的那些嵌入式系统现在看来其实都是蛮简单的,用了操作系统可能反而更麻烦,首先得花时间学习操作系统,而且出了问题还要分析确认这问题是不是操作系统的问题,一旦是操作系统的问题还要想办法怎么规避,算了,有那个时间项目早就做完了。
没有操作系统,我的程序更加清晰,没有了驱动程序加载、操作系统API调用,反而可以更加清楚地知道如何基于OHCI规范实现USB主机。在开始讲解之前,我想读者应该具备如下的基础知识:
1、 USB接口基础知识;
2、 USB层通信协议及基本工作流程;
3、 USB主机对USB设备的管理流程;
4、 OHCI标准 —— AT91AM9200对USB接口的操作标准;
5、 Mass Storage Protocol —— 对U盘访问的存储控制协议;
6、 UFI Command - U盘读写等操作命令;
7、 FAT16文件系统;
以上内容有一些我会在需要的时候加以说明,更加详细的内容请自行参考相关资料。下面是我做开发过程中参考的一些资料:
1、 《Open Host Controller Interface Specification for USB》
路径
ftp://ftp.compaq.com/pub/supportinformation/papers/hcir1_0a.exe
说明
OHCI接口规范,解压后得到Word文档
2、 《ARM嵌入式系统软件开发实例(一、二)》
路径
 
说明
周立功等编著,北京航空航天大学出版社
3、 《USB 2.0应用系统开发实例精选》
路径
 
说明
廖济林编著,电子工业出版社
4、 《Universal Serial Bus Mass Storage Class Bulk-Only Transport》
USB Bulk-Only协议规范
5、 《Universal Serial Bus Mass Storage Class UFI Command Specification》
USB UFI命令规范
6、 《Microsoft Extensible Firmware Initiative FAT32 File System Specification》
FAT32文件格式,基础部分与FAT16兼容

基于OHCI的USB主机 —— 背景介绍

写在前面的话:这篇文章原来发表在我的51CTO技术博客里,最近把CSDN这边的空间恢复了,于是把那边的文章搬过来。使用AT91RM9200作为主控CPU,利用该芯片的USB主机接口访问U盘,根据接收的...
  • tywali
  • tywali
  • 2009年11月30日 19:56
  • 501

USB主机控制器驱动——OHCI分析

首先,整个驱动框架的开始,是基于 platform 平台总线的。 struct platform_device s3c_device_usb = { .name = "s3c2410-ohci...
  • lizuobin2
  • lizuobin2
  • 2016年07月18日 22:34
  • 4463

3.1 基于OHCI的USB主机 —— OHCI(端点)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/236950 ...
  • landishu
  • landishu
  • 2012年03月22日 09:54
  • 316

3.3 基于OHCI的USB主机 —— OHCI(HCCA)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/238666   ...
  • landishu
  • landishu
  • 2012年03月22日 09:57
  • 243

基于OHCI的USB主机 —— 目录

我的《基于OHCI的USB主机》系列文章已经完毕了,我觉得需要建立一个目录,以便需要的人可以迅速找到所需要的文章。本文档的目标就是建立一个该系列文章的目录,可能还会对每个部分进行简单介绍。 第一...
  • landishu
  • landishu
  • 2012年03月22日 09:36
  • 394

基于OHCI的USB主机 —— OHCI(传输描述符)

传输描述符(TD) 传输描述符(TD)是系统内存的数据结构,被HC用于定义从端点收发数据的缓冲区。TD分为2个类型:通用TD和同步TD。通用TD用于中断、控制和批量端点,同步TD用于同步传输。使用两...
  • tywali
  • tywali
  • 2009年12月07日 10:38
  • 982

基于OHCI的USB主机 —— OHCI(基本流程)

根据上面的介绍可以发现,通过USB端口进行数据收发的主要工作就是构建ED和TD列表。其中ED列表控制数据的传输方向,TD列表完成具体的数据打包和传输。按照OHCI规范,ED和TD列表都是可以在使用过程...
  • tywali
  • tywali
  • 2009年12月07日 18:02
  • 786

基于OHCI的USB主机 —— OHCI(HCCA)

主机控制器通信区(HCCA)是一个256字节对齐的内存数据结构,被系统软件用于与HC进行通信,收发相关控制和状态信息。系统软件通过HcHCCA寄存器设置HCCA的地址到HC。该结构允许软件给HC的函数...
  • tywali
  • tywali
  • 2009年12月07日 10:38
  • 1468

基于OHCI的USB主机 —— OHCI(端点)

OHCI (Open Host Controller Interface),是康柏、微软、国家半导体等公司共同制定的一个USB主机接口规范,它提供一个更抽象的接口来完成USB数据传输工作。在OHCI规...
  • tywali
  • tywali
  • 2009年12月07日 10:37
  • 1091

3.9 基于OHCI的USB主机 —— OHCI(设计思路)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/243412 ...
  • landishu
  • landishu
  • 2012年03月22日 10:01
  • 267
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1.2基于OHCI的USB主机 —— 背景介绍
举报原因:
原因补充:

(最多只允许输入30个字)