车载以太网网络测试 -24【SOME/IP概述】

目录

  • 1 摘要
  • 2 车载SOME/IP 概述
    • 2.1发展背景以及应用
      • 2.1.1车载 SOME/IP 背景
      • 2.1.2 车载 SOME/IP 应用场景
    • 2.3 什么是SOME/IP
      • 2.3.1 SOME/IP定义
      • 2.3.2 SOME/IP在协议栈中的位置
  • 3 SOA是什么
  • 4 SOME/IP主要功能
  • 5 SOME/IP标准

1 摘要

本文主要介绍SOME/IP的背景以及在车载行业的发展和应用,并对SOME/IP的概念定义、协议栈位置、SOA简述以及行业标准做了介绍。为后续详细介绍SOME/IP做个铺垫。

2 车载SOME/IP 概述

SOME/IP(Scalable Service-Oriented Middleware over IP)是一种基于IP网络的面向服务的通信协议,专为汽车电子系统设计,支持服务发现、远程过程调用(RPC)和事件通知等功能。核心标准是由 AUTOSAR(汽车开放系统架构)定义,现已成为车载通信的重要标准之一(如AUTOSAR 4.0+)。

2.1发展背景以及应用

2.1.1车载 SOME/IP 背景

  1. 行业驱动因素

    • 智能化需求:自动驾驶(ADAS)、车联网(V2X)等需要高带宽、低延迟通信。
    • EE架构演进:从分布式ECU向域控制器(Domain Controller)中央计算平台转型,依赖SOA实现软硬件解耦。
    • 标准化推动:AUTOSAR Adaptive(支持动态部署)和经典AUTOSAR(静态配置)均集成SOME/IP。
  2. 车载网络演进

    • 传统架构:CAN/LIN主导,点对点通信,难以支持OTA、功能扩展。
    • 现代架构:以太网+SOME/IP成为主干网,支持服务化通信(如特斯拉、大众MEB平台)。

在这里插入图片描述

1. 背景与起源(2011-2013年)

  • 需求驱动:随着汽车功能(如ADAS、车联网、OTA)的复杂化,传统基于信号(如CAN总线)的通信方式在灵活性和扩展性上遇到瓶颈,需要面向服务(Service-Oriented Architecture, SOA)的通信架构。
  • 标准化启动:2011年,宝马(BMW)联合博世(Bosch)等厂商提出SOME/IP概念,作为基于IP网络的中间件解决方案,支持动态服务发现和远程方法调用(RPC)。
  • Autosar适配:2013年,AUTOSAR(汽车开放系统架构)在4.0版本中正式纳入SOME/IP标准,推动其在ECU(电子控制单元)间的标准化应用。

2. 技术发展与行业推广(2014-2018年)

  • AUTOSAR CP/AP支持
    • Classic Platform (CP):面向传统ECU,支持SOME/IP作为基础通信协议。
    • Adaptive Platform (AP):2017年发布的AUTOSAR AP进一步扩展SOME/IP功能,适应高性能计算(如域控制器、车载信息娱乐系统)。
  • 车联网与以太网普及:随着车载以太网(如100BASE-T1)的标准化(IEEE 802.3bw),SOME/IP成为基于IP的高带宽通信核心协议,支撑智能座舱、自动驾驶等场景。
  • 行业应用案例
    • 宝马、大众等车企在高端车型中率先采用SOME/IP实现OTA、诊断等功能。
    • 供应商(如博世、大陆)推出支持SOME/IP的ECU和工具链。

3. 成熟与生态完善(2019-2023年)

  • 工具链成熟:Wireshark插件、CAPL脚本、Vector等工具支持SOME/IP分析和测试,降低开发门槛。
  • 与DDS的竞争与互补:在自动驾驶领域,SOME/IP与DDS(如ROS 2使用的协议)形成竞争,但SOME/IP凭借AUTOSAR背书和低开销优势,在传统ECU中仍占主导。
  • 中国市场的崛起:国内车企(如蔚来、小鹏)在EE架构转型中采用SOME/IP,推动本土供应商(如华为、东软)推出解决方案。

4. 未来趋势(2024年后)

  • 与TSN的融合:时间敏感网络(TSN)保障SOME/IP在实时性要求高的场景(如底盘控制)的可靠性。
  • SOA全面落地:基于SOME/IP的SOA架构将成为“软件定义汽车”的核心,支持功能动态部署和跨域协同。
  • 标准化扩展:AUTOSAR持续更新SOME/IP规范(如SOME/IP-SD服务发现机制优化),适应5G/V2X场景。

2.1.2 车载 SOME/IP 应用场景

  1. 智能驾驶(ADAS)

    • 功能示例:传感器数据(摄像头、雷达)通过SOME/IP实时传输至域控制器,触发自动紧急制动(AEB)。
    • 优势:低延迟(<100ms)、支持大数据传输(如4K视频流)。
  2. 智能座舱

    • 功能示例:中控屏与仪表盘通过SOME/IP调用导航服务,动态同步路线信息。
    • 服务发现:新增娱乐设备(如后排显示屏)可动态加入网络。
  3. 车联网(V2X)

    • 用例:车辆通过SOME/IP与云端交互,获取实时交通信息或远程诊断。
    • 协议扩展:与MQTT、DDS等协议协同,支持混合通信。
  4. OTA升级

    • 流程:云端下发更新包至车载网关,通过SOME/IP服务调用分发至各ECU。

SOME/IP的发展反映了汽车产业从分布式ECU向集中式域控、从硬件定义到软件定义的转型趋势,未来仍将是车载通信的核心技术之一。

与传统协议对比

特性SOME/IPCAN/CAN FDLIN
通信模式面向服务(SOA)信号导向(广播)主从式通信
带宽高(基于以太网)中(CAN FD达2 Mbps)低(20 kbps)
灵活性动态服务发现静态配置静态配置
应用场景智能座舱、ADAS车身控制、动力系统门窗、座椅控制

2.3 什么是SOME/IP

2.3.1 SOME/IP定义

SOME/IP 的全称是 Scalable service-Oriented MiddlewarE over IP,它是一种基于IP网络的面向服务的通信协议,广泛应用于汽车电子(AUTOSAR)和物联网领域。以下是各单词的详细介绍:

  1. Scalable(可扩展的)
  • 含义:指协议能够适应不同规模的系统,从小型嵌入式设备到大型分布式系统均可灵活部署。实现不同硬件平台、不同操作系统或嵌入式固件以及不同应用软件的异构设备之间的可扩展性和互操作性。
  • 特点
    • 支持动态服务发现和订阅/发布模型。
    • 可根据需求扩展服务实例和通信负载。
  1. service-Oriented(面向服务的)
    • 含义:基于SOA(Service-Oriented Architecture)架构设计,将功能模块化为独立的“服务”,通过接口提供标准化访问,这就确保了永远不会浪费带宽,并且仅在需要的时间和地点进行数据通信/交换。
    • 特点
      • 服务可独立开发、部署和更新。
      • 服务间通过定义良好的API交互,解耦系统组件。
  2. MiddlewarE(中间件)
  • 含义:作为底层网络(IP)和上层应用之间的软件层,抽象化通信细节(如序列化、路由、服务发现等)。
  • 功能
    • 处理数据传输、序列化(TCP/UDP)。
    • 管理服务注册、发现和远程调用(RPC)。
    • 提供事件通知机制(如字段变更的发布/订阅)。
  1. over IP(基于IP网络)
  • 含义:使用标准IP协议栈(IPv4/IPv6)作为传输基础,兼容以太网、Wi-Fi等网络。
  • 优势
    • 利用现有网络基础设施,降低部署成本。
    • 支持跨设备、跨平台的通信(如车内的ECU、云端服务)。

5 SOME/IP的核心特性

  1. 服务发现(SD):动态查找和绑定可用服务。
  2. 序列化:高效二进制编码,节省带宽。
  3. 通信模式:支持请求/响应、事件通知、字段订阅。
  4. AUTOSAR集成:汽车电子中用于ECU(电子控制单元)间的通信。

