EthTSyn产品参考手册

缩写词注解

缩写词*

英文全称

中文解释

StbM

SynchronizedTimeBaseManager

同步时基管理

<Bus>TSyn

A bus specific Time Synchronization Provider module

总线特 定的时间同步提供程序模块

CAN

Controller Area Network

控制器区域网络

ETH

Ethernet

以太网

CanTSyn

Time Synchronization Provider module for CAN

C AN提供的时间同步程序模块

EthTSyn

Time Synchronization Provider module for Ethernet

E th提供的时间同步程序模块

简介

EthTSyn在AutoSAR中软件层级架构如下图,其属于时间同步栈。

image1

图1-1 EthTSyn在AutoSar中软件架构图

本文中描述EthTSyn,StbM负责管理时间域,给CanTSyn, EthTSyn提供接口用来更新同步时间,给其他用户提供接口用来获取/通知同步时间。

EthTSyn负责以太网总线的时间同步相关报文发送/算法。

参考资料

[1] AUTOSAR_SWS_SynchronizedTimeBaseManager.pdf,R19-11

[2] AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf,R19-11

[3] AUTOSAR_SWS_TimeSyncOverEthernet.pdf,R19-11

[4] AUTOSAR_PRS_TimeSyncProtocol.pdf, R19-11

功能描述

EthTSyn功能

EthTSyn功能介绍

EthTSyn模块负责确保以太网同步时间信息的采集和分发。它与StbM交互,并为StbM提供所有特定于以太网的功能。

EthTSyn主要功能包括测量以太网消息之间的延迟和不同时基之前的时间同步。

EthTSyn功能实现

关于延迟的测量,EthTSyn使用的是GPTP的延迟测量方法,即

|C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\1594716454(1).png|

图2-1 GPTP延迟测量

最终延迟值为(t4-t1-(t3-t2))/2。

image2

图2-2 时间同步报文时序

而时间同步功能则是EthTSyn应该以配置的频率发送SYNC消息,再根据配置的时间间隔发送带有sync发送时间的Follow_Up消息,最后再根据时间值和延迟测量计算出的结果得出正确的时间传给StbM。其中SYNC和Follow_Up的消息有IEEE 802.1和AUTOSAR专用的两种格式,需要根据配置来决定消息的格式。

EthTSyn功能限制

根据[3]以及结合自身实现情况,EthTSyn以下功能存在限制:

  1. 不支持BMCA协议

  2. 不支持Announce和Signaling报文。

  3. Pdelay_Req报文的接收不作为开始发送Sync报文的前提条件。

  4. Rate Correction在IEEE中原先由Pdleay机制负责计算,Autosar中规定该值的计算发生在StbM中(当从节点接收到时间同步报文并向StbM设置多次时间后),因此EthTSyn自身没有获取该值的能力。当填写cumulativeScaledRateOffset字段时,EthTSyn提供了EthTSynCumulativeScaledRateOffset配置项,从而其作为主节点发送时能够使用配置值进行发送,作为主节点接收时则不予处理。

  5. Rate Correction在StbM中属于纯软件算法,不涉及修正硬件。

  6. 不支持Time Validation或Time Measurement相关功能

  7. 不支持Switch相关功能

  8. EthTSyn自身不维护硬件时钟,均由StbM进行维护。

源文件描述

表3-1 EthTSyn组件文件描述

文件

说明

EthTSyn.c

EthTSyn模块源文件,包含了API函数的实现。

EthTSyn.h

EthTSyn模块头文件,包含了API函数的声明。

EthTSyn_Cfg.h

定义EthTSyn模块预编译时用到的配置参数。

EthTSyn_Cfg.c

EthTSyn模块配置生成文件。

EthTSyn_Types.h

用 于定义配置类型、内部类型和外部类型的数据结构。

EthTSyn_MemMap.h

EthTSyn 模块头文件,包含了存储器地址映射关系的实现。

image3

图3-1 EthTSyn组件文件交互关系图

API接口

类型定义

EthTSyn_ConfigType类型定义

名称

EthTSyn_ConfigType

类型

Structure

范围

描述

模块的配置类型

EthTSyn_TransmissionModeType类型定义

名称

