作为一名喜欢折腾的腕表爱好者和一名不入流硬件工程师,一直有意尝试校表仪相关技术的研究实现,在多方查阅论文资料和一系列有(wu)条(nao)不(xia)紊(meng)的操作之后终于实现了校表仪的基础功能,现将实现过程和效果与大家分享,欢迎广大钟表爱好者和从业人员提出宝贵批评建议。
校表仪的基本原理可以解释为用麦克风采集机芯运行时产生的表音信号,经过放大、模数转换、判决等操作转变成数字信号输入可编程逻辑器件进行计数和计算得到振频、日差、偏振、摆幅等参数。本人采用高保真灵敏拾音器获得表音模拟信号,经过放大器和电压比较器处理生成数字信号,输入FPGA进行计算振频和日差后将结果显示在数码管上。
校表仪的外围硬件部分由FPGA开发板、拾音器、放大器、电压比较器和配套的线缆组成。其中FPGA开发板采用勇敢的星 STAR Xilinx Artix7 FPGA开发板,特点是板级电路配置完善,相关功能模块及配套文档齐全,对于各阶段的开发者都有良好的应用价值。

开发板拾音器是淘宝随机采购的监控拾音器,采集到的表音信号幅度在毫伏水平。

拾音器放大器采用了一款基于AD620的小信号差分放大器,除了放大电路外还添加了滤波电路,特点是高增益、高精度、高稳定性。

信号放大器经过放大器放大至2-10V的表音信号输入电压比较器后生成数字信号,通过io接口输入FPGA,电压比较器采用一款基于LM393的电压比较模块,不多介绍了。

电压比较器为了保证信号的灵敏度和稳定性,拾音器采用12V直流稳压电源供电,放大器和电压比较器通过FPGA开发板上的5V电源供电。
软件部分的编写采用Verilog语言实现,基本可以描述为对输入的数字信号进行累加、计数、代入公式计算的过程。
钟表日差计算公式为(n-n0)*86400/n0,n0和n分别为指定计时周期内理论和实测的脉冲计数值。本次采用的开发板晶振频率为50MHz,在计时周期1s的情况下n0=5e7,则经过约分后日差计算公式变为(n-5e7)*27/15625,由于FPGA实现除法运算较为复杂而自带的除法器ip核消耗资源较多可能不利于后续的功能扩展,采用近似的(n-5e7)*28/16384代替,除法部分用简单的右移14位实现,相比原公式的误差约为1.1%,考虑到我国对机械手表的质检标准为-20~+40s/d,这样的误差基本可以忽略不计。
测试用腕表为一块海鸥818.27.8810,该款腕表采用海鸥的无卡度同轴陀飞轮机芯ST8240W,基本参数为振频21600bph,动储60h,该款机芯的特点是稳定性好、运行声音大,有利于提取表音和检查校表仪运行状态。由于本人之前经常戴表进行骑行、搏击等剧烈运动该表的误差较大,实测约为-18s/d(顺便提醒一下戴表剧烈运动不是个好习惯大家不要学我)。

经过放大的表音信号幅值达到10V左右,可以清晰地分辨出a、b、c波。

放大器输出信号对电压比较器阈值电压进行调整,将表音转化为数字信号。

电压比较器输出信号,注意区分a b c波输入电平经过FPGA累加,减少外界干扰影响。

可以看到每秒有6个上升沿校表仪准确识别出振频为21600bph。

通过板子上的拨码开关调整校表仪为日差检测模式,数码管显示16进制的日差值,快慢采用led显示,led点亮为慢熄灭为快,日差转换为10进制为-17s/d,与实际佩戴误差相似但稳定性仍有待提高。

目前校表仪只实现了基本的振频显示和日差显示,仍有较大的改进空间,日后可做的进一步改进有:
1.日差显示的稳定性仍有一定波动,可通过调整累加值、计时周期和外围电路的方法完善;
2.偏振、摆幅等参数的检测功能可通过代入相关公式计算实现;
3.所用开发板集成有UART转USB芯片,通过集成相关代码可以实现利用通用计算机对校表仪进行控制的功能,从而让校表仪具有更高的灵活性和扩展空间。