0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DSP56f803和UHC124芯片实现嵌入式USB主机的应用方案

电子设计 来源:微计算机信息 作者:任爱娟 , 张铁壁 2020-09-21 17:52 次阅读

1 引言

随着移动存储业的发展及数码产品的普及,数据采集系统、工控行业和嵌入式用户对移动存储的需求越来越大,也对数据移动存储盘提出了更高的应用要求,包括到地矿数据采集行业用户、水文系统数据采集行业用户、仪器仪表制造行业用户、铁路、长途汽运等交通系统数据采集用户、油田数据采集系统用户、单板系统的软件升级用户、纺织系统数据采集用户、银行等。但由于之前多数数据采集设备、工控机及嵌入式系统不具备USB数据输入输出标准接口,所以在USB数据存储方面一直得不到很好的普及。业界和用户的需求使得嵌入式USB主机的研究成为USB研究领域的一个新的方向。

本文介绍了一种基于TTL串口的USB主机系统,通过TTL串口(或并口)转接出USB接口,系统原理图如图1所示。嵌入式设备需要通过TTL串口,按照USB主机系统的串口通信协议与USB主机系统进行数据传输和通信,主机系统负责优盘的检测和数据的存储。本文详细介绍了该系统的设计思路,并给出了硬件设计和USB 主机的底层驱动软件的设计方法。

基于DSP56f803和UHC124芯片实现嵌入式USB主机的应用方案

2 USB主机工作原理

对于我们设计嵌入式USB主机,可以参照PC上的USB主机。对于PC上的USB主机,其硬件方面由一个USB主机接口芯片控制,这个接口芯片在通过PCI总线与PC机通讯,其余还有电源管理部分;软件方面主要有三部分:USB接口驱动程序,负责CPU与USB主机接口芯片的通讯,负责底层USB包的接收和发送;USB协议栈驱动程序,负责解析设备驱动程序对USB的各种操作命令,并在解码后发给底层驱动程序;设备驱动程序,也就是上层的应用程序,包括操作系统提供给用户的API,以及用户自定义的对USB设备的操作,比如发送设备特有的USB命令请求。PC上的USB主机端软件结构图如图2所示。

3 系统结构

整个系统的核心芯片选用Motorola公司DSP56f803和TDI公司的USB HOST控制器UHC124。整个系统由DSP56f803模块、UHC124模块、UART串口模块。

3.1 DSP56f803模块

系统的核心控制器,包括基本硬件和编写的固件。实现的功能包括:实现与UHC124的物理连接和通讯,并且配置UHC124的控制寄存器;配置USB外设,实现USB通信,实现USB Host要求的各项配置和数据传输的要求,接受USB Host的命令来管理USB外设;实现FAT16文件系统。

3.2 UHC124模块

USB HOST控制器的硬件部分。实现USB Host的接口,配置下行USB设备,管理USB总线电源。实现的功能包括:实现各种USB Host动作,协调内容各项功能,与外围主控制器通讯;存放传输的USB数据,设置USB传输特性;与作为主控制器的DSP56f803接口连接;管理USB电源,连接下行USB设备,总共带有4个下行USB设备端口

3.3 UART串口模块

与用户通过串口进行协议通讯的固件部分。实现自定义的串口通讯协议,即根据自定义的串口通讯协议,解析串口通讯数据包,调用相应的文件操作接口函数,实现客户的文件操作命令。

4 硬件设计

4.1 硬件架构

硬件主要模块包括USB HOST、主控芯片、外部SRAM、译码指示和电源部分。主控芯片和USB HOST芯片连接,控制USB HOST芯片与移动存储盘通讯。考虑到需要给用户预留数据Buffer,所以外扩SRAM。因为芯片工作电源不同,所以要提供两组直流电源,译码指示电路采用3个LED指示灯,一个电源指示,一个指示移动存储盘的接入,另一个指示了工控机与移动存储盘通讯工作中。

4.2 USB主控芯片的选型