2.3.2 SOME/IP在协议栈中的位置

SOME/IP属于应用层协议(OSI第7层),但实际实现中它依赖于传输层(如TCP/UDP)和网络层(IP),属于中间件层(Middleware)。
如下图所示,SOME/IP在车载以太网协议栈中的位置:
在这里插入图片描述
SOME/IP(Scalable service-Oriented MiddlewarE over IP)是车载以太网协议栈中的核心中间件协议,位于应用层与传输层之间,主要负责服务导向通信(Service-Oriented Communication, SOC)的实现。以下是其在协议栈中的具体位置及与其他模块的关系:

与其他模块/协议的关系
(1) 与底层协议的关系

  • TCP/UDP
    SOME/IP默认使用UDP(低延迟、广播/组播支持),但对可靠性要求高的服务(如诊断)可运行在TCP上。

    • 端口分配:SOME/IP-SD通常使用UDP端口30490,服务数据端口可动态配置。
  • IP层
    依赖IPv4/IPv6寻址,支持单播、组播(用于服务发现和事件通知)。

  • 以太网(IEEE 802.3)
    基于车载以太网(如100BASE-T1)的物理层和数据链路层,确保低延迟和高带宽。

(2) 与上层应用的关系

  • AUTOSAR架构
    • CP(Classic Platform):通过AraCom模块集成SOME/IP,提供静态服务配置。
    • AP(Adaptive Platform):直接使用SOME/IP作为服务通信的核心协议,支持动态服务发现。
  • 非AUTOSAR系统:可通过SOME/IP库(如COVESA的vSomeIP)实现服务通信。

(3) 与SOME/IP-SD(服务发现)的关系

  • SOME/IP-SD是SOME/IP的子模块,独立运行但紧密协同:
    • 动态服务发现:允许ECU在启动时广播服务实例(如摄像头服务地址)。
    • 事件订阅:客户端通过SOME/IP-SD订阅服务端的事件通知(如传感器数据更新)。

(4) 与其他车载协议的关系

  • DoIP(Diagnostic over IP)
    SOME/IP可用于传输诊断数据,但DoIP专用于UDS(ISO 14229)标准诊断。
  • DDS(Data Distribution Service)
    在AP平台中,DDS可能与SOME/IP共存,DDS适用于实时数据分发(如传感器融合),SOME/IP侧重服务调用。
  • CAN/LIN
    SOME/IP通过网关(如AUTOSAR Ethernet Gateway)与传统总线协议转换,实现跨域通信。

(5) 与安全模块的关系

  • TLS/DTLS
    若需加密,SOME/IP可通过TLS(TCP)或DTLS(UDP)实现端到端安全。
  • IPsec
    在网络层提供ECU间的认证和加密,与SOME/IP互补。

总结
SOME/IP是车载以太网中承上启下的关键协议:

  • 向下:依赖TCP/UDP/IP和以太网,确保数据可靠传输。
  • 向上:为应用层提供标准化服务接口,屏蔽网络复杂性。
  • 横向:与SOME/IP-SD、安全协议、网关等协同,构建完整的服务通信生态。

其设计目标是为车载系统提供可扩展低耦合的通信方式,适应未来SOA(面向服务架构)的需求。

3 SOA是什么

SOA(Service-Oriented Architecture,面向服务的架构) 是一种软件设计模式,通过将功能拆分为独立的、可复用的“服务”来构建系统。这些服务通过标准化的接口(如API)通信,实现松耦合、灵活扩展和跨平台协作。

  • 核心特点
    • 模块化:功能以服务形式独立存在(如“支付服务”、“导航服务”)。
    • 标准化接口:服务通过通用协议(HTTP、MQTT等)交互。
    • 松耦合:服务可独立更新,不影响其他模块。

