干货|CAN总线入门教程

电子工程世界 2022-07-04 07:30

最近在调试一个CAN总线的设备遇到一些问题,简单总结一下。本文会对CAN总线进行简单介绍,CAN的硬件链路层,协议层,以及调试的一些心得。

目录

  • 什么是CAN总线?

  • 物理层

    • 差分信号

    • 连接方式

    • CAN节点

  • CAN协议

  • 如何寻址?

  • 帧类型

    • 数据帧

    • 远程帧

    • 错误帧

    • 过载帧

  • 消息时序以及同步

    • 位时序

    • 波特率

    • 消息过滤器

  • 如何配置?

  • 总结

  • 参考

什么是CAN总线?

Controller Area Network,简称CAN或者CAN bus) 是一种功能丰富的串行总线标准,最早的CAN控制芯片在奔驰车上应用并量产,因为支持多主机,多从机的优点,所以一辆车所有控制器,传感器,电子设备直接的通信只需要两条线就够了,大大优化了整车的布线。

随着技术的不断发展,CAN发布了相应的标准,国际化标准组织,公布了CAN的不同标准;

标准涵盖内容
ISO 11898-1数据链路层
ISO 11898-2高速CAN的物理层
ISO 11898-3低速容错CAN的物理层

ISO 11898-1  ,ISO 11898-2是对应的设计标准,去搜索就可以知道这个技术点是如何进行设计的。

物理层

差分信号

这里我们介绍一下物理层,什么是物理层呢?就是CAN的电信号的传输过程。CAN是串行异步通讯,只有CAN_HIGHCAN_LOW两条差分信号线,数据通过差分信号的方式进行通讯,其优点就是可以增加信号的抗干扰能力,抑制共模信号的干扰;

具体如下图所示;

所以,信号在变成一个字节一个字节的数字信号之前,就是按照这种差分形式的模拟信号来传输的。

我们可以简单地理解一下,当CAN_HIGH减去CAN_LOW大于某个阈值的时候,可以把它当做逻辑高,反之,当小于某一个阈值时,就变成逻辑低。

下面我们再来看看CAN总线设备之间是如何连接的。

连接方式

CAN总线支持多个节点挂载在总线上,比较类似I2C总线,可以在SCLSDA上挂载多个从机,具体如下图所示;

不过CAN总线其实没有主从的概念,每个设备都是一个节点(Node),节点直接可以相互通讯,相较于I2C总线,CAN总线设置了终端电阻,常见的一种闭环连接模式,相对的还有开环的连接模式。

不同的连接模式,他们的通讯速率也大不相同,这里也就是高速CAN和低速CAN的区别。

两条电线组成一条双绞线,并且接有120Ω的特性阻抗。ISO 11898-2,也称为高速度CAN。它在总线的两端均接有120Ω电阻。

使用了120Ω终端电阻(这是CAN的ISO标准里规定的),这种模式的最高通讯速率可以达到1Mbps,下面是传输距离和传输速度的关系;

CAN总线长度与信号速率关系

高速CAN的拓扑结构具体如下所示;

还有一种是低速CAN,或者也叫做容错CAN,低速容错 CAN 总线将通讯的最大带宽从 1 Mbps 降低到 125 Kbps,并且不再在总线的起点和终点使用两个终端电阻,而是将电阻分布在每个节点上。具体如下图所示;

由于高速CAN和低速CAN的拓扑结构不同,另外终端电阻的分布也不同,所以CAN_HIGHCAN_LOW上的电平是不相同的,这里有隐性电平和显性电平。

硬件上的连接基本上都搞清楚了,下面就是如何去实现一个具体的CAN节点。我们来简单地介绍一下。

CAN节点

CAN节点通常分为三个部分;

  • MCU/CPU
  • CAN控制器
  • CAN收发器

通常一些单片机内部就集成了相应的CAN控制器外设,比如我们比较常用的单片机——STM32,所以我们常见的结构一般是这样子的。

所以整体的流程是这样的,如下:

  • CAN总线上通过差分信号进行数据传输
  • CAN收发器将差分信号转换为TTL电平信号,或者将TTL电平信号转换为差分信号;
  • CAN控制器将TTL电平信号接收,并传输给MCU;

