AutoSar 通信服务架构,CAN通信诊断详解

文章目录

      • Com(通信服务模块)
      • PDU的定义和结构
      • PDU的分类
      • IPDU Mux 模块
      • PDU R 模块(路由)
      • Bus TP 模块
      • BUS Interface
        • CanIf模块
        • LinIf模块
      • 发送数据示例(CAN报文)
      • 接收数据示例(CAN报文)
      • 通信过程中路由选择的细节
      • CAN诊断网络分层
      • CAN诊断通信过程
      • CAN TP 组帧和拆帧过程
        • 举个栗子

在这里插入图片描述

AUTOSAR(Automotive Open System Architecture)通信服务是为了简化车内ECU(电子控制单元)之间的通信而设计的。它基于多种汽车通信协议(如CAN、LIN、FlexRay等),并定义了一系列模块来组成通信协议栈。

  1. Com(通信服务模块)
  • 功能:管理和协调应用层之间的数据交换,处理信号的发送和接收。
  • 特点:支持周期性和事件驱动的通信,能够与多种底层协议(如 CAN、LIN、Ethernet)集成。
  1. PduR(PDU 路由器)
  • 功能:负责将 PDU(协议数据单元)从一个模块路由到另一个模块。
  • 特点:提供多路复用和选择功能,将输入 PDU 分配给适当的接收方,以优化数据流。
  1. CanIf(CAN 接口模块)
  • 功能:作为 CAN 网络的接口,管理 CAN 帧的发送和接收。
  • 特点:支持 CAN 设备的初始化、数据传输和错误处理,同时与其他通信模块协同工作。
  1. LinIf(LIN 接口模块)
  • 功能:提供与 LIN 网络的接口,处理 LIN 帧的发送和接收。
  • 特点:支持 LIN 网络的多种功能,包括主从模式的管理和错误检测。

最底层MCAL:提供了底层通信的驱动,比如CAN发送接收驱动,Lin发送接收驱动

Com(通信服务模块)

AUTOSAR中的通信服务模块(Com模块)是AUTOSAR架构中非常重要的一部分。它主要负责在不同速率的总线网络之间进行数据交换,并为汽车控制单元(ECU)应用软件提供统一的通信环境。

以下是Com模块的一些关键功能和特点:

  1. 功能
  • 数据交换:支持不同模块之间的数据交换,包括传感器数据、控制命令等。
  • 信号处理:管理信号的发送和接收,包括信号的格式转换和处理。
  • 信号调度:根据系统需求调度信号的发送,优化数据传输的时间和频率。
  1. 通信模式
  • 发送和接收:支持周期性和事件驱动的通信模式,允许模块根据需要发送和接收数据。
  • 数据变化通知:当信号值发生变化时,Com 模块可以通知相关的接收方,以实现即时更新。
  1. 支持的协议
  • 多协议支持:Com 模块可以与多种底层通信协议集成,例如 CAN、LIN、FlexRay 和 Ethernet。
  • 多路复用和选择:支持输入 PDU 多路复用(IPDU Mux),可以选择合适的信号源进行数据处理。
  1. 配置和可扩展性
  • 可配置性:Com 模块的行为和参数在 AUTOSAR 系统描述文件(.arxml 文件)中配置,支持灵活的信号和通信管理。
  • 模块化设计:通过模块化设计,可以根据具体应用需求进行定制和扩展。
  1. 错误处理
  • 错误检测和管理:Com 模块可以检测通信错误,并提供相应的错误管理策略,以确保系统的可靠性。
  1. 接口
  • 标准化接口:Com 模块提供标准化的接口,以便于与其他 AUTOSAR 模块(如 PduR、CanIf 等)进行交互和集成。

在AUTOSAR架构中,协议数据单元(Protocol Data Unit,PDU)是用于在不同层级之间传递数据的基本单位。PDU在AUTOSAR通信模型中负责封装和传递应用层数据,使得不同的模块和设备能够互相交换信息。

通信栈完整流程:

在这里插入图片描述

