点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
随着中央计算+区域控制的中央集中式架构广泛应用,车内大部分的网络节点带宽是10Mbit/s以下的,当前车载以太网最低的百兆带宽已经无法满足低成本、低功耗的需求。在这个时代背景下,IEEE在2019年发布了802.3cg[1]协议,旨在协议层面上定义10BASE-T1,支持以太网进入边缘节点,以支持这一新的需求。
01
10BASE-T1S总览
802.3cg协议中介绍了10M速率下两种规格的PHY:10BASE-T1L和10BASE-T1S,其中L代表Long,S代表short,二者在PHY的相关机制,媒介长度上有较大区别。本文将主要介绍10BASE-T1S的相关机制。
下图阴影部分是10BASE-T1S在OSI模型以及以太网层级中的位置:
与当前主流的100/1000BASE-T1相比,10BASE-T1S具有完全不同的PCS子层和PMA子层机制,在PHY支持的情况下,可以通过配置选择全双工或半双工的工作模式。目前车载应用更多关注的是半双工方式,在这种工作模式下,车内的ECU可以采用总线型拓扑连接,降低成本的同时灵活部署ECU。
为了满足在半双工模式下工作的需求,10BASE-T1S采用了特殊的调和子层(Reconciliation Sublayer,RS),其包含了物理层冲突避免机制(Physical Layer Collision Avoidance,PLCA),可以避免数据碰撞,提高网络的利用率和可靠性。
02
PLCA Reconciliation Sublayer
PLCA概述
PLCA机制的核心理念是让总线上所有控制器进行时钟同步,其中每个控制器拥有在冲突域中唯一的节点ID(local_nodeID)。进行时钟同步后,所有控制器利用相同的PLCA机制在本地维护当前发送ID(cur_ID),仅当节点ID等于发送ID时,节点才可以发送数据。通过这样的机制,保证了同一时间链路上仅会出现一个控制器发出的报文,避免了碰撞的产生。
PLCA接口及总线拓扑
PLCA机制作为一种RS子层的可选功能,为节点提供了碰撞避免功能,下图是实现了PLCA机制的RS子层业务接口图:
与其他速率的RS子层一样,PLCA RS的主要功能仍然是提供一种PLS到MII之间的信号映射机制,其主要包括了四个功能模块:PLCA control、PLCA data & variable delay line、PLCA CMD detect及PLCA status。四个功能模块之间的交互和状态过于复杂,为了方便理解,我们将从总线上的报文入手,了解PLCA机制的全部内容。
下图是PLCA机制在总线上的呈现效果:
图源 OPEN ALLIANCE TC14 [2]
图中是一个包含了8个节点(Node #0-7)的总线示意图,其中Node #0为主节点,它的作用是在每个发送周期开始时发送信标信号:BEACON。Node#1-7为从节点,从节点通过BEACON信号与主节点完成同步才可以在发送周期内发送数据。
在这样的一条总线上,报文的分布应如下图所示:
PLCA相关参数
在开始正式介绍PLCA机制前,我们要先了解几个反复出现的PLCA重要参数:
Local_nodeID:由控制器自己维护,在自身所在冲突域中唯一的本地节点ID,值得注意的是,每个节点的Local_nodeID并不是按照顺序设置的,在设定上,Local_nodeID的取值范围是0-255,其中默认值为255,主节点为0,从节点为1-254,Local_nodeID只需要保持在所在冲突域中唯一即可,不需要按顺序设置。
Cur_ID:由控制器自己维护,当前获得发送机会的节点的ID,仅有Local_nodeID等于cur_ID时,控制器才可以向总线发送数据。因此其取值范围与Local_nodeID相同,0-255。
COL:从PHY接收到的信号,碰撞检测(collision),检测到碰撞时将COL置为TRUE。
CRS:从PHY接收到的信号,载波感知(carrier sense),当PHY监测到总线上有数据时将CRS置为TRUE。
BEACON:向总线发送的信号,由主节点,即local_nodeID为0的节点在每个发送周期开始时发送,用于与从节点完成时钟同步。对于从节点来说,接收到BEACON标志着新的发送周期的开始,需要同步自身的同时,将cur_ID重新设置为0。
COMMIT:向总线发送的信号,任何节点在正式发送数据前,需要先向总线上广播发送COMMIT,通知其他节点准备接收数据,并将自身CRS设置为TRUE。其他节点接收到COMMIT后,需将自身的CRS设置为TRUE。
TO:发送机会(Transmit Opportunity),当控制器的Local_nodeID等于cur_ID时,即可认为控制器获得了TO,可以向总线发送数据。对于发送周期的第一个TO,TO从发送BEACON开始,DATA发送完成后结束,对于发送周期内的其他TO,TO从上一个节点数据发送完成,cur_ID加一,总线空闲后开始,下一个节点数据发送完成后结束。
TO_timer:控制器内部维护的计时器,在每一个TO都重新开始计时,数值在管理实体(Management)中进行配置,配置范围为1-255bit times,默认为32bit times。
TO_timer的时间在设定上是为了在两个TO之间插入一段延时。其根本目的是确保链路上任意一个的节点在TO中发送数据后,可以在TO_timer内接收到距离他最远的节点的数据,即下图中T1应小于TO_timer。
TO_timer设置过小就会出现由于链路延时导致总线上的远端控制器认为在这个TO中没有控制器发送数据,从而跳过这个TO,cur_ID加一,但近端控制器链路延时较低有几率不受影响,因此会出现在这一个发送周期的后期,总线上各个控制器维护的cur_ID都不一致的情况,从而发生碰撞。
初始化机制
在重新上电或PLCA功能重启后,首先要完成功能初始化,初始化主要包括三步:
1)初始化参数:
将本地维护的cur_ID设置为0、检测链路状态设置CRS、检测碰撞状态设置COL,设置PLCA status为INACTIVE等操作。
2)主从节点同步:
对于主节点,初始化完成后若总线上有控制器在发送数据,主节点会正常接收数据,并从0开始计数cur_ID,直至完成一个数据发送周期,重新开始同步。
若总线上没有控制器在发送数据,主节点会正常发送BEACON及后续数据,开始第一个发送周期。
对于从节点,大体机制与主节点相同,同样是等待当前发送周期结束,重新开始新的发送周期,在当前发送周期内不会发送任何数据,仅接收数据。若接收到了BEACON,则进入正常的发送周期。
进入正常的发送周期后,主节点会广播发送BEACON信号,从节点接收到完整的BEACON信号后会解析数据中的时钟信号,同步自身,完成同步。
特别要注意的是:BEACON信号会持续发送20bit times,从节点必须接收到完整的BEACON才能认为完成了同步,否则从节点将重新等待下一个发送周期。
3)PLCA status设置:
初始化后PLCA status为INACTIVE,这里主要是对参数plca_active进行判断,若控制器成功发送或接收了BEACON信号,则plca_active为TRUE,PLCA status会被设置为ACTIVE。
进入新的发送周期后,由于还未发送或接收到BEACON信号,PLCA status会被设置为HYSTERESIS,若plca_active为TRUE,则PLCA status会回到ACTIVE。若长时间未发送或接收到BEACON,PLCA status会被设置为INACTIVE。
预接收及接收阶段
任何节点在接收到数据、CRS置为TRUE后都会进入预接收(EARLY_RECEIVE)阶段,这个阶段的目的是在正式接收数据前检查自身接收条件,该阶段包括了四种情况:
1)数据有效且链路持续有数据,则正常通过该阶段,进入数据接收阶段.
2)若控制器为主节点,进入预接收阶段后监测到链路上无数据,CRS为False,可以认为是主从节点同步有问题,主节点会退回至主从同步阶段。
3)若控制器为从节点,在当前发送周期开始时,进入预接收阶段但未收到BEACON信号,且没有后续数据,可以认为是主从节点同步有问题,从节点会退回至主从同步阶段。
4)若控制器为从节点,在当前发送周期开始时,进入预接收阶段但未收到完整的BEACON信号,或接收到的数据无效,可以认为是自身未被同步上,从节点会退回至主从同步阶段。
由于在在预接收阶段已经对数据内容和自身状态进行了检查,进入接收阶段后,PLCA RS会正常将从MII收到的数据传递给MAC,直至识别到数据接收完成,总线空闲,进入下一个TO准备发送或接收数据。
03
总结
以上我们介绍了10BASE-T1S协议最重要的机制-PLCA,了解了PLCA机制的初始化机制和数据接收机制,那么在数据发送、TO及发送周期计算以及异常处理上,PLCA机制是如何定义的呢?
04
PLCA Reconciliation Sublayer
PLCA COMMIT
完成初始化后,若控制器获得了发送机会(TO),自身为发送节点,可以检测自身状态,MAC已经准备好要发送的数据且链路空闲则可以发送COMMIT,告知其他节点自身即将发送数据。其他节点接收到COMMIT后,会将CRS置为TRUE,并进入预接收阶段,接收数据有效则进入数据接收阶段。
数据发送及数据多发(burst)
在COMMIT的发送阶段,PLCA RS层向MII传递COMMIT的指令时,MAC将要发送的数据不断地传输至PLCA RS层的缓冲区(variable delay line)中,缓冲区最大可容纳396bit数据。若数据没有问题(TX_EN为TRUE,TX_ER为False)则可以开始发送数据。
进行数据发送时,由于MAC层至PLCA RS层和PLCA RS层到MII的数据相同,数据会从MAC层持续进入缓冲区,另一边以相同的速率发送到MII上。如下图所示,m bit数据要从MAC向下发送,缓冲区中存放了5bit数据,这个参数记为a。接下来RS 需要从MAC接收到数据的序号n为6,7……m-1,m。同时RS需要发送的数据则是n-a=1,2……m-6,m-5。
使用这样的机制就会出现一个问题,在数据发送结束前,缓冲区中一直保持着一开始积累数量的数据,如下图所示,缓冲区中将一直保持5bit的数据,在数据发送的末尾,即m-4,m-3……m这5bit数据会留在缓冲区中无法发送,在这个情况下,PLCA RS的发送模块会额外维护一个参数b,b=1,2…a,全部数据发送后,RS会继续发送剩余数据清空缓冲区,序号为n-a+b = m-4,m-3…m。”
数据发送完成,TX_EN设置为False后,PLCA RS将进入Burst的判断,Burst的目的是在一个TO中发送多帧数据,不需要等待下一个发送周期。Burst判断主要涉及三个参数:
1)PLCA MAX burst count:在控制器的管理实体中进行设置,节点支持的最大burst帧的数量,配置范围0-255,默认值为0。
2)PLCA burst count:由控制器自己维护,初始化后该值被初始化为0。在数据发送阶段,每发送一个burst帧,该值+1。
3)PLCA burst timer:控制器内部计时器,PLCA burst count加一时开始计时,到期后会退出burst。
PLCA RS将进入burst的判断后,若PLCA burst count小于PLCA MAX burst count,则说明控制器还有burst帧,需要进入burst模块。burst模块是独立于发送模块的一个部分,它的作用是:
进行PLCA burst count的累加
控制发送接下来一个burst帧的COMMIT
开始PLCA burst timer计时
完成以上三步后就是对TX_EN的判断,若burst帧的数据有效,TX_EN为TRUE则回到数据发送模块进行数据的发送,若PLCA burst timer计时器过期时TX_EN仍为False,则认为数据或总线出现了问题,会中止burst帧的发送,清空在COMMIT阶段已经发送至缓冲区的数据,进入下一个TO,等待下一个发送周期重新发送。
当控制器识别到PLCA burst count大于等于PLCA MAX burst count后,认为burst帧已全部发送完成,会退出数据发送阶段,进入下一个TO。
TO放弃机制
前文介绍的初始化后进入数据发送阶段是在MAC有数据要进行发送的前提下的,如果在获得TO时,MAC没有或没准备好要发送的数据,PLCA RS提供了一种TO放弃机制,即在控制器获得TO但没有数据发送时,有以下两种情况:
1)总线上所有的控制器都正常实现PLCA机制:由于其他控制器没有TO,自身也没有要发送的数据,TO_timer过期后会直接进入下一个TO,节点主动放弃了当前的TO。如下图中灰色方块所示,local_nodeID为6的Node #3主动放弃了TO。
2)总线存在未实现PLCA机制的控制器:当控制器没有要发送的数据但获得了TO时,可以将TO让给上述两种情况的控制器,自身进入预接收状态准备接收数据,接收完毕进入下一个TO。在这种情况下,节点让出了自己的TO。
TO与发送周期判断
以上的各个环节都介绍到了TO的判断的发送周期的判断,在这一部分,会介绍一下总线上各个节点是如何同步地维护TO和发送周期的。
TO的判断是由各个控制器自身进行的,由于采用了一套逻辑,在已经完成主从同步的背景下,可以实现总线上cur_ID的一致性,进而实现TO的一致性。
1)在发送周期开始时,cur_ID初始化为0,此时是主节点的TO。其他节点开始进行TO_timer的计时,等待主节点的BEACON信号和后续数据。监测到总现有数据后,停止TO_timer,进入预接收阶段。主节点数据发送以及从节点数据接收完成后,cur_ID+1,进入下一个TO。
2)TO开始后,所有节点开始重新计时TO_timer,发送节点在MAC准备好发送数据的情况下,进入发送阶段,开始数据发送。接收节点监测到链路有数据后进入预接收及接受阶段。数据发送及接收完成后,cur_ID+1,进入下一个TO。
3)在节点的发送阶段(local_nodeID=cur_ID),若MAC层没准备好发送数据,且没有需要TO的节点,发送节点可以通过TO放弃机制,等待TO_timer过期后,cur_ID+1,进入下一个TO。接收节点检测总线持续空闲,同样在TO_timer过期后,cur_ID+1,进入下一个TO。
4)若没有节点需要发送数据,总线呈现空闲状态,同上一点,TO_timer过期后,cur_ID+1,进入下一个TO。
5)在节点的发送阶段和burst阶段,若节点在数据发送前识别到TX_EN为False,会中止数据的发送,清空缓冲区数据后cur_ID+1,进入下一个TO。
通过以上五种情况的判断,保证了总线上所有控制器cur_ID的一致性,避免了碰撞的发生。发送周期的判断在主节点中进行,满足以下两个条件之一即可认为当前的发送周期已经完成,可以开始新的发送周期:
1)主节点本地维护的cur_ID达到了上限值255
2)主节点本地维护的cur_ID大于等于在主节点内部手动设置的plca_node_count参数值
plca_node_count参数值可在管理实体中进行配置,配置范围为0-255,指代了冲突域内实现了PLCA功能的节点数量,默认值为8。
通过对plca_node_count和local_nodeID参数值的设置,我们可以实现对总线带宽接近100%的占用,即把链路上所有从节点的local_nodeID从1开始按顺序排列,并将plca_node_count设置为总线上控制器的数量,这样设置下的总线报文如下图所示:
故障及异常处理
在PLCA RS的最后一部分,我们要对上述模块或机制中可能出现故障或异常的部分进行讲解,包括了故障出现的原因以及PLCA RS的处理机制。
1)在发送数据前,因长时间没获取发送许可,缓冲区数据超过上限进入异常处理,由于自身具有TO,这种情况的处理相对简单:
①立即停止从MAC接收数据,将TX_ER设置为TRUE,并通过SIGNAL_STATUS原语向上层汇报出现了碰撞。②设置一个pending_timer作为停止从MAC获取数据的计时器,并设置plca_txen为False,在计时期间停止向上层汇报错误,当计时器过期后,继续从MAC获取数据。这样做的目的是设置一个缓冲时间,再准备重新发送COMMIT前对数据和自身状态进行确认。③判断新的数据是否有效,有效即可直接发送,无效或超过了TO_timer时间的限制则跳过TO,等待下一个发送周期。
2)在数据的发送过程中,如果检测到COL为TRUE,则认为出现了碰撞,节点会通过SIGNAL_STATUS原语向上层汇报出现了碰撞,并停止发送数据,清空缓冲区数据,进入下一个TO,等待下一个发送周期再发送数据。
3)在数据发送结束,发送缓冲区内数据的过程中,如果检测到COL为TRUE,则认为出现了碰撞,此时节点同样会通过SIGNAL_STATUS原语向上层汇报出现了碰撞,但不会停止发送数据,因为缓冲区内数据较少,会将数据全部发送完成后进入下一个TO。
05
总结
以上我们完成了对PLCA的介绍,那么经过PLCA RS层,10BASE-T1S的PHY又会有什么独特的机制呢?
06
10BASE-T1S PCS子层
与100BASE-T1相同,10BASE-T1S的PCS子层同样包含了PCS Reset、PCS Transmit和PCS Receive三个功能,在此基础上由于支持PLCA,PCS子层还包含了Collision Detection碰撞检测功能。
在上电并完成复位后,从PLCA RS层经过MII传递到PCS子层的数据,会在PCS Transmit中完成扰码、4B/5B编码及流起始/结束分隔符的添加,传递给PMA子层后,完成数据的发送。
在接收节点中,PCS Receive会按照与Transmit中相反的顺序,进行流起始/结束分隔符的识别、5B/4B转换和解扰码。Collision Detection模块会同步监测发送通道和接收通道是否同时存在数据,以完成对碰撞信号COL的置位。
PCS Reset功能
PCS Reset功能将初始化所有的PCS功能,当出现以下两种情况之一时,执行PCS Reset功能:
上电
收到来自管理实体(Management)的初始化请求
PCS Transmit功能
相较于100BASE-T1,10BASE-T1S的PCS子层机制相对简单,在PCS Transmit 的部分,通过MII的数据在通过以下介绍的三个模块后被发送到PMA子层。
Scrambler
经过MII的数据首先要要进行扰码,扰码器的选择上与百兆类似,均采用了利用线性反馈移位寄存器实现的测流扰码器,其生成多项式和编码器功能模型如下:
其中,Scn的输入值就是MII上传递下来的数据Scn<3:0>,编码器的17 bit扰码种子Scrn<16:0>同样是一段伪随机值,且PCS Reset无法将17bit扰码种子全部置为0。
4B/5B
在这一模块,经过扰码的4bit数据会被重新编码成1个5bit的symbol,其作用首先是平衡数据排布,防止长时间连续的0或1信号导致的直流偏移问题。除此之外4B/5B还肩负着引入控制字符的作用,如下图所示。
值得注意的是:
①上图的Special function中部分5B字符代表了两种功能,因此在不同的场景下,同一个5B字符可能有完全不同的功能;
②BEACON和COMMIT指令是在PLCA RS层生成并下发的,因此对于在MII上传输的BEACON和COMMIT信号,IEEE 802.3规定了具体形式如下:
Add symbols
这一阶段的目的是给准备发送的数据加入流起始分隔符SSD和流结束分隔符ESD,MII上传输的数据流格式如下:
其中帧起始preamble由7个字节的10101010字符组成,帧起始sfd由一字节10101011字符组成,帧结束efd并没有具体的组成,当TX_EN由1变为0时标志着当前数据的帧结束。
在10BASE-T1S中,加入SSD的方式是将preamble中的第一个字节替换为两个SYNC字符,由于10BASE-T1S在PMA子层采用了DME编码,SYNC字符的作用是让总线上的其他节点接收到这一帧报文时能够通过SYNC报文进行时钟的恢复。第二个字节替换为两个SSD字符,最终的呈现形式如下图所示:
从4B/5B的Special function中可以看到,ESD包括了很多种类,针对场景的不同,链路伙伴会收到不同的ESD。
在介绍具体的场景前,我们要先了解Jabber机制:PCS Transmit功能包含中断传输的能力,如果报文持续发送的时间超过了指定的时间,PCS Transmit发送特定的ESD通知接收节点,然后在一定时间内禁止超时节点进一步发送。下面两个计时器分别规定了超时时间和禁止时间。
Xmit_max_timer:超时时间,定义了PCS Transmit功能停留在DATA状态的最长时间,也就是发送数据的最大长度。取值范围是2ms±10μs,换算为字节是2500字节。
Unjab_timer:禁止时间,定义了Xmit_max_timer超时后,超时节点被禁止发送数据的时间,取值范围是16ms±100μs。
了解了Jabber机制后,我们可以了解在不同场景下PCS Transmit会如何填充ESD。
第一个ESD的填充要判断报文内容,如果是正常报文,5B字符11000代表SYNC功能,则该位填充ESD,如果该报文是COMMIT报文,5B字符11000代表COMMIT功能,则该位填充ESDBRS,由于SYNC和COMMIT的5B字符相同,ESDBRS标志了这条报文是COMMIT报文。
第二个ESD的填充要判断TX_ER的状态,如果报文没有错误,则填充ESDOK。如果TX_ER为TRUE或Xmit_max_timer超时则要判断错误类型,由Jabber导致的报文发送中断要填充ESDJAB,报文出现错误导致TX_ER为TRUE则填充ESDERR。
PCS Receive功能
接收节点在接收PMA子层传输的数据时,会在PCS Receive中进行以下操作:
检测接收信号是否为BEACON信号:如果是BEACON则先进行BEACON的接收,然后重新开始接收信号的检测。
接收SYNC信号:同步自身时钟,等待SSD。
检测流起始分隔符:只有接受到了完整的SYNC、SYNC、SSD、SSD序列才可以继续进行,如果接受到的不完整,则将RX_ER设置为TRUE,向上层反馈有错误后,回到第一步重新等待接收。
PRE阶段:将SSD2之后的9个symbols传给解码器用于同步锁定,保证后续数据的正确解码。
维护一个缓冲区,以symbols为单位,将剩余的1 symbol前导码,2 symbol的sfd存入缓冲区。
进入数据接收阶段:将当前1 symbol数据RXn存入缓冲区,同时将RXn-3提出缓冲区进行5B/4B转换和解扰码。
循环步骤6,直至进入ESD的检测阶段。
ESD检测阶段:若RXn-3为ESD/ESDBRS且RXn-2为ESDOK,则为GOOD ESD,将RX_DV设置为False,回到步骤1重新等待接收数据。
若RXn-2为ESD/ESDBRS但RXn-1不是ESDOK,且RXn-3不是ESD/ESDBRS,可能收到了ESDJAB或ESDERR,为BAD ESD,将RX_ER设置为TRUE,回到步骤1重新等待接收数据。
若RXn-3为Silence,且没有收到ESD,数据可能不全,同样为BAD ESD,将RX_ER设置为TRUE,回到步骤1重新等待接收数据。
Collision Detection功能
碰撞检测功能的作用时产生COL信号,发送至PLCA RS层进行碰撞的检测。这个功能有效的前提是PHY开启的multidrop模式,通过MDIO可以将10BASE-T1S PHY的模式配置为开启或关闭,默认值为关闭。打开multidrop模式即可认为PHY将工作与总线模式下,需要对可能存在的碰撞进行检测。
Collision Detection模块会同时接收PCS Transmit发给PMA子层的数据以及PMA子层发送给PCS Receive的数据,如果Collision Detection模块在这两条路上都接受到的了数据,则可以认为在半双工模式下发生了碰撞,需要将COL设置为TRUE。
07
10BASE-T1S PMA子层
PMA(物理介质附加)子层位于PCS(物理编码)子层和MDI(介质相关接口)之间,协议中介绍了PMA子层的一个复位功能PMA Reset以及四个运行功能PMA Transmit、Link Monitor、PMA Receive与Clock Recovery。
PMA Reset功能
PMA Reset功能将初始化所有的PMA功能,当出现以下两种情况之一时,应执行PMA复位功能:
含有PMA的设备电源未达到工作状态
收到来自管理实体(Management)的初始化请求
执行复位后,PMA Reset功能主要完成以下任务:
将PMA Transmit的输出调整为高阻抗状态
清除当前PMA Receive发送的PMA_UNITDATA.indication原语的内容
PMA Transmit功能
PMA Transmit会将从PCS子层接收到的5B symbols使用DME(差分曼彻斯特编码)进行编码后发送到链路上。DME的规则如下:
1、如果PMA Transmit接收到的5B symbol不是special function “I”,即SILENCE,则遵循以下规则:
①DME编码的时钟转换将发生在传输每个bit的开始处产生
②如果传输的是逻辑“1”,则应在位周期的中间产生“数据转换”。否则直到时钟转换处才会产生转换。
10BASE-T1S协议中还规定了DME编码的一些时间参数:
①两次传输之间的时间间隔T1需大于480ns,按照传输速率进行换算就是传输6bit数据的时间。
②两次时钟转换之间的时间T2范围应在80ns±100ppm。这个时间与数据在链路上的发送速率相对应。
③传输逻辑“1”时,时钟转换至数据转换的时间T3范围应在40ns±2ns。由于对于逻辑“0”和逻辑“1”的判断是通过检测位周期中间是否出现数据转换的,所以T3时间保证了接收节点能够正确识别逻辑“0”和逻辑“1”。
2、如果PMA Transmit接收到的5B symbol是special function “I”,则遵循以下规则:
① 如果上一个发送的5B symbol不是“I”,则在将发送的“I”前额外发送一个附加编码0。“I”的5B编码是11111,添加一个附加编码可以作为进入SILENCE的标志。
②在Multidrop mode中,发送附加编码0后的40ns内要达到规定的最小阻抗。
③在point-to-point mode中,通过100Ω的阻抗将BI_DA+和BI_DA-同步到相同的电压,使他们的差值为0V。
PMA Receive功能
PMA Receive会将从MDI接收到的信号还原成5B symbols和时钟信号,5B symbols发送给PCS Receive进行后续的操作。时钟信号会发送到Clock Recovery作为同步时钟,但由于PLCA机制,这个时钟不会直接驱动MII,也不会作为发送时钟。
PMA Receive的第二个功能是产生CRS信号,从上文的PMA子层总览图中可以看到,PMA Receive除了会接收BI_DA信号,还会接收从PMA Transmit发送的信号,因此,当这两通道中的任意一个有信号存在时,PMA Receive会通过PMA_CARRIER.indication原语向PCS Receive和PLCA RS传递CRS为TRUE的信号。
特别地,当PMA Receive未检测到链路上有数据时,他将会向上传递符号“I”,即SILENCE。
Link Monitor功能
Link Monitor功能与车内一般不使用的自动协商Auto-Negotiation功能相关。
由于10BASE-T1S半双工通信、总线型拓扑以及支持PLCA机制的特点,当PHY未开启自动协商,且链路在Multidrop模式下工作或接收到BEACON信号时,Link Monitor会被禁用。
08
10BASE-T1S PHY的物理实现
对于实现了PLCA机制的PHY,有以下三种物理实现方式。
图源 OPEN ALLIANCE TC14[2]
PHY with MII
PHY与微控制器通过MII或RMII通信,将PLCA集成到PHY中,对微控制器来说是透明的,这样的实现可以使PHY兼容各种MAC,且支持半双工通信。
PHY witch SPI(MACPHY)
MACPHY 集成了MAC和PHY,通过SPI和ECU连接通信,在微控制器的选择上更加灵活。
PMD Transceiver
PMD Transceiver在主控制器和PMD收发器芯片之间具有3引脚无时钟接口,适用于嵌入式系统,其中PHY的数字部分完全集成到MCU、以太网交换机核心或任何其他合适的微控制器中,PHY的模拟部分留在单独的芯片中(即图中的PMD收发器)。
对于实现了PLCA机制的架构,协议中规范了链路的实现参数:
在point-to-point模式下,与100BASE-T1类似,支持的最大传输距离是15米。
在Multidrop模式下,总线的最大长度是25米,支持连接最多8个PHY。
总线上的控制器的PHY与总线的距离应小于10厘米。
总线的两端应存在一个100 Ω的终端电阻[2]。
09
总结
以上是IEEE 802.3cg协议中关于10BASE-T1S PHY的介绍,包括PCS子层和PMA子层的内容。为了满足中央计算和区域控制的中央集中式架构广泛应用所带来的低成本和低功耗需求,10BASE-T1S是一种可供选择的方案。
来源:经纬恒润
end
精品活动推荐
AutoSec中国行系列沙龙
专业社群
部分入群专家来自:
新势力车企:
特斯拉、合众新能源-哪吒、理想、极氪、小米、宾理汽车、极越、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯......
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚......
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用......
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、赢彻科技、潍柴集团、地平线、紫光同芯、字节跳动、......
二级供应商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海软件中心、Deloitte、中科数测固源科技、奇安信、为辰信安、云驰未来、信大捷安、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、软安科技、浙江大学......
人员占比
公司类型占比
更多文章
关于涉嫌仿冒AutoSec会议品牌的律师声明
一文带你了解智能汽车车载网络通信安全架构
网络安全:TARA方法、工具与案例
汽车数据安全合规重点分析
浅析汽车芯片信息安全之安全启动
域集中式架构的汽车车载通信安全方案探究
系统安全架构之车辆网络安全架构
车联网中的隐私保护问题
智能网联汽车网络安全技术研究
AUTOSAR 信息安全框架和关键技术分析
AUTOSAR 信息安全机制有哪些?
信息安全的底层机制
汽车网络安全
Autosar硬件安全模块HSM的使用
首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议