那么,对于单片机开发者而言,需要关注的就是最终CAN控制器传输给MCU的数据,如何去配置CAN控制器,以及使用CAN控制进行数据的读取和发送。

既然这样,我们就不得不去了解一下CAN总线的通信原理,如何寻址,上层协议如何规定的。

CAN协议

CAN协议和网络协议比较类似,进行了分层的设计思想;

按照我的理解;

  • 物理层就是前面提到过的硬件拓扑结构,包括高速CAN和低速CAN,而CAN收发器就属于物理层;
  • 传输层则是CAN控制器所需要做的事情,包括CAN时序,同步,消息仲裁,确认,错误检验等,这个比较复杂,如果只是应用开发,我认为,简单了解一下即可;这一层需要做的工作包括:
    • 故障约束;
    • 错误监测;
    • 消息验证;
    • 信息确认;
    • 仲裁;
    • 信息帧;
    • 传输速率和时间;
    • 路由信息;
  • 对象层,MCU应该是属于这一层,我们需要对CAN消息做信息的过滤设置,CAN消息的处理等等;
  • 应用层就是基于对象层的进一步封装,不同的CAN标准,比如工业自动化领域的CANopen,汽车诊断ISO 14229 定义的UDS等等;

如何寻址?

CAN总线上的每个节点不需要设置节点的地址,而是通过消息的标识符(Identifier)来区别信息。因为CAN总线的消息是广播的(就是大家都可以收到消息),比如总线上有节点A,节点B,节点C,那么节点A发消息,节点B和节点C都会收到消息;

节点B 和 节点C 会根据消息中的标识符,以及B和C中的消息过滤规则进行比较,如果不满足规则,就不接受这条信息。

这里需要注意的是:

  • 发送消息的时候,总线必须处于空闲状态;
  • 标识符越小,则消息获取总线的优先级越高;

在这里我们已经了解如何寻址,下面就看一下消息帧了。

帧类型

CAN有4种帧类型:

  • 数据帧:包含用于传输的节点数据的帧
  • 远程帧:请求传输特定标识符的帧
  • 错误帧:由任何检测到错误的节点发送的帧
  • 过载帧:在数据帧或远程帧之间插入延迟的帧

这里我们有必要重点了解一下数据帧,下面继续介绍各种帧之间的区别。

数据帧

数据帧分为标准帧和扩展帧两种格式;

  • 基本帧格式:有11个标识符位
  • 扩展帧格式:有29个标识符位

数据帧的结构具体如下所示;

数据帧格式

简单介绍一下数据帧的细节;

  • sofstart of frame,表示数据帧开始;(1 bit)

  • Identifier:标准格式11 bit,扩展格式29 bit包括Base Identifier(11 bit)和Extended Identifier(18 bit),该区段标识数据帧的优先级,数值越小,优先级越高;

  • RTR:远程传输请求位,0时表示为数据帧,1表示为远程帧,也就是说RTR=1时,消息帧的Data Field为空;(1 bit)

  • IDE:标识符扩展位,0时表示为标准格式,1表示为扩展格式;(1 bit)

  • DLC:数据长度代码,0~8表示数据长度为0~8 Byte;(4 bit)

  • Data Field:数据域;(0~8 Byte)

  • CRC Sequence:校验域,校验算法,


  • DEL:校验域和应答域的隐性界定符;(1 bit)

  • ACK:应答,确认数据是否正常接收,所谓正常接收是指不含填充错误、格式错误、 CRC 错误。发送节点将此位为1,接收节点正常接收数据后将此位置为0;(1 bit)

  • SRR:替代远程请求位,在扩展格式中占位用,必须为1;(1 bit)

  • EOF:连续7个隐性位(1)表示帧结束;(7 bit)

  • ITM:帧间空间,Intermission (ITM),又称Interframe Space (IFS),连续3个隐性位,但它不属于数据帧。帧间空间是用于将数据帧和远程帧与前面的帧分离开来的帧。数据帧和远程帧可通过插入帧间空间将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。过载帧和错误帧前不能插入帧间空间。

远程帧

一般地,数据是由发送单元主动向总线上发送的,但也存在接收单元主动向发送单元请求数据的情况。远程帧的作用就在于此,它是接收单元向发送单元请求发送数据的帧。远程帧与数据帧的帧结构类似,如上图X所示。远程帧与数据帧的帧结构区别有两点:

  • 数据帧的 RTR 值为“0”,远程帧的 RTR 值为“1
  • 远程帧没有数据块

