DWC USB2.0协议学习2--架构介绍

news2025/2/23 23:40:05

目录

1 系统级架构

1.1 DWC_otg PMU模块

1.2 DWC_otg层次结构框图

1.3 DWC_otg功能模块框图

1.4 USB Host体系结构

1.4.1 发送FIFO

1.4.2 接收FIFO

1.5 USB Device体系结构

1.5.1专用发送FIFO

1.5.2 单个接收FIFO

2 DWC_otg_core架构

2.1 AHB总线接口单元(BIU)

2.2 控制和状态寄存器(CSR)

2.3 应用接口单元 (AIU)

2.4 Packet FIFO Controller (PFC)

2.4.1 周期性发送数据FIFO

2.4.2 非周期性发送数据FIFO

2.4.3 PFC到SPRAM接口

2.4.4 端点信息控制器(EPINFO_CTL)

2.5 Media Access Controller (MAC)

2.5.1 MAC架构

2.5.2 USB事务处理

2.5.3 设备协议处理

2.5.4 主机协议处理

2.5.5 OTG协议处理

2.5.6 LPM功能

2.6 PHY 接口单元 (PIU)

2.7 唤醒和功耗控制 (WPC)

2.8 List Processor

3 电源管理单元(PMU)架构

3.1 PMU Slave模块

3.2 PMU Logic模块

3.3 PMU IfMux模块

3.4 PMU同步模块

3.5 ADP模块

4 系统时钟和复位


1 系统级架构

先对IP系统级架构进行一些介绍。从操作层面看,DWC_otg提供以下三种操作模式,选择哪种模式由coreConsultant配置决定:

  1. Slave-Only模式
  2. Internal DMA模式
  3. External DMA模式(目前已经不支持该模式,后续不展开)

 Slave-Only模式

其架构图如上图2-1所示,该模式可以减小IP的面积此时需要CPU有足够的带宽去完成memoryDWC_otg之间的数据搬运。

这种模式下CPU是主设备,DWC_otg控制器是从设备,CPU通过AHB Slave接口对DWC_otg的寄存器、数据FIFO和队列进行读写访问

个人理解这里的Slave-Only是针对AHB的总线操作角度来看的,在这种模式下只有AHB Slave接口,没有AHB Master接口,架构图中也没有体现AHB Master接口,至于DWC_otg控制器是作为USB Host还是USB Device,和Slave-Only模式没有关系。

Internal DMA模式

其架构图如上图2-2所示,该模式使用DWC_otg内部的DMA,由DMA完成memory到DWC_otg之间的数据搬运,不占用CPU的带宽,CPU只需要负责完成中断和错误相关问题的处理。

这种模式下CPU是从设备,DWC_otg控制器是主设备,DWC_otg内部的DMA通过AHB Master接口完成memory到DWC_otg之间的数据搬运。

当IP配置Internal DMA模式时, CPU仍然通过AHB Slave接口对DWC_otg的寄存器进行读写访问,所以该模式下,既AHB Slave接口,也有AHB Master接口。

总结来看,Slave-Only模式和Internal DMA模式主要差别就在于DMA。注意在Internal DMA模式下,软件可以禁用DMA从而变成Slave-Only模式。

1.1 DWC_otg PMU模块

DWC_otg PMU模块提供如下功能:

(1)休眠(暂停期间在主机和设备模式下完全关闭DWC_OTG控制器)

(2)ADP探测和传感(可用于两种配置-当ADP控制器在控制器外部时以及当ADP控制器是控制器的一部分时)

主机和设备模式,休眠为DWC_otg控制器提供完整的电源门控。休眠可用于以下类型的配置:

■ OTG模式-适用于OTG和非OTG设备以及主机操作模式

■ 接口类型-UTMI+、ULPI、HSIC、IC_USB和FS专用

■ 以下体系结构类型:

       ❑ 基于内部缓冲区的DMA

       ❑ 基于内部描述符的DMA

       ❑ Slave-Only模式

图2-4提供了休眠工作架构。其中DWC_otg_pmu模块(电源管理单元或pmu)负责休眠过程。

 

1.2 DWC_otg层次结构框图

