首页 > 其他分享 >嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验

时间:2023-08-08 15:08:39浏览次数:40  
标签:初始化 教程 27 USB 主机 接口 OTG 设备

2-27 基于USB接口的存储设备实验

实验目的

本节视频的目的是学习USB OTG的运用和工作原理,并实现USB从方式,将实验板模拟成一个USB存储设备,实现主机和实验板之间的数据传输。


实验原理

硬件原理图

实验过程中使用的是USBOG接口T
本节视频的目的是学习USB OTG的运用和工作原理,并实现USB从方式,将实验板模拟成一个USB存储设备,实现主机和实验板之间的数据传输。


嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据传输

USB(Universal Serial Bus)

通用串口总线,USB为解决即插即用PnP(Plug and Play)需求而诞生,支持热插拔。能在不断电的情况下,插拔USB设备。

USB协议版本有USB1.0、USB1.1、USB2.0、USB3.0等,USB2.0目前比较常用,以下以2.0为主介绍。由于USB是主从模式的结构(所有的通信都由主机发起,设备不能发起),故设备与设备之间、主机与主机之间不能互连,为解决这个问题,扩大USB的应用范围,出现了USB OTG,全拼 ON The Go。USB OTG连接的同一个设备,在不同的场合下可在主机和从机之间切换。


嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据传输_02


USB家族成员可以分为以下:

USB Host:USB主机,一般是PC机。

USB Device:即USB设备,有USB键盘、U盘等,而USB Hub集线器是一种特殊的USB设备。

USB OTG:OTG即On-The-Go,同时具备USB主机和USB设备的功能,数码相机就带有OTG的功能。


USB OTG

根据USB接口所属协议,OTG可分为5类:

USB2.0 OTG:理论传输速率480Mbps,即60MB/s

Micro 5PIN OTG

Mini 5PIN OTG

Micro USB3.0 OTG:USB3.0的理论数据传输速率是5Gbps/10bitt=500MB/s

Type C OTG


USB接头匹配表

Micro、Mini和TypeC 是比较常见的接口,在本实验中使用的是Mini USB接口。

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据传输_03

匹配USB连接线

本实验中使用的是Mini USB线

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_初始化_04

主机和从机

USB体系包括"主机"、"设备"、"物理连接"三个部分。

主机是一个提供USB接口及接口管理能力的硬件、软件的复合体,可以是PC,也可以是OTG设备。一个USB系统中仅有一个USB主机;

设备包括USB功能设备和USB集线器,最多支持127个设备,这是因为协议规定了每个USB设备具有一个7bit的地址(取值范围0~127,而地址0是保留给未初始化的设备使用的);

物理连接指的是USB的传输线使用屏蔽的双绞线。

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_初始化_05

A型母口插座

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据_06

B型公口插头

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_初始化_07

设备的初始功能是通过定义连接器来实现的。OTG定义了一个叫做MiniAB的插孔,他能直接接入MiniA或者MiniB插口,MiniAB有一个ID引脚 上拉至电源端,MiniA插头有一个与地连接好的ID(R<10 Ω),Mini B插头有一个与地连接的开路ID引脚(R>100 kΩ)。当2个OTG设备连接到一起的时候 ,MiniA插头边的ID引脚会注入一个“0”状态,MiniB插头边的ID引脚为 “1”,ID为0的OTG设备默认为主机(Adevice),ID为1的OTG设备默认为从机(B device)。

数据流模型

USB接口层为OTG主机和OTG设备提供物理连接,USB系统软件使用主机控制器来管理主机与 USB设备的数据传输。USB系统软件相对于主机控制器而言,处理的是以客户角度观察的数据传输及客户与设备的交互。USB设备层为USB主机系统软件提供一个可用的逻辑设备。主机通过与之功能匹配的客户软件实现其各种功能。

OTG设备与以往的USB设备一样有两种通道:数据流通道和消息通道。数据流通道没有定义好的结果,而消息通道则有固定的结构。但是,每个通道都有一定的带宽、传输类型、传输方向和缓冲区大小。自供电设备配置一个默认的控制通道,由他提供该设备的配置和状态等信息。

程序流程

程序流程设计中首先要进行外设使能配置,接着初始化设备的状态,进行DSP和USB的中断初始化,初始化USB大容量设备和DMA,最后分配数据缓冲区并进行USB数据的接收传输

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据_08

初始化源码

初始化USB设备

使用StarterWare 库函数初始化大容量存储设备。相关函数通过“usbdmsc.h”文件引用。

StarterWare API 接口

void *USBDMSCInit(unsigned int ulIndex, const tUSBDMSCDevice *psDevice)

初始化USB大容量存储设备的函数源码和使用说明可以查看usbdmsc.c。其中,第一个参数是要为大容量存储类设备操作初始化的USB控制器的索引。第二个参数是指向包含自定义大容量存储设备操作的参数的结构。

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_初始化_09

DMA初始化源码

初始化DMA

使用StarterWare 库函数初始化DMA。相关函数通过“cppi41dma.h”文件引用。

StarterWare API 接口

void Cppi41DmaInit(unsigned short usbDevInst, endpointInfo *epInfo, unsigned short numOfEndPoimts)

初始化DMA的函数源码和使用说明可以查看cppi41dma.c。其中,第一个参数是USB设备实例。第二个参数是端点信息结构。第三个参数是要配置的端点总数。

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_初始化_10

DMA数据接收传输源码

DMA数据接收传输

使用StarterWare 库函数接收传输DMA数据。

相关函数通过“cppi41dma.h”文件引用。

StarterWare API 接口