PDU的定义和结构

  • 定义:PDU是在通信网络中传输的数据单元,包含了消息的有效载荷以及额外的控制信息¹²。
  • 结构:PDU通常由两个主要部分组成:头部(Header)和有效载荷(Payload)。头部用于描述PDU的属性和参数,而有效载荷则携带了实际的数据内容²。

PDU的分类

根据功能和通信模式的不同,PDU可以分为以下几种类型:

  1. L-PDU(Link Layer PDU)

    • 数据链路层PDU:用于数据链路层的通信,包含ID、数据长度和数据¹。
  2. N-PDU(Network Layer PDU)

    • 网络层PDU:在网络层传输,包含网络层地址信息(N_AI)和协议控制信息(N_PCI),如单帧、首帧、连续帧和流控帧¹²。
  3. I-PDU(Interaction Layer PDU)

    • 交互层PDU:用于不同进程之间的数据传输,可以是周期性的或事件触发的²。

IPDU Mux 模块

在 AUTOSAR 中,IPDU Mux(Input Protocol Data Unit Multiplexer)模块用于管理和路由多种输入 PDU(协议数据单元)的接收和传输。它的主要作用是处理不同的信号和数据流,尤其是在具有多个信号源或多种数据格式的情况下

  1. 功能
  • 信号选择:根据特定条件或标志,从多个输入 PDU 中选择一个进行处理。这个条件可以是消息的 ID、数据内容或其他控制信号。
  • 路由管理:将接收到的输入 PDU 路由到相应的接收模块或应用层,以便进行进一步处理。
  1. 数据转换
  • 数据格式转换:IPDU Mux 模块可以处理不同数据格式的输入 PDU,并将其转换为统一格式,以便于上层模块处理。
  1. 多路复用
  • 资源优化:通过多路复用输入 PDU,可以有效利用网络带宽和资源,减少数据传输的冗余。
  1. 配置
  • 可配置性:IPDU Mux 模块的配置通常在 AUTOSAR 系统描述文件(如 .arxml 文件)中定义,支持灵活的信号处理和路由策略。
  1. 应用场景
  • 多种信号源:在车辆电子系统中,可能有多个传感器或控制单元发送相似或相关的数据。IPDU Mux 模块可以根据需要选择合适的信号进行处理。

PDU R 模块(路由)

PDU Router(PduR)模块是AUTOSAR架构中的关键组件,负责在不同通信网络之间传输和处理数据。它确保数据能够准确、高效地到达目的地。以下是PduR模块的一些主要功能和特点:

  • 数据路由:
    • 上层到下层:PduR模块将来自上层模块(如COM、DCM)的I-PDU传输到下层通信接口模块(如CanIf、LinIf)。
    • 下层到上层:它也将来自下层模块的I-PDU传递到上层模块。
  • 网关功能:
    • PduR模块可以作为网关,将I-PDU从一个通信接口模块传输到另一个通信接口模块。
  • 静态路由配置:
    • I-PDU的路由是基于静态定义的I-PDU标识符执行的,路由路径在预编译阶段配置。
  • 多播和单播:
    • PduR支持I-PDU的单播(1:1)和多播(1:n)传输。
  • 模块解耦:
    • 通过PduR模块,上下层模块之间实现了解耦,增强了系统的灵活性和可维护性。
      PduR模块在汽车通信架构中起到了桥梁作用,确保了不同模块之间的有效通信。

Bus TP 模块

在AUTOSAR架构中,Bus Transport Protocol(Bus TP)模块主要负责在不同通信总线(如CAN、LIN、FlexRay等)上传输大于单帧容量的数据。以下是Bus TP模块的一些关键功能和特点:

  1. 多帧传输
    • 分段传输:当数据长度超过单帧容量时,Bus TP模块将数据分段为多个帧进行传输
    • 重组数据:接收端的Bus TP模块负责将分段的帧重新组装成完整的数据包
  2. 流控制
    • 流控帧:Bus TP模块使用流控帧(Flow Control Frame)来管理数据传输的流量,确保发送端不会超出接收端的处理能力
  3. 错误检测和恢复
    • 错误检测:Bus TP模块能够检测传输过程中的错误,如帧丢失或顺序错误
    • 错误恢复:在检测到错误时,Bus TP模块会触发重传机制,以确保数据的完整性
  4. 协议支持
    • ISO 15765-2:Bus TP模块通常基于ISO 15765-2标准,用于CAN总线的诊断通信
    • 其他协议:也支持其他通信协议,如LIN和FlexRay
  5. 与其他模块的交互
    • PduR模块:Bus TP模块与PduR模块协作,确保数据能够正确路由到目标模块
    • CanIf、LinIf等接口模块:Bus TP模块通过这些接口模块与物理总线进行通信

通过这些功能,Bus TP模块在确保大数据量可靠传输方面发挥了重要作用。

BUS Interface

是的,在AUTOSAR架构中,BUS Interface主要包括CAN Interface(CanIf)和LIN Interface(LinIf)模块。以下是这两个模块的详细介绍:

CanIf模块
  1. 位置和作用
    • CanIf模块位于底层CAN驱动(CanDrv)、CAN收发器(CanTrcv)和上层通信服务层(如PduR、CanNm、CanTp)之间
    • 它提供了一个硬件独立的接口,用于管理不同的CAN硬件,如CAN控制器和CAN收发器
  2. 主要功能
    • 数据发送和接收:CanIf模块负责将上层模块的I-PDU传输到CAN总线,并接收来自CAN总线的I-PDU
    • 控制器模式管理:CanIf模块可以控制CAN控制器的启动、停止和模式切换
    • 错误处理和通知:CanIf模块能够处理CAN总线上的错误,并向上层模块发送错误通知
LinIf模块
  1. 位置和作用
    • LinIf模块作为硬件抽象接口层,屏蔽了下层LIN驱动的具体实现
    • 它位于LIN驱动(LinDrv)和上层通信服务层(如PduR、LinTp)之间
  2. 主要功能
    • 数据传输:LinIf模块负责将上层模块的I-PDU传输到LIN总线,并接收来自LIN总线的I-PDU
    • 诊断和唤醒:LinIf模块支持LIN总线的诊断功能和休眠唤醒机制
    • 错误处理:LinIf模块能够检测和处理LIN总线上的错误,并向上层模块发送错误通知

发送数据示例(CAN报文)

在 AUTOSAR 通信服务中,发送 CAN 报文的具体流程可以概括为以下几个步骤:

  1. 准备数据
  • 应用层准备数据:应用层或上层模块准备要发送的数据,并调用相应的接口进行发送。
  • 填充 PDU:将数据填充到 PDU 中,包括必要的控制信息和数据有效载荷。
  1. 调用 PDU Router (PduR)
  • 发送请求:应用层通过 PduR 调用发送接口(如 PduR_Send()),请求发送数据。
  • 路由选择:PduR 确定数据的目标(例如,CAN 或 LIN),并决定相应的传输协议(如 CanTp)。
  1. 调用 CanTp(如果需要)
  • 分段处理:如果数据超过 CAN 帧的最大长度,PduR 将数据传递给 CanTp 进行分段处理。
  • 发送分段 PDU:CanTp 将数据分段并发送每个数据块,控制每个块的传输状态和确认。
  1. 通过 CanIf 模块
  • 调用 CanIf:PduR 或 CanTp 完成分段后,将每个数据段传递给 CanIf 模块。
  • CAN 帧封装:CanIf 封装数据到 CAN 帧中,包括消息 ID 和其他控制信息。
  1. 通过 CAN 驱动发送
  • 调用 CAN 驱动:CanIf 调用底层 CAN 驱动接口(如 CanIf_Transmit()),将封装好的 CAN 帧发送到硬件。
  • 硬件发送:底层驱动将 CAN 帧发送到 CAN 总线。
  1. 确认与反馈
  • 接收确认:接收端的 CAN 控制器收到 CAN 帧后,发送确认信号,表明成功接收。
  • 处理反馈:发送端的 CAN 驱动接收到确认后,通知 CanIf 模块,更新传输状态,并可以选择进行后续的处理(如发送下一个数据段)。
  1. 完成
  • 通知应用层:一旦所有数据成功发送和确认,PduR 或相应的模块将返回结果给应用层,表明发送完成。