生活中的SOA实例

  1. 外卖平台
    • 下单服务支付服务配送服务,每个环节由不同系统提供,通过API协同工作。
  2. 在线购物
    • 商品展示、库存查询、支付、物流跟踪分别由独立服务处理,整合在同一个前端页面。
  3. 智能家居
    • 灯光控制、温湿度调节、安防摄像头等服务通过云端协调,用户通过App统一操作。

汽车行业的SOA应用与发展
传统汽车架构:ECU(电子控制单元)分散且专用(如发动机ECU、刹车ECU),难以升级。
SOA转型:将车辆功能抽象为服务(如“自动驾驶服务”、“车联网服务”),实现软件定义汽车。

典型应用场景

  • 车联网与OTA升级
    • 通过SOA将车载娱乐、导航、诊断等功能服务化,支持远程更新(如特斯拉推送新功能)。
  • 自动驾驶
    • 感知、决策、控制模块作为独立服务,灵活整合不同供应商的算法(如激光雷达服务+高精地图服务)。
  • 智能座舱
    • 语音助手、座椅调节、空调控制等服务可动态组合(如“上车自动播放音乐+调节温度”)。
  • V2X(车路协同)
    • 车辆与交通信号灯、云端平台通过服务交互,实现智能路线规划。

行业案例

  • 大众MEB平台:采用SOA架构,允许第三方开发者通过API扩展车载应用。
  • 宝马OS 8.0:将车辆功能(如驾驶模式切换)封装为服务,支持个性化配置。
  • 华为HarmonyOS车机:通过SOA实现手机、车机、家居设备的无缝互联。

未来趋势

  • 软件定义汽车(SDV):SOA是核心,车辆功能可通过软件订阅(如宝马付费开通座椅加热)。
  • AI与SOA结合:车载AI服务(如语音助手)动态调用其他服务(导航、娱乐)。
  • 跨行业融合:车与智慧城市、能源系统互联(如电动车自动预约充电桩)。

SOA通过“服务化”打破传统软硬件绑定的局限,在汽车行业推动智能化、网联化变革。从外卖平台到自动驾驶汽车,其本质都是将复杂系统拆解为协同服务的集合,未来将成为数字化转型的基础架构。

4 SOME/IP主要功能

1. 面向服务的通信(Service-Oriented Communication)

  • 服务接口:允许ECU以服务的形式提供功能(如传感器数据、控制逻辑等),其他ECU或应用可以订阅或调用这些服务。
  • 松耦合架构:服务提供者和消费者无需直接知晓对方的具体位置或实现细节,只需通过服务接口交互。

2. 远程方法调用(Remote Procedure Call, RPC)
远程过程调用,一般用英文缩写RPC表示,和其对应的是本地过程调用(LPC,Local Procedure Call)。简单的说如果需要和其他的控制器或节点进行交互,那么就需要RPC。

  • 方法调用:支持客户端ECU远程调用服务端ECU提供的函数(方法),并获取返回值。
  • 异步/同步通信:支持同步请求-响应模式,也支持异步通知或回调。

3. 事件通知(Event Notification)

  • 发布/订阅模式:服务提供者可以主动向订阅者发送事件(如传感器数据更新、状态变化等)。
  • 字段通知(Fields):当服务的某个字段(如车辆速度)发生变化时,自动通知订阅者,减少不必要的轮询。

4. 序列化与反序列化

  • 高效数据编码:定义紧凑的二进制数据格式,将复杂数据结构序列化为字节流传输,减少带宽占用。
  • 跨平台兼容性:支持不同硬件架构(如大端/小端)的数据转换。

5. 服务发现(Service Discovery)

  • 动态服务管理:通过SOME/IP-SD(Service Discovery)协议自动发现和注册可用服务,适应动态网络环境(如ECU重启或网络拓扑变化)。
  • 多播支持:使用多播通信广播服务可用性,减少配置依赖。

6. 多传输协议支持

  • TCP/UDP适配:支持可靠传输(TCP)和低延迟传输(UDP),根据场景选择。
  • QoS控制:通过优先级和重传机制保障关键数据的实时性。