图2-5显示了DWC_otg控制器中各个模块的层次结构。

 

1.3 DWC_otg功能模块框图

图2-6显示了DWC_otg系统的主要模块和控制流程。

 

1.4 USB Host体系结构

1.4.1 发送FIFO

DWC_otg作为Host时,所有的非周期OUT传输使用一个发送FIFO,所有的周期OUT传输使用另一个发送FIFO,这些FIFO用于缓存USB传输的数据。

主机通过请求队列(一个用于周期性队列,一个用于非周期性队列)传输USB事务。请求队列中的每个元素都保存in或OUT通道的编号以及传输事务的其他信息。将请求写入队列的顺序决定了USB上的事务顺序。主机首先处理周期性请求队列,然后在每个(微)帧的开头处理非周期性请求排队。

1.4.2 接收FIFO

DWC_otg作为Host时,所有的周期和非周期接收到只使用同一个FIFO,该FIFO用于缓存接收的USB数据包,接收到的每个数据包的状态也保存在FIFO中,这里的状态是指保存IN通道的编号以及其他信息,例如接收的字节数量和有效性状态、在AHB上执行事务的请求等。

图2-7显示了USB Host模式下DWC_otg控制器的总线接口架构。

1.5 USB Device体系结构

1.5.1专用发送FIFO

DWC_otg作为Device时,当使用专用传输FIFO架构时(OTG_EN_DED_TX_FIFO=1),控制器为每个IN端点使用单独的传输FIFO。FIFO没有相关联的请求队列。应用程序无需预测USB主机访问非周期性端点的顺序。

1.5.2 单个接收FIFO

DWC_otg作为Device时,使用单个接收FIFO来接收所有OUT端点的数据,即接收FIFO只有一个,所有OUT端点都是使用一个FIFO。接收FIFO同时保存接收到的数据包的状态,如字节计数、数据PID和接收到的数据的有效性。DMA或MCU从接收FIFO中读取数据。

图2-8显示了USB Device模式下DWC_otg控制器的总线接口架构。

 

2 DWC_otg_core架构

本节介绍DWC_otg_core体系结构和主要模块。图2-9为DWC_otg_core架构框图。从上到下依次是BIU模块、AIU模块、PFC模块、MAC模块、WPC模块和PIU模块,右边还有个CSR模块。

2.1 AHB总线接口单元(BIU)

BIU分为2部分,分别是:AHB从总线接口单元 (BIUS)和AHB主总线接口单元 (BIUM)。

AHB从总线接口单元 (BIUS)

AHB从接口单元将AHB cycles转换为CSR写/读、数据FIFO读/写和DFIFO push/pop信号。BIUS具有下列特点:

  • 完全兼容AMBA 2.0 AHB Slave协议。
  • 支持INCR4,INCR8,INCR16,INCR和SINGLE。
  • 支持忙和提前终止。
  • CSR和DFIFO读取/写入必须始终为32位;8位和16位写访问将导致未知值写入DFIFO。
  • 仅生成OK响应。
  • 不生成SPLIT、RETRY或ERROR响应。

AHB主总线接口单元 (BIUM)

内部DMA控制器将内部DMA请求转换为AHB主请求。DMA地址、传输计数和数据包计数寄存器位于CSR块中。所选通道的地址作为内部DMA控制器的输入。简单说就是DWC_otg控制器的DMA作为AHB主机,负责控制器内部RAM和系统memory之间搬运数据。

BIUM有以下的特点:

  • 完全兼容AMBA 2.0 AHB Master协议
  • 支持burst类型:SINGLE,INCR,INC4,INC8和INC8
  • 处理AHB拆分、RETRY、ERROR条件和提前终止
  • 应用程序需要时可插入BUSY cycle
  • 处理AHB 1KB边界
  • AHB Master数据和地址总线都是32位,控制器可以传输hsize=2(DWORD)和0(BYTE)。

2.2 控制和状态寄存器(CSR)

