基于ARM+FPGA (STM32+ Cyclone 4)的滚动轴承状态监测系统

状态监测系统能够在故障早期及时发现机械设备的异常状态,避免故障的
进一步恶化造成不必要的损失,滚动轴承是机械设备的易损部件,本文对以滚动
轴承为研究对象的状态监测系统展开研究。现有的监测技术多采用定时上传监
测数据,在滚动轴承整个寿命周期内上传的大部分数据为正常运行数据,造成资
源的浪费。本文针对滚动轴承生命周期进行分析,根据滚动轴承退化阶段在整个
寿命周期占比低的特点,提出了一种滚动轴承状态监测系统。该系统对滚动轴承
实时监测,在滚动轴承异常时上传采集数据,并根据状态监测系统的需求设计了
监测装置。
2.2 滚动轴承故障诊断方法
目前有关滚动轴承状态监测与故障诊断方面的研究大部分采用的是振动信
号数据,振动分析法得到了极为广泛的应用。与之相对应的声音监测技术,利用
滚动轴承在运行产生的声音信号来判断滚动轴承运行状态,当设备周围存在环
境噪声和其他机器噪声干扰时,想要提取轴承故障特征比较困难。而使用振动信
号进行分析适用于多种类型工况。
故障诊断可以通过简易诊断判断设备是否故障,简易诊断通常以滚动轴承
的振动信号计算其时域特征数值,根据时域特征数值判断滚动轴承是否正常运
行。时域统计参数可以分为有量纲参数和无量纲参数。有量纲参数包括均方根值、
方根值、平均值、斜度及峭度等。虽然随着故障的加重这些有量纲参数值虽然会
上升,但是这些有量纲参数也容易受到如转速、载荷等因素的影响,会难以区分
设备的运行状态。常作为诊断指标的无量纲参数有峭度指标、脉冲指标、裕度指
标和峰值指标等。量纲为一的参数指标具有对信号的绝对大小和频率变化不敏
感、对故障信息比较敏感的特点 [30] 。不同的指标适用于不同的故障类型,例如峭
度指标对信号中的冲击特征比较敏感,正常峭度指标的值应该在 3 左右 , 如果峭
度指标大于 3, 说明可能存在冲击性振动 ; 歪度指标可以判断设备的磨损情况;裕
度指标可以反映信号与干扰的比值 ; 峰值指标可以用作为设备振动的强度的衡量
[31]
滚动轴承的精密诊断可以判断故障的具体位置,对滚动轴承寿命做出预测,
为机械设备定制合理的维修计划。滚动轴承的精密诊断方法主要有:包络谱分析
[32] 、经验模态分解( empirical mode decomposition EMD) [33] 、变分模态分解
variational mode decomposition, VMD [34] 、小波变换 [35] 等;以及通过深度学习
对滚动轴承进行智能诊断 [36] 和寿命预测 [37] 的相关算法。
2.3 滚动轴承监测指标
2.3.1 监测指标选择
由于时域特征诊断具有计算量小、实时性高的优点,适合低功耗嵌入式设备
的实现,而且无量纲参数对故障特征的表征较为稳定,因此选择无量纲指标中的
峭度指标、脉冲指标和裕度指标作为监测指标。若振动信号的时间序列为
{X 1 ,X 2 ,X 3 ,…,X n } n 为分段信号的采样点数量 , 则其计算公式如下 :
峭度指标( K

 

2.3.2 监测指标实验验证
通过滚动轴承实际测试数据验证选取的时域特征是否有效,以西储大学公
开的轴承数据集为例,对不同状态下滚动轴承的峭度指标、脉冲指标和裕度指标
作对比。如图 2.2 所示为西储大学轴承数据的实验台,实验台由电机、扭矩传感
器、测功机和控制电子设备组成。采集了正常滚动轴承和不同工况下故障轴承的
振动数据。

 

取正常轴承正常基座数据和 12K 采样频率下的驱动端轴承内圈故障数据作
对比,将采集数据以 2048 个采样点划分为一段计算上述时域指标,连续取 50
数据,计算结果如图 2.3 所示。由图可以看出正常轴承峭度指标在 3 左右,故障
轴承的峭度指标在 5 左右;同样可以看出正常轴承的脉冲指标在 4 左右,而故障
轴承的脉冲指标在 6 左右;正常轴承的裕度指标在 5 左右,而故障轴承的裕度指
标在 8 左右。三个时域特征指标在轴承发生故障后数值都明显有上升趋势。

 

3 硬件系统设计
在整个状态监测系统中,对滚动轴承的实时监测由监测装置实现,本章主要
介绍了监测装置的硬件平台的搭建,以及各部分功能的电路实现。
3.1 总体方案设计以及硬件方案选型
3.1.1 系统整体方案设计
监测节点的硬件结构如图 3.1 所示,整个硬件架构由电源模块、模拟信号调
理电路、控制中心以及数据存储模块组成。整个数据采集系统以加速度传感器作
为数据输入,加速度传感器输出的模拟信号经过滤波、模数转换处理转换成数字
信号输出。数字信号经过由 FPGA ARM 组成的处理控制中心,经过处理判断
是否存储或者传输振动信号。

 

3.1.2 主控芯片架构选择
研究中常用来做控制的芯片主要有 ARM DSP FPGA 。三种硬件平台在
各自的领域各有独特的优势,下面分别介绍下各平台的优缺点。
ARM Advanced RISC Machine )芯片是英国 ARM 公司设计的微处理器系
列。 ARM 公司为全球许多芯片制造厂商出售芯片核心授权 [40] ,各大半导体厂商
ARM 微处理器核加上设计的外围电路,生产各自领域的处理器芯片。ARM
处理器具有低功耗的优点,广泛应用于各种嵌入式设备。 ARM 采用精简指令集
计算机 (Reduced Instruction Set Computer, RISC) 结构 [41] ,使用 RISC 体系结构兼
容性强、体积小 [42] ,可以添加更多的外围电路组成片上系统 (System on Chip, SOC)
ARM 公司的芯片最开始 ARM1 ARM11 系列,之后的产品以 Cortex 命名,共
分为 Cortex-A Cortex-R Cortex-M 系列。 Cortex-A 系列具有高性能,用于执
行复杂计算任务的设备的应用处理器; Cortex-R 系列具有高实时性,为时间关键
型系统提供快速、可靠的性能; Cortex-M 系列具有低功耗特性,用于微控制器
和节能应用的低功耗处理器。
数字信号处理器 (Digital signal processor DSP) 芯片是一种对数字信号处理的
操作需求进行了架构优化的专用微处理器芯片,适用于实时高速处理数字信号
的处理 [43] ,具有低功耗高性能的特点 [44] DSP 芯片有专门的硬件乘法器,并配
置有特殊的 DSP 指令。传统指令集需要多条指令来计算的操作而 DSP 可能只需
要一条指令。例如乘积累加运算,在 DSP 芯片中只需要一条指令就可完成一次
乘法和加法操作 [45] ,在通用处理器中则需要两个指令。相比于大多数通用微处理
器, DSP 芯片更适合应用于音频和视频等信号处理等领域。
现场可编程门阵列 (Field-programmable Gate Array FPGA) 芯片是一种可配
置集成电路,不同于通用芯片硬件不可更改, FPGA 芯片可以根据设计需求更改
芯片内部电路结构,具有灵活的逻辑可操控性和并行处理速度快的优点 [46] ,在数
据采集领域有着极其重要的地位 [47] FPGA 芯片一般由大量的可配置逻辑块 [48]
RAM 块资源、可配置 I/O 接口和布线通道组成 [49] 。大多数 FPGA 采用 SRAM
储配置数据,通过外部引导设备,例如 FLASH 或者 EEPROM 设备,每次上电
可重新加载配置数据 [50] 。设计人员使用硬件描述语言 (HDL) 进行数字系统的设计,
通过使用电子设计自动化 (EDA) 工具生成技术映射网表,再经过 FPGA 芯片公司
的专有布局布线软件通过布局布线生成适合实际 FPGA 芯片的电路结构 [51] 。通
过时序分析、仿真和其他验证和确认方法来验证布局布线结果,设计和验证过程
完成后,使用 FPGA 供应商的专有软件生成的二进制文件配置 FPGA ,该文件通
JTAG 接口传输到外部存储设备。 FPGA 芯片的并行特性和硬件可配置特性,
广泛应用于通信、视频处理和前端数据采集等领域。
综合来看, ARM 具有比较强的任务管理能力, DSP 数据处理和计算能力较
强, FPGA 具有较高的灵活性,可以实现任何数字系统的功能,但芯片价格随着
需要的逻辑资源不断上涨。综合考虑到设计需求和成本,选择使用 ARM+FPGA
架构。 ARM 芯片具有控制能力强,低功耗以及价格便宜的优点,用 ARM 芯片
做系统的控制中心,负责外部设备的管理。 FPGA 芯片的实时性和并行性可以作
为数据的前端处理,负责与传感器接口的对接以及数据的预处理。 FPGA 的可配
置特性也可以使设备接口更加灵活,增加系统的适用范围。
3.1.4 模数转换器选择
模数转换器 (analog-to-digital converter, ADC) 是一种将模拟信号转换为数字
信号的系统,通常以集成电路芯片的形式出现。 ADC 根据转换原理可以分为逐
次逼近型、积分型、并行比较型、∑ 型等。决定 ADC 性能的主要参数有分辨
率、采样率、转换精度等。转换器的分辨率表示它可以在模拟输入值的允许范围
内产生的离散值的数量。因此分辨率决定了量化误差的大小,具有 n 位分辨率的
ADC 可以将模拟输入编码为 2 n 范围内的离散值。采样频率是指采样数字信号的
速率,模拟信号在时间上是连续的,将其转换为数字信号时,数字信号的转换速
率称为转换器的采样率或采样频率。如果 ADC 以大于两倍信号带宽的采样率运
行,根据 Nyquist-Shannon 采样定理,可以从离散信号值再现原始信号。
逐次逼近型模数转换器结构简单、模拟电路少、功耗低、尺寸小、输出数据
不存在流水延时等优点 [61] 。因此选择 AD7610 模数转换器, AD7610 是一款逐次
逼近型架构模数转换器,具有 16 位分辨率和 250kHz 采样频率。滚动轴承的振
动频率范围可以分为低频信号、中频信号和高频信号,低频信号指频率低于 1kHz
的振动,中频信号的频率范围为 1~20kHz ,高频信号的频率范围为 20~80kHz
根据采样定理,只要选择采样频率在 160kHz 以上就能够满足设计需求。传感器
的输入电压范围为 ±5V ,灵敏度为 10.2𝑚𝑉/(𝑚 2 /𝑠) ,非线性度为± 1% AD7610
16 位输出,绝对量化误差为 ±0.076mV ,相对量化误差为 7.6 × 10 −4 % ,远小
于传感器的非线性误差,满足设计要求。
3.1.5 传感器方案选择
根据被测量的不同,振动传感器可以分为位移传感器、速度传感器和加速度
传感器。滚动轴承的低频故障信号常以高频振动响应表现出来,因此分析滚动轴
承的故障经常采用加速度传感器。传感器根据原理又可以分为霍尔传感器、光纤
传感器、压电传感器、电涡流传感器等。本文选用的是压电式加速度传感器。传
感器采用的是 PCB 公司的 601A11 压电加速度传感器,如图 3.2 所示。其输出为
加载在 8-12V 的直流偏置电压上的在± 5V 范围内的交流电压信号。

 

