0

供应商(德国)没有回复,我的搜索也没有任何结果。该模块有一个简单的 RS232 连接,允许查询模块以获取“原子”日期和时间信息,但无法找到协议的详细信息。我需要协议文档。https://www.hkw-shop.de/out/media/FMD01031R_FUM_DCF-U_DD.pdf

4

1 回答 1

0

供应商现在提供了以下信息:

配备 PC 串行接口的无线电控制时钟(RC 时钟)的数据交换

  1. 介绍

串行接口由一根数据输入线和一根数据输出线组成。串行接口的数据传输速度为 300 bps。由于 RC 时钟微控制器的资源有限,只能使用简单的软件协议。没有握手线。通过字符回显与主机同步。

  1. 串行接口的供电电压

具有串行接口的 RC 时钟是电池供电的无线电控制时钟,由两个 1.5V 电池供电。这确保了大约两年的电池寿命。串行接口的电压供应独立于这些电池。RS232 串行标准接口不仅包括串行输入 (RxD) 和输出 (TxD) 线,还包括一些在某些应用中用于握手目的的附加线,RC 时钟使用这些附加线为其内部串行接口电路供电与所需的电压。数据交换不需要这些额外的线路。RC 时钟需要 PC 串行接口的正电压和负电压。

正电压由 DTR 线提供。

提供负电压有两种方式:

a) PC 通过向 RC 时钟发送 ASCII 字符与 RC 时钟“通信”,如下所述(参见 5.)。这允许由 TxD 线提供负电压。当 PC 发送字符时,这条线在正负电压电平之间切换。如果 PC 正在等待 RC 时钟回复,则 TxD 线在负电压时始终处于低电平。RC 时钟只在发送时接收字符时不需要 TxD 负电压。

b) 通过将数据输入线拉至高电平,可以触发 RC 时钟以传输时间/日期信息,如下所述(见 3.3)。这条线必须保持高电平,直到 RC 时钟的数据传输开始。因此它不能提供负电压。存在从 RTS 线路提供负电压的可能性。如果程序员想要通过将 TxD 保持在高电压电平来使 RC 时钟传输时间/日期信息,则该线必须设置为低电平。

  1. 数据字格式

3.1。传输到 RC 时钟的数据

3.1.1。接口参数

a) MSF 版本速度:300 bps 数据位计数:7 奇偶校验:偶数、奇数、标记、空格(不由 RC 时钟检查)停止位计数:2

b) DCF77 版本速度:300 bps 数据位计数:8 奇偶校验:无 停止位计数:2

3.1.2。数据输入功能

RC 时钟接受最多三个字符的命令,包括其参数。字符回车(十六进制 0d)使 RC 时钟执行命令。仅使用每个命令和参数字符的低四位。例如字符“?”、“O”和“o”具有相同的效果。例外是最后的回车,它通过考虑七个低位(MSF 版本)resp 来完全解码。所有八位(DCF77 版本)。

3.2. RC时钟的回复

3.2.1。接口参数

         Speed:  300 bps
Data Bit Count:  7
    Parity Bit:  even
Stop Bit Count:  2

3.2.2. 数据输出功能

RC 时钟的回复由一系列以最后一个回车符结尾的 ASCII 字符组成。RC 时钟使用的字符集仅限于数字 0 ... 9 和字符 : ; < = > ?. 该信息包含在四个低位中。每个回复字符的第 4 位和第 5 位是二进制 1,第 6 位是二进制零,第 7 位包含偶校验位。如上所述,这会导致 RC 时钟传输 16 个不同的字符。RC 时钟的串行输出在其回复期间不能被中断。因此,所有字符必须立即由主机获取。

3.3. 支持简化的数据交换

简化的数据交换是可能的。时间/日期信息传输命令(( o ) 见下文 5.1.)不是启动 ASCII 字符序列的唯一方法。一种更简单的方法是将 TxD(PC 的 TxD)电压电平拉高。通常 TxD 电压电平较低(无效)。如果 TxD 线在一秒开始时为高电平,则 RC 时钟将发送其时间/日期信息。这可能需要一秒钟,因为时间/日期信息的第一个起始位设置一秒钟的开始。如果 TxD 线持续保持高电平,则 RC 时钟将每秒发送时间日期信息。但必须注意:在时间/日期信息输出(持续时间约为 600 ms)期间,RC 时钟的电流消耗会增加到 200 ÊA。

  1. 握手