CSR块位于AHB时钟域中,包含除电源和时钟门控控制寄存器(PCGCCTL)和控制器中断寄存器(GINTSTS)的位31:29之外的所有寄存器。这些寄存器位在断电模式下必须处于活动状态,因此在BIUS模块中实现。BIUS可以写入和读取寄存器,控制器可以设置或重置中断和状态位,中断的优先级高于BIUS。

2.3 应用接口单元 (AIU)

应用程序接口单元(AIU)由以下接口组成:

  • AHB Master
  • AHB Slave
  • Packet FIFO Controller(PFC)
  • Control and Status registers(CSR)

AIU主要功能:

  • 在设备(in)和主机(OUT)模式中,给传输包生成定界符并将其写入传输FIFO(基于FIFO编号)。
  • 在设备和主机模式下,将传输事务的令牌写入请求队列(周期性/非周期性)。
  • 将令牌写入IN事务的请求队列(仅在主机模式下)
  • 根据事务的类型选择周期性或非周期性请求队列。当通道或端点类型指明时将选择周期性队列。
  • 在设备和主机模式下为发送和接收操作生成中断信号
  • 给发送FIFO和队列的地址解码
  • 为DMA控制器的数据传输生成DMA接口信号。
  • 周期性和非周期性信道和端点之间的循环仲裁。周期性通道或端点具有更高的优先级。
  • 当Tx阈值使能时,处理发送/接收阈值相关事务。
  • 当阈值使能时,在欠载/溢出条件下,DMA地址和传输大小的卷绕逻辑处理。

2.4 Packet FIFO Controller (PFC)

在设备和主机模式下,PFC模块实现DWC_otg控制器内数据包的管理,以及数据包到SPRAM的传输等功能

2.4.1 周期性发送数据FIFO

该FIFO存储周期性传输数据。在设备和主机模式下,存在不同的周期性FIFO结构。

Device模式

只包含专用发送FIFO。在这种状态下,不存在周期性或非周期性FIFO。FIFO是根据IN端点的数量(OTG_NUM_IN_EPS)来实现的,当启用使能时,应用程序为IN端点选择特定的FIFO。

Host模式

包含共享FIFO和非周期性的发送FIFO。

共享FIFO:在主机模式下,单个周期性FIFO存储所有周期性端点的数据。与该FIFO相关联的周期性请求队列用于存储周期性令牌请求。

2.4.2 非周期性发送数据FIFO

此FIFO存储设备模式下所有非周期性IN端点和主机模式下OUT信道上要传输的数据。与此FIFO相关的非周期性请求队列存储端点或通道相关信息。

专用发送FIFO

在主机模式下,FIFO体系结构与非专用传输FIFO操作中的体系结构相同。

在设备模式下,不存在周期性或非周期性FIFOs。FIFO是根据IN端点的数量(OTG_NUM_IN_EPS)来实现的,当启用使能时,应用程序为IN端点选择特定的FIFO。

接收数据FIFO

此FIFO存储设备模式下所有OUT端点和主机模式下的所有in端点上数据和状态。

2.4.3 PFC到SPRAM接口

图2-21显示了如何将DWC_otg数据FIFO接口连接到行业标准的单端口同步SRAM。地址、写入数据和控制输出由DWC_otg延迟驱动,但时间上满足SRAM建立时序要求。输入读取数据预计会延迟从SSRAM中读取,并在使用之前在控制器内注册。

2.4.4 端点信息控制器(EPINFO_CTL)

SPRAM中的最后几个位置用于保存寄存器值。EPINFO_CTL用于管理这几个存储的值,如表2-1所列。

2.5 Media Access Controller (MAC)

媒体访问控制器(MAC)模块用于处理USB事务,以及实现USB设备、主机和OTG协议。

2.5.1 MAC架构

图2-23显示了MAC模块的结构。

 

DSSR

该模块仅在设备模式下处于活动状态。此块在设备模式下执行速度枚举、挂起、恢复和远程唤醒功能。

PIE

该模块负责令牌、数据和握手包的生成和接收,以及PID和CRC的检查和生成。它根据数据完整性、CSR控制和FIFO状态信息生成握手和数据包。PIE还处理FIFO之间的数据传输,以及PFC和AIU的状态更新。

SOFT

