在设计电表时,通信通常是最后考虑的事情。当今的电表必须捕获越来越多的信息,并自动将使用信息从电表传送到公用事业。这是MAXQ3120电表参考设计中通信子系统的工作。
为什么要沟通?
在设计电表时,通信通常是最后考虑的事情。传统电表以旧的被动方式传达用电情况:抄表器定期去电表上读取。但如今的电表必须捕获越来越多的信息。期望训练有素的人员以可接受的精度从每个仪表手动收集许多数据点已不再合理。相反,某些机制必须自动将使用信息从仪表传送到公用事业。这是MAXQ3120电表参考设计中通信子系统的工作。
两个通道
MAXQ3120电表参考设计包括两个通信通道:一个用于与手持终端通信的红外(IR)通道,以及一个完全隔离的多点RS-485通道。
虽然两个通道共享相同的协议,但通道的操作细节略有不同。红外通道始终是点对点的;手持终端一次仅与一米通信。由于终端一次不能访问多个电表,因此电表单方面响应广播消息是可以接受的。在网络环境中,这种类型的操作会导致严重的数据冲突。
RS-485通道的行为不同。由于网络上可能有许多计量器(尽管永远不会超过一个主机),因此任何计量器都不能传输数据包以响应网络广播。此外,在主机消息之后,在主机收发器准备好接收数据之前可能会有一段时间延迟。因此,电表响应前的传输延迟是防止数据丢失的谨慎措施。
常见通信元素
无论通道如何,通信协议都会共享一些公共元素。首先,链路特性是相同的:通道以每秒1,200位的速度异步运行,具有一个停止位,甚至奇偶校验。其次,链路协议是相同的,如图 1 所示。最后,两个通道上的命令具有相同的含义:在IR通道上发送的命令在RS-485通道上发送时将具有相同的效果。
图1.通信协议图示。
数据包具有以下结构:
开始标志:一个字节,0x68。
仪表地址:六个字节,可变。网络上的每个计量都有一个唯一的网络地址。相比之下,主机(运行网络的PC或手持终端)没有地址;它启动所有通信,并且是从测量仪发送的所有消息的目标。因此,地址字段充当从主机到测量仪的消息的目标地址,以及从测量仪发送到主机的消息的源地址。地址 99 99 99 99 99 保留为广播地址。
分隔符:一个字节,0x68。
命令字节:一个字节,格式如下:
命令字节中的字段包括:
方向位:清除数据包从主机发送到测量仪的时间,并设置数据包从测量仪发送到主机的时间。
错误位:表示测量仪在来自主机的消息中检测到某些错误。
更多位:表示计量响应对于单个消息来说太长,并且已分段为多个消息。
一个函数字段:
0x01:读取功能,指示主机希望从仪表读取一些寄存器值。
0x02:读取下一部分功能,表示主机收到多部分消息指示,想要读取下一部分。
0x03:重读功能,指示主机未正确接收上一个消息段,并希望重新发送该段。
0x04:写入功能。主机希望将值存储到电表的寄存器中。数据包括双字节寄存器地址和可变长度数据。
0x08:同步功能。数据字段包含时间和日期。如果测量仪的内部时钟与消息中给出的时间和日期相差不到十分钟,则内部时钟将调整为给定时间。否则,时间不会更改,并返回错误。
0x0A:设置网络地址功能。这始终是广播消息。数据字段包含一个六字节地址,指定计量器将接受该地址作为其网络地址。激活测量仪的设置地址按钮表示它接受该地址。
0x0C:更改波特率命令。波特率仅更改为一笔交易的给定波特率,之后波特率恢复为 1,200 个基点。
0x0F:更改密码命令。数据字段包含八个字节,包括:(1) 超级用户密码指示符(通常为零);(2)超级用户密码;(3)密码指示符要更改;(4) 新密码。
0x10:清除最大需求命令。当计量器收到此命令时,它会清除与报告整个月中多个类别中每个类别的最大需求相关联的所有寄存器。
长度指示符:1字节。这是消息的整个长度,从开始标志到结束标志。
数据:长度可变。
校验和:一个字节。这是消息中从开始标志到数据末尾的所有字节的模 256 总和。
结束标志:一个字节,0x16。
红外通道操作细节
IR 通道根据简单的音调调制技术工作。“0”位由以850kHz调制的38nm IR辐射光束表示,“1”位表示为没有这种光束。下图(图 2)显示了字符“A”(0x41) 的传输方式:
图2.红外通道音调调制技术图示。
MAXQ3120CPU中的调制器简化了该物理通道的传输,该调制器将一个定时器通道和一个UART通道的输出组合在一起。解调由外部集成红外接收器执行(图 3)。
图3.外部集成红外接收器执行解调。
RS-485 操作细节
RS-485通道有两个特定要求,使其比IR通道更复杂:RS-485通道是严格的半双工,并且必须与线路进行电气隔离。第一个要求是使用Maxim的半双工收发器来满足。第二个要求是使用廉价的光耦合器执行电气隔离。参见图 4。
图4.RS-485通信通过使用半双工收发器和廉价的光耦合器来实现。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !