碧波液压网 欢迎你,游客。 登录 注册

在嵌入式系统中实现USB主机功能

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  引言

  USB作为当前最为常见和方便的数据传输接口,在PC上已经作为标配,然而在嵌入式设备中还并不普遍,其中一个非常重要的因素是技术上的障碍。无论是从硬件还是软件方面讲,要实现USB接口都有非常大的工作量,并且不同的平台会遇到不同的问题,这些因素都制约了USB在嵌入式设备中的应用。

  USB提供的是主机和设备中间的一种数据通信服务。主机是USB的核心,每一次USB数据通信都必须由USB主机发起,主机管理着每个USB设备。为了实现USB主机功能的统一,提高系统的可靠性与可移植性,上游芯片生产厂家在满足USB标准的同时,也遵循相应的主机规范,也就是HCI(主机控制接口)。现在用得比较多的有三种,包括用于USB2.0高速设备的EHCI增强主机控制接口、英特尔推出的UHCI通用主机接口,以及前康柏、微软等公司推出的OHCI开放主机控制接口。这些规范定义了usb主机控制器寄存器层面的接口以及主机控制器驱动器和主机控制器软硬件之间的接口。但是EHCI和OHCI要求系统提供高速高性能的CPU、大的存储空间以及PCI总线接口。

  由于大多数的嵌入式系统无法满足EHCI和OHCI的这些要求,所以这些主控制器接口规范大都用在PC环境下。针对这种情况,爱普生(EPSON)公司推出主要面向嵌入式领域的USB控制器,其主机控制器接口采用通道方式而不是EHCI。这种方式适用于中低端的处理器系统,并且不需要太大的存储空间,另外和CPU之间采用的是总线接口而不是PCI。  

  图1 USB系统的总体结构

  图1是USB系统的总体结构,分为软件部分和硬件部分。其中USB设备部分最常见的就是U盘。此外就是USB主机部分要实现的内容。

  USB主机功能实现与分析

  本文以EPSON的S1R72V17为例,分析并介绍如何实现其USB主机功能。  

  图2 S1R72V17 USB主机硬件原理图

  S1R72V17实现USB主机的硬件参考原理图如图2所示。S1R72V17的电源系统分三个部分。第一部分是HVDD,这部分为72V17的USB以及相应的I/O供电,需要的参考电压是3.3V;第二部分是LVDD,这部分为72V17内部模块、OSC以及测试模块供电,需要的参考电压是1.8V;第三部分是CVDD,这部分为72V17的CPU接口供电,需要的参考电压是1.8V~3.3V。

  72V17与CPU可以通过16位或8位数据总线相接进行数据传输,CPU可以通过9位地址总线访问72V17内部的0x200范围内的地址空间,包括所有的寄存器和FIFO内容。由于72V17和CPU之间的数据传输需要中断的通知,所以还有一个中断信号需要输出。用户可以通过设置0x75寄存器来配置总线的访问模式、中断触发等问题。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论