此模块跟踪SOF数据包,并在设备模式下生成SOF中断。它处理丢失的SOF和延迟的SOF,以保持主机和设备之间的帧数同步。

PRT

该模块仅在主机模式下处于活动状态。它负责连接和断开检测、USB重置和速度枚举、挂起和恢复生成、远程唤醒检测、SOF生成和高速测试模式处理。

OTGIF

OTG接口模块处理SRP和HNP。这些OTG协议通过常规UTMI+接口或I2C接口实现(仅适用于USB 1.1串行收发器)

UPI

该模块块转换8位PHY接口的数据宽度,并将来自多个块的输出信号多路复用到PHY。它还实现了由多个MAC块共享的一些逻辑。

MAC的设计使得在某些配置中可以移除未使用的组件,以减少门控数量。SOFT、DSSR和OTGIF可以在仅限主机的配置中删除;对于仅设备配置,可以删除PRT和OTGIF。

2.5.2 USB事务处理

设备模式

在设备模式下,当MAC接收到主机的令牌包时,对令牌包进行解码并检查其完整性。

如果接收到的令牌是有效的OUT或SETUP令牌,则MAC将等待并检查随后的数据包的PID,然后在RxFIFO可用时将数据写入RxFIFO。数据包完成后,MAC将检查数据的完整性,并在适当的时机向主机发送握手信号,将事务状态写入接收状态队列。如果接收到OUT令牌并且RxFIFO不可用,则MAC向主机发送NAK握手信号。

如果接收到的令牌是有效的PING令牌,则MAC基于FIFO状态和CSR状态发送适当的握手信号。

如果接收到IN令牌并且FIFO中的数据可用,则MAC将读取数据,构建数据包并向主机发送出去,随后等待来自主机的握手包(如果有的话),然后将事务状态更新到PFC。如果接收到IN令牌并且FIFO中的数据不可用,则MAC向主机发送NAK握手信号。

主机模式

在主机模式下,MAC接收来自AIU的令牌请求用于启动USB事务。在接收到令牌请求之后,MAC构建并发送所请求的令牌包。

对于OUT或SETUP事务,MAC从TxFIFO读取数据,构建并发送数据包,等待来自设备的握手包(如果有的话),然后将事务状态更新到AIU。

对于IN或PING事务,MAC等待来自设备的数据或握手包。如果MAC接收到握手包,则将状态更新到AIU。如果MAC接收到具有正确PID的数据包,则将数据写入RxFIFO并检查数据的完整性,再向设备发送握手包,然后将状态更新到AIU。

2.5.3 设备协议处理

在设备模式下,MAC处理USB的复位时序和枚举过程,以确定USB操作速度。MAC检测来自主机的USB挂起和恢复命令,启动远程唤醒,处理软连接和断开连接,解码和跟踪SOF数据包,并处理高速测试模式。

2.5.4 主机协议处理

在主机模式下,MAC检测设备的连接和断开,处理USB重置和速度枚举过程,启动USB挂起和恢复,检测远程唤醒,生成SOF数据包,并处理高速测试模式。

2.5.5 OTG协议处理

MAC处理用于主机和外围角色交换的主机协商协议(HNP),并处理会话请求协议(SRP),该协议允许A设备在使用USB总线时关闭VBUS以节省电力,并为B设备提供请求A设备激活VBUS的手段。

2.5.6 LPM功能

在设备和主机模式下,成功的LPM事务会导致控制器进入L1(睡眠)状态。睡眠状态功能由DSSR/PRT模块执行。

设备模式

作为一个设备,HS OTG控制器解析LPM事务,包括具有EXT PID的令牌和扩展的LPM令牌,并提供适当的响应。响应可以是ACK、NYET或STALL,也可以是无响应(ERROR响应)。

如果任何令牌出现错误,或者EXT PID令牌和LPM令牌之间发生超时,控制器将发送ERROR响应。

如果接收到的数据包的请求链路状态不是L1(睡眠),则控制器发送STALL响应。

如果满足以下任何条件,则控制器发送NYET响应:

        ■ NYET是编程的应用程序响应。

        ■ 任何传输FIFO都不是空的(默认值)。

        ■ 任何非ISOC传输FIFO都不是空的,并且设置了GLPMCFG[22]位。

        ■ 控制器的控制传输不完整,GLPMCFG[21]位已设置。

如果ACK是编程的应用程序响应并且发送队列全部为空,则控制器发送ACK响应。

通过中断向应用程序指示LPM令牌接收,并且在GLPMCFG CSR寄存器中更新LPM令牌响应以及令牌中接收的参数。

主机模式

当主机端口连接到(根)集线器时,应用程序发送SET和TEST端口控制传输类型。在这种模式(远程设备模式)下,集线器的响应到达应用程序的过程类似于控制传输。

当主机端口直接连接到设备(本地设备模式)时,应用程序必须对编程控制器中的GLPMCFG CSR寄存器用于发送LPM事务。控制器检查所有被禁用通道并发送LPM事务。如果来自本地设备的响应是错误的,主机将重试GLPMCFG.RetryCnt寄存器指定的LPM事务编程次数,或者直到从设备接收到有效响应。设备的响应通过中断指示给到应用程序,并且在CSR中更新LPM令牌响应。

2.6 PHY 接口单元 (PIU)

DWC_otg控制器支持的不同PHY接口。控制器上可用的PHY接口取决于在coreConsultant里面为高速PHY接口和USB 1.1全速串行收发器接口配置的值。通电后,可以使用软件选择UTMI+、ULPI或USB 1.1 FS串行收发器。

PHY和FS收发器可以在包含DWC_otg控制器的芯片的内部或外部。专用PHY/FS收发器接口支持在芯片的内部和外部实现。外部USB1.1 FS串行收发器可以共享外部UTMI+或ULPI接口端口,以减少芯片上的引脚数量

图2-24显示了PIU PHY和FS收发器接口。

2.7 唤醒和功耗控制 (WPC)

当USB被挂起或会话无效时,PHY被驱动到挂起模式,并且PHY时钟被停止,以减少PHY和DWC_otg控制器的功耗。

为了进一步降低功耗,DWC_otg控制器还支持AHB时钟门控和部分断电。当USB挂起或会话无效时,可以选择关闭某些DWC_otg模块的电源,或关闭某些选通至DWC_otg模块的AHB时钟。

关于如何使用这些低功耗功能的详细操作信息,请参阅《编程指南》中的“FIFO RAM分配”章节。要使用这些功能,必须在coreConsultant配置期间使能“启用电源优化”。

当USB挂起或会话无效时,给DWC_otg模块供电的大多数的电源可以关闭。某些逻辑必须保持通电状态,以检测恢复、远程唤醒、SRP或新会话启动事件,用于唤醒控制器。要实现部分断电,需要两个电源。在部分掉电模式下可以关闭的逻辑在一个电源VDD_DN上,而在部分掉电源模式下必须激活的逻辑在另一个电源VDD_WAKEUP上。

唤醒和功率控制所涉及的组件如图2-25所示。 

BIU、PIU、WPC、CLKRST和SYNC_PWR块必须连接到VDD_WAKEUP域。CSR、AIU、PFC、MAC和SYNC模块必须连接到VDD_DN域。在掉电模式下,为了避免掉电模块的产生功耗,由上电模块生成并由掉电模块使用的所有信号都被钳位为低电平。为了避免断电模块的信号状态破坏,由断电模块生成并由通电模块使用的所有信号都是高电平的,并且在断电时被钳位为低电平。

WPC模块将控制器从部分断电模式唤醒,有以下主要功能:

在主机模式下

■ 当USB挂起时,检测来自设备的远程唤醒信号,驱动恢复并解除挂起的引脚。

■ 当会话关闭时,检测来自设备的会话请求,并解除挂起的引脚。

■ 当USB挂起且控制器处于部分断电模式时,检测高电平恢复信号以生成PHY时钟。

■ 当会话无效且控制器处于部分断电模式时,检测高电平恢复信号以生成PHY时钟。

在设备模式下

■ 当USB挂起时,检测主机的恢复信号,并解除挂起的引脚。

■ 当USB挂起时,检测设备的SRP信号,并解除挂起的引脚。

