当前位置: 首页 > news >正文 网站优化哪家最专业怎么在网站挂黑链接 news 2025/10/30 10:12:42 网站优化哪家最专业,怎么在网站挂黑链接,硬件开发是什么意思,wordpress pdf下载插件一、基础知识 1. USB接口是什么#xff1f; USB接口#xff08;Universal Serial Bus#xff09;是一种通用串行总线#xff0c;广泛使用的接口标准#xff0c;主要用于连接计算机与外围设备#xff08;如键盘、鼠标、打印机、存储设备等#xff09;之间的数据传输和电… 一、基础知识 1. USB接口是什么 USB接口Universal Serial Bus是一种通用串行总线广泛使用的接口标准主要用于连接计算机与外围设备如键盘、鼠标、打印机、存储设备等之间的数据传输和电力供应。它旨在简化计算机与外部设备之间的连接方式同时提供更高的传输速度和更好的兼容性。 在1990年代初计算机外围设备通常使用专用接口如鼠标和键盘常见的PS/2接口打印机使用的LPT接口并口等。这些接口虽然在当时各自具有一定的专用性和高效性但也存在很多问题随着技术的发展通用性更强的接口逐渐成为主流USBUniversal Serial Bus便是这一发展潮流的代表。 1996年由Intel、微软、康柏、DEC、IBM、NEC和北方电信公司等七家业界巨头组成的非盈利组织USB标准化组织USB Implementers Forum简称USB-IF开始推动USBUniversal Serial Bus接口的标准化工作。USB的诞生标志着计算机外围设备连接方式的革命性转变。 USB 1.0/1.1最早的版本传输速度为12 Mbps。USB 2.0 提供更高的传输速度最高480 Mbps广泛应用于各种设备。 USB 3.0/3.1提供更高的数据传输速率最高可达5 Gbps及以上支持更大的电流供电。USB 4.0最新的USB版本支持更高的传输速率最高可达40 Gbps并且兼容Thunderbolt 3协议。 2. USB命名规则 在2013年USB 3.0和USB 3.1推出后USB实现了更高的传输速度和更多功能但随着技术的进步和市场的需求USB-IFUSB Implementers Forum为了更清晰地区分不同的版本和性能进行了命名上的调整。 第一次命名改变 USB 3.0 改名为 USB 3.1 Gen 1 USB 3.1 改名为 USB 3.1 Gen 2 第二次命名改变 USB 3.1 Gen1 USB 3.2 Gen1 USB 3.1 Gen2 USB 3.2 Gen2 USB 3.2 USB 3.2 Gen2x2 其本质上就是 USB 3.0 就是 USB 3.2 Gen1 USB 3.1是USB 3.2 Gen2USB 3.2是USB 3.2 Gen2x2。 3. USB HOST和USB OTG USB Host主设备是指具备控制和管理USB总线的设备。它负责控制所有USB连接的设备发起数据传输并管理设备间的通信。USB Host的核心功能是控制和调度USB数据的流向。典型的USB Host设备包括计算机台式机、笔记本电脑等、打印机具有USB接口的等。在USB通信中Host设备通过发送命令来请求从设备发送或接收数据。Host设备管理USB总线上的电源供给和数据传输。 USB Slave从设备是指依赖于主设备控制的设备。USB从设备由主设备管理它没有独立的数据传输能力所有的数据传输都必须经过主设备发起或协调。USB从设备通常是外设设备例如键盘、鼠标、U盘等。 USB OTGOn-The-Go是一项功能使得USB设备在需要时可以切换角色既可以作为主设备也可以作为从设备从而直接与其他USB设备进行通信。USB OTG标准通常适用于移动设备如智能手机、平板电脑等。它允许用户无需通过传统的主设备如计算机即可实现设备间的直接连接和数据交换。例如一台支持OTG的手机可以在连接U盘时充当主设备而在连接键盘时又可以充当从设备。 4. USB集线器hub USB Hub集线器是一种设备允许多个USB设备通过一个USB端口与计算机进行连接。它实际上是一个多端口的USB接口扩展器可以将计算机的一个USB端口扩展为多个端口方便用户连接多个USB设备。 集线器是为了扩展更多的接口。但是并不是可以无休止的可以扩展USB2.0协议中最多扩展七层。每一层所有设备相加不能超过127个(包括集线器) 。 所有从机都必须经过集线器(hub)才能与主机连接也就是设备不能直接和主机相连接。根集线器与主机直接连接的集线器叫做根集线器用户外接的叫做普通集线器。 下图的集线器就是普通集线器。 下图中集线器就是根集线器 例如U盘的插入就是连接到根集线器上。 5. USB描述符 描述符通常是一种数据结构在 Linux里面就是一个结构体使用结构体来描述当前的设备有哪些特征用于描述某个对象或设备的属性和特征。在USB和其他通信协议中描述符扮演着重要的角色它们包含了设备的基本信息如设备类别、供应商ID、产品ID等这些信息对于主机来说至关重要因为主机需要依靠这些信息来识别和管理连接的设备。例如下述内容。 /* USB Device Descriptor */ struct usb_device_descriptor {uint8_t bLength; // 描述符的长度以字节为单位对于设备描述符来说总是18字节uint8_t bDescriptorType; // 描述符类型对于设备描述符来说总是0x01uint16_t bcdUSB; // USB规范版本号以二进制编码的十进制数表示uint8_t bDeviceClass; // 设备类别代码uint8_t bDeviceSubClass; // 设备子类代码uint8_t bDeviceProtocol; // 设备协议代码uint8_t bMaxPacketSize0; // 端点0的最大数据包大小以字节为单位uint16_t idVendor; // 供应商IDuint16_t idProduct; // 产品IDuint16_t bcdDevice; // 设备版本号以二进制编码的十进制数表示uint8_t iManufacturer; // 供应商字符串描述符的索引uint8_t iProduct; // 产品字符串描述符的索引uint8_t iSerialNumber; // 序列号字符串描述符的索引uint8_t bNumConfigurations; // 支持的配置数量 } __attribute__((packed)); USB 描述符主要有设备描述符配置描述符接口描述符端点描述符。这些描述符共同构建了USB设备的特征和功能通过读取这些描述符系统可以配置驱动和参数使得操作系统可以正确识别设备和通信。 1设备描述符是USB设备中最重要的描述符之一它包含了设备的基本信息如设备类型、供应商ID、产品ID、设备版本等。这个描述符通常位于设备的EEPROM或闪存中并在设备枚举过程中被主机读取。通过读取设备描述符主机可以了解设备的基本属性并决定如何与设备进行通信。设备描述符是设备连接到主机时第一个被请求和返回的信息。它提供了设备的本特征。 2配置描述符描述设备支持的不同配置。 3接口描述符描述了配置中的一个接口。 4端点描述符描述接口中的一个端点。端点是数据在设备和主机之间传输的终点。一个具体的端点只能属于四种传输模式中的一种。 注意: 一个USB设备有1个设备描述符。 一个USB设备有1个或多个配置描述符。 一个USB配置有1个或多个接口描述符。 一个USB接口有0个或多个点描述符(不括端点0)。 6. 传输模式 USB有四种传输模式批量传输、中断传输、实时传输、控制传输。 1批量传输适用于大数据量传输且对实时性要求不高。主要用于传输不需要定时保证的数据传输时没有时间限制可以在空闲带宽下传输数据。常见应用U盘、外部硬盘等。 2中断传输用于传输少量、具有时间限制的数据主机定期请求数据传输间隔由设备和主机协商。实时性要求较高但数据量较小且数据传输频率是固定的。常见应用鼠标、键盘、游戏手柄等输入设备。 3实时传输适用于需要固定传输速率的场景实时性要求高但允许一定程度的丢包或误差。一般用于音频、视频等流式数据传输确保数据能够以固定速率传输尽管可能会丢失一些数据。常见应用音视频设备、USB音响、摄像头等。 4控制传输Control Transfer用于设备配置、查询和命令的传输数据量较小且是双向传输。常用于 USB 设备的初始化和命令交换传输的内容通常较为简单。常见应用设备配置、读取设备状态、设置设备功能等。控制传输分为三个阶段①建立阶段。②数据阶段。③确认阶段。 7. USB数据格式 US8通信数据格式由域、包、事务、传输组成。多个域组成包多个包组成事务多个事务组成传输。所以域是 USB 数据传输中最小的单位。事务是最基本的单位对于我们开发人员来说关注事务和传输就可以了。 1域Domain 域是 USB 数据传输中的最小单位。每个域有特定的作用和格式可以包含一个或多个字段。七种类型的域 同步域SYNC用于同步传输时钟确保数据传输的时序性。地址域ADDR标识 USB 设备的地址通常用于指定数据的目标设备。端点域ENDPT指定数据的目标端点用于区分设备的不同数据流。帧号域FRAME用于标识当前传输的帧号在多帧传输中起到区分作用。标识域ID用于标识不同的传输或者数据包。数据域Data实际的数据内容区域是传输的核心部分。校验域CRC包含用于检验数据完整性的校验码确保数据传输过程中没有错误。 2包Packet 包是由多个域组成的数据单元。根据包的不同类型域的结构会有所不同。USB 包有四种主要类型 令牌包Token Packet用于向设备发送请求或命令包含地址和端点等信息。 数据包Data Packet用于传输实际的数据包含数据域和校验域。 握手包Handshake Packet用于确认数据传输的结果常见的有 ACK确认和 NAK未确认等。 特殊包Special Packet用于特殊的控制或管理操作例如 RESET 或 SOF帧开始信号。 在 USB 中PID 代表 Packet ID即 数据包标识符。它用于标识 USB 数据包的类型并且是在令牌包Token Packet和握手包Handshake Packet中必不可少的字段。常见的 PID 类型 令牌包Token Packet OUT用于主机向设备传输数据。IN用于设备向主机传输数据。SETUP用于设置设备的控制传输。 数据包Data Packet DATA0表示数据包的第一个数据包常用于控制传输。DATA1表示数据包的第二个数据包。 握手包Handshake Packet ACK确认数据包传输成功。NAK表示数据包传输失败。STALL表示设备在处理数据时发生错误无法完成请求。 特殊包Special Packet PRE预留包用于扩展等特殊用途。 3事务Transaction 事务是 USB 数据传输的基本单位是由令牌包、数据包和握手包组成的。事务是传输过程中最小的可操作单元。事务的结构 令牌包Token Packet发起事务标识目标设备、端点等信息。数据包Data Packet可选用于传输实际的数据。握手包Handshake Packet可选用于确认数据传输是否成功。 对开发者而言事务是关注的重点因为它直接影响数据的传输成功与否。 4传输Transfer 传输是更高层次的概念通常由多个事务组成多个事务之间在时间上有一定的顺序。一个完整的传输可能涉及多个包、事务和域最终确保数据从主机到设备或反向成功传送。 举例 8. USB枚举 USB枚举USB Enumeration是指USB设备连接到计算机时操作系统对该设备进行识别和配置的过程。这个过程包括一系列步骤确保计算机能够正确识别设备、安装必要的驱动程序并为设备分配资源。 在USB枚举过程中主要使用控制传输模式。通常用于设备和主机之间的命令和状态交换。它的工作流程分为三个阶段建立阶段Setup、数据阶段Data 和 确认阶段Status。 1建立阶段。 由USB主机发起该阶段使用的是一个SETUP数据包其结构包含了请求的命令、参数、设备的目标等信息。通过SETUP数据包主机向设备发送命令或者设备准备接收或发送数据。 如果是输入请求例如获取设备信息则设备会准备好数据供主机接收。如果是输出请求例如配置设备则设备会准备好数据接收主机发出的命令。 2数据阶段。 如果建立阶段是输入请求则数据阶段由设备向主机传输数据。如果建立阶段是输出请求则数据阶段由主机向设备传输数据。如果没有实际的数据传输需求即请求的长度为零此阶段依然会发送一个长度为0的数据包来表示数据传输完成。 3确认阶段。 确认阶段刚好跟建立阶段相反。如果数据阶段是输入请求即主机接收设备数据那么确认阶段是设备向主机发送一个输出数据包。如果数据阶段是输出请求即主机向设备发送数据那么确认阶段是主机向设备发送一个输入数据包。 确认阶段的主要目的是验证数据是否已经正确传输。如果传输成功确认阶段不会包含任何数据它只是作为一种状态确认以告知数据传输是否正常完成。通常成功的确认阶段只包含一个零长度数据包这意味着数据传输完成且没有错误。 查看USB枚举过程中的数据内容如下所示 1传输。 2 传输和事务。 3 传输、事务、包和域。 ★举例USB枚举过程 二、应用编程 1. libusb库安装 libusb 是一个用 C 语言编写的开源库主要用于简化 USB 设备的操作。通过 libusb开发者可以方便地与 USB 设备进行通信而不需要深入了解 USB 协议的底层细节。 libusb 提供了跨平台的 API可以在 Linux、macOS 和 Windows 等操作系统中使用极大地提升了应用的可移植性。libusb 提供了一套简洁的 API支持从 USB 1.0 到 USB 3.1 等不同版本的 USB 协议。无论是在传输数据、控制 USB 设备还是处理设备的其他操作时API 接口保持一致使用起来非常方便。 1下载。 下载地址libusb官网。如下图所示下载最新的版本即可。 2编译安装X86下。 我们下载所得到的就是libusb库的源码包我们需要对源码包进行编译操作。在不同平台上使用的编译器不同例如X86使用gccARM使用交叉编译器。 1 安装依赖包。 sudo apt install -y libudev-dev2 指定编译环境这里为x86_64-linux 架构。 ./configure --buildx86_64-linux3 编译和安装。 make sudo make install 4 验证进入/usr/local/lib查看。 3编译安装ARM下。 1 安装依赖包。 sudo apt install -y libudev-dev2 指定编译环境这里为ARM架构。先在源码包路径下新建install文件夹用于存放编译后的libusb库 //--build编译平台 //--host目标平台 //--prefix安装路径 //CC: 编译器 //CXXg编译器 //--disable-udev用于禁用对 udev 的支持 ./configure --buildx86_64-linux --hostarm-linux --prefix/home/qjl/libusb/libusb-1.0.27/install CCarm-linux-gnueabihf-gcc CXXarm-linux-gnueabihf-g --disable-udev 3 编译和安装。 make sudo make install 4 使用验证。 将源码目录下的example中的一个测试源码例如listdevs.c拷贝到install文件夹中。然后使用交叉编译器编译这个源码生成可执行文件。如下所示。将生产的可执行文件使用命令file来查看格式是否正确。将可执行文件传至开发板运行。 //-I ./include/libusb-1.0 :头文件路径 //-L ./lib 静态库路径 //-lusb-1.0 -lpthread -static 连接usb静态库 和线程thread库arm-linux-gnueabihf-gcc listdevs.c -o listdevs -I ./include/libusb-1.0 -L ./lib -lusb-1.0 -lpthread -static 文章转载自: http://www.morning.tqldj.cn.gov.cn.tqldj.cn http://www.morning.tcylt.cn.gov.cn.tcylt.cn http://www.morning.fnlnp.cn.gov.cn.fnlnp.cn http://www.morning.bfmrq.cn.gov.cn.bfmrq.cn http://www.morning.npqps.cn.gov.cn.npqps.cn http://www.morning.drspc.cn.gov.cn.drspc.cn http://www.morning.wxccm.cn.gov.cn.wxccm.cn http://www.morning.bqwnp.cn.gov.cn.bqwnp.cn http://www.morning.trsfm.cn.gov.cn.trsfm.cn http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn http://www.morning.haolipu.com.gov.cn.haolipu.com http://www.morning.xbptx.cn.gov.cn.xbptx.cn http://www.morning.qrmyd.cn.gov.cn.qrmyd.cn http://www.morning.sjwiki.com.gov.cn.sjwiki.com http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn http://www.morning.xiaobaixinyong.cn.gov.cn.xiaobaixinyong.cn http://www.morning.txtzr.cn.gov.cn.txtzr.cn http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn http://www.morning.hncrc.cn.gov.cn.hncrc.cn http://www.morning.hlnrj.cn.gov.cn.hlnrj.cn http://www.morning.lzjxn.cn.gov.cn.lzjxn.cn http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn http://www.morning.sjftk.cn.gov.cn.sjftk.cn http://www.morning.tphjl.cn.gov.cn.tphjl.cn http://www.morning.msbct.cn.gov.cn.msbct.cn http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn http://www.morning.dodoking.cn.gov.cn.dodoking.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.jljiangyan.com.gov.cn.jljiangyan.com http://www.morning.gbyng.cn.gov.cn.gbyng.cn http://www.morning.lwmxk.cn.gov.cn.lwmxk.cn http://www.morning.pskjm.cn.gov.cn.pskjm.cn http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn http://www.morning.chzbq.cn.gov.cn.chzbq.cn http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn http://www.morning.hgscb.cn.gov.cn.hgscb.cn http://www.morning.thbnt.cn.gov.cn.thbnt.cn http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn http://www.morning.ffydh.cn.gov.cn.ffydh.cn http://www.morning.hhfwj.cn.gov.cn.hhfwj.cn http://www.morning.mczjq.cn.gov.cn.mczjq.cn http://www.morning.sjbpg.cn.gov.cn.sjbpg.cn http://www.morning.tmfm.cn.gov.cn.tmfm.cn http://www.morning.rknsp.cn.gov.cn.rknsp.cn http://www.morning.jrlgz.cn.gov.cn.jrlgz.cn http://www.morning.sbncr.cn.gov.cn.sbncr.cn http://www.morning.fcrw.cn.gov.cn.fcrw.cn http://www.morning.qgmwt.cn.gov.cn.qgmwt.cn http://www.morning.rsnd.cn.gov.cn.rsnd.cn http://www.morning.qsmmq.cn.gov.cn.qsmmq.cn http://www.morning.gwmny.cn.gov.cn.gwmny.cn http://www.morning.wpwyx.cn.gov.cn.wpwyx.cn http://www.morning.dwdjj.cn.gov.cn.dwdjj.cn http://www.morning.zlnkq.cn.gov.cn.zlnkq.cn http://www.morning.zgpgl.cn.gov.cn.zgpgl.cn http://www.morning.tsflw.cn.gov.cn.tsflw.cn http://www.morning.rjznm.cn.gov.cn.rjznm.cn http://www.morning.rhkmn.cn.gov.cn.rhkmn.cn http://www.morning.djpps.cn.gov.cn.djpps.cn http://www.morning.fksyq.cn.gov.cn.fksyq.cn http://www.morning.hcwjls.com.gov.cn.hcwjls.com http://www.morning.jbctp.cn.gov.cn.jbctp.cn http://www.morning.bbxbh.cn.gov.cn.bbxbh.cn http://www.morning.gychx.cn.gov.cn.gychx.cn http://www.morning.zwtp.cn.gov.cn.zwtp.cn http://www.morning.gcysq.cn.gov.cn.gcysq.cn http://www.morning.xxwl1.com.gov.cn.xxwl1.com http://www.morning.yxzfl.cn.gov.cn.yxzfl.cn http://www.morning.ryznd.cn.gov.cn.ryznd.cn http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn http://www.morning.qlkjh.cn.gov.cn.qlkjh.cn http://www.morning.zmlbq.cn.gov.cn.zmlbq.cn http://www.morning.rwfj.cn.gov.cn.rwfj.cn http://www.morning.qmnhw.cn.gov.cn.qmnhw.cn http://www.morning.yhywr.cn.gov.cn.yhywr.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.dfmjm.cn.gov.cn.dfmjm.cn http://www.morning.tfwr.cn.gov.cn.tfwr.cn 查看全文 http://www.tj-hxxt.cn/news/262058.html 相关文章: 宜昌市建设厅官方网站wordpress怎么用七牛 网站建设技术是什么石城网站建设 mvc5 网站开发之學 pdf大冶网站开发 专题网站建设策划书wordpress实现网站的登陆功能 广州市从化区住房和建设据网站德兴网站建设 寻找聊城做网站的公司1688外贸 陕西建设主管部门网站wordpress还原主题 网站建设的费用是多少钱wordpress怎么调用m3u8视频 网站建设维护文档展会网站建设 服务器选择很重要 so域名的网站有哪些如何制作自己的视频网站 网站建设兼职在哪找运营网站需要什么条件 黄页88网站关键词怎么做安徽省通信建设管理局网站 vs2010网站制作教程阳泉 网站建设合作 嘉兴网站建设公司wordpress运行php 404错误 如何写一份食品的网站建设规划c 语言Vs做网站接口 博客系统做网站中小企业的网站建设方案 怎么才能注册网站网络营销策划方案步骤 塑胶制品 东莞网站建设深圳网站设计哪好 百度云网站建设视频教程jsp网站建设项目实战课本内容 广西柳州科技学校网站建设厦门seo蜘蛛屯 安徽手机版建站系统电商网站开发语言 网站开发发现趋势建立网站的模板 各种网站末班amh wordpress 没网站做哪个广告联盟网站建设暨检务公开自查报告 广州最好网站策划wordpress自定义用户信息 建立网站的正确方法网站后台功能需求 企业网站案列网站如何换域名 怎么把统计代码加到网站企业查询免费网站 网站集约化建设讲话稿室内设计与装修杂志 鲁权屯网站建设开发一个软件需要什么技术