3.4 控制芯片电路设计
3.4.1 FPGA 硬件系统设计
FPGA 芯片选用的 Intel 公司 Cyclone IV 系列的 EP4CE10F17C8 芯片, Cyclone
IV 系列芯片具有低成本、低功耗的优势 [64] EP4CE10F17C8 芯片具有 10320
逻辑单元,逻辑单元 (LE) Cyclone IV 器件架构中最小的逻辑块,其内部的 LUT
具有组合逻辑功能。 EP4CE10F17C8 芯片具有 414 个嵌入式存储器,可满足设计
的片上存储器需求。嵌入式内存结构由多列 M9K 内存块组成,每个 M9K 块有
8192 个内存位(每块 9216 位,包括奇偶校验)。可以对其进行配置以提供各种
内存功能,例如 RAM 、移位寄存器、 ROM FIFO 缓冲区。 EP4CE10F17C8
片具有 23 个嵌入式 18x18 乘法器,可以、提高系统数字信号处理的性能。
EP4CE10F17C8 芯片具有 2 个锁相环(
PLL ),可以通过编程实现不同频率时钟
的输出。 EP4CE10F17C8 芯片一共有 179 个用户 I/O 接口, I/O 接口具有可编程
特性,提供多种接口标准,可根据设计需求配置不同标准,减少外部分立元件的
使用,例如上拉电阻和二极管。芯片一共有 8 I/O bank [65] ,多个 I/O 管脚组成
I/O bank ,每个 bank 都有一个单独的电源总线。通过允许在所有 I/O bank 上选
择所有 I/O 标准,使 I/O 接口的配置更加灵活。
3.4.2 FPGA ARM 通信设计
FPGA ARM 芯片之间的通信连接如图 3.20 所示, FPGA ARM 之间采
SPI 接口传输采集数据, SPI 中文名为串行外设接口,是一种同步串行通信接
口规范。
SPI 接口一共由四条数据线组成,分别为 NSS
SCK MISO MOSI [66]
SPI 为全双工通信,即发送和接收数据可以同时进行。使用 SPI 传输数据的设备
分为主设备和从设备,主设备制从设备的选通和数据的传输。其中 NSS 为从机
选择信号线,由主机向从机发送信号,通常低电平有效。 SPI 协议允许一主多从
连接,当从机 NSS 端接收到低电平信号,说明从设备被选中。 SCK 为时钟信号
线,由主设备向从设备发送,为数据传输提供时钟基准。 MISO 为数据发送接收
信号线,对于主设备为信号接收端,对于从设备为信号发送端。 MOSI 同样也为
数据发送接收信号线,不过对于主设备为信号发送端,对于从设备为信号接收端。

 

3.4.3 ARM 硬件系统设计
主控选用的 STM32F103ZET6 芯片是意法半导体(
ST )公司推出的一款低
功耗控制芯片,采用 ARM 公司的 Cortex-M3 处理器核。 ARM 既不生产也不销
售 基 于 自 己 设 计 的 CPU 设 备 , 而 是 将 处 理 器 内 核 授 权 给 相 关 方 。
STM32F103ZET6 是意法半导体公司获得 ARM 授权的 Cortex-M3 内核设计的一
款芯片。 Cortex-M3 内核具有嵌套向量中断控制器 NVIC ,能够处理多达 60 个可
屏蔽中断通道和 16 个优先级。 Cortex-M3 采用 Thumb-1 Thumb-2 指令集,许
多数据操作能用更简短的代码实现,像乘法等相关指令许多指令可以单周期实
现。 STM32F103ZET6 最高运行频率可达 72MHz [67] ,拥有 512k 字节闪存存储器
64k 字节的 SRAM 。拥有丰富的外设,提供 3 12 ADC 4 个通用 16
位定时器和两个 PWM 定时器,以及标准和高级通信接口: 2 I 2 C 接口、 3
SPI 接口、 2 I 2 S 接口、 1 SDIO 接口、 5 USART 接口、 1 USB 接口和
1 CAN 接口 [68] 。芯片供电电源采用 3.3V 低电压,可以减少电量消耗,适合设
计低功耗应用。

 

 