EthTSyn_TransmissionModeType

类型

Enumeration

范围

ETHTSYN_TX_OFF

ETHTSYN_TX_ON

描述

传输类型

输入函数描述

输入模块

API

EthIf

EthIf_EnableEgressTimeStamp

EthIf_GetCurrentTime

EthIf_GetEgressTimeStamp

EthIf_GetIngressTimeStamp

EthIf_ProvideTxBuffer

EthIf_Transmit

StbM

StbM_BusGetCurrentTime

StbM_BusSetGlobalTime

StbM_GetCurrentVirtualLocalTime

StbM_GetTimeBaseUpdateCounter

StbM_GetTimeBaseStatus

StbM_GetOffset

Det

Det_ReportError

Det_ReportRuntimeError

Crc

Crc_CalculateCRC8H2F

静态接口函数定义

EthTSyn_Init函数定义

函数名称:

EthTSyn_Init

函数原型:

void EthTSyn_Init(

const Eth TSyn_ConfigType* configPtr

)

服务编号:

0x01

同步/异步:

同步

是 否可重入:

输入参数:

configPtr

值域:

配置结构体指针

输入 输出参数:

输出参数:

返回值:

void

功能概述:

初始化EthTSyn模块

EthTSyn_GetVersionInfo函数定义

函数名称:

EthTS yn_GetVersionInfo

函数原型:

void EthTSy n_GetVersionInfo(

Std_ VersionInfoType* versioninfo

)

服务编号:

0x02

同步/异步:

同步

是 否可重入:

输入参数:

输入 输出参数:

输出参数:

versioninfo

值域:

接收版本信息的指针

返回值:

void

功能概述:

返回 该模块的版本信息

EthTSyn_SetTransmissionMode函数定义

函数名称:

EthTSyn_Se tTransmissionMode

函数原型:

void EthTSyn_Se tTransmissionMode (

uint8 CtrlIdx,

EthTSyn_Tra nsmissionModeType Mode

)

服务编号:

0x05

同步/异步:

同步

是 否可重入:

输入参数:

CtrlIdx

值域:

以太网控制器索引

Mode

ETHTSYN_TX_OFF ETHTSYN_TX_ON

输入 输出参数:

输出参数:

返回值:

void

功能概述:

打开和关 闭EthTSyn的TX功能

EthTSyn_RxIndication函数定义

函数名称:

Eth TSyn_RxIndication

函数原型:

void EthT Syn_RxIndication(

uint8 CtrlIdx,

Eth_FrameType FrameType,

boolean IsBroadcast,

const uint8* PhysAddrPtr,

const uint8* DataPtr,

uint16 LenByte

)

服务编号:

0x06

同步/异步:

同步

是 否可重入:

输入参数:

CtrlIdx

值 域:

以太网控制器索引

FrameType

接收到的以太网帧类型

IsBroadcast

是否是广播帧

PhysAddrPtr

以太网帧的源MAC地址的指针

DataPtr

数据域的指针

LenByte

数据域的长度

输入 输出参数:

输出参数:

返回值:

void

功能概述:

接收消息

EthTSyn_TxConfirmation函数定义

函数名称:

EthTS yn_TxConfirmation

函数原型:

void EthTSy n_TxConfirmation(

uint8 CtrlIdx,

Eth_BufIdxType BufIdx

)

服务编号:

0x07

同步/异步:

同步

是 否可重入:

输入参数:

CtrlIdx

值域:

以太网控制器索引

BufIdx

以太网缓冲区的索引

输入 输出参数:

输出参数:

返回值:

void

功能概述:

确认消息传输

EthTSyn_TrcvLinkStateChg函数定义

函数名称:

EthTSy n_TrcvLin kStateChg

函数原型:

Std_R eturnType EthTSyn _TrcvLink StateChg(

uint8 CtrlIdx,

Eth Trcv_Link StateType Trcv LinkState

)

服务编号:

0x08

同步/异步:

同步

是否可重入:

输入参数:

CtrlIdx

值 域:

以太网控制器索引

Trcv LinkState

ETHTRCV_LINK_STATE_DOWN ETHTRCV_LINK_STATE_ACTIVE

输 入输出参数:

输出参数:

返回值:

E_OK 成功

E_NOT_OK 失败

功能概述:

重新设 置状态机

EthTSyn_MainFunction函数定义

函数名称:

EthTSyn_MainFunction

函数原型:

void EthTSyn_MainFunction(

void

)

服务编号:

0x09

功能概述:

循环调用函数

可配置函数定义

无。

配置

配置列表

表5-1属性描述

UI名称

该配置项在配置工具界面显示的名称

取值范围

该配置项允许的取值区间

默认取值

该配置项默认的配置值

参数描述

该配置项在标准的AUTOSAR_EcucParamDef.arxml文件中的描述

依赖关系

该配置项与其他模块或配置项的关系

EthTSynGeneral

image4

图5-1 EthTSynGeneral工具配置

表5-2 EthTSynGeneral配置描述

UI名称

描述

EthTSynDestPhyAddr

取值范围

默 认取值

0 1:80 :C2: 00:0 0:0E

参数描述

EthTSyn GPTP帧的 目标物理硬件地址 (MAC地址). 输入格式必须 匹配十六进制xx: xx:xx:xx:xx:xx。

依赖关系

Eth TSynDevErrorDetect

取值范围

True、False

默 认取值

F alse

参数描述

开关开发错 误的检测和通知。

依赖关系

EthTSynHardwa reTimestampSupport

取值范围

True、False

默 认取值

参数描述

开关以太网硬件的 硬件时间戳功能。

依赖关系

EthTSyn MainFunctionPeriod

取值范围

0 .. INF

默 认取值

参数描述

EthTSyn_MainFu nction主函数调用 周期。单位:秒。

依赖关系

EthTSynMasterSlav eConflictDetection

取值范围

True、False

默 认取值

f alse

参数描述

开关主从冲 突的检测和通知。

依赖关系

EthTSy nMessageCompliance

取值范围

True、False

默 认取值

参数描述

True: 使用IEEE 802 .1AS的信息格式。

False: 使用IEEE 802.1AS 的信息 格式加上AUTOSAR 的扩展。

依赖关系

Eth TSynVersionInfoApi

取值范围

True、False

默 认取值

f alse

参数描述

开关获取 版本信息的接口。

依赖关系

Eth TSynTxConfirmation

取值范围

0..INF

默 认取值

0

参数描述

等 待发送确认的超时 时间。单位:秒。

依赖关系

EthTSynGlobalTimeDomain

image5

图5-2 EthTSynGlobalTimeDomain工具配置

表5-3 EthTSynGlobalTimeDomain配置描述

UI名称

描述

EthTSynG lobalTimeDomainId

取值范围

0 .. 31

默 认取值

参数描述

全局时间域ID。

依赖关系

EthTSynSynchr onizedTimeBaseRef

取值范围

reference

默 认取值

参数描述

必要的 对时间基的引用。

依赖关系

StbMSync hronizedTimeBase

EthTSynGlobalTimeFollowUpDataIDList


image6

图5-3 EthTSynGlobalTimeFollowUpDataIDList工具配置

image7

图5-4 EthTSynGlobalTimeFollowUpDataIDListElement工具配置

表5-4 EthTSynGlobalTimeFollowUpDataIDListElement配置描述

UI名称

描述

EthTSynG lobalTimeFollowU pDataIDListIndex

取值范围

0 .. 15

默 认取值

参数描述

用于CRC 计算和信息校验Fo llow_Up报文的Dat aIDList的Index。

依赖关系

不可配,自 动根据顺序生成。

EthTSynG lobalTimeFollowU pDataIDListValue

取值范围

0 .. 255

默 认取值

参数描述

用于C RC计算和信息校验 Follow_Up报文的 DataIDList的值。

依赖关系

EthTSynPortConfig


image8

图5-5 EthTSynPortConfig工具配置

表5-5 EthTSynPortConfig配置描述

UI名称

描述

EthTSynFramePrio

取值范围

0 .. 7

默 认取值

参数描述

该可选项若 存在,则代表通过 VLAN(用作3-bit PCP field)发出的 EthTSyn报文的优 先级。如该可选项 不存在,则帧不存 在优先级以及VLAN Field。

依赖关系