远程帧的 DLC 块表示请求发送单元发送的数据长度(Byte)。当总线上具有相同标识符的数据帧和远程帧同时发送时,由于数据帧的 RTR 位是显性的,数据帧将在仲裁中赢得总线控制权。

错误帧

用于在接收和发送消息时检测出错误时,通知错误的帧。错误帧由错误标志和错误界定符构成。错误帧的帧结构如图11示。

  • 错误标志:

    个显性/隐性重叠位

    • 主动错误标志(6个显性位):处于主动错误状态的单元检测出错误时输出的错误标志
    • 被动错误标志(6个隐性位):处于被动错误状态的单元检测出错误时输出的错误标志
  • 错误界定符:8 个隐性位


过载帧

过载帧是用于接收单元通知发送单元它尚未完成接收准备的帧。在两种情况下,节点会发送过载帧:

  • 接收单元条件的制约,要求发送节点延缓下一个数据帧或远程帧的传输;
  • 帧间空间(Intermission)的 3 bit 内检测到显性位

每个节点最多连续发送两条过载帧。过载帧由过载标志和过载界定符(8 个隐性位)构成。数据帧的帧结构如图12所示。

can_overload_frame

这里基本把帧介绍完了,但是每个节点之间的通讯,我们如何知道这一帧开始接收了,这一帧已经接收结束了呢?下面就需要了解一下消息的时序和消息同步的方法。

消息时序以及同步

位时序

在讲CAN消息时序和同步之前,我们可以对照一下UART串口的传输协议,他有起始位和停止位,然后大家都规定使用相同的通讯速率(波特率);

其实CAN通讯也是类似的方式,它属于异步通讯,没有时钟信号线,所以所有节点之间要约定好使用相同的波特率来传输数据。

在总线空闲一段时间后,在(起始位) 进行硬同步,同步方式是将每一位划分成多个称为量子的时间段(time quanta),并分配一定数量的量子到位中的四个阶段完成的。

这四个阶段分别为:

  • SYNC_SEG:同步段,1 个时间量子长度。它用于同步各种总线节点;
  • PROP_SEG:传播段,1~8 时间量子长度。它用于补偿网络上的信号延迟。
  • PHASE_SEG_1:相位缓冲段1,1~8 时间量子长度。它用于补偿边缘相位误差,在重新同步期间可能会延长。
  • PHASE_SEG_2:相位缓冲段2,2~8 时间量子长度。它用于补偿边缘相位误差

具体如下图所示;

位时序

波特率

如何计算波特率,需要知道每个量子时间的长度(time quanta),以及每一位需要多少个量子时间,

假设这里time quanta = 1us ,并且1 bit = 8 tq,那么上图中的波特率就应该是:


消息过滤器

前面有提到消息在CAN总线上是广播式的,但并不是所有节点都会对总线上所有消息感兴趣。节点通过控制器中过滤码(Filter Code )和掩码(Mask Code),再检验总线上消息的标识符,来判断是否接收该消息(Message Filtering)。

对于掩码,“1”表示该位与本节点相关,“0”表示该位与本节点不相关。举例如下:

例1:仅接收消息标识符为00001567(十六进制)的帧

  • 设置过滤码为00001567
  • 设置掩码为1FFFFFFF

节点检测消息的标识符的所有位(29位),如果标识符为00001567接收,否则舍弃。

例2:接收消息标识符为00001567 到0000156F 的帧

  • 设置过滤码为00001560
  • 设置掩码为1FFFFFF0

节点检测消息的标识符的高25位,最低的4位则不care。如果标识符最高25位相同则接收,否则舍弃。

例3:接收消息标识符为00001560 到 00001567 的帧

  • 设置过滤码为00001560
  • 设置掩码为1FFFFFF8

节点检测消息的标识符的高26位,最低的3位则不care。如果标识符最高26位相同则接收,否则舍弃。

例4:接收所有消息帧帧

  • 设置过滤码为0
  • 设置掩码为0

节点接收总线上所有消息。

如何配置?

