初学stm32 --- CAN
目录
CAN介绍
CAN总线拓扑图
CAN总线特点
CAN应用场景
CAN物理层
CAN收发器芯片介绍
CAN协议层
数据帧介绍
CAN位时序介绍
数据同步过程
硬件同步
再同步
CAN总线仲裁
STM32 CAN控制器介绍
CAN控制器模式
CAN控制器模式
CAN控制器框图
发送处理
接收处理
接收过滤器
CAN控制器位时序
CAN相关寄存器介绍(F1 / F4 / F7)
CAN主控制寄存器(CAN_MCR)
CAN位时序寄存器(CAN_BTR)
CAN 标识符寄存器(CAN_(T/R)IxR)
数据长度和时间戳寄存器(CAN_(T/R)DTxR)
CAN低位数据寄存器(CAN_(T/R)DLxR)
CAN高位数据寄存器(CAN_(T/R)DHxR)
CAN过滤器位宽寄存器(CAN_FS1R)
CAN 过滤器FIFO关联寄存器(CAN_FFA1R)
CAN 过滤器组x寄存器(CAN_FxR(1/2))
CAN相关HAL库驱动介绍
CAN外设相关重要结构体:
结构体成员与寄存器情况
CAN基本驱动步骤
过滤器组设置实例:
CAN介绍
CAN(Controller Area Network),是ISO国际标准化的串行通信协议。
为了满足汽车产业的“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求。
低速CAN(ISO11519)通信速率10~125Kbps,总线长度可达1000米
高速CAN(ISO11898)通信速率125Kbps~1Mbps,总线长度≤40米(经典CAN)
CAN FD 通信速率可达5Mbps,并且兼容经典CAN,遵循ISO 11898-1 做数据收发
更多CAN的历史知识,可以上CAN in Automation(CiA) 官网了解。
CAN总线拓扑图
终端电阻,用于阻抗匹配,以减少回波反射
CAN总线由两根线( CANL 和 CANH )组成,允许挂载多个设备节点(低速CAN:20 高速CAN:30)。
CAN总线特点
1)多主控制 每个设备都可以主动发送数据
2)系统的柔软性 没有类似地址的信息,添加设备不改变原来总线的状态
3)通信速度 速度快,距离远
4)错误检测&错误通知&错误恢复功能
5)故障封闭 判断故障类型,并且进行隔离
6)连接节点多 速度与数量找个平衡
CAN应用场景
CAN总线协议已广泛应用在汽车电子、工业自动化、船舶、医疗设备、工业设备等方面。
CAN物理层
CAN使用差分信号进行数据传输,根据CAN_H和CAN_L上的电位差来判断总线电平。
总线电平分为显性电平(逻辑0)和隐性电平(逻辑1),二者必居其一。
显性电平具有优先权。发送方通过使总线电平发生变化,将消息发送给接收方。
电平 | 高速CAN | 低速CAN |
显性电平(0) | UCAN_H – UCAN_L= 2V | UCAN_H – UCAN_L = 3V |
隐性电平(1) | UCAN_H – UCAN_L = 0V | UCAN_H – UCAN_L = - 1.5V |
CAN收发器芯片介绍
CAN协议层
CAN总线以“帧”形式进行通信。CAN协议定义了5种类型的帧:数据帧、遥控帧、错误帧、过载帧、间隔帧,其中数据帧最为常用。
数据帧介绍
数据帧由7段组成。数据帧又分为标准帧(CAN2.0A)和扩展帧(CAN2.0B),主要体现在仲裁段和控制段。
CAN位时序介绍
CAN总线以“位同步”机制,实现对电平的正确采样。位数据都由四段组成:同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)和相位缓冲段2(PBS2),每段又由多个位时序Tq组成。
注意 : 节点监测到总线上信号的跳变在SS段范围内,表示节点与总线的时序是同步,此时采样点的电平即该位的电平。
采样点是指读取总线电平,并将读到的电平作为位值的点。
根据位时序,就可以计算CAN通信的波特率。
数据同步过程
由于时钟频率误差、传输上的相位延迟引起偏差,所以需要数据同步
CAN为了实现对总线电平信号的正确采样,数据同步分为硬件同步和再同步。
硬件同步
节点通过CAN总线发送数据,一开始发送帧起始信号。总线上其他节点会检测帧起始信号在不在位数据的SS段内,判断内部时序与总线是否同步。
假如不在SS段内,这种情况下,采样点获得的电平状态是不正确的。所以,节点会使用硬件同步方式调整, 把自己的SS段平移到检测到边沿的地方,获得同步,同步情况下,采样点获得的电平状态才是正确的。
再同步
再同步利用普通数据位的边沿信号(帧起始信号是特殊的边沿信号)进行同步。
再同步的方式分为两种情况:超前和滞后,即边沿信号与SS段的相对位置。
再同步时,PSB1和PSB2中增加或者减少的时间被称为“再同步补偿宽度(SJW)”,其范围:1~4 Tq。
限定了SJW值后,再同步时,不能增加限定长度的SJW值。SJW值较大时,吸收误差能力更强,但是通讯速度会下降。
CAN总线仲裁
决定优先级
CAN总线处于空闲状态,最先开始发送消息的单元获得发送权。
多个单元同时开始发送时,从仲裁段(报文ID)的第一位开始进行仲裁。连续输出显性电平最多的单元可继续发送,即首先出现隐性电平的单元失去对总线的占有权变为接收。
竞争失败单元,会自动检测总线空闲,在第一时间再次尝试发送。
STM32 CAN控制器介绍
STM32 CAN控制器(bxCAN),支持CAN 2.0A 和 CAN 2.0B Active版本协议。
CAN 2.0A 只能处理标准数据帧且扩展帧的内容会识别错误,而CAN 2.0B Active 可以处理标准数据帧和扩展数据帧。CAN 2.0B Passive只能处理标准数据帧且扩展帧的内容会忽略。
bxCAN主要特点:
波特率最高可达1M bps
支持时间触发通信(CAN的硬件内部定时器可以在TX/RX的帧起始位的采样点位置生成时间戳)
具有3级发送邮箱
具有3级深度的2个接收FIFO
可变的过滤器组(最多28个)(F1只有14个)
CAN控制器模式
CAN控制器的工作模式有三种:初始化模式、正常模式和睡眠模式。
CAN控制器模式
CAN控制器的测试模式有三种:静默模式、环回模式和环回静默模式。(初始化模式下进行配置)
CAN控制器框图
1)CAN内核
包含各种控制/状态/配置寄存器,可以配置模式、波特率等
2)发送邮箱
用来缓存待发送的报文,最多可以缓存3个报文
3)接收FIFO
缓存接收到的有效报文
4)接收过滤器
筛选有效报文
发送处理
接收处理
接收过滤器
当总线上报文数据量很大时,总线上的设备会频繁获取报文,占用CPU。过滤器的存在,选择性接收有效报文,减轻系统负担。
每个过滤器组都有两个32位寄存器CAN_FxR1和CAN_FxR2。根据过滤器组的工作模式(位宽和选择模式)不同,寄存器的作用不尽相同。
选择模式可设置屏蔽位模式或标识符列表模式,寄存器内容的功能就有所区别。
屏蔽位模式,可以选择出一组符合条件的报文。寄存器内容功能相当于是否符合条件。
标识符列表模式,可以选择出几个特定ID的报文。寄存器内容功能就是标识符本身。
REG中bit值代表的是匹配与否:1必须匹配 0不用关心
屏蔽位寄存器中位值为1,表示与ID要必须匹配;位值为0,表示可不与ID匹配。
在使能过滤器情况下,总线上广播的报文ID与过滤器的配置都不匹配,CAN控制器会丢弃该报文,不会进入到接收FIFO中。
注意:标识符选择位IDE和帧类型RTR需要一致。不同过滤器组的工作模式可以设置为不同。
CAN控制器位时序
STM32的CAN外设位时序分为三段:
同步段 SYNC_SEG、 时间段1 BS1(PTS + PBS1)、 时间段2 BS2
STM32F103,设TS1=8、TS2=7、BRP=3,波特率 = 36000 / [( 9 + 8 + 1 ) * 4] = 500Kbps。
STM32F407,设TS1=6、TS2=5、BRP=5,波特率 = 42000 / [( 7 + 6 + 1 ) * 6] = 500Kbps。
注意:通信双方波特率需要一致才能通信成功。
CAN相关寄存器介绍(F1 / F4 / F7)
CAN主控制寄存器(CAN_MCR)
INRQ位,用于控制初始化请求。
CAN位时序寄存器(CAN_BTR)
STM32F103,设TS1=8、TS2=7、BRP=3,波特率 = 36000 / [( 9 + 8 + 1 ) * 4] = 500Kbps
CAN 标识符寄存器(CAN_(T/R)IxR)
x范围:1~3,3个发送邮箱 x范围:1~2,2个接收FIFO邮箱
报文使用标准标识符,EXID[17:0]值无效
TxRQ位置1,请求邮箱发送
注意:报文使用扩展标识符时,STID[10:0]等效于EXID[28:18],与EXID[17:0]组成29位扩展标识符。
数据长度和时间戳寄存器(CAN_(T/R)DTxR)
x范围:1~3,3个发送邮箱 x范围:1~2,2个接收FIFO邮箱
注意:DLC是多少,数据内容就有多少字节被发送,并不是每次都发送8个字节数据。
CAN低位数据寄存器(CAN_(T/R)DLxR)
CAN高位数据寄存器(CAN_(T/R)DHxR)
使用时间戳功能DLC必须为8字节
CAN过滤器模式寄存器(CAN_FM1R)
CAN过滤器位宽寄存器(CAN_FS1R)
注意:CAN外设只能使用的有的过滤器组,不能使用没有的过滤器组。
CAN 过滤器FIFO关联寄存器(CAN_FFA1R)
该寄存器决定了哪个FIFO寄存器有效(即RIxR、RDTxR、RDLxR、RDHxR的‘x’)。
CAN 过滤器组x寄存器(CAN_FxR(1/2))
CAN相关HAL库驱动介绍
CAN外设相关重要结构体:
CAN_InitTypeDef、CAN_FilterTypeDef和CAN_(T/R)xHeaderTypeDef
CAN_InitTypeDefuint32_t Prescaler /* 预分频 */
uint32_t Mode /* 工作模式 */
uint32_t SyncJumpWidth /* 再次同步跳跃宽度 */
uint32_t TimeSeg1 /* 时间段1(BS1)长度 */
uint32_t TimeSeg2 /* 时间段2(BS2)长度 */
uint32_t TimeTriggeredMode /* 时间触发通信模式 */
uint32_t AutoBusOff /* 总线自动关闭 */
uint32_t AutoWakeUp /* 自动唤醒 */
uint32_t AutoRetransmission /* 自动重传 */
uint32_t ReceiveFifoLocked /* 接收FIFO锁定 */
uint32_t TransmitFifoPriority /* 传输FIFO优先级 */
CAN_FilterTypeDefuint32_t FilterIdHigh /* ID高字节 */
uint32_t FilterIdLow /* ID低字节 */
uint32_t FilterMaskIdHigh /* 掩码高字节 */
uint32_t FilterMaskIdLow /* 掩码低字节 */
uint32_t FilterFIFOAssignment /* 过滤器关联FIFO */
uint32_t FilterBank /* 选择过滤器组 */
uint32_t FilterMode /* 过滤器模式*/
uint32_t FilterScale /* 过滤器位宽 */
uint32_t FilterActivation /* 过滤器使能 */
Uint32_t SlaveStartFilterBank /* 从CAN选择启动过滤器组 单CAN没有意义*/
结构体成员与寄存器情况
CAN基本驱动步骤
1、CAN参数初始化
工作模式、波特率等 HAL_CAN_Init
2、使能CAN时钟和初始化相关引脚
GPIO模式设为复用功能模式 HAL_CAN_MspInit
3、设置过滤器
HAL_CAN_ConfigFilter 完成过滤器的初始化
4、CAN数据接收和发送
HAL_CAN_AddTxMessage 发送消息
HAL_CAN_ GetRxMessage 接收数据
5、使能CAN相关中断/设置NVIC/编写中断服务函数
__HAL_CAN_ENABLE_IT (可选)
过滤器组设置实例:
关于CAN中断
启用 CAN 接收 FIFO0 消息挂起中断
__HAL_CAN_ENABLE_IT(&g_can_handle_struct, CAN_IT_RX_FIFO0_MSG_PENDING);
__HAL_CAN_ENABLE_IT
:这是 STM32 HAL 库提供的一个宏,用于启用 CAN 外设的中断。CAN_IT_RX_FIFO0_MSG_PENDING
:这个参数表示启用 CAN 接收 FIFO0 消息挂起中断。- 当 CAN 接收 FIFO0 中有新的消息并且该消息已经准备好时,控制器会触发一个中断,允许外部应用程序处理接收到的消息。
- FIFO(先进先出队列)用于存储接收到的 CAN 消息,FIFO0 是第一个 FIFO 队列,STM32 的 CAN 控制器通常有多个 FIFO 队列。
是的,您的理解是正确的。进入挂起中断后,您可以读取 can_rxheader_struct.StdId
,因为当 CAN 控制器收到数据并通过过滤器后,会将其存放到 FIFO 队列中。中断会在 FIFO 中有新消息时触发,并通过 HAL 函数 HAL_CAN_GetRxMessage
将数据读取出来。
详细解释:
1. CAN 接收机制概述
- CAN 总线是一个广播式协议,当总线上有设备发送消息时,所有连接的设备都能接收到这条消息。
- 过滤器:CAN 控制器通常配置了过滤器来筛选感兴趣的消息,只有经过过滤器允许的消息才会被接收并存储到接收 FIFO 中。STM32 的 CAN 控制器可以通过配置多个过滤器来选择哪些消息应当接收。
- FIFO 队列:接收到的有效消息会被存储到接收 FIFO(如 FIFO0)。消息排队存储,等待被中断服务程序处理。
2. 中断触发
当接收到一条消息,并且通过了过滤器的检查后,消息就会被存储到 FIFO 中。此时,如果启用了接收中断(例如通过 CAN_IT_RX_FIFO0_MSG_PENDING
),并且 FIFO 中有新消息,CAN 中断会被触发。
3. 读取接收的消息
- 在进入中断处理函数
USB_LP_CAN1_RX0_IRQHandler
后,您可以通过HAL_CAN_GetRxMessage
函数读取接收到的消息,并将消息的相关信息(如标识符)和数据存储到相应的结构体中。 - 读取的消息头信息(如
StdId
、IDE
、RTR
、DLC
等)通常存储在CAN_RxHeaderTypeDef
结构体中
4. 总结
- 数据是被动接收的:当总线上有数据并且经过了过滤器的过滤,符合条件的消息会被存储到 FIFO 中。
- 进入中断后,可以读取
can_rxheader_struct.StdId
:一旦中断被触发,您可以通过HAL_CAN_GetRxMessage
读取消息的标识符和数据,标识符信息存储在can_rxheader_struct.StdId
中。 - 过滤器的作用:过滤器用于筛选总线上接收到的消息,只有符合条件的消息才会存放到 FIFO 中,并触发中断。
相关文章:

初学stm32 --- CAN
目录 CAN介绍 CAN总线拓扑图 CAN总线特点 CAN应用场景 CAN物理层 CAN收发器芯片介绍 CAN协议层 数据帧介绍 CAN位时序介绍 数据同步过程 硬件同步 再同步 CAN总线仲裁 STM32 CAN控制器介绍 CAN控制器模式 CAN控制器模式 CAN控制器框图 发送处理 接收处理 接收过…...

软件测试—接口测试面试题及jmeter面试题
一,接口面试题 1.接口的作用 实现前后端的交互,实现数据的传输 2.什么是接口测试 接口测试就是对系统或组件之间的接口进行测试,主要是校验数据的交换、传递和控制管理过程,以及相互逻辑关系 3.接口测试必要性 1.可以发现很…...

图论的起点——七桥问题
普瑞格尔河从古堡哥尼斯堡市中心流过,河中有小岛两座,筑有7座古桥,哥尼斯堡人杰地灵,市民普遍爱好数学。1736年,该市一名市民向大数学家Euler提出如下的所谓“七桥问题”: 从家里出发,7座桥每桥…...
嵌入式开发通讯协议大全(在写中)
目录 modbus RTU通讯协议: pmbus通讯协议: modbus RTU通讯协议: 主要应用功能: 规范了软件变量,访问功能码,给不同工程师开发的不同产品有统一的通讯标准 帧结构简单,占用带宽少,…...
webpack 4 升级 webpack 5
升级至最新的 webpack 和 webpack-cli npm run build 报错, unknown option -p 解决方案: 改成 --mode production npm run build 报错 unknown option --hide-modules 解决方案:直接移除 npm run build 报错:TypeError: Cannot a…...
oneplus3t-lineageos-16.1编译-android9, oneplus3t-lineage-14编译-android7
oneplus3t-lineage-14编译-android7 1 清华linageos镜像 x lineage-14.1-20180223-nightly-oneplus3-signed.zip ntfs分区挂载为普通用户目录 , ext4分区挂载为普通用户目录 bfsu/lineageOS镜像 ts/lingeageOS镜像 oneplus3/lineage-build-simple-manual.md, manifest-p…...

