### 东南大学嵌入式系统实验室内部资料7:Nucleus下的USB Host操作流程详解 #### 一、概述 本文档旨在深入解析东南大学嵌入式系统实验室内部资料中的一个核心部分——Nucleus操作系统环境下USB Host(主机)的操作流程。这部分资料特别适合初学者学习ARM架构下的嵌入式开发,既可作为学习笔记又可用作开发手册。文档详细介绍了硬件初始化过程、S1R72005 USB控制器的特点及其引脚连接,以及USB通信的基本原理和主机软件结构等内容。 #### 二、硬件初始化 ##### 1. C_Board_Init() 硬件初始化过程通常从C_Board_Init()函数开始,该函数主要负责中断处理及定时器初始化。这些是嵌入式系统中最基本的组成部分,确保了系统的稳定运行。 ##### 2. hc_cfg_gpio() 接下来是hc_cfg_gpio()函数,用于配置GPIO(General Purpose Input/Output,通用输入/输出)。这里主要是为了配置中断引脚USB_INT5和复位引脚。这两个引脚在USB设备的插入或拔出过程中起到关键作用。 #### 三、S1R72005 USB控制器介绍 S1R72005是一款高性能的USB控制器,兼容USB 2.0标准,支持全速12Mbps传输速率,并且具有OTG(On-The-Go)功能。其特性包括: - 整合Host、外围和On-the-Go功能于单个芯片中; - 兼容On-the-Go 1.0协议; - 支持USB 2.0全速模式(12Mbps); - 配备On-the-Go端口; - 支持Control、Bulk、Interrupt和Isochronous四种传输模式; - 内置2.5Kbyte传输FIFO; - 设有16位宽的处理器通用接口; - 可以作为16位宽的DMAslave使用; - 支持12MHz、27MHz和48MHz的晶振时钟输入; - 内置PLL电路。 #### 四、S1R72005引脚连接 S1R72005的引脚连接主要包括以下几方面: - CD0-CD15/D0-D15:数据线; - CA0-CA7/A0-A7:地址线; - xWR/nWE:写使能; - xRD/nOE:读使能; - xCS/nCSD:片选; - xINT/PORTA.5:中断引脚; - xWAIT:等待信号; - xRESET/PORTG.11:复位信号。 #### 五、USB互连 USB设备与主机之间的连接和通信主要包括以下几个方面: - **总线拓扑结构**:定义了USB设备如何连接到主机。 - **内部层次关系**:描述了USB通信的不同层次,如信号层、协议层和数据传输层。 - **数据流模式**:包括信号层传输的位信息流、协议层传输的包信息流(事务处理)以及数据传输层的信息流(传输)。 #### 六、USB主机软件结构 USB主机软件结构由多个层次组成,主要包括USBD层和HCD层。 ##### 1. USBD层 USBD层主要负责管理主机控制器、客户端驱动程序的管理和USB设备的配置与管理等。其具体功能包括: - 管理主机控制器,提供与HCD层的接口函数; - 客户端驱动程序管理,维护每个设备驱动程序的相关数据结构; - USB设备配置与管理,通过USB命令实现; - 数据传输管理,用于控制传输的接口函数为usb_control_msg,批量传输的接口函数为usb_bulk_msg。 ##### 2. HCD层 HCD层的主要功能包括: - 主机控制器硬件初始化; - 为USBD层提供接口函数; - 根集线器配置和控制; - 支持四种类型的数据传输工作; - 中断处理,根集线器每隔255时间周期进行一次端口状态查询。 #### 七、Nucleus系统下USBhost驱动 在Nucleus操作系统中,为实现USBhost功能,建立了两个任务:usb_client_task和usb_hub_task。其中,usb_client_task的优先级最高,但需等待客户端驱动程序加载完成才能被唤醒,因此会先进入usb_hub_task任务。usb_hub_task任务负责进行主机初始化。 #### 八、USBHOST初始化流程 初始化流程涉及寄存器配置、中断设置、定时器创建与使能等多个步骤。 - **主机控制器寄存器的配置**:包括重置所有寄存器、设置外部中断引脚的输出方式以及使能中断寄存器。 - **通道配置**:创建定时器,并设置服务程序为timer_isr,初始状态下未使能。 - **定时器使能**:在usb_otg72015_rh_init_int_timer函数中调用NU_Control_Timer使能定时器。 - **查询集线器状态**:在timer_isr函数中调用usb_otg72015_rh_int_timer_do查询集线器状态的变化。 - **中断注册与激活**:注册低级中断并激活高级中断。 #### 九、系统对USB存储类设备的插入管理 当检测到USB存储设备插入时,系统会执行一系列操作来配置新设备: - **usb_alloc_dev**:申请一个新的usb_device,并获取总线上对应的主机控制器资源。 - **usb_connect**:为设备分配一个设备ID。 - **usb_new_device**:配置设备,并为其加载驱动。 本文档详细解析了Nucleus操作系统环境下USB Host的初始化流程及相关关键技术点,旨在帮助学习者更好地理解ARM架构下的嵌入式开发。

































剩余21页未读,继续阅读


- 粉丝: 73
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 测绘合同0516.doc
- 阀门、弯头、法兰防腐、保温工程量计算.doc
- [实用]金属结构工程量计算及组价附图讲义.ppt
- 福建某体工队场馆改造工程室外管道施工方案.doc
- 会展中心造价估算指标.doc
- 2009-2010学年度第一学期高三英语教学工作总结.doc
- 【中天七建】23-佛山万科星都荟项目技术策划.pdf
- [南京]电厂工程烟囱基础混凝土施工作业指导书.doc
- 关键岗位人才盘点工具.docx
- 2016年建设工程计价解释.doc
- 工程经济与管理自测题.doc
- 驾驶员手册——安全行为和职业操守.pptx
- 地基处理新技术3(排水).ppt
- 某多层砖混结构住宅工程双排落地式钢管脚手架施工方案.doc
- 5S与3定教材.ppt
- (期权)股权赠予协议.doc