4 软件系统设计
在搭建好的硬件系统之上,还需要对控制芯片的软件进行设计,其中包括
FPGA 数字系统的设计和 ARM 芯片的软件系统设计。
4.1 FPGA 系统设计
FPGA 设计文件的结构关系和主要模块名如图 4.2 所示,模块 1 为顶层文件 ,
用来调用各功能模块和各功能模块之间的连接以及和外部的接口。模块 2 3
4 5 为第二级文件,负责各功能的实现。其中模块 2 PLL 锁相环控制模块,
为系统提供需要的时钟信号;模块 3 FIFO 控制模块,用于控制 FIFO 的读写
以及 SPI 接口的传输时序;模块 4 为时域监测指标的实时计算模块,用于采集信
号的时域特征实时计算;模块 5 为时域特征阈值监测模块,用于设定监测时域阈
值设定。模块 6-9 为模块 3 的下一级子模块,模块 6 FIFO 的写控制;模块 7
负责调用系统 FIFO 模块的 IP 核;模块 8 FIFO 的读控制;模块 9 负责数据传
SPI 接口的数据接收。模块 10-13 为模块 4 的下一级子模块,模块 10 为采集
数据 RAM 缓存模块;模块 11 为峭度指标计算模块;模块 12 为脉冲指标计算模
块;模块 13 为裕度指标计算模块。
数字系统的内部结构如图 4.3 所示,整体电路可为三个模块。其中模块 1
PLL 分频模块,用来产生采样时钟,控制采样频率。其输入为外部时钟 CLK
经过 PLL 锁相环分频,由 FC 控制选择使用的时钟频率。模块 2 为时域特征计
算模块,外部输入数据 DATA 经过 RAM 缓存,经过设计的数字计算电路得到采
样信号的峭度指标、脉冲指标和裕度指标,将计算得到结果分别设定阈值相比较,
如果大于等于阈值,输出信号控制 FIFO 缓存。模块 3 FIFO 数据缓存和 SPI
读写接口,由一个异步 FIFO 来实现数据的缓存,可以以不同的速率进行读和写,
SPI 读写模块负责与外部支持 SPI 协议的设备进行数据传输。

 