对于主控芯片的选型应该会有多种选择,只要带有UART接口,程序存储空间足够,程序的执行效率可以满足系统的功能需求即可。对于USB主控芯片,目前市面上出现的主要有3种:Sypress公司的SL811、Philips公司的ISP1161和TDI公司的UHC124。其中,SL811较为常见,笔者也曾用过此芯片进行过第一代产品的开发,综合各方面的选型因素考虑,第二代产品选用了UHC124。

UHC124与其他两款芯片的主优势在于:支持包传送,最多可一次性传送16个USB 协议交互数据,而不会向CPU产生中断,而SL811是每次都会产生中断,大大占用了CPU的资源;支持所有的USB传输类型,包括控制传输、榇?洹⒅卸洗?浜屯?酱?洌?沂?莅?畲罂纱锏?023字节;具有2K的数据存储区。

4.3 主控芯片与USB HOST相连的接口电路

UHC124支持两种存储器访问模式,取决于MODE引脚的电平高低。如果主控芯片没有外部总线,需采用模式0;如果主控芯片有独立或复用的数据地址总线,采用模式1。本方案所选的主控芯片DSP56f803具有独立的地址数据总线,因此采用UHC124的工作模式1。接口电路如下图4所示:

5. 软件设计

USB 主机软件的设计我们可以参照PC的USB 主机来设计。本方案的简要软件流程图如图5所示。

5.1 USB接口驱动程序

主要实现主控芯片DSP56f803与USB主机接口芯片UHC124的通讯,以及底层USB包的接收和发送,是实现整个USB体系的基础。包括如下几个函数:

void ReadLengthFromHost(UCHAR ucaddr,UCHAR uclength,UCHAR *pucdata);

void WriteLengthToHost(UCHAR *pucdata,UCHAR uclength,UCHAR ucaddr);

UCHAR OutBulkData(ULONG ullength,UCHAR *pucptr);

UCHAR InBulkData(ULONG ullength,UCHAR *pucptr);

5.2 USB协议栈驱动程序

主要实现USB协议定义的标准命令请求,主要包括:

ClearFeature(),GetConfiguration(),GetDescriptor(),GetInmterface(),GetStatus

(),SetAddress(),SetConfiguration(),SetDescriptor(),SetFeature(),SetInterface()。

具体的标准设备请求的含义请参考USB 标准协议。USB 主机要在检测到有USB设备插入时,完成对USB设备的枚举,之后USB主机和USB设备才可以进入正常的数据包通讯状态。

5.3 USB设备类驱动程序

移动存储盘属于USB协议所定义的设备类中的Mass Storage类,USB 组织定义了海量存储设备类(Mass Storage Class)的规范,这个类规范包括四个独立的子类规范,即:

1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport

2. USBMass Storage Class Bulk-Only Transport

3. USB MassStorage Class ATA Command Block

4.USB Mass Storage Class UFI Command Specification。

前两个子规范定义了数据/命令/状态在USB 上的传输方法。Bulk- Only 传输规范仅仅使用Bulk 端点传送数据/命令/状态,CBI 传输规范则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。后两个子规范则定义了存储介质的操作命令。ATA 命令规范用于硬盘,UFI 命令规范是针对USB 移动存储。因此USB主机需要遵循Mass Storage 协议来组织数据和发送命令,即可实现与移动存储盘交换数据。

6 结束语

嵌入式USB主机的开发,目前在国外也处于刚刚起步的阶段,可以提供的USB HOST接口芯片的并不多。作为USB总线研究的另一热点,嵌入式USB HOST的研究具有一定的先进性和前瞻性。以嵌入式USB主机为核心的数据采集系统,可以在工业和民用两个领域得到广泛的应用,可以带来可观的经济效益和市场前景。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    452

    文章

    50196

    浏览量

    420716
  • 嵌入式
    +关注

    关注

    5059

    文章

    18972

    浏览量

    301927
  • usb
    usb
    +关注

    关注

    60

    文章

    7874

    浏览量

    263674
