精华内容
下载资源
问答
  • OPTU232L 微型USB/串口光纤转换器pdf,一、用途 波仕电子发明和首创了USB/串口光纤转换器、同时也是世界上唯一的USB/串口光纤转换器。波仕电子的OPTU232L是最新一代USB光纤通信产品,只有DB-9插头大小(如图1)、直接从...
  • - 每个端口都有专用的事务转换器 • PortSwap - 可配置的差分对内信号交换 • PHYBoost - 用于恢复信号完整性的可编程USB收发器驱动强度 • VariSense™ - 可编程USB接收器灵敏度 • 支持USB链路电源管理(Link ...
  • BS-USB产品的下位机侧的电缆为A型插座,用于外接USB设备(比如U盘、USB/RS-232转换器)的插头。也就是说,当BS-USB产品外接计算机的USB口时,BS-USB的插座就相当于是已经隔离的USB口。由于BS-USB自带隔离DC/DC并且自...
  • BS-USB产品的下位机侧的电缆为A型插座,用于外接USB设备(比如U盘、USB/RS-232转换器)的插头。也就是说,当BS-USB产品外接计算机的USB口时,BS-USB的插座就相当于是已经隔离的USB口。由于BS-USB自带隔离DC/DC并且自...
  • 今天给大侠带来基于 FPGA 的 USB 接口控制设计(VHDL),由于篇幅较长,分三篇。今天带来第一篇,上篇,USB 接口简介以及USB 体系结构。话不多说,上货。 之前有关于 Veriliog HDL 实现的USB 接口控制设计,...

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇。今天带来第一篇,上篇,USB 接口简介 以及 USB 体系结构。话不多说,上货。

    之前有关于 Veriliog HDL 实现的 USB 接口控制器设计,这里放上超链接,仅供各位大侠参考。

    源码系列:基于 FPGA 的 USB2.0 设计

    导读 

     

     

    2019年9月4日,USB-IF终于正式公布USB 4规范。它引入了Intel此前捐献给USB推广组织的Thunderbolt雷电协议规范,双链路运行(Two-lane),传输带宽因此提升,与雷电3持平,都是40Gbps。需要注意的是,你想要体验最高传输速度,就必须使用经过认证的全新数据线。USB4保留了良好的兼容性,可向下兼容USB 3.2/3.1/3.0、雷电3。除此之外,USB4将只有USB Type-C一种接口,并支持多种数据、显示协议,包括DisplayPort,可以一起充分利用高速带宽,也支持USB PD供电。

    比较遗憾的是,USB4的发布时间至今暂未公布。值得注意的是,此次发布的USB4是规范,而并非USB4.0。在此之前,USB Implementers Forum(USB-IF)计划取消USB 3.0/3.1命名,统一划归为USB 3.2。其中USB 3.0更名USB 3.2 Gen 1(5Gbps),USB 3.1更名USB 3.2 Gen 2(10Gbps),USB 3.2更名为USB 3.2 Gen 2x2(20Gbps)。以上就是关于USB标准以及命名的讯息。

    现在大部分USB设备(比如USB接口的鼠标、键盘、闪存、U盘等等)都是采用了USB通用驱动,而你的系统有USB通用驱动的话(比如XP就内建了USB通用驱动)就能用。而有些USB设备是需要特殊驱动的,比如某些手机,连接到电脑的USB口,是需要安装驱动才能使用的。下面我们一起动手做一做USB接口控制器设计,了解一下如何设计。

    第一篇内容摘要:本篇会介绍USB 接口简介,包括USB 发展历史、USB 特点和应用;USB 体系结构,包括USB 系统描述、USB 物理接口、USB电源管理、USB设备以及USB主机等相关内容。

     

    一、USB 接口简介

     

     

    1.1 USB 发展历史

    USB 是英文 Universal Serial Bus 的缩写,中文含义是“通用串行总线”,它是一种应用在 PC 领域的新型接口技术。1994 年,Intel、Compaq、Digital、IBM、Microsoft、NEC、NorthernTelecom 等 7 家世界著名的计算机和通信公司成立了 USB 论坛,花了近两年的时间形成了统一的意见,于 1995 年 11 月正式制定了 USB 0.9 通用串行总线(Universal Serial Bus)规范,1997 年开始有真正符合 USB 技术标准的设备出现。1999 年初在 Intel 的开发者论坛大会上,与会者介绍了 USB 2.0 规范,该规范的支持者除了原有的 Compaq、Intel、Microsoft 和 NEC 4个成员外,还有惠普、朗讯和飞利浦 3 个新成员。USB 2.0 向下兼容 USB 1.1,最高数据传输速度将达到 480Mbit/s,还支持宽带宽数字摄像设备及下一代扫描仪、打印机及存储设备。

    2019年9月4日,USB-IF终于正式公布USB 4规范。它引入了Intel此前捐献给USB推广组织的Thunderbolt雷电协议规范,双链路运行(Two-lane),传输带宽因此提升,与雷电3持平,都是40Gbps。需要注意的是,你想要体验最高传输速度,就必须使用经过认证的全新数据线。USB4保留了良好的兼容性,可向下兼容USB 3.2/3.1/3.0、雷电3。除此之外,USB4将只有USB Type-C一种接口,并支持多种数据、显示协议,包括DisplayPort,可以一起充分利用高速带宽,也支持USB PD供电。

    图1 所示是一些常见的 USB 设备。

     

    图 1 常见 USB 设备

     

     

    1.2 USB 特点和应用

    此前的 USB 设备普遍都兼容 USB 1.1 协议,该协议主要应用在中低速外部设备上,它提供的传输速度有低速 1.5Mbit/s 和全速 12Mbit/s 两种,低速的 USB 带宽(1.5Mbit/s)支持低速设备,例如显示器、调制解调器、键盘、鼠标、扫描仪、打印机、光驱、磁带机、软驱等。全速的 USB 带宽(12Mbit/s)支持大范围的多媒体设备。1999 年推出的 USB 2.0 协议使得 USB接口的性能有了大大的提高,其速度比 USB 1.0/1.1 快 40 倍,达到 480Mbit/s。USB 2.0 协议的推出使 USB 接口的应用推广到硬盘、电缆调制解调器、信息家电网络产品和其他高速外设。

    表 1 按照数据传输率(USB 可以达到的)对 USB 设备进行了分类。

    表 1 不同传输速率 USB 设备应用分类表

     

    USB 之所以能得到广泛支持和快速普及,是因为它具备如下的特点。

    • 使用方便、即插即用。使用 USB 接口可以连接多个不同的设备,支持热插拔,在软件方面,为 USB 设计的驱动程序和应用软件可以自动启动,无需用户干预。USB 设备也不涉及 IRQ冲突等问题,它单独使用自己的保留中断,不会同其他设备争用 PC 机有限的资源,为用户省去了硬件配置的烦恼。所以,USB 设备能真正做到“即插即用”。

    • 传输速度快。高速传输是 USB 技术的突出特点之一。USB 1.1 协议支持的低速传输速率为 1.5Mbit/s,其全速传输速率可达 12Mbit/s,比串口快了整整 100 倍,比并口也快了十多倍。而目前的 USB 2.0 协议支持的最高传输速率甚至高达 480Mbit/s,这使得高分辨率、真彩色的大容量图像的实时传送成为可能。

    • 连接灵活、可扩展性强。USB 接口具有很强的可扩展性,一个 USB 口理论上可以连接 127个 USB 设备。连接的方式也十分灵活,既可以使用串行连接,也可以使用集线器(Hub)把多个设备连接在一起,再同 PC 机的 USB 口相接。此外,所有的 USB 设备都在机箱外连接,不必打开机箱;允许设备热插拔,而不必关闭主机电源。USB 采用“级联”方式,即每个 USB 设备用一个 USB 插头连接到一个设备的 USB 插座上,而其本身又提供一个 USB 插座供下一个 USB设备连接用。通过这种类似菊花链式的连接,一个 USB 控制器可以连接多达 127 个设备,而每个设备间距离(线缆长度)可达 5m。

    • 独立供电。使用串口或者并口的设备都需要单独的供电系统,而 USB 设备则不需要,因为 USB 接口提供了内置电源。USB 电源能向低压设备提供 5V 的电源,因此新的设备就不需要专门的交流电源,从而降低了这些设备的成本并提高了性价比。

    • 丰富的多媒体支持。USB 提供了对电话的两路数据支持,USB 可支持异步以及等时数据传输,使电话可与 PC 集成,共享语音邮件及其他特性。USB 还具有高保真音频。由于 USB 音频信息生成于计算机外,因而减少了电子噪音干扰声音质量的机会,从而使音频系统具有更高的保真度。

     

    二、USB 体系结构

     

    2.1 USB 系统描述

    一个 USB 系统是由 3 部分来描述的,即 USB 互连(USB Interconnect)、USB 设备(USBDevices)和 USB 主机(USB Host)。所谓 USB 互连实际上是指一种 USB 器件和 USB 主机进行通信的方法。它包括:

    (1)总线的拓扑(由一点分出多点的网络形式),即设备和主机连接的模式;

    (2)各层之间的关系,即组成 USB 系统的各个部分在完成一个特定的 USB 任务时,各自之间的分工与合作;

    (3)数据流动的模式,即 USB 总线的数据传输方式;

    (4)USB 的“分时复用”,因为 USB 提供的是一种共享连接方式,因而为了进行数据的同步传输,这是 USB 数据传输和处理必须的机制。

    USB 接口连接了 USB 设备和 USB 主机,USB 的物理连接是有层次性的星形结构,星形结构的中心是网络集线器。无论是从主机到集线器或其功能部件,还是从集线器到集线器或其功能部件,之间的连接都是点点连接。图 2 表示了 USB 体系的拓扑结构。

     

    图 6-2 USB 总线拓扑结构

     

    在任何 USB 系统中,只有一个主机。USB 和主机系统的接口称作主机控制器(HostController),主机控制器可由硬件、固件和软件综合实现。一块具有 USB 接口的主板通常集成了一个称为根集线器(Root Hub)的部件,它为主机提供一到多个 USB 设备的 USB 扩展接口,我们通常在主板上见到的 USB 接口都是由根集线器提供的。

    USB 器件可以分为两种:即 USB 集线器(USB Hub)和 USB 功能器件(Function Device)。其中,USB 集线器向 USB 提供了更多的连接点;USB 功能器件则是提供具体应用功能的器件,常见的 USB 鼠标、USB 摄像头、USB 打印机等都可以归属于 USB 功能器件。

    USB 设备提供的 USB 标准接口的主要依据有 3 条:

    • 对 USB 协议的运用;

    • 对标准 USB 操作的反馈,如设置和复位;

    • 标准性能的描述性信息。

     

     

    2.2 USB 物理接口

    USB 物理接口包括两部分,一部分指的是用于实现设备到主机或 USB 集线器连接的 USB 电缆(USB Cable),另一部分是指 USB 主机或 USB 设备上的接口。USB 电缆的物理结构如图 3 所示,从严格意义上讲,USB 电缆应属于 USB 器件的接口部分。

    USB 电缆其中一根是电源线 VBus,一根是地线 GND,其余两根是用于差动信号传输的数据线 D+和 D-。将数据流信号驱动成为差动信号的目的是为了提高信号的抗干扰能力(EMI)。USB传输分为高速和低速两种模式,低速模式需要的 EMI 保护相对较少。两种模式可在用同一 USB总线传输的情况下自动地动态切换。因为过多的低速模式的使用将降低总线的利用率,所以该模式只支持有限个低带宽的设备(如鼠标)。时钟被调制后与差分数据一同被传送出去,时钟信号被转换成 NRZI 码,并填充了比特以保证转换的连续性,每一数据包中附有同步信号以使得收方可还原出时钟信号。

     

    图 3 USB 电缆物理结构示意图

     

    对于集线器来说,判别所连接的设备是否是高速设备,仅仅只需要检测在设备被初次连接时,D+或 D-上的信号是高或是低即可。因为 USB 协议要求低速设备在其 D-端接接地电阻,而高速设备则在 D+端接同样的电阻。在加电时,根据低速设备的 D-线和高速设备的 D+线所处的状态,集线器就很容易辨认设备的速度,从而为器件配置不同的信息。为提高数据传输的可靠性以及系统的兼容性,协议对用于 USB 的线缆提出了较为严格的要求,如用于高速传输的 USB电缆,其最大长度不应超过 5m,而用于低速传输的线缆,每根数据线的电阻应为 90Ω。

    USB 是一种统一的传输规范,但是接插口有许多种,最常见的就是普通计算机上用的扁平外形的 A 型口。接插口又分为公口和母口,一般电缆上带的是公口,机器上带的是母口。图4 所示的就是 A 型和 B 型的接插口。

     

    图 4 A、B 型接插口

     

     

    2.3 USB电源管理

    USB 系统可以通过 USB 电缆为其设备提供不高于+5V、500mA 的总线电源。那些完全依靠USB 电缆来提供电源的器件被称为总线供电设备(Bus-powered Device),而自带电源的器件则被称为自供电设备(Self-powered Device)。需要注意的是,无论是总线供电设备还是自供电设备,当初次连接到 USB 接口上时都不使用其自带的电源,而是通过 USB 电缆提供的电源来使其处于 Powered 状态。

    USB 主机与 USB 系统有相互独立的电源管理系统。USB 的系统软件可以与主机的电源管理系统进行交互,共同处理各种系统电源事件(例如挂起、唤醒)。此外,USB 设备还具有特殊的电源管理特性,使得设备的电源完全由系统软件进行管理。

    USB 的电源分配和电源管理特性使之可以被设计在电源传感系统中,如采用电池的笔记本电脑。此类的 USB 系统会在一台设备长时间(这个时间一般在 3.0ms 以内)处于不工作状态时自动将该设备挂起(Suspend),当一台 USB 设备处于挂起状态时,USB 总线通过 USB 电缆为该设备仅仅提供 500μA 以下的电流,同时将所占用的 USB 带宽分配给其他的 USB 设备。

     

     

    2.4 USB设备

    最为常用的 USB 设备可以分为两类:集线器和功能部件。典型的 USB 集线器如图 5 所示,它可以提供更多的 USB 连接点。功能部件是一种通过 USB 总线进行数据发送和接收的 USB 设备,它们可以直接连接到主机的 USB 接口上,也可以连接在集线器的某个端口上。功能设备一般是一种相互无关的设备,如图 1 所示的所有 USB 设备都是功能部件。除了集线器和功能部件,还有一种 USB 设备同时包括了功能部件和集线器,此类设备通常被称为复合设备。

    图 5 典型的 USB 集线器

     

     

    2.5 USB主机

    USB 主机不是一种单纯的硬件,而是指 USB 设备所服务对象的硬件和软件的集合。比如有一个 USB 移动硬盘用于一台 PC 机上,则此 PC 机以及其所安装的操作系统称为 USB 主机,而USB 移动硬盘就是 USB 设备。USB 主机是整个 USB 系统通信的控制方,它通过主机控制器与 USB设备进行交互。

     

    USB 主机的主要功能如下:

    • 检测 USB 设备的安装和拆卸;

    • 管理在主机和 USB 设备之间的控制流;

    • 管理在主机和 USB 设备之间的数据流;

    • 收集状态和动作信息;

    • 给连接的 USB 设备供电。

     

    USB 主机可以分为 3 个层次:

    • USB 总线接口;

    • USB 系统;

    • 用户。

     

    一般的 USB 系统开发主要集中在 USB 设备的开发上,所以 USB 主机开发相关的内容将不在本篇中介绍。

     

     

    本篇到此结束,下一篇带来基于 FPGA 的 USB 接口控制器设计(VHDL)(中),会介绍USB通信原理,包括USB 传输模型、USB 设备检测过程;USB 系统开发,包括USB 硬件系统,USB 接口芯片 PDIUSBD12;USB 设计实例,包括设计需求分析以及设计方案等相关内容。

     

     

    END

     

    后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

    大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!

     

     

     

     

     

    精彩推荐

     

     

     

     

    毕设:基于FPGA的FIR数字滤波器设计

    基于FPGA的千兆以太网设计

    在word文档中添加“原汁原味”代码

    “FPGA产品设计与研发 ” 零基础入门及就业

    展开全文
  • Fairchild推出可编程Type-C/USB PD控制FUSB302,并在紫米10号移动电源中进行了应用,详情参考充电头网带来的ZMI 10号USB PD移动电源拆解与评测。该方案可让制造商能快速方便地在其智能手机、电脑、电源适配器和...

    Fairchild推出可编程Type-C/USB PD控制器FUSB302,并在紫米10号移动电源中进行了应用,详情参考充电头网带来的ZMI 10号USB PD移动电源拆解与评测。该方案可让制造商能快速方便地在其智能手机、电脑、电源适配器和其他使用 USB 接口的设备中增加USB Type-C 功能。与其它同类产品相比,Fairchild 的 USB Type-C 方案体积更小且更省电,可打造出更省电,更小巧的设备。Ruilicheng Technology FAE;13312991513
    在这里插入图片描述
    Fairchild的USB Type-C解决方案FUSB302可满足各种各样的 USB Type-C应用要求。当我们在产品选型时,具有可编程功能的器件,相比单一功能的识别,可以提供更多的选择和灵活性。Fairchild的一些USB Type-C解决方案具有基本的功能,比如可以检测连接、定向和设备类型(双角色端口、下行端口和上行端口),而进阶方案则可支持更多高级功能。 这些高级功能包括数据角色交换、功率角色交换、硬复位、软复位、有源电缆支持、供应商自定义消息(VDM)数据包传输和高达100W的高功率充电。Ruilicheng Technology FAE;13312991513
    在这里插入图片描述
    Fairchild FUSB302 是支持功率输出(PD) 功能的业界最小尺寸 USB Type-C 控制器,采用 9 焊球 WLCSP (1.215 mm x 1.260 mm) 和 14 引脚MLP(2.5 mm x 2.5 mm,0.5 mm 节距)封装。除了小尺寸外,其超低的功耗 25 uA(典型值)也是电池供电设备的绝配。FUSB302 还能够通过软件配置,连接主机或设备。
    在这里插入图片描述
    作为主机进行连接/断连检测,作为主机进行电流性能指示或检测,支持数据角色交换、功率角色交换、硬复位、软复位、有源电缆和用户定义消息 (VDM) 数据包传输。Fairchild FUSB302 的可编程性支持提升了OEM厂商使用的灵活性,允许使用单个芯片支持多个应用,并且可升级以适应将来的标准。FUSB302可以通过自主DRP切换来实现双角色功能。
    在这里插入图片描述
    Ruilicheng Technology FAE;13312991513
    Fairchild FUSB302 旨在帮助系统设计人员实现具有少量可编程性的 DRP/SRC/SNK USB Type-C 接口。FUSB302 执行的 USB Type-C 检测,包括连接和定向。FUSB302 集成了 USB BMC 电力输送协议的物理层,允许高达 100 W 电源和角色互换。BMC 的 PD 模块全面支持 Type-C 规格的替代接口。提供参考代码,使得 FUSB302 能够在多个内嵌控制器平台间轻松实现 Type-C 和 USB BMC 电力传输协议。FUSB302应用于智能手机、平板电脑、笔记本电脑、电源适配器、相机、USB转换器。
    在这里插入图片描述
    ON安森美 Type-C/USB PD控制器FUSB302B 是一款可编程USB Type-C控制器,采用14引脚MLP封装的PD。 FUSB302B面向希望实现DRP / SRC / SNK USB Type-C连接器且系统设计能力低的系统设计人员。

    Ruilicheng Technology FAE;13312991513
    FUSB302B支持USB Type-C检测,包括连接和定向。 FUSB302B集成了USB BMC电源传输协议的物理层,可实现高达100W的功率和角色交换。 BMC PD模块可以完全支持Type-C规范的备用接口。完整的Type-C 1.2支持,集成了CC引脚的以下功能 - 作为主机的连接/分离检测,作为主机的当前能力指示,作为设备的当前能力检测,音频适配器附件模式,调试附件模式和有源电缆检测。它用于智能手机,平板电脑,笔记本电脑,笔记本电脑,电源适配器,相机和加密狗。
    在这里插入图片描述
    使得 FUSB302 能够在多个内嵌控制器平台间轻松实现 Type-C 和 USB BMC 电力传输协议。
    如需了解更多FUSB302的芯片信息。

    Ruilicheng Technology FAE;13312991513
    具有自主DRP切换功能的双重角色功能
    能够根据已附加的内容连接为主机或设备
    软件可配置为专用主机,专用设备或双重角色
    专用设备既可以在Type-C插座上运行,也可以在具有固定CC,VCONN ch的Type-C插头上运行
    将CCx与VCONN开关集成,具有过流限制功能,可为USB3.1全功能电缆供电
    工作温度范围为-40至125°C,2.5mm x 2.5mm封装,间距为0.5mm
    USB供电(PD)2.0,版本1.2支持 - 自动GoodCRC数据包响应
    如果未收到GoodCRC,则自动重试发送数据包
    如果需要,重试发送自动软复位数据包
    电池供电不足(未通电时支持SNK模式)
    在这里插入图片描述
    FUSB302是仙童FAIRCHILD推出的一款旨在帮助系统设计人员实现具有少量可编程性的DRP/SRC/SNKUSB Type-C接口。
    FUSB302执行的USB Type-C检测,包括连接和定向。
    FUSB302集成了USB BMC电力输送协议的物理层,允许高达100W电源和角色互换。
    BMC的PD模块全面支持Type-C规格的替代接口。
    提供参考代码,使得 FUSB302 能够在多个内嵌控制器平台间轻松实现 Type-C 和 USB BMC 电力传输协议。
    如需了解更多FUSB302的芯片信息,FAE;13312991513

    展开全文
  • PS/2是IBM所推出的用于PC的接口,连接共有6个孔,圆形设计,在1990~2000左右时间的台式机键盘是PS/2接口的,尽管在1996年已经出现了USB接口,但是受限于芯片成本和设计方案,当时的许多机械键盘依然采用PS/2接口。...

    什么是PS/2接口

    PS/2是IBM所推出的用于PC的接口,连接器共有6个孔,圆形设计,在1990~2000左右时间的台式机键盘是PS/2接口的,尽管在1996年已经出现了USB接口,但是受限于芯片成本和设计方案,当时的许多机械键盘依然采用PS/2接口。

     

    因为没有识别协议和描述符,所以键盘鼠标必须插到以颜色划分的特定接口才能工作。

     

    PS/2接口和现在的USB接口具有许多共性,比如实际使用的线缆数是4根,5V供电,但是在传输形式上有区别,PS/2接口是一根时钟线和一根数据线,而USB数据传输是D- D+差分线。

    和USB相比较,PS/2接口数据处理难度低,频率低,兼容性好,按下按键后,键盘会拉低CLK电平,传输12bit的DATA信号,而拉低这个动作同时会让主板芯片组发生一个中断信号触发中断处理,所以理论上反应会比USB更快。

     

     

     

    如何自己编程解码

     

    PS/2接口的数据读取属于比较简单的,但是在编程上依然会有一定难度,PS/2接口传输的是11bit数据,第12Bit一定为0。这里的难度主要在于按键判别并通过USB传输上。

     

    模块可以选择Arduino Leonardo,在成本和编程难度上有比较好的平衡,多数时候我比较支持使用低代码(简单调用就可以实现复杂功能的代码)来创作和改装。

     

    使用模组和专用芯片转换成USB

     

    要在内部修改成USB,首要选的就是可以使用的芯片,我购置了一些WIT122UH用来测试,它的价格只有几块钱。

     

    我在设计上考虑到多数时候是用于内置,所以这一个模块只配置了最少的元件。

     

    然后我还设计了一个更复杂一点的,用上了一个紫色的PS/2母口座,型号为DS1093-01-PN60

     

    此外还有一个增强设计增加了16Pin的Type-C接口,另外还有一个母座,如果要从焊接难度出发,可以把Type-C接口替换成4pin的Micro-USB接口。

     

    模块设计上,考虑两种可能,一种是外置设计一种是内置设计

     

    如果你要简化DIY流程可以直接使用这些常见的PS/2接口转USB,将它们拆开可以很好的压缩体积。

     

     

    举一反三

     

    因为PS/2信号容易模拟,很简单就可以使用8Bit的MCU生成,因此,如果制作键盘,那么使用PS/2转USB信号的芯片,就能够以一个相对于使用原生USB接口的芯片来说更低的多的成本制作出一把USB接口的键盘。

     

     

    用编程来解决

    我是用Leonardo和Arduino IDE来实现这种操作,拥有很大的自由度,应用库是PS2KeyAdvanced   https://github.com/techpaul/PS2KeyAdvanced

     

    对应的键盘是一把Cherry G84-4400,PS2接口

     

    在使用上我用的是PS2KeyAdvanced库,和另一个PS2Keyboard库比较来说,这一个库可以支持点亮CAPS LOCK灯,而这个灯是需要控制器可以支持数据写入的。也就是往键盘写数据。

     

    线路连接上,我把DATA连接在D2,CLK连接在D3。

     

    关于各类函数的说明

    keyboard.available()这一函数的作用很简单,就是在获取到数据的时候触发其他时候返回0,因此在loop中不断的去判断是否有返回值1。当然实际上数据是已经被缓冲存储的,因为一开始的时候设置了中断,中断函数中对键盘发送的数据进行处理。

     

     

    按键值的查询

     

    //sample以A为例:按下代码 释放代码
    //一般:     41 8041
    //CAPS LOCK下:    1041 9041
    //SHIFT按住情况下: 4041 C041
    //SHIFT按键:4106 8106

     

    完整代码

     

    #include "Keyboard.h"
    #include <PS2KeyAdvanced.h>
    
    //最新的,用于PS2转换到USB
    
    
    
    //sample以A为例:按下代码 释放代码
    //一般:     41 8041
    //CAPS LOCK下:    1041 9041
    //SHIFT按住情况下: 4041 C041
    //SHIFT按键:4106 8106
    
    
    
    /* Keyboard constants  Change to suit your Arduino
       define pins used for data and clock from keyboard */
    #define DATAPIN 2
    #define IRQPIN  3
    #define UPPER 40
    #define RELEASE_UPPER C0
    #define SHIFTMODE 0x40
    #define FUNCTION 0x80
    
    uint16_t c;
    
    PS2KeyAdvanced keyboard;
    
    
    void setup( )
    {
      // Configure the keyboard library
      keyboard.begin( DATAPIN, IRQPIN );
      Serial.begin( 115200 );
      Serial.println( "PS2 Advanced Key Simple Test:" );
      Keyboard.begin();
    }
    
    
    void loop( )
    {
      if ( keyboard.available( ) )
      {
        // read the next key
        c = keyboard.read( );
        //For DEBUG
        if ( c > 0 )
        {
          //  DisValue(c);//DEBUG用的,获取c的具体值,状态符号和按键值
        }
        //ACTION
        if ((c & 0xFF) > 0) //判断获取的按键值c有没有大于0
        {
          DisValue(c);
          switch (c >> 8)
          {
            case 0x10://大写锁定下按下字母
              UpperKey(c);
              break;
            case 0x90://大写锁定下释放字母
              UpperKey_Release(c);
              break;
            case 0x40://SHIFT大写按下
              UpperKey(c);
              break;
            case 0xC0://SHIFT大写释放
              UpperKey_Release(c);
              break;
            case 0x11:
              if (c == 0x111D)
              {
                Keyboard.press(KEY_TAB);
              }
              break;
            case 0x91:
              if (c == 0x911D)
              {
                Keyboard.release(KEY_TAB);
              }
              break;
    
            case 0x00://一般按键按下
              standardKey(c);
            case 0x80://一般按键释放
              standardKey_Release(c);
              break;
            case 0x01://功能按键
              FuncKey(c);
              break;
            case 0x81://功能键和SHIFT键释放
              Serial.println( "FUNC RELEASE" );
              FuncKey_Release(c);
    
              break;
            case 0x41://SHIFT键按下
    
              break;
              break;
            case 0x20://CTRL Press And
              Keyboard.press(KEY_LEFT_CTRL);
              standardKey(c);
              break;
            case 0xA0://CTRL Release
              Keyboard.release(KEY_LEFT_CTRL);
              standardKey_Release(c);
              break;
            case 0x21: //CTRL
              Serial.println( "CTRL PRESS" );
              Keyboard.press(KEY_LEFT_CTRL);
              break;
            case 0x9: //LEFT-ALT
              Serial.println( "L-ALT PRESS" );
              Keyboard.press(KEY_LEFT_ALT);
              break;
            case 0x5: //RIGHT-ALT
              Serial.println( "R-ALT PRESS" );
              Keyboard.press(KEY_RIGHT_ALT);
              break;
            default:
              Serial.print( " Unknow Higher code: " );
              Serial.println( c >> 8, HEX );
          }
          // Keyboard.press(c);
        }
      }
    }
    
    ///
    /*
      Descript: For DEBUG
    
    *///
    void DisValue(unsigned int c)
    {
      Serial.print( "Value " );
      Serial.print( c, HEX );
      Serial.print( " - Status Bits " );
      Serial.print( c >> 8, HEX );
      Serial.print( "  Code " );
      Serial.println( c & 0xFF, HEX );
    }
    
    
    ///
    /*
      Descript: abcde and so on,main key
    
    *///
    #define LEFT_WIN 0x008B//press
    #define CAPELOCK 0x00FA//press
    void standardKey(unsigned int c)
    {
      int key = c << 8;
      Serial.print("Stand press :");
      if(remap(c)!=0)
      {
        Keyboard.press(remap(c));
        return;
      }
      if (((key >> 8) >= '@') && ((key >> 8) <= 'Z'))
      {
        Serial.write((key >> 8) + (97 - 65)); //输出小写字符
        Keyboard.press(c + ' ');
      }
    
      else
      {
        Serial.write((key >> 8)); //输出其他的字符
        Keyboard.press(c);
      }
    
      Serial.println("");
    
    
    }
    
    //return 0: not found
    unsigned char remap(unsigned int c)
    {
      unsigned int key = c << 8;
      unsigned char remap_char=0; 
      switch (key>>8)
      {
        case 0x3E:
        remap_char = '/';
        break;
        case 0x3B:
        remap_char = ',';
        break;
        case 0x3A:            //按键[']
        remap_char = 0x27;
        break;
        case 0x8B:
        remap_char = KEY_LEFT_GUI;
        break;
        case 0x3D:
        remap_char = '.';
        break;
        case 0xFA:
        remap_char = KEY_CAPS_LOCK;
        break;
        default:
        break;
      }
      return remap_char;
    }
    
    //CODE:0x 80??
    void standardKey_Release(unsigned int c)
    {
      int key = c << 8;
      Serial.print("Stand Release :");
      if(remap(c)!=0)
      {
        Keyboard.release(remap(c));
        return;
      }
      if (((key >> 8) >= 'A') && ((key >> 8) <= 'Z'))
      {
        Serial.write((key >> 8) + (97 - 65)); //输出小写字符
        Keyboard.release(c + ' ');
      }
    
      else
      {
        Serial.write((key >> 8)); //输出其他的字符
        Keyboard.release(c);
      }
    
      Serial.println("");
    
    }
    void UpperKey(unsigned int c)
    {
      int key = c << 8;
      unsigned int chara;
      Serial.print("Upper press :");
      if (c == 0x403A) //["]
      {
        Keyboard.press(0x22);
        return;
      }
      if ((key >> 8) >= '0' && (key >> 8) <= '9')
      {
        switch (key >> 8)
        {
          case '0':
            chara = ')';
            break;
          case '1':
            chara = '!';
            break;
          case '2':
            chara = '@';
            break;
          case '3':
            chara = '#';
            break;
          case '4':
            chara = '$';
            break;
          case '5':
            chara = '%';
            break;
          case '6':
            chara = '^';
            break;
          case '7':
            chara = '&';
            break;
          case '8':
            chara = '*';
            break;
          case '9':
            chara = '(';
            break;
          default:
    
            break;
        }
        Serial.write(chara);
        Serial.println("");
        Keyboard.press(chara);
      }
      else
      {
    
        Serial.write(key >> 8);
        Serial.println("");
        Keyboard.press(key >> 8);
      }
    
    }
    
    void UpperKey_Release(unsigned int c)
    {
      int key = c << 8;
      Serial.print("Upper release :");
      Serial.write(key >> 8);
      if (c == 0xC03A) //["]
      {
        Keyboard.release(0x22);
        return;
      }
      Serial.println("");
      Keyboard.releaseAll();
    }
    void rep(String s)
    {
      Serial.print("Func press:");
      Serial.println(s);
    }
    void FuncKey(unsigned int c)
    {
      int key = c << 8;
      switch (key >> 8)
      {case 0x1B :
          rep("ESC");
    
          Keyboard.press(KEY_ESC);
          break;
        case PS2_KEY_ENTER :
          rep("ENTER");
    
          Keyboard.press(0x28);
          break;
        case PS2_KEY_SPACE:
          rep("SPACE");
          Keyboard.press(0x20);
          break;
        case PS2_KEY_TAB :
          rep("TAB");
          Keyboard.press(KEY_TAB);
          break;
        case PS2_KEY_DELETE :
          rep("DELETE");
          Keyboard.press(KEY_DELETE);
          break;
        case PS2_KEY_INSERT :
          Keyboard.press(KEY_INSERT);
          rep("INSERT");
          break;
        case PS2_KEY_UP_ARROW :
          rep("UP");
          Keyboard.press(KEY_UP_ARROW);
          break;
        case PS2_KEY_DN_ARROW :
          Keyboard.press(KEY_DOWN_ARROW     );
          rep("DOWN");
          break;
        case PS2_KEY_L_ARROW :
          Keyboard.press(KEY_LEFT_ARROW   );
          rep("L_ARROW");
          break;
        case PS2_KEY_R_ARROW :
          Keyboard.press(KEY_RIGHT_ARROW);
          rep("R_ARROW");
          break;
        case PS2_KEY_PGDN :
          Keyboard.press(KEY_PAGE_DOWN   );
    
          rep("PGDN");
          break;
        case PS2_KEY_PGUP :
          Keyboard.press(KEY_PAGE_UP    );
          rep("PGUP");
          break;
        case PS2_KEY_END :
          Keyboard.press(KEY_END     );
          rep("END");
          break;
        case PS2_KEY_HOME:
          Keyboard.press(KEY_HOME  );
          rep("HOME");
          break;
        case PS2_KEY_SYSRQ :
          Keyboard.press(PS2_KEY_SYSRQ);
          rep("SYSRQ");
          break;
        case PS2_KEY_BACK:
          Keyboard.press(PS2_KEY_BACK);
          rep("BACK");
          break;
        case 0x04:
          rep("PRINT SCREEN");
          break;
        case PS2_KEY_F1 :
          rep("F1");
          Keyboard.press(KEY_F1);
          break;
        case PS2_KEY_F2 :
          rep("F2");
          Keyboard.press(KEY_F2);
          break;
        case PS2_KEY_F3 :
          rep("F3");
          Keyboard.press(KEY_F3);
          break;
        case PS2_KEY_F4 :
          rep("F4");
          Keyboard.press(KEY_F4);
          break;
        case PS2_KEY_F5 :
          rep("F5");
          Keyboard.press(KEY_F5);
          break;
        case PS2_KEY_F6 :
          rep("F6");
          Keyboard.press(KEY_F6);
          break;
        case PS2_KEY_F7 :
          rep("F7");
          Keyboard.press(KEY_F7);
          break;
        case PS2_KEY_F8 :
          rep("F8");
          Keyboard.press(KEY_F8);
          break;
        case PS2_KEY_F9 :
          rep("F9");
          Keyboard.press(KEY_F9);
          break;
        case PS2_KEY_F10 :
          rep("F10");
          Keyboard.press(KEY_F10);
          break;
        case PS2_KEY_F11 :
          rep("F11");
          Keyboard.press(KEY_F11);
          break;
        case PS2_KEY_F12 :
          rep("F12");
          Keyboard.press(KEY_F12);
          break;
        case PS2_KEY_F13 :
          rep("F13");
          break;
        case 0x1C:
          Keyboard.press(KEY_BACKSPACE);
          break;
        default:
          Serial.print("UNKNOW CODE:");
          Serial.println(c, HEX);
    
      }
    }
    void FuncKey_Release(unsigned int c)
    {
    
      // Keyboard.release(c);
      Keyboard.releaseAll();
    }
    void KeyBoard_Press(unsigned int c)
    {
      Keyboard.press(c);
    }
    void KeyBoard_Release(unsigned int c)
    {
      Keyboard.release(c);
    }

     

     

     

     

    展开全文
  • USB线,光盘)都是有源的5V供电微型以太网/串口转换器 TCP/IP协议-串行通信协议波仕ETH232系列微型以太网/串口转换器秉承波仕转换器的一贯特色,具有超小型的外形(80*23*47mm)、RS-232、RS-485、RS-422通用,可以...
  • 单片机usb供电电路原理图(一) 本文以500ms为开关最高开闭时间,介绍一种既能用交流供电又能用电池供电的电源电路。该电源电路供电能力约为1W。该电源电路在正常情况下可用交流供电。用市售的听单放机的小变压器...
  • 关于机械特性就不在这里详细描述了,这里列出几个重要的知识点。 USB电缆:标准的USB电缆包括一对用于电源分配的20~28AWG规格的线对和一对28AWG规格的双绞线,并具有屏蔽和完整的保护层...

    关于机械特性就不在这里详细描述了,这里列出几个重要的知识点。

    USB电缆:标准的USB电缆包括一对用于电源分配的20~28AWG规格的线对和一对28AWG规格的双绞线,并具有屏蔽和完整的保护层。

    高速(480 Mb / s)和全速(12 Mb / s)要求使用带有两根电源导线和双绞线信号导线的屏蔽电缆。

    低速(1.5 Mb / s)建议,但不要求使用带双绞线信号导线的电缆。
    连接器设计为热插拔。 插头上的USB图标提供触觉反馈使其易于获得正确的方向。

     

    因为电器特性和功能有关系,这里就需要学习一下了。

    全速驱动器的特性(12Mb/s)

    通过具有差分特性的屏蔽双绞线电缆实现全速USB连接阻抗(Z0)为90Ω±15%,共模阻抗(ZCM)为30Ω±30%,最大单向延迟(TFSCBL)为26 ns,最大长度5m。当全速驱动器不是高速收发器的一部分时,每个驱动器(ZDRV)的阻抗必须在28Ω和44Ω之间。数据信号上升和下降时间必须在4ns和20ns之间,平稳的上升或下降。

    如果使用CMOS驱动器阻抗一般应由一个阻抗小于该阻抗值的CMOS驱动器,以及起补偿平衡作用的一系列离散电阻来实现。

    下图给出了一个实例,使用完全两个相同的CMOS缓冲器,CMOS缓冲器的输出阻抗在3Ω到15Ω之间,导线的等效电阻在28Ω到44Ω之间。

     

    低速驱动器的特性(1.5Mb/s)

    低速设备必须在插头端带有带A系列连接器的固定电缆 的组合电缆和设备必须具有不低于200 pF且不超过450 pF的单端电容在D +或D-线上。低速电缆的传播延迟(TLSCBL)必须小于18 ns。 这是为了确保在信号上升/下降的前半部分发生反射,这允许电缆近似为a集总电容。

    高速驱动器的特性(480Mb/s)

    通过具有差分特性的屏蔽双绞线电缆实现高速USB连接阻抗(Z0)为90Ω±15%,共模阻抗(ZCM)为30Ω±30%,最大单向延迟26 ns(TFSCBL)。 D +和D-电路板走线在收发器及其相关的电路之间运行连接器还应具有90Ω的标称差分阻抗,并且它们可以一起添加额外的收发器之间有4 ns的延迟。 高速驱动器的差分输出阻抗要求为90Ω±10%。当D +或D-线被驱动为高电平时,VHSOH(驱动高速模式高电平输出电压对GND负载精度为45Ω的数据线必须为400 mV±10%。在一条未被驱动的线上由于收发器未发送或由于相反的线路被驱动为高电平,因此VHSOL(在带有45Ω负载的数据线上驱动的高速模式低电平输出电压)必须为0 V±10 mV。
    注意:除非另有说明,否则所有电压测量都应相对于本地电路进行地面。
    注意:此规范要求高速运行的收发器以全速或低速运行模式必须具有45Ω±10%的驱动器阻抗(ZHSDRV)。建议驱动器阻抗为在收发器内匹配到5Ω以内。对于不支持高速的上游面向收发器模式下,驱动器输出阻抗(ZDRV)必须在28Ω至44Ω的范围内。在面向下游的端口上,必须将RPD电阻(15kΩ±5%)从D +和D-连接到地。当高速收发器转换到高速模式时,通过实现高速空闲状态在链路的每端使用低速/全速驱动器驱动SE0(以便提供所需的终端),并通过断开面向上游的收发器中的D +上拉电阻器。在优选实施例中,收发器仅在发送高速信号时激活其高速电流驱动器。然而,这是一个潜在的设计挑战,因为信号幅度和时序规范即使在数据包中的第一个符号也必须满足。作为一种效率较低的替代方案,收发器可能会导致它高速电流源在高速模式下持续工作。当收发器不是在发射时,电流可以被引导到设备地而不是通过电流转向开关用于数据信令。在示例电路中,将电流转向接地是通过实现的设置HS_Drive_Enable为低。在CMOS实现中,驱动器阻抗通常将通过驱动器的组合来实现固有输出阻抗和RS。为了最佳地控制ZHSDRV并使寄生效应最小化,优选的是驱动器阻抗最小化(低于5Ω),45Ω的平衡应由RS提供零件。
    当在高速模式下工作的收发器发射时,发射电流被导入D +或D-数据线。通过将电流引导到D +线来确定J,将其引导到D-线。当每条数据线端接45Ω电阻到器件地时,有效负载电阻每侧为22.5Ω。因此,驱动电流所指向的线路上升到17.78 ma *22.5Ω或400 mV(标称值)。另一条线保持在器件接地电压。当电流被指示时在相反的线上,这些电压是相反的。

     

    驱动器的用法

    面向上游的功能端口必须使用以下三种驱动程序配置中的一种且仅一种:
    1.低速 - 仅限低速驱动
    2.全速 - 仅限全速驱动
    3.全速/高速 - 组合全速和高速驱动器。

    面向上游的USB2.0集线器端口必须使用全速/高速驱动程序(面上主机)。一个高速的驱动器,既可以以高速,也可以以低速或全速传输数据。

    面向下游的端口必须支持低速,全速和高速信令,并且必须能够以三种相关数据速率中的每一种传输数据。

    将全速/高速设备连接到USB 2.0之前的集线器或高速禁用的集线器端口时,需要将其设置为全速设备。

    当全速/高速设备连接到不高速禁用的USB 2.0集线器时,它必须以高速信令和数据速率运行。(优先使用最大速率)

     

    下图是一个USB2.0主机下可以接的设备示意图

     

     

     

    全速和低速器件的区别在于电缆下游端的上拉电阻的位置:

    • 全速器件端接,如图7-20所示,D +线上有上拉电阻。
    • 低速器件端接如图7-21所示,D-线上有上拉电阻。
    • 下游端口上的下拉端接器是15kΩ±5%接地的电阻。

     

    如图7-20和图7-21所示

     

     

     

    主机通过设备在D+或D-上的1.5K上拉来检测设备的连接和断开事件,并由此判别设备的速度。
    设备连上主机时(连接)
    当主机检测到某一个数据线电平拉高并保持了一段时间,就认为有设备连上来了。

    假如是低速设备连接上,则D-数据线被拉高。

    假如是全速或高速设备,则D+数据线被拉高。


     

     

    没有设备连上主机时(断开)
    D+和D-数据线上主机端的的下拉电阻起作用,使得二者都在低电平;

    同样地,当数据线上的低电平状态持续一段时间了,就被主机认为是断开状态

     

     

    高速复位和检测机制遵循低速/全速的行为模型。

    复位完成后,链路必须以适当的信令模式运行(低速,全速或高速,由前面的使用规则控制),端口状态寄存器中的速度指示位将正确报告这种模式。软件只需要在复位完成通知后启动复位断言并读取端口状态寄存器。
    高速设备最初作为全速设备连接。这意味着对于具有高速能力的上游端口,RPU(1.5kΩ±5%)必须通过D +连接到3.3 V电源(和全速一样)。
    在初始连接之后,具有高速能力的收发器在复位期间参与低级协议,以建立高速链路并在适当的端口状态寄存器中指示高速操作。

     

    下图是我一块STM32开发板上的USB设备的原理图,从图上可以猜测该USB是一个全速的USB端口(因为主CPU控72M,所以不可能是高速)

     

    供电

    配电
    每个USB段通过电缆提供有限的电量。主机供电,供直接连接的USB设备使用。此外,任何USB设备都可能有自己的电源。
    完全依赖电缆供电的USB设备称为总线供电设备。相反,具有替代电源的那些被称为自供电设备。集线器还为其连接的USB设备供电。该架构允许在某些拓扑约束内使用总线供电的集线器。
    电源管理
    USB主机可以具有独立于USB的电源管理系统。 USB系统软件与主机的电源管理系统交互,以处理系统电源事件,如暂停或恢复。此外,USB设备通常实现额外的电源管理功能,允许它们由系统软件进行电源管理。
    USB的配电和电源管理功能使其可以设计为功率敏感系统,如基于电池的笔记本电脑。

     

    通过引入单位负载的概念,可以简化不同设备类别的电源和接收器要求。一个单位负载定义为100 mA。

    • 根端口集线器:直接连接到USB主控制器。集线器电源来自与主机控制器相同的源。从外部获得工作电源(AC或DC)的系统必须为每个端口提供至少五个单元负载。这种端口称为高功率端口。电池供电系统可提供一个或五个单位负载。只能提供一个单位负载的端口称为低功率端口。
    • 总线供电的集线器:从集线器上游端口上的VBUS为任何内部功能和下游端口抽取所有电源。总线供电的集线器在上电时最多可以吸收一个单元负载,在配置后可以吸收五个单元负载。
    • 自供电集线器:内部功能和下游端口的电源不是来自VBUS。但是,集线器的USB接口可以从其上游端口上的VBUS吸取一个单元负载,以允许接口在集线器的其余部分断电时起作用。从外部获取工作电源的集线器(来自USB)必须为每个端口提供五个单元负载。电池供电的集线器可以为每个端口提供一个或五个单元负载。
    • 低功耗总线供电功能:这些设备的所有电源均来自VBUS。他们可以随时抽取不超过一个单位负荷。
    • 大功率总线供电功能:这些设备的所有电源均来自VBUS。它们在上电时必须承受不超过一个单位负载,并且在配置后可以最多抽取五个单位负载。
    • 自供电功能:可以从VBUS吸取一个单位负载,以便在功能的其余部分断电时使USB接口正常工作。所有其他电源均来自外部(USB)电源。

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    原文链接:https://blog.csdn.net/qq_16777851/article/details/85010151

    展开全文
  • 在连接行业中,我们经常会碰到连接(Connector)、插头(Plug)、插孔(Jack)、端口(Port)、插座(Socket)、插槽(Slot)这些词汇,非常容易混淆。今天亚当小编来整理了这些词汇之间的区别!# 插头(Plug)插头是连接到...
  • 专利名称: 电脑键盘和输入转换器的法技术领域:本实用新型涉及一种计算机设备,尤其涉及一种计算机键盘和输入转换器.背景技术:PC的现有键盘都直接连接到计算机的键盘输入接口,并按键顺序输入输入,即输入所需的任意...
  • usb4根线接法

    万次阅读 2017-10-30 10:31:27
    USB线一共四针,其中两针是数据线,两针是电源线包括接地,红线:电源正极(接线上的标识为:+5V或VCC)、白线:负电压数据线(标识为:Data-或USB Port -)、绿线:正电压数据线(标识为:Data+或USB Port +)、...
  • usb插口(电脑usb接口松动小妙招)

    千次阅读 2021-06-24 09:52:29
    所以要装带USB接口的插座,一定要选带USB开关版的插座,充电完毕关掉权USB开.USB接口 USB的全称是Universal Serial Bus,最多可连接127台外设, 由于USB支持热插拔,即插即用,支持的电子设备多(一般的PC都配置了...
  • 航空插头与连接

    2020-04-17 15:29:31
    航空插头与连接 航空插头也叫军用插头,属于连接的一种。 航空插头基本都是金属壳,航空插头插座插都有螺丝扣,连接之后,可以旋紧固定,不会脱落。 多用在飞机上而得名。现广泛应用于航海、航天、电力等领域,...
  • 前一秒钟,也许你还为拥有类似微软Surface这样的轻便型...主要是考虑你的笔记本和显示器有什么接口,目前主流的有USB、VGA、HDMI等,同时,你也要考虑到,是希望通过转换器来达成什么任务,比如充电、传输文件或是投...
  • 1.双USB C型接口 USB电源传输3.0符合性 四个配置通道(CC),带有onchip Rp/Rd电阻 双重角色权力和快速角色互换 2.显示端口接收 VESA显示端口™ 1.2合规性 5.4(HBR2)时的1、2或4车道配置, 每条通道2,7(HBR...
  • FUSB302BMPX USB Type-C端口控制

    千次阅读 2019-04-12 14:31:22
    FUSB302B: 安森美可编程USB Type-C控制含供电PD (预设SNK) USB Type-C端口控制 FUSB302B 面向期望实现 DRP/SRC/SNK USB Type-C 连接,但需要少量编程的系统设计人员。 FUSB302B 支持 USB Type-C 检测,包括...
  • 现在有一些插座,也会提供一个或者几个USB接口,一共手机平板等电子设备进行电量的补充,那么它跟手机本身自带的充电来比有什么不同呢?首先他们都是把220伏的家用电压转换成五伏的低压直流电,然后再充给手机本身...
  • ...superspeed USB将提供10x数据转换率高速USB,以及提高电源效率 USB3.0电缆提供A耐用的高质量连接之间快速传输速度存储设备和外围设备提供A吞吐量高达4.8Gbps使用时USB3.0主机和设备,具备出...
  • 原文地址:USB和串口(COM)的区别,以及相互转换 作者:shaohui973 有几个概念玩嵌入式的同志经常搞混。也不怨谁,现在的卖家为了一点可怜的销量都在故意混淆串口的概念。 如果你发现本文有哪里含糊,或者任何一点有...
  • 树莓派 Zero USB/以太网方式...在加装了 Zero Quick Plug 或microUSB/USB 转换头之后,将树莓派 Zero 和电脑连接起来。树莓派 Zero 即可配置成 USB/以太网设备,这时仅需要一个 USB 接口就实现给树莓派供电的同时将...
  • Android实战技巧之四十九:Usb通信之USB Host

    万次阅读 多人点赞 2016-02-25 17:27:55
    硬件上,它是用插头连接。一边是公头(plug),一边是母头(receptacle)。例如,PC上的插座就是母头,USB设备使用公头与PC连接。 目前USB硬件接口分三种,普通PC上使用的叫Type;原来诺基亚功能机时代的接口为Mini...
  • USB Type-C规范1.2 HDMI规范v2.0b兼容发射机,数据速率高达每通道3-Gbps。 USB电源传输(PD)V3.0兼容 支持所有USB Type-C通道配置(CC) 内置振荡,无需外部晶体 嵌入式MCU和SPI-flash 嵌入式V-sync/H-sync...
  • 关注+星标公众号,不错过精彩内容来源 |电子开发圈一、什么是USB Type-C?USB Type-C是一种相对较新的标准,旨在提供高达10Gb / s的高速数据传输以及高达100W的功...
  • USB_5、USB电器特性

    2020-09-04 14:51:31
    USB电缆:标准的USB电缆包括一对用于电源分配的20~28AWG规格的线对和一对28AWG规格的双绞线,并具有屏蔽和完整的保护层。 高速(480 Mb / s)和全速(12 Mb / s)要求使用带有两根电源导线和双绞线信号导线的屏蔽...
  • ZCU111评估委员会使用FTDIUSB串行转换器B设备 4 找到USB串行转换器B(右键单击USB串行端口(COM),然后单击属性. 在所有COM端口上重复此过程,直到找到USB串行转换器B。请参阅下图)。 注:以上图表信息仅适用于...
  • 为了顺应潮流满足市场的需求,UGREEN绿联近期推出一款USB-C多功能拓展坞,这款产品配有多个不同类型的接口,不仅数据传输速度快而且还具备4K高清功能,此外还支持RJ45有线网络以及多口同时充电。下面充电头网就对这...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,668
精华内容 667
关键字:

usb插头转换器