4.1.5 实时计算模块设计
使用 FPGA 芯片进行计算具有计算速度快、实时性高的优点,而且 FPGA
片的特性可以使各计算之间并行计算,就算进行多指标计算也不会影响整体的
实时性。
计算之前需要将采样数据缓存,使用 RAM 进行数据缓存。 RAM 为随机存
取存储器,可以随时把数据写入任意指定地址,或随时从任意指定地址读取数据。
使用 Quartus II 软件的 RAM IP 核可以将 FPGA 的内部嵌入式存储器进行配置,
实现 RAM 存储器的功能。将 RAM 位宽配置为 16 位,存储深度为 2048 。如图
4.11 所示,为 RAM 模块的连接图。 wren RAM 模块的写使能信号,写入数据
之前需要将 wren 置为高电平。 clk RAM 的读写时钟信号,控制 RAM 的读写
速度,每一个 clk 周期读取或者写入一个数据。 RAM 读写数据需要提供数据和
读写地址, data[15:0] RAM 的写数据接口, wraddress[10:0] RAM 的写数据
地址。 RAM 的深度为 2048 ,可以存储 2 11 个数据,所以取 11 位地址线即可满足
使用需求。读取数据时, q[15:0] 为读取数据总线, rdaddress[10:0] 为读取地址总
线。在使用过程中需要多次读取数据,读数据总线和地址总线可以同时连接多个
模块,各模块的读数据地址总线不能同时输出地址,在需要读取数据时输出地址,
取完数据要将读地址总线置为高阻态。
通过 RAM 缓存数据为后面的时域特征实时计算模块提供数据,实时计算模
块共分为峭度指标计算、脉冲指标计算和裕度指标计算三部分。在 FPGA 中进行
浮点运算时,会消耗更多的片上资源。采用定点运算可以节省 FPGA 片上的逻辑
资源消耗,因此实时计算模块采用定点计算。
峭度指标计算的计算公式如式 10 所示,峭度指标计算结构如图 4.12 所示。
采样点数据 𝑋 𝑖 为从 RAM 缓存中读取的数据, 2048 个数据依次从 RAM 中取出,
经过加法电路求出 2048 个采样点的总和。然后需要除以 2048 求出 2048 个采样
点的平均值 𝑋
̅ ,在 FPGA 设计中,除法器要占用不少的逻辑资源,对于除数为整
数的可以通过移位和加法来实现除法,若除数为 2 𝑛 ,则可以通过将数据右移舍去
最低位实现除法运算。将数据求和结果整体右移 11 位,舍去低 11 位,相当于除
2048 ,得到采样点的平均值 𝑋
̅ 。经过延时等待平均值计算完成后,再次取出
RAM 中的采样点数据与平均值相减。相减后的差值经过平方计算模块,求和移
位再平方得到峭度指标计算公式的分母值。另一路电路将平方计算模块的结果
引出进行再次平方并求和,得到峭度指标计算公式的分子值。最后分子分母经过
除法模块得到峭度值。
如果采用组合电路实现计算功能的完成,从输入到输出会有较长的延时,系
统很难较高的频率运行。流水线设计可以有效的提高所设计系统运行速度,提高
系统的吞吐量。将整个计算模块分割成多个逻辑功能块,在逻辑功能块之间插入
寄存器缓存,这样计算模块最大延时变成各小功能块中的最大延时时长,可使整
个系统的最高工作频率得到成倍的提高。因此在峭度指标计算模块中将整个计
算流程分成多个部分,在各部分之间添加寄存器缓存,以减少系统时延,提高系
统运行频率。

 

 