■ 当USB挂起且控制器处于部分断电模式时,检测高电平恢复信号以生成PHY时钟

■ 当会话无效且控制器处于部分断电模式时,检测高电平恢复信号以生成PHY时钟

2.8 List Processor

列表处理器(LP)为设备和主机模式实现基于描述符的Scatter/Gather DMA功能。

3 电源管理单元(PMU)架构

电源管理单元(PMU)是一个支持休眠功能的模块。图2-26展示了DWC_otg_pmu模块的架构。

 

3.1 PMU Slave模块

PMU Slave通过AHB总线提供应用程序接口控制PMU逻辑。图2-27说明了PMU Slave的体系结构。

AHB Slave Logic:用于读写 GPWRDN寄存器。

Signal Latching Logic:此逻辑在控制器进入休眠状态之前用于锁存来自DWC_otg_core的控制信号,控制信号提供给PMU逻辑,用于指示控制器的操作模式。

GPWRDN register:GPWRDN寄存器实现。

Interrupt Generation Logic:控制中断信号的产生。

3.2 PMU Logic模块

根据所使用的PHY类型,PMU使用以下类型的唤醒逻辑之一:

■ DWC_otg_pmu_utmi-用于utmi+和HSIC接口

■ DWC_otg_pmu_fs_ded-用于IC_USB和fs专用接口

■ DWC_otg_pmu_ulpi-用于ulpi接口

不管使用哪种唤醒逻辑,PMU逻辑均会执行以下功能:

■ 当控制器处于休眠状态时,驱动PHY接口信号

■ 解码DWC_otg_pmu_ifmux模块的信号状态

除了PMU逻辑之外,还使用以下逻辑:

■ 信号锁存逻辑-当唤醒逻辑被激活时,该逻辑用于将控制器输出信号锁存到PHY。

■ 逻辑驱动PHY信号-基于正常操作、主机或设备操作模式下的远程唤醒操作,此逻辑驱动接口信号到PHY。

3.3 PMU IfMux模块

DWC_otg_pmu_ifmux模块执行以下功能:

■ 复用来自不同接口的line_state

■ 检测line_state中的更改

■ 复用来自不同接口的状态

■ 检测状态的更改

■ OTG 2.0版和OTG 1.3版SRP检测

3.4 PMU同步模块

该模块同步DWC_otg_pmu_ahb_slv和pmu接口逻辑之间的时钟域信号。

3.5 ADP模块

PMU模块内的ADP模块支持ADP探测和ADP传感活动,符合中USB 2.0中On The Go 补充规范。ADP块由以下部分组成:

■ DWC_otg_pmu_adp_ctl.v-这是PHY的adp控制逻辑。

■ DWC_otg_pmu_adp_ctl_if.v-这是AHB和PHY之间的adp控制接口逻辑。

■ DWC_otg_pmu_sync.v-这是AHB时钟和PHY时钟之间的同步器。

4 系统时钟和复位

DWC_otg控制器具有以下输入时钟:

■ hclk:AHB时钟。hclk是控制器的AHB域的扫描时钟。选择它作为测试时钟。

■ pmu_hclk:休眠、ADP启用时,向PMU模块提供时钟。

■ utmi_clk:UTMI+时钟。仅在选择UTMI PHY时才在功能上使用,但在DFT扫描模式期间始终用作PHY域时钟。即使在控制器配置为非utmi PHY时,也选择utmi_clk作为测试时钟。

■ ulpi_clk:ULPI PHY时钟。仅当选择了ULPI PHY时才出现;negedge也用于DDR模式。为ulpi配置控制器时,选择ulpi_clk作为测试时钟。

■ utmifs_clk48:仅当OTG_FSPHY_INTERFACE!=0存在。当控制器配置为USB 1.1全速串行收发器接口时,控制器选择utmi_clk引脚作为测试时钟。

■ ref_clk:仅在使能OTG_SERV_INT_ENH时出现。控制器选择utmi_clk时钟作为逻辑的测试时钟,该逻辑采用ref_clk采样。

此外,控制器在DWC_otg_clkrst模块中生成以下时钟:

■ phy_clk:门控PHY时钟输出(多路复用ULPI、UTMI+、USB 1.1 FS时钟或USB 1.1 FS除以8的时钟之一)。当选择USB 1.1 FS收发器时,在LS中,48 MHz输入时钟除以8以生成6 MHz内部时钟。该时钟必须与生成的时钟同相,并具有与生成的钟相同的插入延迟。如果启用了功率优化,phy_clk必须与生成的时钟和wpc_clk同相操作,并且具有与生成的钟和wpc_clk相同的插入延迟。

■ wpc_clk:非门控PHY时钟输出(MUXed ULPI、UTMI+、USB 1.1 FS时钟之一),仅当OTG_EN_PWROPT不等于零时才出现。该时钟必须与phy_clk、utmi_clk,ulpi_clk和utmifs_clk48同相,并具有相同的插入延迟。

■ hclk_gated:hclk门控用于功率优化。仅当OTG_EN_PWROPT不等于零时出现。

■ utmifs_clk6:ULPI、UTMI+或USB 1.1 FS时钟除以8。仅当选择USB 1.1 FS串行收发器接口时才显示。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue封装原生table表格方法

适用场景:有若干个表格,前面几列格式不一致,但是后面几列格式皆为占一个单元格,所以需要封装表格,表格元素自动根据数据结构生成即可;并且用户可新增列数据。 分类: 固定数据部分 就是根据数据…

合合信息智能文档抽取:赋能不良资产管理行业的数字化转型

官.网地址:合合TextIn - 合合信息旗下OCR云服务产品 随着数字化浪潮的汹涌澎湃,全球各行各业正经历着前所未有的变革。人工智能技术的快速发展,以其独特的创新能力和应用潜力,正在深刻地改变着业务模式,推动产业效率的…

【AIGC】AI技术兴起,设计师要大量失业了吗?

一、前言 随着技术的不断迭代,AIGC 能力的可控性得到了进一步提升,可应用的场景也越来越多,在文本、图像、视频等多个领域都有了广泛应用。 用户已经可以用自然语言来与 AI 工具进行交互,革新传统办公方式,工作任务可…

【Python datetime模块精讲】:时间旅行者的日志,精准操控日期与时间

文章目录 前言一、datetime模块简介二、常用类和方法三、date类四、time类五、datetime类六、timedelta类七、常用的函数和属性八、代码及其演示 前言 Python的datetime模块提供了日期和时间的类,用于处理日期和时间的算术运算。这个模块包括date、time、datetime和…

通过命令行配置调整KVM的虚拟网络

正文共:1234 字 20 图,预估阅读时间:2 分钟 在上篇文章中(最小化安装的CentOS7部署KVM虚拟机),我们介绍了如何在最小化安装的CentOS 7系统中部署KVM组件和相关软件包。因为没有GUI图形界面,我们…

【Java Web】XML格式文件

目录 一、XML是什么 二、常见配置文件类型 *.properties类型: *.xml类型: 三、DOM4J读取xml配置文件 3.1 DOM4J的使用步骤 3.2 DOM4J的API介绍 一、XML是什么 XML即可扩展的标记语言,由标记语言可知其基本语法和HTML一样都是由标签构成的文件…

深度之眼(二十六)——神经网络基础知识(一)

文章目录 一、前言二、神经网络与多层感知机2.1 人工神经元2.2 人工神经网络2.3 多层感知机2.4 激活函数 一、前言 看了下课程安排,自己还是没安排好,刚刚捋清了一下思路。 基础:python、数理 认识:神经网络基础、opencv基础、py…

一探究竟:板式家具生产线如何实现精细加工?

随着科技的进步,板式家具行业正经历着一场由传统手工加工向自动化、智能化生产的转变。板式家具生产线如何实现精细加工,已成为行业内关注的焦点。那么,一条完整的板式家具生产线如何实现精细加工的呢?本文将深入探讨。 板式家具生…

直流电机双闭环调速Simulink仿真

直流电机参数: 仿真模型算法介绍: 1)三相整流桥,采用半控功率器件SCR晶闸管; 2)采用转速环、电流环 双闭环控制算法; 3)外环-转速环,采用PI 比例积分控制;…

