CY7C68013A芯片与FPGA

文章目录

  • 环境
    • 软件环境
    • 其它工具
  • USB基础
    • USB2.0设备组成
    • USB设备模型
    • USB设备分层
      • USB Host Controller 主机控制器
        • 分类
    • USB Host
    • USB2.0 数据帧
    • USB传输
      • 事务
      • 传输类型
  • 芯片 cypress CY7C68013
    • 开发包安装
      • FX3
  • 固件程序设计
    • 步骤
  • 驱动程序设计
  • 计算机上层应用软件
  • USB2.0 FPGA
  • USB基础
  • 资料
    • 官方文档
    • 其它工具
    • 电路设计

环境

软件环境

KEIL:嵌入式软件的开发。
Vivadoquartus :FPGA(可编程门阵列)和SoC(系统片上集成电路)开发。

其它工具

CyConsole
Signaltap:抓取数据验证FPGA接受到数据的正确性。

USB基础

USB2.0设备组成

每一个USB设备由一个或多个配置来控制其行为(对操作系统的支持);一个配置是由**接口(Interface)组成;接口则是由管道(Pipe)组成;管道是和USB设备的端点(Endpoint)**对应,端点都是输入输出成对的。在固件编程中,USB设备、配置、接口和管道都来描述符来报告其属性。

管道的端点总是成对出现,即In Endpoint和Out Endpoint
In Endpoint:由device向Host发送数据的端点。
Out Endpoint:由Host向device发送数据的端点。

端点0默认为控制管道,其它端点可以配置成数据管道。一个具体的端点,只能工作在一种传输模式下。

USB设备模型

  1. 主机(host)控制端作为主机端,驱动的设备是USB Host Controller。
  2. 外设端被称为设备端,驱动的设备是USB Device Controller。

由于USB协议的主从定位思想,从设备只需要响应主机控制器的请求,不能主动发起请求,通常所说的USB驱动都是指主机端的驱动程序

但近年来随着嵌入式设备的广泛使用,运行Linux系统嵌入式设备也需要通过USB协议与主机端通信,因此从设备端的Linux也需要进行USB设备驱动程序开发,为了避免和主机端的USB设备驱动开发混淆,就将运行Linux的从设备驱动开发称为USB gadget driver

USB设备分层

USB设备被分为三层:
usb host controller:最底层,也是总线接口层,负责传输和接收数据包;
usb core:USB核心层,Linux系统已经根据USB协议规范实现的通用接口。作为中间层,主要完成总线与设备上端点的通信,端点是数据最终的生产者和消费者,一个设备可以有多个端点。因此,这一层其实就是总线和端点的路由。
usb function:USB功能层,调用下层的接口实现不同的功能,如USB鼠标、USB键盘、USB话筒。通常的USB驱动开发指的都是这层的工作。

USB设备驱动开发-USB协议相关(一)

USB Host Controller 主机控制器

USB 设备和主机的接口,一个主机可以支持多个host controller。控制所有的USB设备的通信。

CPU把要做的事情分配给主机控制器,主机控制器替他去完成剩下的事情,事情办完了再通知CPU。绝对不应该偷偷加工数据。

主机控制器控制总线上包的传输, 使用1ms或125us的帧。包在帧中被传输,或由Host到Device(out事务),或由Device到Host(in事务)。传输总是由Host发起(轮询传输)。回此每条USB总线只能有一个Host。

分类
  • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1)。
  • OHCI: Open Host Controller Interface (开放主机控制接口,USB1.0/1.1)。负责处理全速/低速设备。
  • EHCI: Enhanced Host Controller Interface (用于USB2.0高速设备的“增强主机控制接口”)。主要针对高速的USB设备。

Warning:当端口被OHCI所拥有时,没办法插入个高速设备。只有EHCI控制器才能识别出设备是全速、高速还是低速。

USB主机控制器(Host Controller)–深入理解

USB Host

  • USB Host:该设备可以作为USB主机连接USB外围设备,如连接U盘、键盘、鼠标等。一般的PC机的USB接口都是USB Host Only的模式。
  • USB Device(target、Slave):该设备可以以U盘的身份连接USB主机。从设备,属于被控制设备,可输入输出数据。
  • USB OTG全称是USBOn-The-Go,属于直接控制和传输设备,既可以做USB HOST也可以做USB Slave,通过ID信号来控制主、从切换。

什么是USBHOST、USB Slave和USB OTG?它们之间有什么区别?

USB2.0 数据帧

USB2.0和USB1.1规范的最大不同就是数据帧。在USB1.1规范中,USB数据采用每毫秒一个数据帧的方式进行数据传输,在毫秒数据帧的开始,USB主机首先产生帧开始(SOF)数据包,并传输当前数据帧号,后面是传输数据。

对于USB2.0规范,为了支持480Mbps高速传输速度,USB2.0提出了微帧的概念,每毫秒数据帧又包含8个微帧。

USB传输

虽然USB定义了数据在总线上传输的基本单位是包,但是我们还不能随意地使用包来传输数据,必须按照一定的关系把这些不同的包组织成事务才能传输数据。