7. 安全与扩展性

  • 可集成安全机制:支持与AUTOSAR SecOC等安全模块结合,实现身份验证和数据加密。
  • 模块化设计:适用于从简单ECU到复杂域控制器的不同规模系统。

SOME/IP的核心是通过标准化服务接口和动态发现机制,实现汽车电子系统中灵活、可扩展的通信,同时兼顾效率和实时性,是AUTOSAR Adaptive平台和下一代EE架构的关键技术之一。

5 SOME/IP标准

目前有三个组织发布过SOME/IP相关的内容,分别是COVESA、ISO和AUTOSAR。
COVESA
vSOMEIP,是由GOVESA联盟(Connected Vehicle Systems Alliance,之前的名字为GENIVI)编制的一版SOME/IP协议栈,主要由宝马维护。这套SOME/IP协议栈是开源的,在GitHub上可以免费下载,网址为https://github.com/COVESA/vsomeip。原文为vsomeip Copyright© 2015-2022, Bayerische Motoren Werke Aktiengesellschaft。
ISO
ISO制定的SOME/IP相关标准ISO 17215-2:2014 Road vehicles — Video communication interface for cameras (VCIC) — Part 2: Service discovery and control其中定义了SOME/IP和SOME/IP SD相关的需求,以及一套如何通过SOME/IP实现摄像头服务的方法。
AUTOSAR
SOME/IP正由于其知名度逐渐被AUTOSAR接纳并计划纳入其正式标准,并且在2014年集成进AUTOSAR 4.X中,几个关键发展节点如下:
1.AUTOSAR 4.0 - 完成宝马SOME/IP消息的初步集成;
2. AUTOSAR 4.1 - 支持SOME/IP-SD及其发布/订阅功能;
3. AUTOSAR 4.2 - 添加transformer用于序列化以及其他相关优化;
4. AUTOSAR 4.3 - 修复一些transformer bug同时添加针对大量UDP数据包的SOME/IP-TP协议以及其他SOME/IP-SD的优化工作;

主要分为如下几类:
1. AUTOSAR_SWS_SOMEIPTransportLayer (AUTOSAR 标准)

  • 核心内容:定义SOME/IP协议的基础传输层规范,包括报文格式、序列化、服务发现等。
  • 关键章节
    • Chapter 5: General Requirements
      概述SOME/IP的设计原则,如基于UDP/TCP的通信、事件通知、远程方法调用等。
    • Chapter 7: SOME/IP报文格式
      详细描述报文头部结构(Message ID、Length、Request ID等)及负载的序列化规则。
    • Chapter 8: Service Discovery (SD)
      服务发现机制,包括服务上线/下线通知、多播组管理(Entry/Subscribe/StopSubscribe)。

2. AUTOSAR_SWS_SOMEIPServiceDiscovery (AUTOSAR 标准)

  • 核心内容:专用于SOME/IP服务发现(SD)的详细规范。
  • 关键章节
    • Chapter 6: SD报文格式
      定义服务发现报文的字段(Entry、Option等)及多播/单播通信模式。
    • Chapter 7: SD状态机
      描述服务实例的初始化和订阅流程(如定时器配置、重传机制)。

3. AUTOSAR_SRS_SOMEIPProtocol (需求规范)

  • 核心内容:从需求角度定义SOME/IP的功能性和非功能性要求。
  • 关键章节
    • Chapter 4: Functional Requirements
      明确通信模式(请求/响应、发布/订阅)、序列化兼容性、错误处理等需求。
    • Chapter 5: QoS要求
      包括延迟、可靠性(如TCP重传)和带宽管理。

4. AUTOSAR_SWS_Serialization (序列化规范)

  • 核心内容:数据序列化规则,确保跨平台兼容性。

  • 关键章节

    • Chapter 5: Data Types
      基础类型(uint8, float等)的字节序(Big-Endian)和对齐规则。
    • Chapter 6: Complex Types
      结构体(struct)、数组(array)、字符串(string)的序列化方式。
      5. SOME/IP官方协议规范(非AUTOSAR)
  • 核心内容:由BMW等厂商提出的原始协议定义(AUTOSAR标准的前身)。

  • 关键章节

    • Section 3: Protocol Overview
      对比AUTOSAR版本,可能包含历史实现差异或扩展功能。
  • 6. AUTOSAR_SWS_NetworkManagement

  • 相关章节:SOME/IP与车辆网络管理(如休眠/唤醒)的交互(如NM报文对SOME/IP服务的影响)。