void doDmaRxTransfer(unsigned short usbDevInst, unsigned int length, unsigned char *buff, unsigned int endPoint)

DMA数据接收传输的函数源码和使用说明可以查看cppi41dma.c。其中,第一个参数是USB设备实例。第二个参数是数据缓冲区的长度。第三个参数是要数据缓冲区。第四个参数是接收数据的端点。

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据传输_11

操作现象

硬件连接

(1)使用Mini USB线连接实验板的USB OTG和电脑端的USB接口。

(2)连接仿真器和电脑的USB接口,

(3)将拨码开关拨到DEBUG模式01111,

(4)连接实验箱电源,拨动电源开关上电。

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据传输_12

软件操作

导入工程,选择Demo文件夹下的对应工程

编译工程

将CCS连接开发板并加载程序

点击运行程序

可看到弹出格式化提示界面,点击”格式化磁盘”,点击”开始”,点击”确定”,可以在PC中看到新产生约48MByte大小的可移动磁盘盘符,可以像操作普通的U盘一样操作此磁盘。请保持实验箱状态和连接,进行下面的速度测试步骤。

双击测试软件文件,选择磁盘,选择32MByte空间,然后点击”开始”按钮,等待3分钟左右,可以在界面中看到文件读写速度测试结果。

可看到当传输文件达到64KByte以上,读和写速度可以分别稳定在24MByte/S和23MByte/S左右。

实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。

嵌入式教程_DSP教程:2-27 基于USB接口的存储设备实验_数据传输_13

标签:初始化,教程,27,USB,主机,接口,OTG,设备
From: https://blog.51cto.com/u_16123606/7008935

相关文章

  • Typora 激活教程(2022最新图文教程,亲测有效)
    简介Typora是一款由AbnerLee开发的轻量级Markdown编辑器,与其他Markdown编辑器不同的是,Typora没有采用源代码和预览双栏显示的方式,而是采用所见即所得的编辑方式,实现了即时预览的功能,但也可切换至源代码编辑模式。作者亲测可用,激活成功。下载Typora激活补丁下载地址......
  • IBM SPSS Statistics 27 (数据统计分析软件) v27.0.1 中文永久使用
    IBMSPSSStatistics27是一款功能强大的数据统计分析软件,被广泛应用于科学研究、市场调查、商业决策等领域。本文将对SPSSStatistics27进行800字详细介绍。点击获取IBMSPSSStatistics27 首先,SPSSStatistics27拥有丰富的数据分析工具和统计方法。用户可以导入各种格式......
  • Django博客开发教程:使用富文本编辑器添加数据
    在Djangoadmin后台添加数据的时候,文章内容文本框想发布一篇图文并茂的文章需就得手写Html代码,这十分吃力,也没法上传图片和文件。这显然不是我等高大上程序猿想要的。为提升效率,我们可以使用富文本编辑器添加数据。支持Django的富文本编辑器很多,这里我推荐使用DjangoUeditor,Uedi......
  • Django博客开发教程:用Admin管理后台管理数据
    上节我们我们把数据库迁移到数据库里去了,那么现在我们数据库里是个什么样的情况呢?我们点击Pycharm右上角的Database,然后在网站项目里选中我们的数据库文件db.sqlite3,把它拖到Database框里。然后点击db,就可以查看到我们的网站数据库,我们可以对数据进行增、删、改、查操作。更多......
  • Docker使用教程及常用命令
    Docker是一个开源的应用容器引擎,允许开发者将应用以及依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows上。它非常适用于持续集成与持续交付(CI/CD)。1.安装Docker首先,你需要在你的服务器上安装Docker。根据你的操作系统,可以选择适合的安装方法。(1)对于Ubunt......
  • 无涯教程-Perl - exp函数
    描述此函数将e(自然对数底数)返回到EXPR的幂。如果省略EXPR,则给出exp($_)。语法以下是此函数的简单语法-expEXPRexp返回值此函数不返回任何值。参考链接https://www.learnfk.com/perl/perl-exp.html......
  • odoo系统局域网及外网访问?快解析内网穿透方案教程
    首先,带着大家了解一下odoo是什么?前身是OpenERP。Odoo是一个广泛使用的开源ERP(企业资源规划)系统,它的主要特点之一就是高度模块化的设计。此套装可满足中小型企业的一切应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、产品保质量保障、企业招聘、员工合同、休假、午餐管......
  • odoo系统局域网及外网访问?快解析内网穿透方案教程
    首先,带着大家了解一下odoo是什么?前身是OpenERP。Odoo是一个广泛使用的开源ERP(企业资源规划)系统,它的主要特点之一就是高度模块化的设计。此套装可满足中小型企业的一切应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、产品保质量保障、企业招聘、员工合同、休假、午餐管......
  • 免费获取最新WebStorm激活码,永久激活WebStorm教程
    分享的WebStorm2023.2最新激活注册码,可免费永久激活,亲测有效,下面是详细文档哦~申明:本教程WebStorm激活码收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版!PS:本教程最新更新时间:2023年08月08日~前言前端开发工具中,有小伙伴们......
  • 传奇开区教程 开新区为何要清理数据
    最开始在游戏里用GM号在后台里点各种初始化,然后点玩家数据清理,清理完毕后就下线!进行以下操作!1.清除玩家帐号数据库删除:D:\xMirServer\loginsrv\IDDB下的两个文件ID.DB和ID.DB.IDX2.清除玩家物品数据库删除:D:\xMirServer\Dbserver\FDB 下的三个文件Hum.db和Mir.db和Mir.db.idx3......