RC 时钟接收到的每个字符都会被回显。下一个字符不能在前一个字符的回显和 10 ms 的额外持续时间之前传输到 RC 时钟。识别输入字符是通过检查起始位和两个停止位的正确外观。八个回显数据位在所有情况下都保持不变,无论奇偶校验是偶数还是奇数。

  1. 命令说明

命令 5.7. 到 5.11。(设置和读取闹钟时间)与桌面闹钟有关。

5.1。传输当地时间/日期信息

语法 ASCII:o

如有必要,字符“o”可以替换为代码包含最低四位 f(hex) 的字符,例如 / ? 哦_

语法二进制:xxxx1111 00001101

RC 时钟以 15 个字符的序列回复此命令,其中包含完整的时间信息和一个最终的 . 总共制作了16个字符。RC 时钟不会立即回复此命令,因为第一个回复字符的起始位边沿标志着第二个的开始。因此 RC 时钟将在下一秒开始时回复此命令。

状态 bit7 奇偶校验 bit6 始终为 0 bit5 始终为 1 bit4 始终为 1 bit3 =1 如果检测到低电池电压 bit2 MSF 版本:无关 DCF77 版本:=1 如果第一次接收尝试失败并且仍然不存在有效时间信息(bit0 = 0) 第一次成功接收尝试复位该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。t care DCF77 版本:=1 如果第一次接收尝试失败并且仍然不存在有效时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。t care DCF77 版本:=1 如果第一次接收尝试失败并且仍然不存在有效时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。=1 如果第一次接收尝试失败并且仍然不存在有效的时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。=1 如果第一次接收尝试失败并且仍然不存在有效的时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。

5.2. 传输时间/日期信息 UTC

语法 ASCII:u

如有必要,字符“e”可以替换为代码包含最低四位 5(十六进制)的字符,例如 e E

语法二进制:xxxx0101 00001101

RC 时钟以 15 个字符的序列回复此命令,其中包含完整的 UTC 时间信息和最终的 . 总共制作了16个字符。RC 时钟不会立即回复此命令,因为第一个回复字符的起始位边沿标志着第二个的开始。因此 RC 时钟将在下一秒开始时回复此命令。

状态 bit7 奇偶校验 bit6 始终为 0 bit5 始终为 1 bit4 始终为 1 bit3 =1 如果检测到低电池电压 bit2 MSF 版本:无关 DCF77 版本:=1 如果第一次接收尝试失败并且仍然不存在有效时间信息(bit0 = 0) 第一次成功接收尝试复位该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。t care DCF77 版本:=1 如果第一次接收尝试失败并且仍然不存在有效时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。t care DCF77 版本:=1 如果第一次接收尝试失败并且仍然不存在有效时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。=1 如果第一次接收尝试失败并且仍然不存在有效的时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。=1 如果第一次接收尝试失败并且仍然不存在有效的时间信息(bit0 = 0) 第一次成功接收尝试重置该位。bit1 =1 如果最近一次接收尝试成功 =0 如果最近一次接收尝试不成功 bit0 =1 如果 RC 时钟包含有效时间信息 该位在复位后为零,在第一次成功接收尝试后为 1。

5.3. 发送时钟状态

语法 ASCII:f

字符“f”可以替换为代码包含最低四位 6 的字符,例如 6 FV v

语法二进制:xxxx0110 00001101

此命令的回复由四个字符和最后一个 . 字符具有以下含义:

  1. tens of the count of hours since the latest successful signal pick up
  2. ones of the count of hours since the latest successful signal pick up
  3. status informations
      bit7 parity
      bit6 always 0
      bit5 always 1
      bit4 always 1
      bit3 =1 for DCF77 version
           =0 for MSF version
      bit2 don't care
      bit1 don't care
      bit0 switching status,
           alarm time 1 switches to 1
           alarm time 2 switches to 0
  4. ASCII "0"

5.4. 发送接收状态

语法 ASCII:g

字符“g”可以替换为代码包含最低四位 7 的字符,例如 ' 7 GW w

语法二进制:xxxx0111 00001101

该命令的回复由两个字符和最后一个 . 这些字符的含义如下: 1. 接收状态 bit7 奇偶校验 bit6 始终为 0 bit5 始终为 1 bit4 始终为 1 bit3 始终为 0 bit2 始终为 0 bit1 始终为 1 bit0 =0 如果此时没有进行接收尝试 =1 如果有接收尝试发生在此时 2. 接收质量表征 数字从 0 到 5 5 表示接收良好,没有任何干扰 0 表示接收条件非常差 如果数字在 0 到 2 的范围内,则正常预期不会成功接收。在接收暂停期间,此数字始终为 0。

