哪个操作系统为cortex-m4提供NTPd或类似功能,以启用与GPS-PPS的时间同步

时间:2014-09-25 14:41:42

标签: time gps arm cortex-m ntpd

我收到这3块板作为礼物。

STM32F407高性能发现板 http://www2.mouser.com/Search/ProductDetail.aspx?R=STM32F4DISCOVERYvirtualkey51120000virtualkey511-STM32F4DISCOVERY

STMicroelectronics STM32F411 Nucleo板 http://www2.mouser.com/Search/ProductDetail.aspx?R=NUCLEO-F411REvirtualkey51120000virtualkey511-NUCLEO-F411RE

STM32F429 Discovery Kit Board http://www2.mouser.com/Search/ProductDetail.aspx?R=STM32F429I-DISCOvirtualkey51120000virtualkey511-STM32F429I-DISCO

他们有这些CPU:

STM32F407 @ 168 MHz STM32F411 @ 100 MHz STM32F429 @ 180 MHz

我还有一个很好的GPS模块,带有串行和PPS输出。 我想知道这些CPU /板之一是否存在小型Linux版本,允许我配置NTPd服务以使内部时钟与GPS同步,就像在Raspberry PI等其他板上看到的那样。

据我了解,通常NTPd还使用网络接口与其他时间服务器连接或在网络上发布信息。这些主板没有网络芯片/连接器,实际上我并不想将它们与外部世界连接起来。我只会在选择的板上使用同步时钟。

作为小型Linux版本的替代品,对于不同的嵌入式或实时操作系统,这是否可行?

或仅使用NTPd端口?

谢谢

添加了文字:

我想找到重用现有代码的最佳方法,从gps中获取时间,写入rtc并同步到PPS。

我知道读取GPS通过串行接收时间并写入rtc很容易,但我还需要使用PPS信号的同步逻辑,以便在我的预算限制内获得尽可能低的抖动。

我需要省钱,不能购买现成的设备。如果我可以避免使用操作系统并坚持使用更小的东西,如RTOS或嵌入式或自定义代码......我会很高兴:-)

我提到NTPd因为我知道(我的限制)唯一允许这些东西(以及其他东西)的东西。

其他人是否已经“剥离”与PPS同步相关的代码部分?或者它们实际上是NTPd和PPS的核心,只是插入了一个像网络服务器那样的额外来源?

请注意,我是NTPd内部工作的全新手。我刚刚在覆盆子pi上配置了gps-pps-ntpd同步,遵循网络可用的指令来测试这个概念,但这并没有让我......成为NTPd的专家: - )

1 个答案:

答案 0 :(得分:1)

我猜你可以读取GPS输出来获取时间,然后你应该使用GPS接收器的PPS输出作为RTC的触发器 - 这样你就可以使用实际的"值"只有一次,每次PPS线上的边沿发生时,RTC定时器将递增。为此,只需将此信号连接到OSC32_IN输入,将RTC配置为使用"外部时钟" (不是"外部水晶"!)并将预分频器设置为0.我不认为你可以比那更精确......