事务

通常由两个或者三个包组成:令牌包,数据包和握手包。

  • 令牌包用来启动一个事务,总是由主机发送。
  • 数据包传送数据,可以从主机到设备,也可以从设备到主机,方向由令牌包来制定。
  • 握手包的发送者通常为数据接收者,当数据接收正确后,发送握手包。设备也可以使用NAK握手包来表示数据还未准备好。

传输类型

  1. 批量传输。通常用于数据量大,对数据的实时性要求不高的场合。
  2. 等时传输(同步传输)
  3. 中断传输
  4. 控制传输

其中,批量传输、等时传输、中断传输每传输一次数据都是一个事务控制传输包括三个过程,建立过程和状态过程分别是一个事务,数据过程则可能包含多个事务。

芯片 cypress CY7C68013

在这里插入图片描述
可以通过两个不同的模式将 FX2LP 连接至 FPGA。这两个模式分别为通用可编程接口( GPIF)模式和从设备 FIFO模式。
在这里插入图片描述

USB通讯基FPGA的CY7C68013A实现(2)

开发包安装

官方开发包地址:
CY3684工具包

05: CY3684 68013开发套件安装指南

FX3

EZ-USB™ FX3 Software Development Kit

固件程序设计

步骤

  1. 双击打开C:\Cypress\USB\CY3684_EZ-USB_FX2LP_DVK\1.1\Firmware\Bulkloop\bulkloop.Uv2,将用keil编译器打开。
  2. 打开Project->Components,Environmem,Bookx…,修改安装路径
  3. Keil编译成功后的是HEX格式的,又经过了Cypress的hex2bix程序转换成了iic文件。

EZ-USB FX2LP,CY7C68013A学习笔记[1]
CY7C68013A之keil编译代码

驱动程序设计

计算机上层应用软件

USB2.0 FPGA

USB基础

图解USB设备的枚举 过程

资料

