-2

我有一个继电器触点闭合事件,需要用 GPS 和 PPS 输出准确地加上时间戳(1 毫秒)......我不确定如何将继电器触点输出馈送到微控制器,然后将微控制器时钟与 GPS 同步...加上究竟如何获得UTC?你能帮我么。谢谢

4

1 回答 1

0

如果您的微控制器至少有两个基于硬件引脚的中断,您可以将继电器连接到一个产生中断的引脚,将 PPS 连接到另一个产生中断的引脚。

您需要将 NMEA(或 GPS 的其他专有协议)连接到微控制器中的相应端口。一些常见的总线是 UART 或 SIP。

然后,每次收到 PPS 中断时,启用一个全局标志,该标志可在主循环中用于重置计数器。该计数器将告诉您继电器切换到 PPS 的距离(如果它发生在该秒内)。如果您知道计数器的基本频率,则可以将计数器转换为几分之一秒。请注意,如果必须检测继电器状态变化的两个边沿,您将需要一个能够在两个边沿上中断的中断源(或使用两个中断)

然后,如果 Relay 中断关闭,您可以在中断时获取计数器的值,并将其保存在存储中,将其发送到主机等。(注意,最好将值保存在 RAM 中,抬起一个标志“存在价值”,并将发送/存储留给主循环,然后关闭标志)。

最后,当您收到完整的 NMEA 消息(例如,这可能在您的主循环中由状态机解析)时,您可以将此信息与您保存的计数器一起发送到主机或存储,以计时您的中继状态更改. 请注意,NMEA 消息将在 PPS 的一定延迟下生成和解码,因此您需要对此进行补偿。

于 2016-02-09T04:49:19.940 回答