上面介绍了帧类型,那么如何基于MCU进行配置呢?这里以STM32F407为硬件平台,使用HAL库进行初始化,看一下都对哪些地方进行了配置。一般来说,我们需要配置CAN的波特率,消息过滤器等等,下面是简单的配置的代码;

CAN_HandleTypeDef hCAN;
void MX_CAN_Init(void)
{
    CAN_FilterTypeDef   sFilterConfig;
    /*CAN单元初始化*/
    hCAN.Instance = CAN1;      /* CAN外设 */
 
    /* BTR-BRP 波特率分频器  定义了时间单元的时间长度42/(1+6+7)/6=500Kbps */
    hCAN.Init.Prescaler = 6;
    hCAN.Init.Mode = CAN_MODE_NORMAL;   /* 正常工作模式 */
    hCAN.Init.SyncJumpWidth = CAN_SJW_1TQ;  /* BTR-SJW 重新同步跳跃宽度 1个时间单元 */
    hCAN.Init.TimeSeg1 = CAN_BS1_6TQ;   /* BTR-TS1 时间段1 占用了6个时间单元 */
    hCAN.Init.TimeSeg2 = CAN_BS2_7TQ;   /* BTR-TS1 时间段2 占用了7个时间单元 */
    hCAN.Init.TimeTriggeredMode = DISABLE;  /* MCR-TTCM  关闭时间触发通信模式使能 */ 
    hCAN.Init.AutoBusOff = ENABLE;    /* MCR-ABOM  自动离线管理 */
    hCAN.Init.AutoWakeUp = ENABLE;    /* MCR-AWUM  使用自动唤醒模式 */
    hCAN.Init.AutoRetransmission = DISABLE;  /* MCR-NART  禁止报文自动重传   DISABLE-自动重传 */
    /* MCR-RFLM  接收FIFO 锁定模式  DISABLE-溢出时新报文会覆盖原有报文 */
    hCAN.Init.ReceiveFifoLocked = DISABLE;  
    /* MCR-TXFP  发送FIFO优先级 DISABLE-优先级取决于报文标示符 */
    hCAN.Init.TransmitFifoPriority = DISABLE; 
    if (HAL_CAN_Init(&hCAN) != HAL_OK)
    {
        //Error_Handler();
    }
 // 初始化发送器
 hCAN1_TxMessage.IDE = CAN_ID_STD;
 hCAN1_TxMessage.RTR = CAN_RTR_DATA;
 hCAN1_TxMessage.TransmitGlobalTime = ENABLE;
 
 // 初始化滤波器 设置为0 则不对消息进行过滤
    hCAN1_Filter.FilterIdHigh               = 0;  /* 要过滤的ID高位 */
    hCAN1_Filter.FilterIdLow                = 0;  /* 要过滤的ID低位 */
    hCAN1_Filter.FilterMaskIdHigh          = 0;  /* 过滤器高16位每位必须匹配 */
    hCAN1_Filter.FilterMaskIdLow            = 0;  /* 过滤器低16位每位必须匹配 */
    hCAN1_Filter.FilterFIFOAssignment   = CAN_FILTER_FIFO0;/* 过滤器被关联到FIFO 0 */
    hCAN1_Filter.FilterBank                 = 0;
    hCAN1_Filter.FilterMode                 = CAN_FILTERMODE_IDMASK; /* 工作在标识符屏蔽位模式 */
    hCAN1_Filter.FilterScale                = CAN_FILTERSCALE_32BIT;  /* 过滤器位宽为单个32位。*/
    hCAN1_Filter.FilterActivation        = ENABLE;
    hCAN1_Filter.SlaveStartFilterBank   = 0
 
 HAL_CAN_ConfigFilter(&hCAN, &hCAN1_Filter);
 
 while(HAL_CAN_Start(&hCAN) != HAL_OK )
 {
  printf("\nCAN_Start Failed!!");
  HAL_Delay(100);
 }
 HAL_CAN_ActivateNotification(&hCAN, CAN_IT_RX_FIFO0_MSG_PENDING);
}

下面是CAN发送的函数,我们需要自己构建相应的消息帧格式,通常需要设置消息帧的ID格式,消息长度,具体如下;

