can总线能带多少节点识别节点ID

工程师们通常使用示波器观察can总線能带多少节点的信号质量一般主要关注can总线能带多少节点差分信号的幅值、最小位宽、边沿情况等。相信不少工程师都看到过一条报攵数据的波形上高高低低存在多个幅值心里可能会变得忐忑不安,幅值不统一是不是波形出现畸变了呢其实并非如此,今天就把can总线能带多少节点上的幅值“异常”归归类

一、CAN-bus信号产生原理

众所周知,一个标准CAN节点由微处理器、控制器、收发器构成多个节点成总线型架构挂在一起,两个端节点上并有终端电阻其结构简图如下图所示。

可以看出与总线直接相连的是CAN节点的收发器,起内部电路等效洳下图所示CAN-H、CAN-L直接由三极管驱动,近似可以看成电流型输出结合上文所述网络架构中的终端电阻,节点发出信号时电流流过终端电阻產生电压信号当同一时间多个节点同时发出信号时就会使总线上的电流高于单一节点发出的电流,使得我们观察电压信号时出现突增的現象

图2 CAN收发器结构

CAN-bus是总线型结构,通常状态下一般只有一个节点占有总线那么有几种情况会导致多个节点同时发出,进而导致幅值出現“异常”呢下文通过致远电子CANScope分析仪的几个测试案例总结一下。

二、应答位上的幅值“异常”

最常见的当CAN网络上存在3个以上的节点時,应答位上的幅值要明显高于同一报文的其他位置如下图所示。可以看到报文在ID段、数据段、CRC校验段处的幅值均比较一致但是到应答位处时幅值出现突增。这是为什么呢大家都知道CAN-bus总线拥有自动应答机制,即当某一节点发送完一帧报文时所有总线中的其余非只听節点均会在应答位处做出响应,如果报文被成功识别则发出一个显性位做为应答信号

结合上文所述,应答位此时can总线能带多少节点上的電流是若干节点电流叠加的综合所以应答位的幅值高就很容易讲通了。

图3 应答位上的幅值“异常”

三、ID段上的幅值“异常”

CAN-bus总线的一大特点就是多主结构即网络中所有节点功能对等,没有主从机的概念所有节点均可自由收发数据。保证多主结构得以实现的关键在于can总線能带多少节点的仲裁机制也称优先级机制当网络中同时有多个节点同时发送数据时会在ID段处产生仲裁,优先级高的节点会最终占有总線

如下图所示,可以看到在图中的标记处波形出现了“台阶”正是由于在“台阶”出现前有两个节点同时发出数据,导致幅值增高茬“台阶”处某一节点由于优先级高占有总线,另一个节点暂时退出使得幅值又回归平常。

图4 ID段上的幅值异常

四、错误帧上的幅值“异瑺”

再看看这个案例可以看到在波形的后半部分也出现了台阶式的幅值增高,光标卡住的显性电平区间可以看到宽度明显超过了5个标准位宽按照can总线能带多少节点的位填充规则(不能存在连续六个相同的显性位或隐性位)表明这是一条错误帧。但是不要误会并不是因為这个幅值“异常”而导致的错误帧,我们知道can总线能带多少节点有错误重发机制以保证总线传输数据的可靠性。这种可靠性正式通过錯误帧的“一票否决制”实现的

当网络中某一节点识别到一条认为是有问题的报文后会发送六个连续的显性位(即错误帧),投出这一否决票通知网络上所有其他节点本条报文无效。此后其他节点会以“跟票”的形式全部发出六个显性位错误帧所以此时多个节点重叠蔀分的错误帧的幅值就会高一些了。

图5 错误帧上的幅值异常


STM8S208单片机的can总线能带多少节点上最哆可以挂多少个节点


节点数一定程度取决于STM8S208的Flash大小还有MCU处理,你不可能无限多个节点估计还是要根据你的应用进行测试。 交流请关注微信公众号”单片机STM32“


这个节点数主要取决于你的通信速率、通信距离、线路上的电气特性【驱动、负载等方面】的综合因素


没法简单說一定可以带多少点,理论上可以很多不过理论实际相差甚远。你可以查看下你使用的CAN收发器的相关手册


随着工业技术不断发展can总线能帶多少节点已广泛应用于车辆、航空、医疗等高安全要求领域。高频发送CAN报文也成为安全测试的必要组成部分

在信号正常的网络上高负載率发送测试时,总线上偶然会出现许多意想不到的问题例如出现大量错误报文、被测设备报文周期出现异常、甚至总线锁死等,这个時候我们则需要考虑一下CAN网络上的仲裁是否发生了异常

系统中多个设备或模块可能同时申请对总线的使用权,为避免产生总线冲突需甴总线仲裁机构合理地控制和管理系统中需要占用总线的申请者,在多个申请者同时提出总线请求时以一定的优先算法仲裁哪个应获得對总线的使用权。只有获得了总线控制权的设备才能开始传送数据。

02、can总线能带多少节点仲裁机制

报文的优先级是通过对 ID 的仲裁来确萣的。can总线能带多少节点上有两种电平状态如果总线上同时出现显性电平和隐性电平,总线的状态会被置为显性电平,CAN正是利用这个特性進行仲裁

对于CAN来说,0为显性1为隐性。所以当对不同的ID号来进行仲裁时ID号越小,优先级越高对于标准数据帧和扩展数据帧的仲裁,洳下图黄色所示标准帧中的RTR为0,SRR中为1所以标准帧的优先级更高。

当总线空闲时有多个节点同时需要发送报文,那么每个节点的发送器将会对发送位的电平和被监控的总线电平做比较

如果电平相同,那么该节点可以继续发送;如果发送的为一“隐性”电平(1)但是監控到一“显性”电平(0),那么该节点失去仲裁必须退出发送状态,只到下一次总线空闲的时候在参与总线的仲裁竞争

03、关于can总线能带多少节点仲裁的疑问

(1)什么时候出现CAN仲裁?

当总线上的节点监听到总线空闲时此时2个及以上的节点同时向总线上发送数据,此时會触发can总线能带多少节点仲裁机制来避免数据发送错误。

(2)那么总线仲裁丢失的节点失去总线控制权后,立即转为接收么

根据标礻符判断帧的优先级,优先级高的继续发送低的退回,等待高优先级帧发送完成总线空闲后再进行发送。

需要注意的是在整个过程中兩个节点都在监听总线也就是说接收是不受发送状态限制的,也就没有转为接收这一说所以也就不会出现数据不完整的帧,所以仲裁期间发送的位也是可以接收的

(3)如何减少仲裁事件的发生?

can总线能带多少节点中的节点在仲裁失败、发送失败或者请求发送时总线被其他节点占用一般会在下一次空闲到来时请求发送。总线负载率越高遇到上面的情况概率也就越大,因此仲裁事件的发生常出现在高負载率的总线环境下如果可以控制总线负载率在合理范围内,可以大大减少仲裁事件的发生

can总线能带多少节点采用“载波监测,CSMA/CA的通信模式这种总线仲裁方式允许总线上的任何一个设各都有机会取得总线的控制权并向外发送数据。如果在同一时刻有2个或2个以上的设各要求发送数据就会产生总线冲突,can总线能带多少节点能够实时地检测这些冲突并对其进行仲裁从而使具有高优先级的数据不受任何損坏地传输。

我要回帖

更多关于 can总线能带多少节点 的文章

 

随机推荐