88E6352应用
网关
车载信息娱乐
车身域控制器
PTP
PTP通过周期型地交换控制包实现
- 选择其中网络最佳质量时钟元素,作为PTP网络中Grand Master.没有Grand Master 节点变成PTP slave节点。
- PTP节点从Grand Master节点获得他们驱动频率和时间信息。
基本观念是PTP帧的时间戳经可能接近物理线束。
为了支持PTP协议,设备在Packet包和识别转发给CPU的PTP消息中,编码EtherType/Sub-type场。设备的802.1AS控制帧时间戳从离开的节点到被给的节点。设备支持全灵活的配置16种PTP帧类型时间戳在使用MsgldTSEn(PTP全局寄存器偏移0x1)。PTP帧类型通过Msgld场描述,如下。
ptp帧结构
PTP通讯
PTP核基于EtherType和Sub-type场回应帧,确定帧的时间戳信息是否可用。在PTPcore中,注意 帧事件消息帧可以获得时间戳。设备支持两个到达计数和一个离开计数器。确保更多的到达事件在硬件上能够步骤。例如,从Grand Master发出同步帧PDelayReq或者PDelayResponse消息能够同时达到被给Slave节点。
switch交换机数据管道 识别和接收到使用组播的目标地址,会通过PTP帧和转发它到CPU_DEST(Global offset 0x1A)。在接收的PTP帧在修订时,发送CPU_DEST需加一个To_CPU DSA标识。设备支持two-step PTP时钟,其中紧接着的一个消息通过软件节点定时被发出。
当PTPArrIntEn(PTP Global Config register 0x03)设置在0x1,一个通过硬件生成中断,同时PTP事件消息通过硬件打上时间戳。
PTPArr0IntStatus(PTP Port Status Register offset 0x0)和PTPArr1IntStatus(PTP Port Status Register offset 0x4)指定是否处理收集错误到达时间戳触发情况。
在时间戳寄存器PTPArr0Time(PTP Port Status Register Offset 0x01 & 0x02)或者PTPArr1Time(PTP Port Status Register Offset 0x05 & ox06 )成功捕捉时间戳后,相对应的无效位PTPArr0TimeVaild(PTP Port Status Register Offset 0x0) 或者 PTPArr1TimeVaild(PTP Port Status Register Offset 0x04)位被设置。
类似的PTP到达中断寄存器和时间戳寄存器,这里设备支持PTP帧离开中断和时间戳寄存器。设备也能够捕捉到从到达和离开PTP帧公共头ID,确保软件能够在正确PTP帧中解析时间戳信息。
当PTP软件接收到帧,各自的场需要定时更新和帧需要向前到下级PTP从节点。软件的PTP帧到达到硬件被标记为From_CPU DSA 标识帧。
注意每一个端口PTPInt(PTP Global Status Register 0x08)位被设置,当PTP帧时间戳到达时,PTPArrIntEn被设置端口或者当一个外向PTP帧时间戳和PTPDepIntEn设置端口。在软件读取和清除PTPArr0TimeVaild(PTP Port Status register offset 0x0)或者PTPArr1TimeVaild(PTP Port status register offset 0x04)中断位被清除。PTP帧入口要求时间戳相关中断和之后软件清除PTPDepTimeVaild(PTP Port Status register offset 0x08)出口时间戳PTP帧。
当ptp帧在入口时流经交换机数据路径时,它可能会由于队列拥塞、策略、CRC而被丢弃,例如,原因输出可能由于CRC校验或者策略原因。硬件通过增加PTPTSArrDisCtl(PTP端口状态寄存器偏移0x0D)或PTPNonTSArrDisCtl(PTP端口状态寄存器偏移0x0D)来跟踪这样的丢弃事件。PTPTSArrDisCtr不断增加需要时间戳的PTP帧和PTPNonTSArrDisCtl不断增加不需要时间戳的PTP帧。相同的,这里有两个硬件支持出发计数器名为PTPTSDepDisCtl(PTP Port Status register offset 0x0D)和PTPNonTSDepDisCtl(PTP Port Status register offset 0x0D).
配置GPTP
配置switch global寄存器
配置avb命令寄存器
位BIT | 场FILLD | 类型TPYE | 描述 |
---|---|---|---|
15 | AVBBusy | SC | AVB单元忙。为1时,开始AVB操作。AVB操作只能在位从1设置为0才能完成。当AVB需求操作完成后,该位自动清零。 |
14:12 | AVBOp | RWR | AVB单元操作码。设备支持AVB操作(当帧传输到交换机,这些操作能够被执行):000:不操作 。011 = 写入下面AVBAddr所指向的寄存器。AVBData寄存器写的内容在选择寄存器。100 = 读入下面AVBAddr所指向的寄存器。数据从选择的寄存器传输到AVBData 寄存器。110=读取下面AVBAddr寄存器地址位定义的寄存器的post increment。对于PTP数据结构,该命令指示硬件从AVBAddr位置开始拍摄4个连续数据寄存器的快照。这用于捕捉宽度超过16位的时间计数器值以及序列标识符信息。 |
11:8 | AVBPort | RWR | 指定物理设备端口。例如,该场被设置为为0x1,AVB寄存器属于端口1。使用0xF值访问AVB Global寄存器。访问PTP global 寄存器,设置AVBBlock为0x0和AVBPort为0xF。访问TAI(Time Application Interface)Global寄存器,设置AVBBlock为0x0和设置AVBPort为0xE。访问AVB 公共global寄存器,设置AVBBlock为0x1和设置AVBPort为0xF.访问Qua global寄存器,AVBBlock为0x2和设置AVBPort为0xF。 |
7:5 | AVBBlock | RWR | 这个场设定设备锁定地址。例如,在AVB寄存器空间,该场选择块如PTP,SRP和Qav。在选择指定块地址选择AVBAddr。ox0:选择PTP寄存器.0x1:选择AVB公共寄存器空间。0x2:选择Qav寄存器空间。0x3~-0x7保留。 |
4:0 | AVBAddr | 这些位标识在上面指定的AVBOp位中指定的寄存器操作的地址位。 |
配置AVB数据寄存器
位BIT | 场FILLD | 类型TPYE | 描述 |
---|---|---|---|
15:00 | AVBdata | RWR | AVB数据位。这些位表明了读数据和写数据都依靠于AVB命令寄存器(Offset 0x16)。例如读操作,硬件逻辑从指定地址(AVB命令行寄存器)取数据和存储这些数据位。写操作例子,硬件逻辑利用场数据位 写指定地址位值在AVB命令寄存器。AVB寄存器的内容通过AVBBlock记录 |
参考连接
88e6352资料介绍:https://cn.marvell.com/content/dam/marvell/en/products/assets/automotive/ethernet/documents/marvell-automotive-ethernet-88ea6352-product-brief-2019-03.pdf