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

目录

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.mzph.cn/pingmian/35942.shtml

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

相关文章

SAP揭秘者-在QM标准功能增加取消UD的功能第二季

文章摘要: 上篇文章我已经给大家介绍怎么开发两个程序来取消UD,但是上篇文章中有提到这个时候去直接执行ZQEVAC40程序去取消物料凭证 则会报错,那么为了解决这个报错,我们需要更改后台配置。 接下来我给大家讲后台配置该怎么配置&…

浅谈Tomcat

文章目录 一、什么是Tomcat?二、Tomcat的下载安装三、使用tomcat访问资源 一、什么是Tomcat? Tomcat 就是一个 HTTP 服务器。 前面我们聊了HTTP服务器,像我们在网页输入URL,其实就是在给人家的HTTP服务器发送请求,既…

华为MDC开发者调试工具以及配置使用介绍

MDC的开发过程的三大工具:MMC、MDS、Mind Studio,这三个工具完成了开发过程中的配置文件编写、代码编写以及AI模型的开发三个任务。除了开发,MDC还准备了两个调试工具,用于使用过程中数据的查看等。这一些调试工具分别对映射MDC中…

802.11漫游流程简单解析与笔记_Part2_02_wpa_supplicant、cfg80211、nl80211内核与驱动的关系

wpa、cfg80211、nl80211内核与驱动的关系示意图如下: nl80211和cfg80211都是内核定义的标准接口,目的是规范驱动和应用的统一调用,wpa中常出现nl80211就是通过内核的nl80211接口调用对应cfg80211的部分,进而控制驱动收发数据或切换…

AI技术与艺术的融合:开创性的用户界面与产品体验

引言 近年来,人工智能(AI)的飞速发展改变了我们的生活和工作方式。AI技术不仅在算力和模型上取得了重大进步,更在用户界面和产品体验方面迎来了突破。近日,科技博客 Stratechery 的文章以及硅谷投资基金 AI Grant 的两…

高频面试题基本总结回顾2(含笔试高频算法整理)

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…

没有采用框架的LeSS导入

我提倡在使用LeSS中平衡框架导向和实验导向。因为框架导向已经挺强了,我想更多地展开实验导向。有可能不采用LeSS框架来导入LeSS吗?我认为是可能的,因为那其实就是受LeSS实验启发的持续改进。 受LeSS实验启发的持续改进 让我来分两部分加以…

Docker 命令——安全

我们将学习两个命令。第一个命令是 docker container run 命令,这样你就能看到使用该命令的一些好处。其次,我们将看看 docker container diff 命令,你可以用它来查看在已有的镜像基础上做了什么。让我们看看如何使用这两个命令来确保容器的安…

深度学习在蛋白质结构预测的新突破:AlphaFold、RoseTTAFold与ESMFold

在蛋白质结构预测和功能预测领域,基于机器学习的方法最近取得了显著的进展。特别是深度学习技术在这个领域中展现出了强大的能力,代表性的技术有 DeepMind 的 AlphaFold 和 RoseTTAFold。这些技术利用了大量的生物数据和先进的神经网络架构,极…

调试代码Pair-wise-Similarity-module-master

第一步:运行.py文件生成json文件 问题一:json.decoder.JSONDecodeError: Invalid \escape: line 1 column 31616 (char 31615) 解决: for dataset in dataset_list:with open(datasetmap[dataset] ".csv", "r") as li…

什么是Arkose Labs挑战及其解决方法

Arkose Labs挑战是一种复杂的机制,旨在验证用户是真正的人类,而不是自动化的机器人或脚本。这一挑战在维护在线服务的安全性和完整性方面发挥着关键作用,通过防止欺诈活动并确保只有真实用户才能访问某些功能。 目录 什么是Arkose Labs挑战&a…

Python 基础 (标准库):堆 heap

1. 官方文档 heapq --- 堆队列算法 — Python 3.12.4 文档 2. 相关概念 堆 heap 是一种具体的数据结构(concrete data structures);优先级队列 priority queue 是一种抽象的数据结构(abstract data structures)&…

微信小程序-自定义组件checkbox

一.自定义Coponent组件 公共组件:将页面内公共的模块抽取为自定义组件,在不同页面复用。 页面组件:将复杂页面进行拆分,降低耦合度,有利于代码维护。 可以新建文件夹component放组件: 组件名为custom-che…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验3 总线型以太网的特性(广播,竞争总线,冲突)

一、实验目的 1.验证总线型以太网的特性; 2.验证广播特性; 3.验证各主机对总线的竞争使用以及可能产生的碰撞。 二、实验要求 1.使用Cisco Packet Tracer仿真平台; 2.观看B站湖科大教书匠仿真实验视频,完成对应实验。 三、实验内容…

PatchMixer:一种用于长时间序列预测的Patch混合架构

前言 《PatchMixer: A Patch-Mixing Architecture for Long-Term Time Series Forecasting》原文地址,Github开源代码地址GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文,并对其进行了中文翻译…

软件测试学习笔记丨JUnit5执行顺序

本文转自测试人社区,原文链接: https://ceshiren.com/t/topic/28025 指定顺序使用场景 测试用例有业务逻辑相关集成测试(主流程测试) 排序方式 方法排序类排序Suite官方网站没有明确说明默认排序的具体规则 方法排序的类型 方法排序-Order 注解指定排序 …

python中的nan是什么意思

NaN(not a number),在数学表示上表示一个无法表示的数,这里一般还会有另一个表述inf,inf和nan的不同在于,inf是一个超过浮点表示范围的浮点数(其本质仍然是一个数,只是他无穷大&…

利用ChatGPT优化程序员工作流程:实用案例分享

近年来,人工智能技术的迅猛发展给各行各业带来了翻天覆地的变化。作为其中的一员,程序员在工作中也受益匪浅。其中,ChatGPT的出现,更是成为优化程序员工作流程的得力助手。本文将通过多个实用案例,分享如何利用ChatGPT…

使用ChatGPT提升编程效率:程序员的最佳实践分享

在这个信息技术飞速发展的时代,编程已经成为了越来越多人的必备技能。无论你是初学者,还是经验丰富的开发者,都可能会遇到编程中的各种问题和挑战。幸运的是,AI 技术的进步让我们有了新的解决工具——ChatGPT。作为一名科技博客博…

Java+ffmpeg 合并两个mp4文件

使用ffmpeg测试命令 测试命令时系统要安装ffmpeg并配置环境变量:初识ffmpeg、安装配置-CSDN博客 ffmpeg -i "E:\Monitor\video_20240617_10.mp4" -i "E:\Monitor\video1_20240617_10.mp4" -filter_complex "[0:v][0:a][1:v][1:a]conc…