LIN总线入门

news2024/12/28 3:45:33

文章目录

  • 前言
  • 一、LIN简介
    • 1.1 什么是LIN?
    • 1.2 为什么要LIN总线
    • 1.3 LIN的发展历史
    • 1.4 LIN子网
    • 1.5 LIN节点
    • 1.6 LIN总线特点
  • 二、LIN的协议层
    • 2.1 帧结构
      • 2.1.1 同步间隔段(Break Field)
      • 2.1.2 同步段(Sync Byte Field)
      • 2.1.3 受保护 ID 段(Protected Identifier Field)
      • 2.1.4 数据段(Data Field)
      • 2.1.5 校验和段(Checksum Field)
    • 2.2 帧类型
      • 2.2.1 无条件帧(Unconditional Frame)
      • 2.2.2 事件触发帧(Event Triggered Frame)
      • 2.2.3 偶发帧(Sporadic Frame)
      • 2.2.4 诊断帧(Diagnostic Frame)
      • 2.2.5 保留帧(Reserved Frame)
    • 2.3 进度表
    • 2.4 状态机(State Machine)
      • 2.4.1 主机任务的状态机
      • 2.4.2 从机任务的状态机
  • 三、网络管理
    • 3.1 休眠
    • 3.2 唤醒

一、LIN简介

1.1 什么是LIN?

LINLocal Interconnect Network 的缩写,是基于 UART/SCI(Universal Asynchronous Receiver-Transmitter /Serial Communication Interface,通用异步收发器/串行通信接口)的低成本串行通信协议。可用于汽车、家电、办公设备等多种领域。本文主要针对 LIN 在汽车电子中的应用。

1996 年, Volvo和Volcano通讯(VCT)为Volvo S80 系列开发了一种基于UART/SCI的协议,即Volcano Lite。
1997 年, Motorola与Volvo和VCT合作,帮助它们改进Volcano Lite协议以满足各种不同需求(比如无需晶振的从机设备自动同步),并制定可以支持各种半导体产品的开放标准。 1998 年 12 月, Audi、 BMW、 Daimler Chrysler和Volkswagen也加入进来,由此形成了LIN协会(http://www.lin-subbus.org)。

1.2 为什么要LIN总线

初学者可能会有这个疑惑,不是都有CAN总线了么,CAN总线功能那么强大,怎么还搞个LIN总线?如果不考虑成本,当然直接用CAN就行。汽车的每个地方都用CAN总线的话,那整车的总线架构成本将会变得很高!在比如车身某些电子配件的地方(如车窗、后视镜、大灯、车锁等),这些配件的通讯根本不需要像CAN总线那样“高速”传输,各大厂商为了在车身低速的应用上节约成本,就联合研究了出了这个LIN总线。

开发LIN标准的目的在于适应分层次车内网络在低端(速度和可靠性要求不高、低成本的场合)的需求

1.3 LIN的发展历史

发布时间版本
1999/071.0 版发布
2000/031.1 版发布
2000/111.2 版发布
2002/121.3 版发布,主要对物理层进行修改,提高了节点之间的兼容
2003/092.0 版发布,支持配置和诊断的标准化,规定了节点性能文件等
2006/112.1 版发布,澄清了部分内容,修正了配置部分,将传输层和诊断部分独立成章

1.4 LIN子网

在这里插入图片描述

LIN 的典型应用
上图是一典型的车载 LIN 通信子网。由于LIN网络在汽车中一般不会独立存在,常与上层网络(如 CAN)相连,因此子网的概念是相对于上层的。如果不强调和上层网络相连,也称作LIN网络。

黄色方块为 LIN 的从机节点,蓝色方块为 LIN 的主机节点

一个节点即一个 LIN 接口。 LIN 网络与主干线 CAN(Controller Area Network,控制器局域网)总线相连时,需要加入 CAN-LIN 网关,一般由主机节点来充当。

一个节点不一定对应一个 ECU(Electronic Control Unit,电子控制单元),因为一个 ECU 可能提供多个LIN 接口,并且这些接口可能连接到不同的 LIN 通信子网中。
在这里插入图片描述

LIN 与上层网络连接示意图

1.5 LIN节点

LIN 的拓扑结构为单总线,应用了单一主机多从机的概念。

总线电平为 12V,传输位速率(Bitrate)最高为20kbps。

由于物理层限制,一个 LIN 网络最多可以连接 16 个节点,典型应用一般都在 12 个节点以下

主机节点有且只有一个,从机节点有 1 到 15 个

主机节点(Master Node)包含主机任务(Master Task)和从机任务(Slave Task),从机节点(Slave Node)只包含从机任务

在这里插入图片描述

LIN 总线拓扑图

主机任务负责:

  1. 调度总线上帧的传输次序;
  2. 监测数据,处理错误;
  3. 作为标准时钟参考;
  4. 接收从机节点发出的总线唤醒命令。

从机任务负责:

  1. 发送应答(帧中除帧头外剩下的部分);
  2. 接收应答;
  3. 既不接收也不发送应答。

从机任务不能够主动发送数据,需要接收主机发送的帧头(帧的起始部分),根据帧头所包含的信息(这里指帧 ID)判断:

1.6 LIN总线特点

  1. 网络由一个主机节点和多个从机节点构成。
  2. 使用 LIN 可以大幅度的削减成本,表现在以下方面:

● 开放型规范:规范可以免费从官方网站获得。
● 硬件成本削减:基于普通 UART/SCI 接口的低成本硬件实现,无需单独的硬件模块支持;从机节点无需 高精度时钟就可以完成自同步;总线为一根单线电缆。
● 装配成本削减: LIN采用了工作流(Work Flow)和现成节点(Off-the-shelf Node)的概念,将网络装配标准 化,并可通过 LIN传输层进行再配置。
● 缩短软件开发周期: LIN 协议将 API(Application Programming Interface,应用编程接口)标准化。

  1. 信号传输具有确定性,传播时间可以提前计算出
  2. LIN 具有可预测的 EMC(ElectroMagnetic Compatibility,电磁兼容性)性能,为了限制 EMI(ElectroMagnetic Interference,电磁干扰)强度, LIN 协议规定最大位速率为 20kbps。
  3. LIN提供信号处理、配置、识别和诊断四项功能

二、LIN的协议层

2.1 帧结构

帧(Frame)包含帧头(Header) 和 应答(Response)两部分。
主机任务:负责发送帧头;
从机任务:接收帧头并对帧头所包含信息进行解析,然后决定是发送应答,还是接收应答,还是不作任何反应。帧在总线上的传输如下图所示:
在这里插入图片描述

帧在总线上的传输

帧头包括 同步间隔段同步段以及 PID段(Protected Identifier,受保护ID)
应答包括 数据段校验和段

其中值“0”为显性电平(Dominant),值“1”为隐性电平(Recessive),总线上实行“线-与”: 当总线上有大于等于一个节点发送显性电平时,总线呈显性电平;所有的节点都发送隐性电平或不发送信息(不发送任何信息时总线默认呈隐性电平)时,总线才呈现隐性电平,即显性电平起主导作用

帧间隔:顾名思义就是帧之间的间隔;
应答间隔:帧头和应答之间的间隔;
字节间间隔包括同步段和受保护ID段之间的间隔、数据段各字节间之间的间隔以及数据段最后一个字节和校验和段之间的间隔
在这里插入图片描述

帧结构

2.1.1 同步间隔段(Break Field)

同步间隔段由同步间隔(Break)和同步间隔段间隔符(Break Delimiter)构成,如下图所示。同步间隔是至少持续 13 位(以主机节点的位速率为准)的显性电平,由于帧中的所有间隔或总线空闲时都应保持隐性电平,并且帧中的任何其它字段都不会发出大于 9 位的显性电平,因此同步间隔可以标志一个帧的开始。
同步间隔段的间隔符是至少持续 1 位的隐性电平
在这里插入图片描述
从机任务接收帧头的同步间隔段时,以该从机任务所在节点的位速率为准,当检测总线上出现持续 11 位的显性电平时,认为是帧的开始。当从机节点使用精度较高的时钟时,识别阈值可以选择 9.5 位

2.1.2 同步段(Sync Byte Field)

在LIN的一帧数据中,除了同步间隔段,其他的段都是采用字节域的格式进行传输。
字节域(Byte Field):包括 1 位起始位(Start Bit,显性) + 8位数据位 + 1 位停止位(Stop Bit,隐性),是一种标准 UART 数据传输格式。
在 LIN 帧中,数据传输都是先发送LSB(Least Significant Bit,最低有效位),最后发送 MSB(Most Significant Bit,最高有效位)。格式如下图:

在这里插入图片描述
LIN 同步段以下降沿为判断标志,采用字节 0x55(转换为二进制为 01010101b)。同步段的字节域如下图所示:

在这里插入图片描述
因为主从机的时钟源不一致,从机节点可以用精度不高的时钟,比如片上振荡器等精度和成本相对较低的时钟,由此带来的与主机节点时钟产生的偏差,此时就需要通过同步段进行调整,使从机节点数据的位速率与主机节点一致。

同步段将主机节点的时钟作为基准时钟。从机节点通过接收主机节点发出的同步段,计算出主机节点位速率,根据计算结果对自身的位速率重新作调整。计算公式如下:

1位时间 = (第7位的下降沿时刻 - 起始位的下降沿时刻) / 8

通过计算,得到主机节点实际传输 1 位所用的时间,即位速率

2.1.3 受保护 ID 段(Protected Identifier Field)

受保护 ID 段的前 6 位叫作帧 ID(Frame ID),加上两个奇偶校验位后称作受保护 ID
在这里插入图片描述
帧 ID 的范围在 0x00~0x3F 之间,共 64 个。帧 ID 标识了帧的类别和目的地。从机任务对于帧头作出的反应(接收/发送/忽略应答部分)都是依据帧 ID 判断的。如果帧 ID 传输错误,将会导致信号无法正确到达目的地,因此引入奇偶校验位。校验公式如下,其中“⊕”代表“异或”运算, “¬”代表“取非”运算。

P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
P1 = ¬ (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)

由公式可以看出, PID 不会出现全 0 或全 1 的情况,因此,如果从机节点收到了“0xFF”或“0x00”,可判断为传输错误。

2.1.4 数据段(Data Field)

节点发送的数据在数据段,包含 1~8 个字节,先发送编号最低的字节 DATA1,编号依次增加

数据段包含了两种数据类型,信号(Signal)和诊断消息(Diagnostic messages)。
信号(Signal)由信号携带帧传递,一个帧 ID 对应的数据段可能包含一个或多个信号。信号更新时要保证其完整性,不能只更新一部分。一个信号通常由一个固定的节点发出,此节点称为该信号的发布节点(Publisher);
其余的一个或多个节点接收,它们称为信号的收听节点(Subscriber)。
诊断消息(Diagnostic message)由诊断帧传递,对消息内容的解析由数据自身和节点状态决定。
在这里插入图片描述

2.1.5 校验和段(Checksum Field)

校验和段是对帧中所传输的内容进行校验
在这里插入图片描述
校验方法:将校验对象的各字节作带进位二进制加法(每当结果大于等于 256 时就减去 255),并将所得最终的和逐位取反,以该结果作为要发送的校验和。接收方根据校验和类型,对接收数据作相同的带进位二进制加法,最终的和不取反,并将该和与接收到的校验和作加法,如果结果为 0xFF,则校验和无误,这在一定程度上保证了数据传输的正确性

校验和分为标准型校验和(Classic Checksum)及增强型校验和(Enhanced Checksum)
标准型校验和:主要校验数据段各字节,适用于诊断帧,与 LIN1.x 从机节点通信

增强型校验和:主要数据段各字节以及受保护 ID,适用与 LIN2.x 从机节点通信(诊断帧除外)

2.2 帧类型

2.2.1 无条件帧(Unconditional Frame)

所谓的无条件帧,就是不管你信号是否发生变化,帧头都被无条件应答的帧
无条件帧是具有单一发布节点

无条件帧在主机任务分配给它的固定的帧时隙中传输,无条件帧的发送如下图所示,图中的ID值只是随便举例的
在这里插入图片描述
帧 ID = 0x30 应答部分的发布节点为从机节点 1,收听节点为主机节点。典型应用如从机节点 1 向主机节点报告自身某信号的状态。

帧 ID = 0x31 应答部分的发布节点为主机节点,收听节点为从机节点 1 和从机节点 2。典型应用如主机节点向从机节点发布信息。

帧 ID = 0x32 应答部分的发布节点为从机节点 2,收听节点为从机节点 1。典型应用如从机节点之间彼此通信。

2.2.2 事件触发帧(Event Triggered Frame)

事件触发帧是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化时使用的帧,当存
在多个发布节点时,通过冲突解决进度表来解决冲突。

当从机节点信号发生变化的频率较低时,主机任务一次次地轮询各个信号会占用一定的带宽。为了减小带宽的占用,引入了事件触发帧的概念

在这里插入图片描述

与事件触发帧关联的多个无条件帧需要满足以下 5 个条件:

  1. 数据段包含的数据字节数等长;
  2. 使用相同的校验和类型;
  3. 数据段的第一个字节为该无条件帧的受保护ID,这样才能够知道应答是哪个关联的无条件帧发送出来的;
  4. 由不同的从机节点发布;
  5. 不能与事件触发帧处于同一个进度表中

2.2.3 偶发帧(Sporadic Frame)

偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关
联的应答信号变化时,通过事先设定的优先级来仲裁。

与事件触发帧一样,偶发帧的应答也关联了一组无条件帧。
偶发帧只能由主机节点作为发布节点。

偶发帧的传输可能出现三种状况:

  1. 当关联的无条件帧没有信号发生变化时,该时隙保持沉默,如偶发帧图中第一个帧时隙所示,主机节点连帧头都不需要发送;
  2. 当其中一个关联的无条件帧包含的信号发生了变化,则发送该关联的无条件帧的应答部分;
  3. 如果有两个或两个关联的无条件帧包含的信号发生了变化,则按照事先规定好的优先级,优先级较高的关联的无条件帧获得发送权,优先级较低的要等到下一个偶发帧的帧头到来时才能发送应答。由于主机节点是唯一的发布节点,所以主机节点事先就知道各个关联信号的优先级别,这样在传输时就不会产生冲突。

引入偶发帧的目的在于为进度表增加一些动态特性——当主机节点的信号发生变化时才有通信发生。事件触发帧和偶发帧反映了帧在不同时机(信号变化或未发生变化)的传输状况,引入它们的目的是为了增加通信的灵活性。

在这里插入图片描述

2.2.4 诊断帧(Diagnostic Frame)

诊断帧包括主机请求帧从机应答帧,主要用于配置、识别和诊断用。

主机请求帧(Master Request Frame,MRF),帧 ID = 0x3C,应答部分的发布节点为主机节点;

从机应答帧(Slave Response Frame, SRF),帧 ID = 0x3D,应答部分的发布节点为从机节点。数据段规定为 8 个字节,一律采用标准型校验和

2.2.5 保留帧(Reserved Frame)

保留帧的帧 ID 为 0x3E 和 0x3F,为以后扩展使用

2.3 进度表

进度表是帧的调度表,规定总线上帧的传输次序以及各帧在总线上的传输时间。

进度表位于主机节点,主机任务根据应用层需要进行调度。

进度表可以有多个,一般情况下,轮到某个进度表执行的时候,从该进度表规定的入口处开始顺序执行,到进度表的最后一个帧时,如果没有新的进度表启动,则返回到当前的进度表第一个帧循环执行;

也有可能在执行某个进度表当中发生中断,执行另一个进度表后再返回,如事件触发帧的冲突解决过程就是一个典型的例子。如下图所示:

在这里插入图片描述
进度表除规定了帧 ID 的传输次序外,还规定了帧时隙(Frame Slot)的大小。帧时隙是进度表规定的一个帧的帧头起始到下一个的帧的帧头起始的时间。每个帧的帧时隙都可以不同,一个帧时隙对应了进度表的一个入口,如下图所示,其中 i = 1~8

在这里插入图片描述
其中T Frame_Maximum为帧在总线上传输的最大时间

抖动(Jitter)为帧的同步间隔段的下降沿与帧时隙起始时刻相差的时间。

时基(Time Base)为LIN子网的最小计时单位,通常设定为 5ms或 10ms。

帧时隙必须为时基的整数倍,并且起始于时基的开始时刻(称为时基的节拍(Tick)),切换到另外一个进度表时一定要等到当前帧时隙的结束。

2.4 状态机(State Machine)

2.4.1 主机任务的状态机

当进度表启动后,主机任务依次发送同步间隔段、同步段和受保护 ID 段
在这里插入图片描述

2.4.2 从机任务的状态机

从机任务负责发布或者接听帧的应答。包括两个状态机:

  1. 同步间隔段和同步段检查器
  2. 帧处理器

在这里插入图片描述

在这里插入图片描述

帧处理的状态机

三、网络管理

网络管理主要指的是网络的休眠和唤醒管理
在这里插入图片描述

3.1 休眠

总线可以在两种情况下进入休眠:

  1. 利用诊断帧中的主机请求帧 0x3C 作休眠命令,要求数据段的第一个字节为 0x00,其余字节为 0xFF。
    休眠命令由主机节点发出,总线上的从机节点只判断数据段的第一个字节,其余字节忽略。从机节点在接收到休眠命令后,不一定要进入低功耗模式,根据应用层需要设置
  2. 当总线静默(没有显性和隐性电平之间的切换)4s~10s 时,节点自动进入休眠状态

在这里插入图片描述

3.2 唤醒

当总线处于休眠状态时,主/从机节点都可以向总线上发送唤醒信号,唤醒信号持续 250μs~5ms。其余节点(除发送唤醒信号以外的节点)以大于 150μs 为阈值判定唤醒信号。

每个从机节点必须在唤醒信号显性脉冲的结束处算起 100ms 以内准备接收来自主机的命令(帧头);主机节点也必须被唤醒, 100ms 之内主机节点发送帧头开始通信。

主机节点的同步间隔段也可以充当唤醒信号,由于从机节点需要作初始化处理,因此主机节点所发的这个帧有可能不会被正常接收。

如果节点发送出唤醒信号后,在 150ms~250ms 之内没有接收到总线上的任何命令(帧头),则可以重新发送一次唤醒信号。

唤醒信号最多可以发送 3 次, 3 次之后,必须等待至少 1.5s 之后才可以再次发送唤醒信号,
如下图所示。
在这里插入图片描述

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

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

相关文章

SpringBoot3.x中spring.factories功能被移除的解决方案

背景笔者所在项目组在搭建一个全新项目的时候选用了SpringBoot3.x,项目中应用了很多SpringBoot2.x时代相关的第三方组件例如baomidou出品的mybatis-plus、dynamic-datasource等。在配置好相关依赖、最小启动类和配置之后,发现项目无法启动。于是根据启动…

万字大章_标题、段落、链接、图像等_HTML入门必备基础

万字大章_HTML入门必备基础HTML篇_第四章、HTML基础一、标题二、段落三、链接3.1文本超链接3.2锚点链接3.3功能性链接四、图像4.1 图像标签&#xff08;<img>&#xff09;和源属性&#xff08;Src&#xff09;4.2 alt属性4.3title属性4.4、设置图像4.4.1设置图像的宽度和…

awk命令的使用

1、获取根分区剩余大小 先用df -h命令查看磁盘&#xff0c;确定我们需要获取字段的位置 再使用awk命令获取此字段 df -hdf -h | awk NR6 {print $4}2、获取当前机器ip地址 ifconfig | awk NR2 {print $2}3、统计出apache的access.log中访问量最多的5个IP 使用awk {print $…

Flink CDC-2.3版本概述

问题导读&#xff1a;1、Flink CDC 2.3 版本有哪些重大改进和核心特性&#xff1f; 2、Flink CDC 2.3 版本中MySQL CDC 连接器有哪些优化&#xff1f; 3、Flink CDC 2.4 版本有哪些规划&#xff1f;01 Flink CDC 简介Flink CDC [1] 是基于数据库的日志 CDC 技术&#xff0c;实现…

HTML5期末大作业:基于HTML+CSS+JavaScript校园文化企业网站模板【学生网页设计作业源码】

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

5个拿来就能用的整人代码脚本

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 整蛊代码脚本一、你的电脑正在被攻击&#xff01;&#xff01;&#xff01;二、CMD炸弹三、无限弹窗四、启动项关机脚本五、舔狗代码一、你的…

毕业后,我的第一辆车

你好&#xff0c;我是阿秀。从学校毕业的时候&#xff0c;我身上差不多有将近12W块钱&#xff0c;有些是自己慢慢存的&#xff0c;有些是在校期间做私活兼职赚的&#xff1a;聊聊我读研期间做过的一些私活和兼职六月毕业后我和我对象去北京玩了几天&#xff0c;去天安门看了毛爷…

微信支付配置

目标&#xff1a;需要生成一个公钥和秘钥配对。放在代码中安全请求。 参考文档&#xff1a;https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay3_1.shtml https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 一、下载工具 点击下载证书工具&#xff1b;下载…

毕业设计 大数据电商用户行为分析 -python 大数据

文章目录0 前言一.背景描述二.项目背景三.数据来源四.提出问题五.理解数据六.数据清洗6.1缺失值处理6.2查看数据6.3一致化处理6.4查看data_user数据集数据类型&#xff1a;6.5数据类型转换6.6异常值处理七.用户行为分析7.1日访问量分析7.2小时访问量分析7.3不同行为类型用户PV分…

【JavaScript】分支结构和循环结构

目录 一、流程控制 二、分支结构 1. if语句 2. if…else语句 3. if…else if语句 4. switch语句 5. 条件表达式构成的选择结构 三、循环结构 1.while循环 2. do-while循环 3. for循环 3.1 for循环转换为while循环 3.2 断点调试 4. 循环嵌套 一、流程控制 流程控…

知识点2--Docker的安装

上一节知识点说了&#xff0c;一般使用Docker都是在Linux上&#xff0c;Windows有VMware就够了&#xff0c;所以本篇知识点同理带大家在CentOS Linux上安装Docker&#xff0c;但是要知道一个事情&#xff0c;CentOS 6系列的系统由于官方yum的关闭而处于不推荐使用的系统&#x…

微服务框架 SpringCloud微服务架构 16 SpringAMQP 16.9 消息转换器

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构16 SpringAMQP16.9 消息转换器16.9.1 一个案例16.9.2 消息转换器16.9.3 总…

【笔记】JS的[Object file]类型转string

文件上传&#xff0c;用到若依不分离版&#xff0c;其中文件上传时需要控制文件类型&#xff0c;于是就有了这篇笔记。废话不多说&#xff0c;上代码&#xff1a; var formData new FormData();if ($(#filePath)[0].files[0] null) {$.modal.alertWarning("请先选择文件…

硬盘数据丢失怎么办?电脑硬盘恢复,3个步骤

硬盘是计算机中的一个重要组成部分&#xff0c;是存储数据、进行数据存取的部件。硬盘一旦出现故障&#xff0c;会对电脑系统安全造成威胁&#xff0c;从而导致电脑运行不稳定。硬盘数据丢失后恢复是个难题&#xff0c;电脑硬盘恢复该怎么操作&#xff1f;别急&#xff0c;先来…

欢快畅游的小鱼特效

Jquery 欢快畅游的小鱼特效 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" con…

年产2万吨山楂酒工厂的设计-包装工段及车间的设计(lunwen+任务书+cad图纸)

目录 1 前 言 1 2 工艺概述 2 2.1 工艺简述 2 2.2 山楂酒酿造工艺流程 2 2.2.1原料挑选 2 2.2.2清洗分选 2 2.2.3破碎去核 2 2.2.4成分调整 3 2.2.5活化酵母 3 2.2.6接种发酵&#xff08;前发酵&#xff09; 3 2.2.7发酵原酒&#xff08;后发酵&#xff09; 3 2.2.8陈酿 3 2.2.…

在vue项目中使用less全局变量

1、安装less和less-loader npm i less less-loader -D 2、此时全局变量并未生效&#xff0c;需要安装开发依赖&#xff1a; npm i style-resources-loader vue-cli-plugin-style-resources-loader -D并在vue.config.js文件中配置&#xff0c;指定全局变量文件&#xff1a; 3…

[附源码]计算机毕业设计万佳商城管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

自行车无级变速器设计

目录 1绪论 1 1.1 机械无级变速器的特征和应用 1 1.2 机械无级变速器的分类 1 1.3 机械无级变速器的发展概况 2 1.4 无级变速自行车研究现状 3 1.5 自行车无级变速器运用实例 5 1.6 研究的目的和意义 7 1.7 毕业论文设计内容和要求 8 2 自行车无级变速器总体方案的选择 8 2.1 钢…

多目标优化算法:基于非支配排序的蜣螂优化算法(Non-Dominated Sorting Dung beetle optimizer,NSDBO)

蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。 一、蜣螂优化算法 1.1蜣螂滚球 &#xff08;1&#xff09;当蜣螂前行无障碍时…