vue3 层级选择器 el-cascader展示 更多的信息

cascader 正常情况下可以满足我们所需&#xff0c;一般展示的就是 {label:‘’ &#xff1b;value:‘’} 但有时候需要展示更多的信息工用户查看&#xff0c;如下图。此时就需要我们进行一定的改造。 代码如下&#xff1a; <el-form-item label"相关人员"><…

240626_昇思学习打卡-Day8-稀疏矩阵

240626_昇思学习打卡-Day8-稀疏矩阵 稀疏矩阵 在一些应用场景中&#xff0c;比如训练二值化图像分割时&#xff0c;图像的特征是稀疏的&#xff0c;使用一堆0和极个别的1表示这些特征即费事又难看&#xff0c;此时就可以使用稀疏矩阵。通过参考大佬博文&#xff0c;结合个人理…

第十八课,函数基本语法规则

一&#xff0c;编程中函数的介绍 函数像一个黑盒子、加工厂、榨汁机等等&#xff08;你能想到的任何类似的比喻&#xff09;&#xff0c;它会经过一个固定的规则将你送入其中的参数变成另一个样子、或者实现某种预想的功能&#xff08;比如print()函数、input()函数、以及在tu…

npm-check【实用教程】升级项目中的依赖

安装 npm-check npm i -g npm-check检查项目中的依赖 npm-check会显示项目中没有使用&#xff0c;以及有新版本的依赖 升级项目中的依赖 npm-check -u方向键上下可以移动图中左侧的箭头空格键可选中/取消选中标注为 Major Update 和 Non-semver 类的版本&#xff0c;需去官网查…

对抗生成网络GANP52-

1.对抗生成网络的重点&#xff1a;有原始的输入&#xff0c;按照需求&#xff0c;生成新的数据。 eg1:超分辨率重构(首先先告诉神经网络什么是低分辨率&#xff0c;什么是高分辨率&#xff0c;让计算机学习两者的联系。 eg2:警察抓小偷的时候&#xff0c;由于录像太过模糊&…

STM32 HAL库里 串口中断回调函数是在怎么被调用的?

跟着正点原子学习的HAL库写串口接收程序的时候一直有困惑&#xff0c;使用HAL_UART_Receive_IT开启接收中断后&#xff0c;为啥处理函数要写在HAL_UART_RxCpltCallback里&#xff0c;中断发生的时候是怎么到这个回调函数里去的&#xff1f; void MX_USART1_UART_Init(void) {h…

three.js基础环境搭建

three.js three.js介绍安装threejs文件资源目录介绍本地静态服务器vscode配置live-server插件nodejs配置本地静态服务器项目的开发环境引入threejs 基础知识右手坐标系程序结构 three.js介绍 three.js官网 Three.js是一款基于WebGL的JavaScript 3D库&#xff0c;它使得开发者能…

【PythonWeb开发】Flask自定义模板路径和静态资源路径

在大型的 Flask 项目中&#xff0c;确实可能会有多个子应用&#xff08;Blueprints&#xff09;&#xff0c;每个子应用可能都有自己的静态文件和模板。为了更好地管理和组织这些资源&#xff0c;可以使用static_folder 和template_folder 属性来统一管理。必须同时设置好主应用…

jenkins nginx自动化部署 php项目

在当今快速发展的IT领域&#xff0c;自动化部署已成为提高工作效率和减少错误的关键。Jenkins作为持续集成/持续部署&#xff08;CI/CD&#xff09;的佼佼者&#xff0c;结合Docker容器技术和PHP编程语言&#xff0c;以及Ansible自动化工具&#xff0c;可以实现高效、可靠的自动…

PHP 界的扛把子 Swoole 异步通信利器

大家好&#xff0c;我是码农先森。 引言 我今天主要介绍的内容是包括但不仅限于 Swoole &#xff0c;也有一部分 Go 语言的内容。 为什么要介绍 Swoole ? 先说一说背景吧&#xff0c;我们项目组之前要为《香港 01》开发一个积分系统的项目&#xff0c;这个系统的主要功能包…