[转帖]AVB时间问题
大家好,
我有2个 Slicekits,这是与交换机相连。该交换机通过以太网提供了一个AVB Masterclock到Slicekits。我尝试在Slicekits切换LED同步到AVB时钟。该LED应在同一时间改变自己的状态,但在Slicekits之间有40 - 80毫秒的延迟。这是很大的,如果延迟也不会转回去会高于2毫秒。我使用的是“app_simple_avb_demo”的修改版,这是我使用到的切换 LED的代码。也许有人可以告诉我,什么是错。
PS:
Obviosly我使用的是AVB交换机,而不是正常的。
while (1)
{
#pragma ordered
select
{
// toggle 4-bit LED array
case tmr when timerafter(end_time):> void:
{
led <: led_value;
led_value++;
end_time+=toggle;
}
break;
// Get requested time information
case ptp_get_requested_time_info_mod64(c_ptp, timeInfo):
{ tmr:> start_time;
time=timeInfo.ptp_ts_lo + ((unsigned long long) timeInfo.ptp_ts_hi < < 32);
end_time= start_time+(toggle-((time/10) % toggle));
}
break;
// Request new time information from gptp server
case tmr2 when timerafter(t):> t:
{
ptp_request_time_info_mod64(c_ptp);
t += TIMEINFO_UPDATE_INTERVAL;
}
break;
}
}
回答:
您好,我相信你测量的毫秒延迟时间用 xscope prints仪器在你的代码等级。这将是有趣的,知道其中的两个端点发出请求到服务器GPTP时间实例。这也是值得以确保有这些端点的请求可能也会导致在服务器中的不同时间取样请求之间没有大的增量。还有一个测试应用程序在XMOS的git库可用来验证GPTP。请看看这是否有帮助。
发表时间:2014年8月9日12:18:23