EthTSynGlobal TimeDebounceTime

取值范围

0 .. 4

默 认取值

参数描述

同一组S ync报文和Follow_ Up报文的发送间隔 时间。单位:秒。

依赖关系

EthTSynGl obalTimeEthIfRef

取值范围

reference

默 认取值

参数描述

对Eth If的引用,用于获 取全局时间信息。

依赖关系

EthIfController

image9

图5-6 EthTSynPdelayConfig工具配置

表5-6 EthTSynPdelayConfig配置描述

UI名称

描述

E thTSynGlobalTime PdelayRespEnable

取值范围

True、False

默 认取值

true

参数描述

开关 Pdelay_Resp / Pdela y_Resp_Follow_Up 报文的发送。

依赖关系

E thTSynGlobalTime PropagationDelay

取值范围

0 .. 4

默 认取值

0

参数描述

如果开启cyclic propagation delay mea surement,该参数 代表propagation delay的默认值 直到第一个实际测 量的propagation delay可用。

如果关闭cyclic propagation delay m easurement,这个 值将代替实际测量 的值,变成一个固 定值。单位:秒。

依赖关系

Et hTSynGlobalTimeT xPdelayReqPeriod

取值范围

0 .. INF

默 认取值

参数描述

发送Pdelay _Req报文的周期时 间,取值0代表不 发送。单位:秒。

依赖关系

EthTSynPdelay LatencyThreshold

取值范围

0 .. INF

默 认取值

1E-5

参数描述

计算出的 Pdelay的界限。如 果超出该配置值, 则该Pdelay应该被 舍弃。单位:秒。

依赖关系

EthTSyn PdelayRespAndRes pFollowUpTimeout

取值范围

0 .. 4

默 认取值

参数描述

发出Pde lay_Req后等待Pde lay_Resp的超时时 间,或者收到Pdel ay_Resp之后等待P delay_Resp_Follo w_Up的超时时间。 取值0代表不检测 超时。单位:秒。

依赖关系

image10

图5-7 EthTSynPortRole工具配置

image11

图5-8 EthTSynGlobalTimeMaster工具配置

表5-7 EthTSynGlobalTimeMaster配置描述

UI名称

描述

EthTSy nCyclicMsg ResumeTime

取值范围

0 .. INF

默 认取值

0

参数描述

在立即传 输之后,间隔多久 发送第一帧常规循 环时间同步报文。 单位:秒。

依赖关系

EthTSynGl obalTimeTx CrcSecured

取值范围

CRC_SUPPORTED/

C RC_NOT_SUPPORTED

默 认取值

无 |



参数描述

发送报文的CRC 校验的支持形式。

依赖关系

当 其为CRC_SUPPORTE D时,则需配置Eth TSynGlobalTimeFo llowUpDataIDList 和EthTSynCrcTime FlagsTxSecured。

EthTS ynGlobalTi meTxPeriod

取值范围

0 .. INF

默 认取值

无 |


参数描述

时间 同步报文循环发送 周期。单位:秒。

依赖关系

EthT SynImmedia teTimeSync

取值范围

True、False

默 认取值

无 |


参数描述

开 关在EthTSyn_Main Function()主函数 中对StbM_GetTim eBaseUpdateCount er()的周期调用。

依赖关系

EthTSyn TLVFollowU pOFSSubTLV

取值范围

True、False

默 认取值

无 |


参数描述

是否使用AUTOSAR Follow_Up TLV OFS Sub-TLV。

依赖关系

EthTSynTLV FollowUpSt atusSubTLV

取值范围

True、False

默 认取值

无 |


参数描述

是否使用AUTOSAR Follow_Up TLV Status Sub-TLV。

依赖关系

EthTSynT LVFollowUp TimeSubTLV

取值范围

True、False

默 认取值

无 |


参数描述

是否使用AUTOSAR Follow_Up TLV Time Sub-TLV。

依赖关系

Et hTSynTLVFo llowUpUser DataSubTLV

取值范围

True、False

默 认取值

无 |



参数描述

是否使用AUTOSAR Follow_Up TLV UserData Sub-TLV。

依赖关系

Et hTSynCorre ctionField

取值范围

0. .281474976710655

默 认取值

0x0