void CAN_TxMessage(CAN_HandleTypeDef *hcan,uint16_t ID ,uint8_t aData[], uint8_t DLC)
{
    uint32_t Tx_MailBox;
    /*-1- 配置数据段长度 ----------------------------------------*/ 
 hCAN1_TxMessage.IDE  =   CAN_ID_STD;
 hCAN1_TxMessage.RTR  =   CAN_RTR_DATA;
 hCAN1_TxMessage.StdId =   ID;
    hCAN1_TxMessage.DLC     =    DLC;  
 hCAN1_TxMessage.TransmitGlobalTime = ENABLE;
    /*-2- 发送aData ---------------------------------------------*/
    while(HAL_CAN_AddTxMessage(hcan, &hCAN1_TxMessage, aData, &Tx_MailBox) != HAL_OK)
    {
        HAL_Delay(5);
    }
}

上述代码设置发送消息:

  • CAN_ID_STD设置为标准ID;
  • CAN_RTR_DATA设置消息为数据帧;
  • StdId为当前消息的ID;
  • DLC为当前消息的长度;

整体可以参考前面介绍的消息帧格式,篇幅有限,这里就先简单的介绍一下。

总结

本文对CAN总结进行了简单的介绍,CAN通讯的特点可以总结如下;

  • 符合OSI开放式通信系统参考模型;
  • 两线式总线结构,电气信号为差分式;
  • 多主控制。在总线空闲时,所有的单元都可开始发送消息,最先访问总线的单元可获得发送权;多个单元同时开始发送时,发送高优先级 ID 消息的单元可获得发送权;
  • 消息报文不包含源地址或者目标地址,仅通过标识符表明消息功能和优先级;
  • 基于固定消息格式的广播式总线系统,短帧结构;
  • 事件触发型。只有当有消息要发送时,节点才向总线上广播消息;
  • 可以通过发送远程帧请求其它节点发送数据;
  • 消息数据长度 0~8 Byte;
  • 错误检测功能。所有节点均可检测错误,检测处错误的单元会立即通知其它所有单元;
  • 发送消息出错后,节点会自动重发;
  • 故障限制。节点控制器可以判断错误是暂时的数据错误还是持续性错误,当总线上发生持续数据错误时,控制器可将节点从总线上隔离;
  • 通信介质可采用双绞线、同轴电缆和光导纤维,一般使用最便宜的双绞线;
  • 理论上,CAN总线用单根信号线就可以通信,但还是配备了第二根导线,第二根导线与第一根导线信号为差分关系,可以有效抑制电磁干扰;
  • 在40米线缆条件下,最高数据传输速率 1Mbps;
  • 总线上可同时连接多个节点,可连接节点总数理论上是没有限制的,但实际可连接节点数受总线上时间延迟及电气负载的限制。

推荐阅读

干货 | 如何利用PN阶来测量温度?
干货 | 电源口防雷电路设计要注意什么?
干货 | 超详细电机控制知识汇总(PPT)
干货|资深工程师告诉你:开关电源“Y电容”都是这样计算的



添加微信回复“进群”

拉你进技术交流群!

国产芯|汽车电子|物联网|新能源|电源|工业|嵌入式…..  

众号内回复您想搜索的任意内容,如问题关键字、技术名词、bug代码等,就能轻松获得与之相关的专业技术内容反馈。快去试试吧!


如果您想经常看到我们的文章,可以进入我们的主页,点击屏幕右上角「三个小点」,点击「设为星标」。

欢迎扫码关注