接收数据示例(CAN报文)

在 AUTOSAR 通信服务中,接收 CAN 报文的具体流程可以分为以下几个步骤:

  1. CAN 硬件接收
  • 接收数据:CAN 控制器监测 CAN 总线,接收到一个完整的 CAN 帧。
  • 存储数据:接收到的 CAN 帧数据被存储在硬件缓冲区中,等待处理。
  1. 调用 CAN 驱动
  • 通知 CanIf:CAN 控制器通过中断或轮询方式通知 CAN 驱动(如 CanIf 模块)有新数据可用。
  • 提取数据:CAN 驱动从硬件缓冲区提取接收到的 CAN 帧,并准备将其传递给上层模块。
  1. 通过 CanIf 处理
  • 转发报文:CanIf 将接收到的 CAN 帧转发给 PduR 模块。
  • 解封装 PDU:CanIf 解封装 CAN 帧,提取出有效载荷和其他控制信息。
  1. 调用 PDU Router (PduR)
  • 路由选择:PduR 根据目标 PDU ID 和配置,确定数据的目的地,并将数据转发给相应的接收模块(如 CanTp 或应用层)。
  • 分段处理:如果数据是通过 CanTp 进行的分段传输,PduR 会将数据传递给 CanTp 进行重组。
  1. 通过 CanTp(如果适用)
  • 重组数据:CanTp 将接收到的分段数据进行重组,确保完整性。
  • 发送到上层:完成重组后,CanTp 将完整的数据传递给 PduR。
  1. 通知应用层
  • 调用应用接口:PduR 将最终的数据传递给应用层或上层模块,调用相应的接口(如 PduR_Receive())。
  • 处理数据:应用层处理接收到的数据,执行相应的业务逻辑。
  1. 确认与反馈
  • 发送确认:根据需要,应用层可以发送确认信息或反馈,确保数据已被成功处理。

通信过程中路由选择的细节

在 AUTOSAR 通信过程中,路由选择主要通过 PDU Router (PduR) 模块进行,具体步骤如下:

  1. PDU 定义
  • 每个 PDU 在配置文件中定义,包括其 ID、数据长度和目标模块等信息。
  1. 接收报文
  • 当接收到 CAN 报文时,CanIf 模块将其转发给 PduR。
  1. 查找路由表
  • PduR 内部维护一个路由表,记录每个 PDU ID 和其对应的目标模块。
  • PduR 使用接收到的 PDU ID 在路由表中查找,确定数据的接收目标。
  1. 转发数据
  • 根据路由表中的配置,PduR 将数据转发给相应的接收模块(如应用层、CanTp 或其他通信模块)。
  • 如果需要,PduR 还会处理数据的转换(例如,格式转换或数据分段)。
  1. 处理确认
  • PduR 可能还会根据配置向发送方或其他模块发送确认信息,确保数据传输的可靠性。

CAN诊断网络分层

CAN 诊断的网络分层通常遵循 OSI 模型的分层结构,具体包括以下几个层次:

  1. 物理层
  • 功能:负责数据的物理传输,包括电气信号的发送和接收。
  • 实现:定义电缆类型、连接器和电气特性,确保信号在 CAN 总线上的稳定传输。
  1. 数据链路层
  • 功能:负责帧的组装、传输和错误检测。
  • 实现:使用 CAN 协议,定义帧格式、优先级、仲裁和错误处理机制。
  1. 网络层
  • 功能:处理数据包的路由和传输,但在 CAN 网络中通常不明显。
  • 实现:一般通过诊断会话管理和数据传输来实现,例如,UDS(统一诊断服务)通过网络层协议传输诊断消息。
  1. 传输层
  • 功能:提供可靠的数据传输,确保数据的完整性和顺序。
  • 实现:在诊断中,CAN 诊断服务(如 UDS)可以通过分段和重组功能来实现大数据块的传输。其中CAN Tp模块便是这个起作用。
  • CanTp 处理以下内容:
    • 数据分段:将较大的 PDU 分割成多个小的 CAN 帧进行传输。
    • 数据重组:在接收端将分段的 CAN 帧重新组合为完整的数据块。
    • 可靠性控制:实现数据传输的确认机制,确保数据的可靠接收。
  1. 会话层
  • 功能:管理和控制会话的建立、维护和结束。
  • 实现:通过会话管理服务(如启动会话、停止会话)来控制诊断服务的状态。
  1. 表示层
  • 功能:负责数据格式化和转换,确保不同系统之间的数据能够理解。
  • 实现:在诊断服务中,数据的编码和解码通常在此层进行。
  1. 应用层
  • 功能:提供最终用户的接口,定义具体的诊断服务。
  • 实现:实现具体的诊断功能,如故障代码读取、数据流监控、程序下载等。