文档获取方式

  • AUTOSAR标准:需从官网(www.autosar.org)获取,部分旧版本可免费下载。
  • 非AUTOSAR文档:需通过厂商或行业组织(如GENIVI)申请。

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

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

相关文章

vue3中,route4,获取当前页面路由的问题

首先应用场景如下&#xff1a; 在main.js里面&#xff0c;引入的是路由的配置文件&#xff0c;如下&#xff1a; import {router} from /router; app.use(router); 路由配置文件router.js如下&#xff1a; import { createRouter, createWebHistory } from vue-router; imp…

ip改变导致的数据库连接不上

前言 需要用到路由器&#xff0c;所以先把家里的路由器给拆了先用着。新的路由器到了之后&#xff0c;更换上新的路由器之后&#xff0c;调用到服务会有报错&#xff0c;记录一下更换路由器之后ip重新分配服务可能会报的错. 进一步可以看到有关网路在服务当中的影响。 正文 …

Chrome 开发环境快速屏蔽 CORS 跨域限制!

Chrome 开发环境快速屏蔽 CORS 跨域限制【详细教程】 ❓ 为什么需要临时屏蔽 CORS&#xff1f; 在前后端开发过程中&#xff0c;我们经常会遇到 跨域请求被浏览器拦截 的问题。例如&#xff0c;你在 http://localhost:3000 调用 https://api.example.com 时&#xff0c;可能会…

【力扣hot100题】(009)和为K的子数组

还是太菜了&#xff08;我&#xff09;&#xff0c;写了半天滑动窗口&#xff0c;然后看了答案又写了半天时间超限…… 总之就是记录每前n个子串的和&#xff0c;然后使用hash存储和为某个值出现的次数&#xff0c;每次求得新和就看看是否存在前面新和-k的字符&#xff0c;有的…

使用 rsync 进行服务器文件同步与优化

使用 Rsync 工具在两台 Linux 服务器之间同步文件 Rsync 是一种高效的文件同步工具&#xff0c;它可以在本地或远程服务器之间同步文件和目录。Rsync 通过仅传输文件的变化部分来减少数据传输量&#xff0c;因此特别适合用于定期备份或同步大量数据。本文将详细介绍如何将 A 服…

卷积神经网络 - 微步卷积、空洞卷积

一、微步卷积 微步卷积&#xff08;Fractionally Strided Convolution&#xff09;&#xff0c;通常也称为转置卷积&#xff08;Transposed Convolution&#xff09;或反卷积&#xff08;Deconvolution&#xff09;&#xff0c;是深度学习&#xff08;尤其是卷积神经网络&…

详解java体系实用知识总结

0.java技术能力框架 基础模块应用模块综合模块技术岗位与面试流程常用工具集系统架构设计计算机基础常用框架微服务架构jvm原理缓存容器化多线程队列云计算&#xff08;阿里云/aws&#xff09;设计模式数据库数据结构与算法 1.常用设计模式与应用场景 工厂模式&#xff1a;s…

设计模式之创建型5种

设计模式 为什么设计模式是23种创建型 对象创建为什么设计模式是23种 设计模式之所以被归纳为23种,而非其他数量,源于GoF(Gang of Four)在1994年的系统性总结和分类。这一数量的确定并非偶然,而是基于以下核心原因: 他们遵循“大三律”(Rule of Three),即只有经过三个…

Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange)

文章目录 Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange)ONNX基本概念ONNX(Open Neural Network Exchange)ONNX Runtime ONNX Runtime 在Oracle数据库中的集成参考 Oracle 23ai Vector Search 系列之2 ONNX(Open Neural Network Exchange) 我们在看【…