脉冲指标的计算公式如式 11 所示,脉冲指标计算结构如图 4.13 所示。采样
点数据 𝑋 𝑖 经过分子和分母两路逻辑计算。分子部分由 MAX 模块求出 2048 个点
中的最大值,该模块由一个比较器组成,比较两个采样点的数值大小,将其中较
大值保留与下一个采样点作比较,最终找出 2048 个采样点中的最大值。分母部
分对 2048 个采样点求平均值,最终将分子分母相除得到脉冲指标。脉冲指标的
计算模块也同样加入了流水线设计。
裕度指标的计算公式如式 11 所示,裕度指标的计算结构如图 4.14 所示。裕
度指标计算公式的分子和裕度指标一样需要求最大值,分母部分需要对采样点
进行开方运算,然后对结果求和,右移 11 位,然后进入平方运算得到分母结果。
最后对分子分母作除法运算得到裕度指标。再对整个计算模块采用流水线设计,
为各部分加入寄存器缓存。

 

 

通过实时计算得到的时域特征需要与设定的监测阈值比较来判断监测设备
的运行状态。如图 4.15 所示,为阈值比较模块的结构图。 TH[11:0] 为阈值大小输
入,一共有 12 位,其中 TH[11:8] 为峭度指标阈值, TH[7:4] 为脉冲指标阈值,
TH[3:0] 为裕度指标阈值。通过实时计算模块计算得出的峭度指标、脉冲指标和
裕度指标输入到阈值比较模块,与阈值 TH[11:8] TH[7:4] TH[3:0] 相比较,若
大于等于阈值,比较器输出高电平。三个比较结果作为输入连接到或门,若有一
个指标超标则或门输出为高电平,控制 FIFO 模块缓存故障数据。

 

 

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

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