在 AUTOSAR 中,通信报文和诊断报文的处理有所不同:

  1. 诊断报文
  • 经过 CanTp:诊断报文(如 UDS 报文)通常会经过 CAN Transport Protocol (CanTp) 模块。由于诊断报文可能需要传输较大的数据块,CanTp 的分段和重组功能确保能够在 CAN 网络中可靠地传输这些数据。
  1. 通信报文
  • 通常不经过 CanTp:常规的通信报文(例如,传感器数据、控制命令等)通常不需要分段,因此可以直接通过 CAN 控制器发送。通信报文的大小一般在 CAN 帧的限制范围内,不需要 CanTp 的处理。
  • 例外情况:如果某些通信报文的数据量较大并需要分段,那么它们也可能经过 CanTp。

CAN诊断通信过程

在这里插入图片描述

在 AUTOSAR 和 CAN 诊断中,诊断请求帧应答帧是用于实现诊断服务的基本消息类型。

发送方(通常是诊断工具或测试设备)向 ECU(电子控制单元)发送的请求消息。

请求特定的诊断服务或数据,例如读取故障码、执行诊断测试或请求实时数据流。

内容:

  • 服务标识符 (Service ID):指示请求的具体服务类型。
  • 数据字段:包含服务所需的参数和数据。

接收方(ECU)对诊断请求帧的回应消息。

提供请求中所要求的数据或服务的结果,例如返回读取到的故障码或执行结果。

内容:

  • 服务标识符 (Service ID):与请求帧中的服务 ID 一致,表示这是对特定请求的回应。
  • 数据字段:包含请求的结果、错误码或状态信息。

通过这两种帧,诊断工具与 ECU 之间能够实现有效的双向通信,从而获取故障信息和进行各种诊断服务。

CAN TP 组帧和拆帧过程

CAN诊断由发送端的请求和接收端的响应构成,诊断即为发送端与接收端数数据往来。有的诊断一条信息完成, 有的诊断信息需要多条信息完成。毕竟在诊断中,一条CAN消息只包含八个字节,对于一条CAN诊断信息的分段发送问题,就是网络层需要讨论的内容。

在 CANTP层,传输报文主要分为以下几类:

  1. 单帧报文 (Single Frame)
  • 定义:用于传输较小的数据,整个数据在一个帧中发送。
  • 特点:适用于数据长度在 CAN 帧大小限制内的情况,简单快速。
  1. 第一帧 (First Frame)
  • 定义:用于开始传输较大数据块的第一部分。
  • 特点:包含数据的长度信息和序列号,指示接下来会有多帧数据传输。
  1. 数据帧 (Data Frame)
  • 定义:紧随第一帧后传输的数据部分。
  • 特点:用于传输第一帧所指定的数据块的剩余部分,多个数据帧可以连续发送。
  1. 最后一帧 (Flow Control Frame)
  • 定义:用于接收方控制数据流,告知发送方可以继续发送的状态。
  • 特点:用于流量控制,指示发送方是否需要暂停或继续发送数据。

在这里插入图片描述