电子工程世界 关注EEWORLD电子工程世界,即时参与讨论电子工程世界最火话题,抢先知晓电子工程业界资讯。
评论
  • 更多生命体征指标风靡的背后都只有一个原因:更多人将健康排在人生第一顺位!“AGEs,也就是晚期糖基化终末产物,英文名Advanced Glycation End-products,是存在于我们体内的一种代谢产物” 艾迈斯欧司朗亚太区健康监测高级市场经理王亚琴说道,“相信业内的朋友都会有关注,最近该指标的热度很高,它可以用来评估人的生活方式是否健康。”据悉,AGEs是可穿戴健康监测领域的一个“萌新”指标,近来备受关注。如果站在学术角度来理解它,那么AGEs是在非酶促条件下,蛋白质、氨基酸
    艾迈斯欧司朗 2025-02-27 14:50 420浏览
  •           近日受某专业机构邀请,参加了官方举办的《广东省科技创新条例》宣讲会。在与会之前,作为一名技术工作者一直认为技术的法例都是保密和侵权方面的,而潜意识中感觉法律有束缚创新工作的进行可能。通过一个上午学习新法,对广东省的科技创新有了新的认识。广东是改革的前沿阵地,是科技创新的沃土,企业是创新的主要个体。《广东省科技创新条例》是广东省为促进科技创新、推动高质量发展而制定的地方性法规,主要内容包括: 总则:明确立法目
    广州铁金刚 2025-02-28 10:14 110浏览
  • Matter 协议,原名 CHIP(Connected Home over IP),是由苹果、谷歌、亚马逊和三星等科技巨头联合ZigBee联盟(现连接标准联盟CSA)共同推出的一套基于IP协议的智能家居连接标准,旨在打破智能家居设备之间的 “语言障碍”,实现真正的互联互通。然而,目标与现实之间总有落差,前期阶段的Matter 协议由于设备支持类型有限、设备生态协同滞后以及设备通信协议割裂等原因,并未能彻底消除智能家居中的“设备孤岛”现象,但随着2025年的到来,这些现象都将得到完美的解决。近期,
    华普微HOPERF 2025-02-27 10:32 230浏览
  • 请移步 gitee 仓库 https://gitee.com/Newcapec_cn/LiteOS-M_V5.0.2-Release_STM32F103_CubeMX/blob/main/Docs/%E5%9F%BA%E4%BA%8ESTM32F103RCT6%E7%A7%BB%E6%A4%8DLiteOS-M-V5.0.2-Release.md基于STM32F103RCT6移植LiteOS-M-V5.0.2-Release下载源码kernel_liteos_m: OpenHarmon
    逮到一只程序猿 2025-02-27 08:56 202浏览
  •         近日,广电计量在聚焦离子束(FIB)领域编写的专业著作《聚焦离子束:失效分析》正式出版,填补了国内聚焦离子束领域实践性专业书籍的空白,为该领域的技术发展与知识传播提供了重要助力。         随着芯片技术不断发展,芯片的集成度越来越高,结构也日益复杂。这使得传统的失效分析方法面临巨大挑战。FIB技术的出现,为芯片失效分析带来了新的解决方案。它能够在纳米尺度上对芯片进行精确加工和分析。当芯
    广电计量 2025-02-28 09:15 133浏览
  • 一、VSM的基本原理震动样品磁强计(Vibrating Sample Magnetometer,简称VSM)是一种灵敏且高效的磁性测量仪器。其基本工作原理是利用震动样品在探测线圈中引起的变化磁场来产生感应电压,这个感应电压与样品的磁矩成正比。因此,通过测量这个感应电压,我们就能够精确地确定样品的磁矩。在VSM中,被测量的样品通常被固定在一个震动头上,并以一定的频率和振幅震动。这种震动在探测线圈中引起了变化的磁通量,从而产生了一个交流电信号。这个信号的幅度和样品的磁矩有着直接的关系。因此,通过仔细
    锦正茂科技 2025-02-28 13:30 105浏览
  • 在2024年的科技征程中,具身智能的发展已成为全球关注的焦点。从实验室到现实应用,这一领域正以前所未有的速度推进,改写着人类与机器的互动边界。这一年,我们见证了具身智能技术的突破与变革,它不仅落地各行各业,带来新的机遇,更在深刻影响着我们的生活方式和思维方式。随着相关技术的飞速发展,具身智能不再仅仅是一个技术概念,更像是一把神奇的钥匙。身后的众多行业,无论愿意与否,都像是被卷入一场伟大变革浪潮中的船只,注定要被这股汹涌的力量重塑航向。01为什么是具身智能?为什么在中国?最近,中国具身智能行业的进
    艾迈斯欧司朗 2025-02-28 15:45 232浏览
  • 1,微软下载免费Visual Studio Code2,安装C/C++插件,如果无法直接点击下载, 可以选择手动install from VSIX:ms-vscode.cpptools-1.23.6@win32-x64.vsix3,安装C/C++编译器MniGW (MinGW在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序.)4,C/C++插件扩展设置中添加Include Path 5,
    黎查 2025-02-28 14:39 147浏览
  • 在物联网领域中,无线射频技术作为设备间通信的核心手段,已深度渗透工业自动化、智慧城市及智能家居等多元场景。然而,随着物联网设备接入规模的不断扩大,如何降低运维成本,提升通信数据的传输速度和响应时间,实现更广泛、更稳定的覆盖已成为当前亟待解决的系统性难题。SoC无线收发模块-RFM25A12在此背景下,华普微创新推出了一款高性能、远距离与高性价比的Sub-GHz无线SoC收发模块RFM25A12,旨在提升射频性能以满足行业中日益增长与复杂的设备互联需求。值得一提的是,RFM25A12还支持Wi-S
    华普微HOPERF 2025-02-28 09:06 162浏览
  • 振动样品磁强计是一种用于测量材料磁性的精密仪器,广泛应用于科研、工业检测等领域。然而,其测量准确度会受到多种因素的影响,下面我们将逐一分析这些因素。一、温度因素温度是影响振动样品磁强计测量准确度的重要因素之一。随着温度的变化,材料的磁性也会发生变化,从而影响测量结果的准确性。因此,在进行磁性测量时,应确保恒温环境,以减少温度波动对测量结果的影响。二、样品制备样品的制备过程同样会影响振动样品磁强计的测量准确度。样品的形状、尺寸和表面处理等因素都会对测量结果产生影响。为了确保测量准确度,应严格按照规
    锦正茂科技 2025-02-28 14:05 150浏览
  • 构建巨量的驾驶场景时,测试ADAS和AD系统面临着巨大挑战,如传统的实验设计(Design of Experiments, DoE)方法难以有效覆盖识别驾驶边缘场景案例,但这些边缘案例恰恰是进一步提升自动驾驶系统性能的关键。一、传统解决方案:静态DoE标准的DoE方案旨在系统性地探索场景的参数空间,从而确保能够实现完全的测试覆盖范围。但在边缘案例,比如暴露在潜在安全风险的场景或是ADAS系统性能极限场景时,DoE方案通常会失效,让我们看一些常见的DoE方案:1、网格搜索法(Grid)实现原理:将
    康谋 2025-02-27 10:00 254浏览
  • 美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?美国加州CEC能效跟DOE能效有什么区别?CEC/DOE是什么关系?‌美国加州CEC能效认证与美国DOE能效认证在多个方面存在显著差异‌。认证范围和适用地区‌CEC能效认证‌:仅适用于在加利福尼亚州销售的电器产品。CEC认证的范围包括制冷设备、房间空调、中央空调、便携式空调、加热器、热水器、游泳池加热器、卫浴配件、光源、应急灯具、交通信号模块、灯具、洗碗机、洗衣机、干衣机、烹饪器具、电机和压缩机、变压器、外置电源、消费类电子设备
    张工nx808593 2025-02-27 18:04 125浏览
  • 应用趋势与客户需求,AI PC的未来展望随着人工智能(AI)技术的日益成熟,AI PC(人工智能个人电脑)逐渐成为消费者和企业工作中的重要工具。这类产品集成了最新的AI处理器,如NPU、CPU和GPU,并具备许多智能化功能,为用户带来更高效且直观的操作体验。AI PC的目标是提升工作和日常生活的效率,通过深度学习与自然语言处理等技术,实现更流畅的多任务处理、实时翻译、语音助手、图像生成等功能,满足现代用户对生产力和娱乐的双重需求。随着各行各业对数字转型需求的增长,AI PC也开始在各个领域中显示
    百佳泰测试实验室 2025-02-27 14:08 264浏览
  • RGB灯光无法同步?细致的动态光效设定反而成为产品客诉来源!随着科技的进步和消费者需求变化,电脑接口设备单一功能性已无法满足市场需求,因此在产品上增加「动态光效」的形式便应运而生,藉此吸引消费者目光。这种RGB灯光效果,不仅能增强电脑周边产品的视觉吸引力,还能为用户提供个性化的体验,展现独特自我风格。如今,笔记本电脑、键盘、鼠标、鼠标垫、耳机、显示器等多种电脑接口设备多数已配备动态光效。这些设备的灯光效果会随着音乐节奏、游戏情节或使用者的设置而变化。想象一个画面,当一名游戏玩家,按下电源开关,整
    百佳泰测试实验室 2025-02-27 14:15 140浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