PIC WWVB时钟设计
扫描二维码
随时随地手机看文章
有很多DIY WWVB在网络上的时钟设计的版本。商业的“原子”的钟表价格便宜和广泛使用,但我想试试我的手,在设计一个获得接收到WWVB的洞察和了解一点点编程PIC单片机。我的版本是不是最简单的,但它工作得很好,我认为它提供了一些独特的功能。
WWVB时钟功能
接收时间播出WWVB,堡垒Collins,COWWVB时间自动同步与内部时间WWVB信号丢失时保持本地时间这个版本是太平洋标准时间,并自动检测/纠正Daylignt储蓄时间6位数字显示小时,分钟,秒使用1“七段LED显示WWVB同步指示器时间显示在12小时格式的PIC 16F628单片机用C语言编写的软件所有的工具(原理图编辑器,C编译器,PCB布局软件,PIC的程序员都是免费的,在网络上可供下载。
WWVB信号播出时间为60 kHz载波AM调制代码框架,是每分钟更新一次。数据传输速率是一个比特每秒。随着时间码信息,还包含数据帧同步位,日历数据,UT1之校正,闰年,闰秒的数据 。这里介绍的时钟设计只解码数据的时间和夏令时的校正数据 。该软件可以很容易地被修改,包括其他信息位解码,如果需要的话。的低频率WWVB的信号强度弱,可以接收问题 。信号采集时间是可变的,位置和大气条件而定 。接待处是通常情况下,最好在晚上八时至晚上-上午04时。要使用的时钟,只要接通电源,并等待接收WWVB信号 。时钟接收到一个完整的无差错的数据帧时,它会自动复位,以显示正确的时间显示 。在最初的时间校正,时钟将保持一段时间,即使失去WWVB接待。
硬件描述
如在原理图所示,时钟的核心是一个PIC 16F628微控制器运行在4 MHz 。解码的实时数据是按顺序输出至七段解码器/驱动程序上的4位数据总线的微控制器(RA0 - RA3)。数据输出顺序秒,分,秒,分钟,小时和10小时10秒10。微控制器输出(RB1,RB2,RB3)路由10微秒stroble的脉冲RB4的出每个七段解码器/驱动程序,在适当的时间锁存数据总线值。秒和10秒显示值每秒更新一次。分钟,10分钟,小时和10小时每分钟更新一次。显示由1“橘红色的LED七段显示器上显示的小数点是用来形成冒号分开秒,分钟,小时,10秒和10分钟显示安装倒挂形成上部结肠点。WWVB接收的C - MAX模型CMMR - 6是从Digi - Key的一部分561 - 1014 - ND完成loopstick天线。从接收器的数据输出采样RB0的微控制器。
我已经建立了两个时钟,一个使用点,以点布线和使用PCB。两个版本都表现良好。只要保持接收器远离噪声源和电线/走线长度尽可能短,以减小电感。我发现接收器是由电源产生的磁场也很敏感。我用一个9V,200毫安,而不是一个内部电源“壁疣”,以消除这个问题。既包含了主板和一个单一的布局,以节省两个单独的电路板成本上的显示板。从PCB 发送Gerber文件和使用他们的“裸骨”的过程 。“裸骨”的过程中,不包括阻焊也不丝印。切断主电路板显示板,并安装直角到主板和它们连接在一起使用的垫提供 。
软件简介
我用C编译器的源升压开发软件。,从PIC定时器2模块。基本时序设置为接收器采样和内部时间传播提供32个中断/秒。接收到的数据进行采样,每秒32样本。软件交叉关联存储的“理想”样本一,零,和同步模式的输入样本。确定在连续两个连续的同步比特的数据帧的开始。当检测到这种模式,秒的数据被重置为零,后续位或零的提取分钟和小时的数据检测。只有时间显示有关的数据进行解码。内的数据帧不包含时间数据位被忽略。31出的32位检测互相关算法需要接收到的数据和存储的“理想”的同步模式之间的样本协定。开启时同步检测和关闭时同步丢失秒位数的小数点。位和零的检测需要28 32接收到的数据和存储的“理想”的模式之间的样本协议。如果检测到的任何位不符合或超过相关的阈值,整个画面被丢弃,并启动一个新的帧同步搜索。当成功地检测到同步和所有的一帧的时间内数据是,数据被修正为太平洋标准时间和夏令时。该软件必须改变为其他时区的正确更正。还纠正一个WWVB在每个数据帧开始的有效时间所造成的偏移分钟的时间。完全矫正的时间转换为一个12小时的格式,然后更新内部的时间值。如果WWVB信号丢失,内部时间继续从它是依赖PIC晶体振荡器传播时间WWVB,直到下一个数据帧接收和验证。