数码之家

 找回密码
 立即注册
搜索
查看: 3618|回复: 184

[C51] 中国码电波钟改造之原理及解码验证

    [复制链接]
发表于 2024-9-1 16:14:47 | 显示全部楼层 |阅读模式
本帖最后由 mmxx2015 于 2024-9-4 16:41 编辑

一、什么是中国码电波钟

中国码电波钟是指通过接收商丘BPC授时台授时信号对时的各种钟表,包括手表、数码钟、指针钟。BPC授时台发送载波频率68.5KHz的OOK调制信号,电波钟接收解调后经CPU解码得到时间信息。


二、中国码电波钟特点

优点:低功耗,接收模块工作电流<1mA;不依赖网络,中国大部分地区都可接收到。
缺点:离发射台约远的信号越弱,接收越困难,尤其是白天,以这里为例(距发射台约1400Km),使用X宝卖的接收模块测试,窗外晚上约一半时间可以接收到,白天几乎收不到;数据校验很弱,信号弱时可能会解析错数据。


三、接收中国码电波钟信号需要什么设备

可以使用X宝卖的接收模块,10cm磁棒天线+模块15元,20cm磁棒天线+模块35元,这种模块使用的接收芯片一般是CME6005或MAS6180B,CME6005有正反脉冲输出,MAS6180B只有正脉冲输出,一般电波钟使用的是正脉冲作为信号输入;用分立元件搭建接收电路,尝试画XJW01(许剑伟)设计的接收电路,发现板子大小9x3cm,就算再优化,估计只能做到6x3cm左右,比买的模块大许多。

X宝卖的接收模块:



四、中国码电波钟解码

中国码电波钟编码资料网上很容易找到,附件是我找到的比较完整、准确的版本。


下面以一帧高电平有效的信号为例简单说一下中国码电波钟解码方法。

一帧电波钟数据大致如下图:


电波钟信号解码的关键是读取脉冲宽度,精度不需要太高,只需1mS左右读取一次电波钟模块输出信号即可。

电波钟信号解码过程:
(1)空闲脉冲:等待1秒以上的连续低电平;
(2)接收到空闲脉冲后,进入19个高电平脉冲接收过程(如果接收到异常信号,如脉冲太窄或太宽,丢弃数据,从第(1)步开始接收下一帧数据);
(3)接收完19个脉冲后转存数据,从第(1)步开始接收下一帧数据;
(4)如果有待解析的转存数据,解析数据,如果数据有效,保存解析出的数据,根据最后一个脉冲的编码延时(1000-100)~(1000-400)mS后使用保存的数据(每个脉冲1秒,高电平只是脉冲的一部分)。

电波钟信号解码流程图:

(1)BPC解析总框图



(2)读取BPC信号



(3)解析BPC信号



(4)使用解析BPC数据




解码数据增强可靠性处理:
因为BPC编码使用奇偶校验可靠性比较弱,需要辅助其它方法确保数据可靠。
(1)成功接收多帧数据才使用。可以连续接收成功2~3帧数据才使用,这几帧数据之间还可以进一步校验,比如时间差小于阈值才使用。
(2)异常数据排除。根据BPC编码协议,星期编码从0~6(0表示星期日;网上流传的电波钟对时模拟软件星期日的编码使用7,购买的几个电波钟也接受星期日编码=7,可以按有效编码0~7处理),年编码从0~99(猜测),月编码1~12,日编码1~当月最多天数,P1脉冲最大值=2,这些有效编码外的数据均做无效数据处理。



五、中国码电波钟解码程序实例

以下是用X宝买的电波钟接收模块+中颖SH79F6481P+12864LCD实现的解码程序,逻辑与上面的流程图接近,接收、解码程序在User_BPC.c、User_BPC.h中,如果移植到其它8051芯片,只需把这两个文件包含进工程,少量修改,按要求的时间间隔调用即可实现相同的功能,如果移植到非8051芯片,部分计算程序需要修改。

硬件原理图:


Keil C51工程:



接收成功演示视频:



六、中国码电波钟解码辅助测试程序

如果离授时台的距离、干扰比较强等原因导致无法正常接收到对时信号,无法调试解码程序,这种情况下可以用模拟BPC信号来调试解码程序,模拟BPC信号有2种方式:
(1)直接脉冲方式:直接模拟电波钟接收模块输出的脉冲。这种方式直接将模拟信号输入主控芯片,不需要电波钟接收模块。
(2)调制信号方式:模拟装置输出和授时台一样与日期、时间关联的68.5KHz信号,可以使用网上流传的电波钟对时模拟软件通过耳机输出特定音频信号实现,不过,实测这种方式产生的信号比较弱,对时成功率不高,可以用单片机产生68.5KHz 50%占空比PWM驱动耳机或喇叭实现,实测5V工作输出模拟信号驱动4cm喇叭产生的信号强很多,离喇叭40cm都可以对时。

以下是用STC8H8K64U实现的直接脉冲方式模拟程序,默认P50输出BPC脉冲,高电平有效,可以通过修改Interface.h、Option.h里的条件编译设置改为其它I/O或低电平有效。

硬件原理图:


Keil C51工程:



Interface.h
  1.     //BPC IO设置
  2.     //P50(直接脉冲模式)
  3.     #define        BPC_IO_Mode_Set()        P5M1&=(~BIT0); P5M0|=BIT0;
  4.     #define        BPC_IO_High()                P50=1;
  5.     #define        BPC_IO_LOW()                P50=0;
复制代码

Option.h
  1.     #define        C_BPC_PULSE_HIGH                1                        //1--BPC高电平有效
复制代码

如果要修改为调制信号模拟,修改Interface.h设置, 由输出高低电平改为开关68.5HKz PWM。

  1.     //(68.5KHz PWM载波模式)
  2.     #define        BPC_IO_Mode_Set()        //设置PWM为68.5KHz 50%占空比
  3.     #define        BPC_IO_High()                //68.5KHz PWM OFF
  4.     #define        BPC_IO_LOW()                //68.5KHz PWM ON
复制代码


顺便说一下,我在海鲜市场上看到有用ESP8266模拟BPC对时信号的模块,使用直接脉冲方式模拟,配置模块连接WIFI对时后再把信号输出到电波钟,对电波钟信号弱地区外部电源供电的电波钟比较有用。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 9家元 +267 收起 理由
b26359 + 30 優秀文章
springvirus + 30
hongo + 27 優秀文章
aping365 + 30 優秀文章
newnet1234 + 30 謝謝分享
sunnyquan + 30
cbh1a + 30 優秀文章
jf201006 + 30 優秀文章
闻太师 + 30

查看全部打赏

发表于 2024-9-1 16:25:31 | 显示全部楼层
感觉好高深啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-1 16:28:03 | 显示全部楼层

其实,和读按键、点灯的难度差不多。
回复 支持 反对

使用道具 举报

发表于 2024-9-1 16:31:49 | 显示全部楼层
手机好像也可以模拟电波
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-1 16:35:26 | 显示全部楼层
附上XJW01(许剑伟)写的电波钟制作文章:低频时码接收机电路(JJY60,BPC)。这篇文章网上现在已经找不到原版了,挂钟之类的可以制作文章中的大面积天线提高接收灵敏度。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-1 16:43:41 | 显示全部楼层
douzi707 发表于 2024-9-1 16:31
手机好像也可以模拟电波

无论是电脑还是手机模拟,都是让喇叭、耳机发出特定频率、长度的声音,利用这个声音的谐波传输信号,因为不是基波频率,所以,信号比较弱。
这是网页模拟时耳机上的波形:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 0 反对 0

使用道具 举报

发表于 2024-9-1 17:43:41 | 显示全部楼层
楼主好手艺,没有WiFi信号的地方,使用电波钟,有WiFi时,还是使用WiFi钟比较方便。
回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-1 19:05:12 | 显示全部楼层
这个准确度高呀!!!
回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-1 19:32:24 | 显示全部楼层
liding 发表于 2024-9-1 19:05
这个准确度高呀!!!

可以说非常高
回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-1 20:45:46 | 显示全部楼层
好东西啊
感谢楼主分享哈
回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-1 21:41:14 | 显示全部楼层
这个比较专业了
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-9-1 22:11:10 | 显示全部楼层
pn3353 发表于 2024-9-1 21:41
这个比较专业了

解码过程和读按键差不多,很简单的,难的是高灵敏的接收电路设计,因为很多地方信号比较弱。
回复 支持 反对

使用道具 举报

发表于 2024-9-1 22:39:58 | 显示全部楼层
mmxx2015 发表于 2024-9-1 22:11
解码过程和读按键差不多,很简单的,难的是高灵敏的接收电路设计,因为很多地方信号比较弱。 ...

确实,处理这种弱信号不容易
回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-2 05:42:17 | 显示全部楼层
现在WIFI已经是居家必备了,因此WIFI钟更实用。
回复 支持 反对

使用道具 举报

发表于 2024-9-2 07:58:42 | 显示全部楼层
wblqx 发表于 2024-9-2 05:42
现在WIFI已经是居家必备了,因此WIFI钟更实用。

断网了怎么用呢
回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-2 08:35:28 | 显示全部楼层
日本码的可以改成中国码的么?
回复 支持 反对

使用道具 举报

发表于 2024-9-2 09:16:09 | 显示全部楼层
一味的追求小体积,灵敏度肯定差,如果用一米的碳棒做天线会不会效果好些呢。
回复 支持 反对

使用道具 举报

发表于 2024-9-2 09:16:22 | 显示全部楼层
WiFi时钟价格相对便宜
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-9-2 09:45:07 | 显示全部楼层
wblqx 发表于 2024-9-2 05:42
现在WIFI已经是居家必备了,因此WIFI钟更实用。

要综合考虑,电波钟不需要任何设置就能用,wifi对时对那些设置时间都不会的老人来说不好用。wifi对时的钟耗电量大,更适合外接电源供电的钟,看到有人说买了个电池供电wifi对时的钟,每天对时一次,不到三个月就把电耗完了,又换了一个一个星期对时一次的,耗电少了一些。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-9-2 09:47:37 | 显示全部楼层
blueruby 发表于 2024-9-2 08:35
日本码的可以改成中国码的么?

取决于软硬件设置,如果设计时预留就可以改,否则就没办法。如果实在要用,可以模拟一个信号源让它对时,信号源的时间可以来着wifi、卫星导航时间、中国码电波钟信号。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-9-19 18:03 , Processed in 0.265201 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表