5.5. 开始接收尝试

语法 ASCII:h

字符“h”可以被代码包含最低四位 8 的任何其他字符替换,例如 ( 8 HX x

语法二进制:xxxx1000 00001101

该命令使 RC 时钟激活接收器 IC 并开始接收尝试。如果此尝试未成功结束,第 15 个时间/日期信息字符的第 1 位将被重置(参见 5.1. 和 5.2)。该位在成功完成接收尝试后置位。

5.6. 开始接收尝试

语法 ASCII:我

字符“i”可以替换为代码包含最低四位 9 的任何其他字符,例如 ) 9 IY y

语法二进制:xxxx1001 00001101

该命令是出于兼容性原因,其作用与“h”相同(参见 5.5)。

5.7. 发送报警时间

语法 ASCII:j

字符“j”可以替换为代码包含最低四位 a(hex) 的字符,例如 * : JZ z

语法二进制:xxxx1010 00001101

RC 时钟以 8 个字符的序列回复此命令,其中包含闹钟时间和最终的 . 时间1对应闹钟时间1,时间2对应闹钟时间2。字符含义如下: 1.时间1,小时十位 2.时间1,小时单位 3.时间1,分钟十位 4.时间1,分钟单位 5. 时间 2, 小时 十 6. 时间 2, 小时单位 7. 时间 2, 分钟 十位 8. 时间 2, 分钟单位

所有字符都包含以下位: bit7 奇偶校验 bit6 始终为 0 bit5 始终为 1 bit4 始终为 1 bit3 n3 bit2 n2 bit1 n1 bit0 n0

位 n3...n0 包含 BCD 码中相应的数字 0 ... 9。要停用相应小时数的第 3 位之一,需要设置十位。因此,小时十位不仅可以包含 0、1 或 2,还可以包含 8、9 和 a(十六进制)。

5.8. 设置闹铃时间 1

语法 ASCII:k

字符“k”可以替换为代码包含最低四位 b(hex) 的字符,例如 + ;ķ [

语法二进制:xxxt3t2t1t0 xxxxu3u2u1u0 xxxx1011 00001101

此命令使 RC 时钟接管两个参数,即 和 到闹钟时间 1 的小时寄存器中。要停用闹钟时间 1 位 t3 将被设置。注意:如果省略该命令的参数,则相应的小时寄存器将是未定义的。

5.9. 设置闹钟时间的分钟数 1

语法 ASCII:l

字符“l”可以替换为代码包含最低四位 c(hex) 的字符,例如,< L \

语法二进制:xxxt3t2t1t0 xxxxu3u2u1u0 xxxx1100 00001101

该命令使 RC Clock 将 和 两个参数接管到闹钟时间 1 的分钟寄存器中。 注意:如果省略该命令的参数,则对应的分钟寄存器将是未定义的。

5.10。设置闹钟时间的小时数 2

语法 ASCII:m

字符“m”可以替换为代码包含最低四位 d(hex) 的字符,例如 - = M ]

语法二进制:xxxt3t2t1t0 xxxxu3u2u1u0 xxxx1101 00001101

此命令使 RC 时钟接管两个参数,即 和 到闹钟时间 2 的小时寄存器中。要停用闹钟时间 2,需要设置位 t3。注意:如果省略该命令的参数,则相应的小时寄存器将是未定义的。

5.11。设置闹钟时间的分钟数 2

语法 ASCII:n

字符“n”可以由其代码包含最低四位 e(hex) 的字符替换,例如也。> N^

语法二进制:xxxt3t2t1t0 xxxxu3u2u1u0 xxxx1110 00001101

该命令使 RC Clock 将 和 两个参数接管到闹钟时间 2 的分钟寄存器中。 注意:如果省略该命令的参数,则对应的分钟寄存器将是未定义的。

  1. 接口测试

通过一个简单的终端程序,可以测试串行接口的功能。以下是类似于其他终端程序的 Windows 终端参数: - 300 波特数据速度 - 7 个数据位 - 奇偶校验“空格” - 2 个停止位 - 无协议

- 接口:取决于选择的串行接口(例如 Com1:)

于 2020-06-11T08:11:23.627 回答