在 PCI(Protocol Control Information)中,包含 PDU 单元类型和消息字节长度,这两个字段对于 CAN Transport Protocol (CanTp) 的数据传输至关重要。具体理解如下:

  1. PDU 单元类型
  • 定义:PDU 单元类型指示当前传输的消息的类型,通常包括不同的报文类型,如单帧报文、第一帧、数据帧或流控制帧。
  • 功能:通过这一字段,接收方可以确定如何处理接收到的消息。例如:
    • 如果是单帧报文,接收方直接读取数据。
    • 如果是第一帧,接收方将准备接收后续的数据帧。
  1. 消息字节长度
  • 定义:消息字节长度字段指示当前 PDU 中数据的有效字节数。
  • 功能:接收方使用这一字段来了解需要处理的数据量。这对于后续的帧解析和数据重组非常重要,尤其是在处理多帧传输时,接收方需要根据字节长度来确保数据的完整性。
举个栗子

假设我们需要传输一个数据块,总长度为 150 字节。由于 CAN 帧的最大有效负载为 8 字节,CanTp 需要将这个数据块分成多帧进行传输。

数据块:0x01, 0x02, 0x03, ..., 0x96  // 共 150 字节

1.首先发送第一帧:

内容

  • PDU 单元类型:第一帧
  • 数据长度:150 字节(0x96)
  • 数据部分:0x01, 0x02, 0x03, …, 0x08 // 包含前 8 字节的数据
[PDU Type: First Frame | Length: 150 | Data: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]

2.发送后续数据帧

CanTp 会发送多个数据帧。每个数据帧将包含 8 字节数据。

数据帧 1(第二帧):

[PDU Type: Data Frame | Data: 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10]

数据帧 2(第三帧):

[PDU Type: Data Frame | Data: 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18]

数据帧 18(最后一帧):

[PDU Type: Data Frame | Data: 0x96]

3.发送流控制帧(可选)

在数据传输过程中,接收方可以发送流控制帧以控制数据流。例如,如果接收方需要处理时间,可以发送“暂停”指令。

4.重组数据

接收方在收到所有相关的数据帧后,会将它们重组为完整的数据块:

重组的数据块:0x01, 0x02, 0x03, ..., 0x96

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

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

相关文章

基于SpringBoot的休闲娱乐代理售票系统设计与实现

1.1研究背景 21世纪,我国早在上世纪就已普及互联网信息,互联网对人们生活中带来了无限的便利。像大部分的企事业单位都有自己的系统,由从今传统的管理模式向互联网发展,如今开发自己的系统是理所当然的。那么开发休闲娱乐代理售票…

CSS外边距

元素的外边距(margin)是围绕在元素边框以外(不包括边框)的空白区域,这片区域不受 background 属性的影响,始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性,HTML 元素就是不会…

北京中实新材料:携手知名建筑企业,共筑重大工程辉煌篇章

近年来,北京中实新材料有限责任公司(以下简称“北京中实”)凭借其卓越的产品质量、专业的技术服务和良好的市场信誉,积极参与了一系列重大工程项目的建设,与多家知名建筑企业建立了长期稳定的合作关系,共同书写了城市发展的辉煌篇章。 深耕行业,铸就品质基石 自成立以来,北京中…

悬浮提词器免费版,5款便捷软件分享推荐

在这个信息爆炸、内容为王的时代,无论是直播带货、视频创作还是公开演讲,流畅自然的表达都是吸引观众的关键。然而,面对镜头时忘词卡顿却成了不少人的“心头痛”。今天,就给大家揭秘五款完全免费的悬浮提词器软件,它们…

MyBatis的注入问题

对之前文章的补充:MyBatis中的#{}与${}注入问题----原文链接 前言: MyBatis是一个流行的Java持久层框架,用于将对象与数据库中的数据进行映射。然而,如果不当使用,MyBatis也可能受到诸如SQL注入这类的安全问题的影响。…

prometheus + alertmanager + PrometheusAlert实现告警

prometheus 收集监控数据 alertmanager 制定告警路由 PrometheusAlert 连通告警webhook 一、prometheus配置 https://prometheus.io/download/ 1.1、prometheus安装 包的下载直接wget就行,放在data目录下,解压后在prometheus目录下创建config和rule目录 配置了热重启&#…

完整网络模型训练(一)

文章目录 一、网络模型的搭建二、网络模型正确性检验三、创建网络函数 一、网络模型的搭建 以CIFAR10数据集作为训练例子 准备数据集: #因为CIFAR10是属于PRL的数据集,所以需要转化成tensor数据集 train_data torchvision.datasets.CIFAR10(root&quo…