统一语言学习范式

摘要 现有的预训练模型通常针对特定类别的问题。迄今为止&#xff0c;关于何种架构和预训练设置应为最佳似乎仍未达成共识。本文提出了一个统一的框架&#xff0c;用于预训练在多种数据集和设置中普遍有效的模型。我们首先将架构原型与预训练目标这两个常被混为一谈的概念进行…

Flutter项目升级到指定版本的详细步骤指南

一、升级前的准备工作 备份项目 使用Git提交当前所有修改&#xff1a;git commit -am "Pre-upgrade backup"或直接复制项目文件夹 查看当前环境信息 flutter --version flutter doctor二、升级Flutter SDK到指定版本 方法1&#xff1a;通过版本管理工具升级&#x…

22、web前端开发之html5(三)

六. 离线存储与缓存 在网络环境不稳定或需要优化资源加载速度的场景下&#xff0c;离线存储与缓存技术显得尤为重要。HTML5引入了多种离线存储和缓存机制&#xff0c;帮助开发者提升用户体验。本节将详细介绍Application Cache、localStorage、sessionStorage以及IndexedDB等技…

用HTML和CSS生成炫光动画卡片

这个效果结合了渐变、旋转和悬浮效果的炫酷动画示例&#xff0c;使用HTML和CSS实现。 一、效果 二、实现 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&quo…

【嵌入式学习2】数组

目录 ## 数组概念 ## 数组使用 ## 数组初始化 ## 数组名 ## 数组长度 ## 数组相关题目 1、找最大值 2、逆置 ## 数组和指针 指针加整数的含义 ## 指针数组 ## 数组名做函数参数 ## 函数参数传递数组 1、在函数内部 2. 在函数外部 ## 多维数组 使用下标访问 #…

C++中的判断与循环

一.if判断语句 1.程序中的判断&#xff1a; if (要执行的判断&#xff0c;最后的返回值要是bool型的数据) {如果为真&#xff0c;要执行的代码段; } #include"iostream" using namespace std;int main() {int ans;cin >> ans;if (ans > 1000) {cout <…

前端开发中生成网站的favicon.ico文件的软件推荐及使用方法

日常网站开发中&#xff0c;我们经常需要生成网站的favicon.ico文件&#xff0c;今天我在这里来推荐几个编辑.ico(也可将图片格式转化为.ico)图片&#xff0c;而且免费的那软件&#xff1a; GIMP&#xff1a;一个功能强大的开源图像编辑软件&#xff0c;支持多种文件格式&#…

浅谈WebSocket-FLV

FLV是一种视频数据封装格式&#xff0c;这种封装被标准通信协议HTTP-FLV和RTMP协议应用。 而WebSocket-FLV是一种非标的FLV封装数据从后端发送到前端的一种方式。 在WebSocket的url请求中&#xff0c;包含了需要请求设备的视频相关信息&#xff0c;在视频数据到达时&#xff0c…

基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 ADMM算法 4.2 最大似然ML检测算法 4.3 最小均方误差&#xff08;MMSE&#xff09;检测算法 4.4 迫零&#xff08;ZF&#xff09;检测算法 4.5 OCD_MMSE 检测算法 4.6 LAMA检测算法 …

cocos creator 笔记-路边花草

版本&#xff1a;3.8.5 实现目标&#xff1a;给3d道路生成路边景观花草 在场景下创建一个节点&#xff0c;我这里种植两种花草模型&#xff0c;兰花和菊花&#xff0c;所以分别在节点下另创建两个节点&#xff0c;为了静态合批。 1.将花草模型分别拖入场景中&#xff0c;制作…

R语言——循环

参考资料&#xff1a;学习R 在R中有三种循环&#xff1a;repeat、while和for。虽然向量化意味着我们可能并不需要大量使用它们&#xff0c;但在需要重复执行代码时&#xff0c;它们是非常有用的。 1、重复循环 R中最容易掌握的循环是repeat。它所做的事情就是反复地执行代码&a…