收藏 人收藏

    评论

    相关推荐

    基于DSP器件DSP56F803和XC95XL144实现通用板的设计

    随着电力电子市场需求与日俱增, 为了缩短电力电子硬件设计的开发时间,本文设计开发了DSP56F803通用板作为各种电力电子应用的硬件开发平台。
    发表于 12-15 07:26 1628次阅读

    采用TTL串口的嵌入式USB主机系统设计

    ,比如发送设备特有的USB命令请求。PC上的USB主机端软件结构图如图2所示。3.系统结构  整个系统的核心芯片选用Motorola公司的DSP56
    发表于 04-09 07:00

    为什么要开发嵌入式USB主机?如何设计嵌入式USB主机

    为什么要开发嵌入式USB主机?非PC应用领域?如何设计嵌入式USB主机
    发表于 04-26 06:11

    嵌入式usb主机系统的研究与设计

    本文主要讲述的是嵌入式usb主机系统的研究与设计。
    发表于 04-22 16:33 20次下载

    基于TTL串口的嵌入式USB主机系统的设计和实现

    本文介绍了一种基于TTL 串口的嵌入式USB 主机系统。介绍了该系统的硬件实现,以及USB 主机
    发表于 08-15 08:23 29次下载

    DSP56F803,pdf,datasheet,16-bit

    The 56F803, a member of the 56800 core-based family of Digital Signal Controllers, combines
    发表于 03-04 22:56 26次下载

    基于DSP56F803的数字低中频软件电台的设计

    采用面向控制的Motorola DSP控制器DSP56F803,构建了一种廉价而实用的数字低中频软件电台,实现了该电台在AM、FM、SSB和FSK 4种调制方式下的互通.详细阐述了DSP56F
    发表于 11-19 14:44 27次下载

    基于DSP嵌入式温度记录仪的设计

    基于DSP TMS320F2812和USB主机接口器件SL811HST,遵循标准的USB通讯协议,设计了一种
    发表于 12-22 16:54 24次下载

    嵌入式USB主机设计(硬件设计和软件设计)

    嵌入式USB主机设计(硬件设计和软件设计) 嵌入式USB主机硬件设计选用廉价的51系列单片机(
    发表于 11-26 13:58 1302次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>USB</b><b class='flag-5'>主机</b>设计(硬件设计和软件设计)

    基于嵌入式USB主机的飞控数据记录器设计

    针对无人机飞行训练的需要,设计了一种基于嵌入式USB主机的飞行数据固态记录器。介绍了飞控数据固态数据器的工作原理、三星NAND FLASH芯片(K91G08U0M )的
    发表于 10-25 16:59 58次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>USB</b><b class='flag-5'>主机</b>的飞控数据记录器设计

    嵌入式主机上的USB海量存储设备类

    嵌入式主机上的USB海量存储设备类重点论述基于USB的海量存储(USB Mass Storage)设备功能在ARM
    发表于 03-06 16:33 43次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主机</b>上的<b class='flag-5'>USB</b>海量存储设备类

    嵌入式USB MiniHost系统设计与实现

    设计并实现了一个嵌入式USB主机系统的硬件和软件,用于解决USB设备不能脱离PC主机的问题。并在
    发表于 04-12 15:04 47次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>USB</b> MiniHost系统设计与<b class='flag-5'>实现</b>

    基于嵌入式主机上的USB海量存储设备类

    基于嵌入式主机上的USB海量存储设备类
    发表于 10-31 08:49 6次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>主机</b>上的<b class='flag-5'>USB</b>海量存储设备类

    基于USB嵌入式主机

    基于USB嵌入式主机
    发表于 10-31 08:52 4次下载
    基于<b class='flag-5'>USB</b><b class='flag-5'>嵌入式</b><b class='flag-5'>主机</b>栈

    USB嵌入式主机堆栈

    USB标准下,USB设备之间不能直接通信。它们只能与控制一个或多个设备通信的总线的 USB 主机通信。常见的 USB
    发表于 05-03 09:13 164次阅读
    <b class='flag-5'>USB</b><b class='flag-5'>嵌入式</b><b class='flag-5'>主机</b>堆栈