养猪场饲料加工机械设备有哪些

养猪场饲料加工机械设备主要包括以下几类:1‌、粉碎机‌:主要用于将原料进行粉碎,以便与其他饲料原料混合均匀。常见的粉碎机有水滴式粉碎机和立式粉碎机两种,用户可以根据原料的特性选择适合的机型。2‌、搅拌机‌:用…

Element UI教程:如何将Radio单选框的圆框改为方框

大家好,今天给大家带来一篇关于Element UI的使用技巧。在项目中,我们经常会用到Radio单选框组件,默认情况下,Radio单选框的样式是圆框。但有时候,为了满足设计需求,我们需要将圆框改为方框,如下…

【新闻转载】Storm-0501:勒索软件攻击扩展到混合云环境

icrosoft发出警告,勒索软件团伙Storm-0501近期调整了攻击策略,目前正将目标瞄准混合云环境,旨在全面破坏受害者的资产。 该威胁行为者自2021年首次露面,起初作为Sabbath勒索软件行动的分支。随后,他们开始分发来自Hive…

华为OD机试 - 积木最远距离(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

MQTT--EMQX入门+MQTTX使用

目录 1、什么是EMQX?1.1 EMQX介绍1.2 EMQX特点1.3 与物联网之间的关系以及主要的产品主要的产品 2、安装启动2.1 基本命令2.2 目录结构 3、MQTTX客户端3.1 连接配置 总结PS: 1、什么是EMQX? 首先你得有MQTT的知识,不认识MQTT的小伙伴可以先看…

如何初步部署自己的服务器,达到生信分析的及格线2(待更新)

参考我的上一篇博客https://blog.csdn.net/weixin_62528784/article/details/142621762?spm1001.2014.3001.5501, 现在我们已经有了一个能够跑一些基础任务的、基本没有配置的服务器了,接下来要做的任务就是: (1)进一…

单片机毕业设计选题基于单片机的炉温度控制系统

** 文章目录 前言概要功能设计设计思路效果图 程序文章目录 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们…

深拷贝浅拷贝 JS代码实现

文章目录 JS数据类型深拷贝 & 浅拷贝赋值和浅拷贝的区别浅拷贝(Shallow Copy)代码实现 深拷贝(Deep Copy)代码实现 Map & WeakMap示例 WeakMap 和垃圾回收weakmap处理循环引用 typepf & instanceof JS数据类型 基本数…

满填充透明背景二维码生成

前几天项目上线的时候发现一个问题:通过Hutool工具包生成的二维码在内容较少时无法填满(Margin 已设置为 0)给定大小的图片。因此导致前端在显示二维码时样式异常。 从图片中我们可以看到,相同大小的图片,留白内容是不一样的。其中上半部分…

dwceqos网络驱动性能优化

文章介绍 本文会介绍优化QNX系统下io-pkt-v6-hc驱动模块cpu loading过高问题,经过优化可以降低约一半的cpu loading. 问题背景 激光雷达通过以太网发送数据到ADAS域控中,测试发现在激光功能激活的情况下,会出现比较明显的网络丢帧现象。 …

平安养老险深圳分公司积极开展“金融教育宣传月”活动,展现金融为民新风尚

2024年9月,平安养老险深圳分公司以“金融为民谱新篇,守护权益防风险”为主题,正式启动2024年“金融教育宣传月”活动,通过多样化开展进乡村、进商圈、进企业等宣传教育活动,将金融消保知识送达广大消费者身边&#xff…

光通信——PON技术

PON网络结构 PON(Passive Optical Network,无源光网络)系统的基本组成包括OLT(Optical Line Terminal,光线路终端)、ODN(Optical Distribution Network,光分配单元)和ON…

数据结构——队列的基本操作

前言 介绍 🍃数据结构专区:数据结构 参考 该部分知识参考于《数据结构(C语言版 第2版)》24~28页 🌈每一个清晨,都是世界对你说的最温柔的早安:ૢ(≧▽≦)و✨ 目录 前言 1、队列的基本概念…