一天一个设计实例-FPGA和USB(二)
CY7C68013A教程
CY68013 FPGA通信联调总结
基于CY7C68013A芯片的USB2.0设计
Cypress固件架构彻底解析及USB枚举
基于CY7C68013A的FPGA配置和通信接口设计
Window XP驱动开发(十三) 芯片功能驱动端 (代码实现,针对USB2.0 芯片CY7C68013A)
window xp 驱动(USB
FPGA USB FX2 图片发送试验 驱动CY7C68013A实现 提供2套工程源码和技术支持

CY7C68013A driver for MAC OS

官方文档

EZ-USB™ FX2LP FX2G2 USB 2.0 Peripheral Controller

其它工具

基于EZ-USB FX2 CY7C68013A模块的应用(一)——FX2 芯片片上回环测试

电路设计

USB通讯基FPGA的CY7C68013A实现(2)
Cy7c68013A驱动电路设计注意事项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/154924.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单目标应用:墨西哥蝾螈优化算法(Mexican Axolotl Optimization,MAO)求解微电网优化MATLAB

一、微网系统运行优化模型 微电网优化模型介绍: 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、墨西哥蝾螈优化算法MAO 墨西哥蝾螈优化算法(Mexican Axolotl Optimization,MAO)由Yenny Villuendas-Rey 1等人于2021…

Clion中使用C/C++开发stm32程序

前言 从刚开始学习阶段,一直是用的keil5开发stm32程序,自从看到稚晖君推荐的CLion开发嵌入式程序后,这次尝试在CLion上开发stm32程序。 1、配置CLion用于STM32开发的环境 这里我就不详细写了,没必要重新写,网上教程很多…

安卓-APP启动优化技术方案汇总

应用有三种启动状态:冷启动、温启动或热启动。每种状态都会影响应用向用户显示所需的时间。在冷启动中,应用从头开始启动。在另外两种状态中,系统需要将后台运行的应用带入前台。 我们建议您始终在假定冷启动的基础上进行优化。这样做也可以…

金融信创黄金三年:小程序生态+跨端技术框架构建

小程序应用场景生态的发展,受益于开源技术的发展,以及响应快速开发的实际业务需求,一些跨端框架如:Electron、wxPython、FinClip、Tauri、Flutter等发展也非常迅速,小程序生态跨端技术框架,不仅能满足自有超…

【C刷题】day4

一、选择题 1、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( ) A: n0;while(chgetchar()!\n)n; B: n0;while(getchar()!\n)n; C: for(n0;getchar()!\n…

利用SoapUI工具生成Java WebService客户端代码

一. 下载安装软件 安装SoapUI 5.4.0-EB;下载axis-1_4,下载后解压至个人目录下即可。 注:axis-1_4下载地址(https://archive.apache.org/dist/ws/axis/1_4/axis-bin-1_4.zip) 二. 创建SOAP Project 点击File–>New…

Vue-2.1scoped样式冲突

默认情况&#xff1a;写在组件中的样式会全局生效->因此很容易造成多个组件之间的样式冲突问题 1.全局样式&#xff1a;默认组件中的样式会作用到全局 2.局部样式&#xff1a;可以给组件加上scoped属性&#xff0c;可以让样式只作用于当前组件 <style scoped> <…

保姆级微服务部署教程

大家好&#xff0c;我是鱼皮。 项目上线是每位学编程同学必须掌握的基本技能。之前我已经给大家分享过很多种上线单体项目的方法了&#xff0c;今天再出一期微服务项目的部署教程&#xff0c;用一种最简单的方法&#xff0c;带大家轻松部署微服务项目。 开始之前&#xff0c;…

Mall脚手架总结(二) —— SpringData操作Elasticsearch

前言 万字长文带你弄清楚SpringData中的Elasticsearch操作以及在脚手架里接口的结构关系&#xff01;经过前面鉴证授权的整合&#xff0c;荔枝开始熟悉项目的学习的方法了&#xff0c;虽然脚手架中的内容比较简单&#xff0c;但是把边角的知识点全部扫到还是比较花时间的尤其是…

【轻松玩转MacOS】故障排除篇

引言 在使用 MacOS 时&#xff0c;遇到故障是在所难免的。不要担心&#xff0c;这篇文章将为您提供一些常见的故障排除步骤&#xff0c;并介绍如何联系苹果的支持团队寻求帮助。让我们一起来看看吧&#xff01; 一、常见的故障排除步骤 1.1 网络连接问题 如果你发现你的Mac…

Redis(三)

文章目录 一、单节点Redis的问题&#xff08;一&#xff09;数据丢失&#xff08;二&#xff09;并发能力问题&#xff08;三&#xff09;存储能力问题&#xff08;四&#xff09;故障恢复问题 二、Redis持久化&#xff08;一&#xff09;RDB1、RDB是什么2、rdb配置3、手动触发…

面试题:MySQL 中 InnoDB 的索引结构以及使用 B+ 树实现索引的原因

文章目录 概述表空间索引结构为什么使用 B 树实现索引&#xff1f;总结 概述 在 MySQL 的众多存储引擎中&#xff0c;InnoDB 是最常用的存储引擎&#xff0c;也是 MySQL 现阶段唯一免费支持事务机制的存储引擎。在本文中&#xff0c;我们以 InnoDB 为例&#xff0c;介绍 MySQL…

计算机丢失msvcr120.dll解决办法,快速解决的力量文件丢失

关于计算机丢失msvcr120.dll应该很多朋友都遇到过&#xff0c;本篇文章将和大家探讨一下关于计算机丢失msvcr120.dll解决办法。同时想和大叫一起了解一下msvcr120.dll文件到底有什么作用&#xff0c;是不是必须将其恢复。 一.msvcr120.dll的作用 msvcr120.dll文件时电脑中的一…

工业读写器如何选型?

随着工业自动化的迅速发展&#xff0c;库存管理、生产流程、质量管理等传统工作人工工作也逐渐由各种智能设备来替代管理。RFID技术作为非接触式数据传输的通信方式&#xff0c;也常常应用在工业场合之中。具体工业RFID读写器如何选型&#xff0c;有哪些选择要点呢?ANDEAWELL国…

尚品甄选2023全新SpringBoot+SpringCloud企业级微服务项目

最适合新手入门的SpringBootSpringCloud企业级微服务项目来啦&#xff01;如果你已经学习了Java基础、SSM框架、SpringBoot、SpringCloud&#xff0c;想找一个项目来实战练习&#xff1b;或者你刚刚入行&#xff0c;需要可以写到简历中的微服务架构项目&#xff01; 项目采用前…

基于小波神经网络的网络流量预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022A 3.部分核心程序 ........................................................... %% 总流量数据 input(:,1)dat…

Go:关于 Channel

文章目录 写在前面内容模型图与代码发送流程接收流程 写在前面 本篇主要是通过 Channel 的模型图&#xff0c;对 Channel 的原理做一个基本的概述 内容 模型图与代码 我们先来看下 Channel 的模型图&#xff1a; 以上的图是一个简要的模型图&#xff0c;意味着丢失一些细节…

腾讯云2核4G轻量服务器5M带宽支持多少人同时在线?

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问&#xff1f;5M带宽下载速度峰值可达640KB/秒&#xff0c;阿腾云以搭建网站为例&#xff0c;假设优化后平均大小为60KB&#xff0c;则5M带宽可支撑10个用户同时在1秒内打开网站&#xff0c;从CPU内存的角度&#xff0c;网站程序效…

从零开始学习:如何使用Selenium和Python进行自动化测试?

安装selenium 打开命令控制符输入&#xff1a;pip install -U selenium 火狐浏览器安装firebug&#xff1a;www.firebug.com&#xff0c;调试所有网站语言&#xff0c;调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件&#xff0c;实现简单的浏览器操 作的录制与回…

AI:10-基于TensorFlow的玉米病害识别

玉米是世界上最重要的粮食作物之一,然而,玉米病害对其产量和质量造成了严重威胁。传统的病害识别方法通常依赖于人工观察和经验判断,效率低下且易受主观因素影响。近年来,基于深度学习的图像识别技术在农业领域取得了显著进展,为玉米病害的快速、准确识别提供了新的解决方…