相关文章

Spring MVC学习笔记,包含mvc架构使用,过滤器、拦截器、执行流程等等

😀😀😀创作不易,各位看官点赞收藏. 文章目录 Spring MVC 习笔记1、Spring MVC demo2、Spring MVC 中常见注解3、数据处理3.1、请求参数处理3.2、响应数据处理 4、RESTFul 风格5、静态资源处理6、HttpMessageConverter 转换器7、过…

Open3D(C++) 根据索引提取点云

目录 一、功能概述1、主要函数2、源码二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人 一、功能概述 1、主要函数 std::shared_ptr<PointCloud> SelectByIn

spring boot 2 配置上传文件大小限制

一、起因&#xff1a;系统页面上传一个文件超过日志提示的文件最大100M的限制&#xff0c;需要更改配置文件 二、经过&#xff1a; 1、在本地代码中找到配置文件&#xff0c;修改相应数值后交给运维更新生产环境配置&#xff0c;但是运维说生产环境没有这行配置&#xff0c;遂…

MODBUS-TCP转Ethernet IP 网关连接空压机 配置案例

本案例是工业现场应用捷米特JM-EIP-TCP的Ethernet/IP转Modbus-TCP网关连接欧姆龙PLC与空压机的配置案例。使用设备&#xff1a;欧姆龙PLC&#xff0c;捷米特JM-EIP-TCP网关&#xff0c; ETHERNET/IP 的电气连接 ETHERNET/IP 采用标准的 T568B 接法&#xff0c;支持直连和交叉接…

【etcd】docker 启动单点 etcd

etcd: v3.5.9 etcd-browser: rustyx/etcdv3-browser:latest 本文档主要描述用 docker 部署单点的 etcd&#xff0c; 用 etcd-browser 来查看注册到 etcd 的 key 默认配置启动 docker run -d --name ai-etcd --networkhost --restart always \-v $PWD/etcd.conf.yml:/opt/bitn…

生命在于学习——指纹混淆技术学习

一、前言 本篇文章仅为学习笔记记录&#xff0c;不得用于违规用途。 本篇文章为安全社公众号的Poker安全所发&#xff0c;本文仅为学习复现。 二、介绍 指纹混淆技术&#xff0c;顾名思义&#xff0c;就是迷惑指纹扫描识别技术。 三、思路 作者的思路&#xff1a; 1、伪…

常见网关对比

常见网关对比 目前常见的开源网关大致上按照语言分类有如下几类&#xff1a; Nginxlua &#xff1a;OpenResty、Kong、Orange、Abtesting gateway 等 Java &#xff1a;Zuul/Zuul2、Spring Cloud Gateway、Kaazing KWG、gravitee、Dromara soul 等 Go &#xff1a;Janus、fa…

如何⾃定义⼀个SpringBoot Srarter

⾃定义⼀个SpringBoot Srarter 1、创建⼀个项⽬&#xff0c;命名为 demo-springboot-starter&#xff0c;引⼊SpringBoot相关依赖 2、编写配置⽂件 定义属性配置的前缀 3、⾃动装配 创建⾃动配置类HelloPropertiesConfigure 4、配置⾃动类 在 /resources/META-INF/spri…

Qt : day3

1.完成简易闹钟 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTextToSpeech> //播报类 #include <QTimer> //定时器类 #include <QTime> //时间类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcla…

windows C++多线程同步<3>-互斥量

windows C多线程同步&#xff1c;3&#xff1e;-互斥量 概念&#xff0c;如下图&#xff1a; 另外就是互斥对象谁拥有&#xff0c;谁释放 那么一个线程允许多次获取互斥对象吗&#xff1f; 答案是允许&#xff0c;但是申请多次就要释放多次&#xff0c;否则其他线程获取不到互…

【Git】Git GitHub