参数描述

This represents the correctionField that is used when transmitting Messages by Master. Unit: nanoseconds.

依赖关系

Eth TSynCumula tiveScaled RateOffset

取值范围

0..0xFFFFFFFF

默 认取值

0

参数描述

This represents the Cumulative ScaledRateOffset that is used when transmitting Messages by Master

依赖关系

EthTSynCrcTimeFlagsTxSecured

image12

图5-9 EthTSynCrcTimeFlagsTxSecured工具配置

表5-8 EthTSynCrcTimeFlagsTxSecured配置描述

UI名称

描述

EthTSynCrcC orrectionField

取值范围

True、False

默 认取值

False

参数描述

是否在 CRC计算中包括Fo llow_Up报文中的C orrectionField。

依赖关系

EthTSynC rcDomainNumber

取值范围

True、False

默 认取值

False

参数描述

是否 在CRC计算中包括 Follow_Up报文中 的domainNumber。

依赖关系

EthTSynCr cMessageLength

取值范围

True、False

默 认取值

False

参数描述

是否 在CRC计算中包括F ollow_Up报文中的 messageLength。

依赖关系

EthT SynCrcPreciseO riginTimestamp

取值范围

True、False

默 认取值

True

参数描述

是否在CRC计算 中包括Follow_Up 报文中的preciseO riginTimestamp。

依赖关系

EthTSy nCrcSequenceId

取值范围

True、False

默 认取值

False

参数描述

是 否在CRC计算中包 括Follow_Up报文 中的sequenceId。

依赖关系

EthTSynCrcSour cePortIdentity

取值范围

True、False

默 认取值

False

参数描述

是否在CR C计算中包括Follo w_Up报文中的sour cePortIdentity。

依赖关系

image13

图5-10 EthTSynGlobalTimeSlave工具配置

表5-9 EthTSynGlobalTimeSlave配置描述

UI名称

描述

Et hTSynGloba lTimeFollo wUpTimeout

取值范围

0 .. INF

默 认取值

0

参数描述

Follow_Up报 文的超时时间(收 到对应Sync报文之 后)。单位:秒。

依赖关系

E thTSynRxCr cValidated

取值范围

CRC_IGNORED/

CR C_NOT_VALIDATED/

CRC_OPTIONAL/

CRC_VALIDATED

默 认取值

无 |







参数描述

接收报文 的CRC校验形式。

依赖关系

当其为CRC_OPTI ONAL或CRC_VALIDA TED时,则需配置E thTSynGlobalTime FollowUpDataIDLi st和EthTSynCrcFl agsRxValidated。

E thTSynGlob alTimeSequ enceCounte rJumpWidth

取值范围

1 .. 65535

默 认取值

65535

参数描述

指定 序列计数器在两个 连续同步消息之间 允许的最大跳转。

依赖关系

EthTSynCrcFlagsRxValidated

image14

图5-11 EthTSynCrcFlagsRxValidated工具配置

表5-10 EthTSynCrcFlagsRxValidated配置描述

UI名称

描述

EthTSynCr cCorrectionField

取值范围

True、False

默 认取值

False

参数描述

是否在 CRC计算中包括Fo llow_Up报文中的C orrectionField。

依赖关系

EthTSy nCrcDomainNumber

取值范围

True、False

默 认取值

False

参数描述

是否 在CRC计算中包括 Follow_Up报文中 的domainNumber。

依赖关系

EthTSyn CrcMessageLength

取值范围

True、False

默 认取值

False

参数描述

是否 在CRC计算中包括F ollow_Up报文中的 messageLength。

依赖关系

EthTSynCrcPrecis eOriginTimestamp

取值范围

True、False

默 认取值

True

参数描述

是否在CRC计算 中包括Follow_Up 报文中的preciseO riginTimestamp。

依赖关系

EthT SynCrcSequenceId

取值范围

True、False

默 认取值

False

参数描述

是 否在CRC计算中包 括Follow_Up报文 中的sequenceId。

依赖关系

EthTSynCrcSo urcePortIdentity

取值范围

True、False

默 认取值

False

参数描述

是否在CR C计算中包括Follo w_Up报文中的sour cePortIdentity。

依赖关系