HTML中最基本的东西
本文内容的标签,将是看懂HTML的最基本之基本 ,是跟您在写文章时候一样内容。一般想掌握极其容易,但是也要懂得如何使用,过目不忘,为手熟尔。才是我们学习的最终目的。其实边看边敲都行,或者是边看边复制粘贴…...

<OS 有关>Ubuntu 24 安装 openssh-server, tailscale+ssh 慢增加
更新日志: Created on 14Jan.2025 by Dave , added openssh-server, tailescape Updated on 15Jan.2025, added "tailescape - tailscape ssh" 前期准备: 1. 更新可用软件包的数据库 2. 升级系统中所有已安装的软件包到最新版本 3. 安装 cur…...
神经网络常见操作(卷积)输入输出
卷积 dimd的tensor可以进行torch.nn.Convnd(in_channels,out_channels),其中nd-1,d-2对于torch.nn.Convnd(in_channels,out_channels),改变的是tensor的倒数n1维的大小 全连接 使用torch.nn.Linear(in_features,out_features,bias)实现YXWT b,其中X 的形状为 (ba…...

25/1/16 嵌入式笔记 STM32F108
输入捕获 TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct; TIM_TimeBaseStruct.TIM_Period 0xFFFF; // 自动重装载值 TIM_TimeBaseStruct.TIM_Prescaler 71; // 预分频值 TIM_TimeBaseStruct.TIM_ClockDivision 0; TIM_TimeBaseStruct.TIM_CounterMode TIM_CounterMode_Up…...

mac 安装 node
brew versions node // 安装 node brew versions node14 // 安装指定版本 卸载node: sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* sudo rm -rf /usr/local/include/node /Users/$USER/.npm su…...
mysql常用运维命令
mysql常用运维命令 查看当前所有连接 -- 查看当前所有连接 SHOW FULL PROCESSLIST;说明: 关注State状态列,是否有锁。如果大量状态是waiting for handler commit检查磁盘是否占满关注Time耗时列,是否有慢查询关注Command列,如果…...
正则表达式学习网站
网上亲测好用的网站: Regexlearn 这个网站可以从0开始教会正则表达式的使用。 mklab 包含常用表达式,车次,超链接,号码等提取。...
gradle,adb命令行编译备忘
追踪依赖(为了解决duplicateClass…错误) gradlew.bat app:dependencies > dep-tree.txt # 分析dep-tree.txt的依赖结构,找到对应的包,可能需要做exclude控制,或者查看库issueverbose编译(我一直需要verbose) gradlew.bat assembleDebug -Dhttps.pr…...
C++:工具VSCode的编译和调试文件内容:
ubuntu24.04, vscode 配置文件 C 的环境 下载的gcc,使用命令为 sudo aptitude update sudo aptitude install build-essential -f- sudo: 以超级用户权限运行命令。 - aptitude: 包管理工具,用于安装、更新和删除软件包。 - install: 安装指…...

SpringMVC Idea 搭建 部署war
1.创建 Idea项目 使用Maven模板 创建 webApp模板项目 2.导入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://ma…...
YOLOv10-1.1部分代码阅读笔记-loaders.py
loaders.py ultralytics\data\loaders.py 目录 loaders.py 1.所需的库和模块 2.class SourceTypes: 3.class LoadStreams: 4.class LoadScreenshots: 5.class LoadImagesAndVideos: 6.class LoadPilAndNumpy: 7.class LoadTensor: 8.def autocast_list(source…...

Windows的Redis查看自己设置的密码并更改设置密码
查看密码 由于我的Redis安装很久了,所以忘记是否有设置密码,查看步骤如下: 启动redis,启动流程可以看这篇文章:https://blog.csdn.net/changyana/article/details/127679871 在redis安装目录下打开redis-cli.exe&…...

【Linux】sed编辑器二
一、处理多行命令 sed编辑器有3种可用于处理多行文本的特殊命令。 N:加入数据流中的下一行,创建一个多行组进行处理;D:删除多行组中的一行;P:打印多行组中的一行。 1、next命令:N 单行next命…...

docker 部署 Kafka 单机和集群
一、准备工作 安装 Docker 确保本机已安装 Docker。可以通过以下命令检查 Docker 是否已安装:docker --version如果未安装,可以访问 Docker 官网下载并安装 Docker Desktop(Windows 和 Mac)或使用包管理器安装(Linux&…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...