1. Git1.1 Git基本操作1.2 Git版本回退1.3 Git分支操作 2. Git 配合GitHub2.1 生成密钥2.2 GitHub添加公钥2.3 Git连接GitHub2.4 本地仓库关联远程仓库2.5 本地代码push远程仓库2.6 本地clone远程仓库2.7 本地fetch和pull 1. Git 1.1 Git基本操作 touch test.py 工作区创建文…

android首页申请android.permission.READ_PHONE_STATE权限合规处理办法?

1、像闲鱼一样&#xff0c;申请的时候在顶部弹个解释说明对话框&#xff1f;

求解方程x^2=a的根,不使用库函数直接求解(不动点迭代法)

首先可以将方程两边同时加上x&#xff0c;&#xff0c;这时候两边同时再除以1x&#xff0c;就得到了&#xff0c;变形为。&#xff08;变性后的迭代式不唯一&#xff0c;这里随便选取一个&#xff09; 当x是准确值的时候&#xff0c;两边应该是相等的&#xff0c;如果x是近似值…

STM32 中断优先级管理(一)

STM32 NVIC 中断优先级管理 CM3内核支持256个中断&#xff0c;其中包含了16个内核中断和240个外部中断&#xff0c;并且有256级的可编程中断设置。 但STM32并没有使用CM3内核的全部东西&#xff0c;只用了一部分。 STM32有84个中断&#xff0c;包括16个内核中断和68个可屏蔽…

电机故障诊断(python程序,模型为CNN结合LSTM)

代码运行环境要求&#xff1a;TensorFlow版本>2.4.0&#xff0c;python版本>3.6.0 运行效果视频&#xff1a;电机故障诊断&#xff08;python代码&#xff09;_哔哩哔哩_bilibili 1.电机常见的故障类型有以下几种&#xff1a; 轴承故障&#xff1a;轴承是电机运转时最容…

微信小程序 居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局

微信小程序居中、居右、横纵布局 1、水平垂直居中&#xff08;相对父类控件&#xff09;方式一&#xff1a;水平垂直居中 父类控件&#xff1a; display: flex;align-items: center;//子控件垂直居中justify-content: center;//子控件水平居中width: 100%;height: 400px //注意…

CAN转EtherNet/IP网关can协议破解服务

JM-EIP-CAN 是自主研发的一款 ETHERNET/IP 从站功能的通讯网关。该产品主要功能是将各种 CAN 总线和 ETHERNET/IP 网络连接起来。 本网关连接到 ETHERNET/IP 总线中做为从站使用&#xff0c;连接到 CAN 总线中根据节点号进行读写。 技术参数 ETHERNET/IP 技术参数 网关做为 …

二十五章:用于弱监督语义分割的激活调节和重新校准方案

0.摘要 图像级弱监督语义分割&#xff08;WSSS&#xff09;是一项基础而具有挑战性的计算机视觉任务&#xff0c;有助于场景理解和自动驾驶。大多数现有方法利用基于分类的类激活图&#xff08;CAMs&#xff09;作为初始伪标签&#xff0c;但这些方法往往关注区分性的图像区域&…

编译运行miniob最小数据库系统

minibo是一个用于教学的小型数据库系统&#xff0c;麻雀虽小五脏俱全&#xff0c;该项目包含了数据库的核心内容&#xff0c;并且代码量小&#xff0c;适合新手学习&#xff0c;最近由于需要学习c/cpp&#xff0c;因此打算从这个项目入手&#xff0c;本文就介绍编译运行miniob的…

Android adb shell 查看App内存(java堆内存/vss虚拟内存/详细的内存状况/内存快照hprof)和系统可用内存

1.adb shell 获取app 进程的pid adb shell "ps|grep com.xxx包名"根据某个渠道包&#xff0c;去查询对应的pid&#xff0c;如下所示&#xff1a; 2.通过adb shell 查看设备的java dalvik 堆内存的最大值 执行命令行&#xff1a; adb shell getprop dalvik.vm.h…