为什么要进行通信?
在设计电表时,通信往往是最后考虑的问题。传统电表使用老式的被动通信方式传输用电信息:抄表员定期抄表并读取数值。而新一代电表需要收集的信息越来越多。如果对工作人员进行培训,用手工方式从每个电表收集大量数据,并且还要满足精度要求,似乎是不切实际的想法。取而代之的是利用电子装置自动把用电信息传输到电力公司。在max3120电表参考设计中,通信子系统既是用于这一目的。
两个通道
max3120电表参考设计中包括两个通信通道:一个用于与手持终端通信的红外(ir)通道,另一个是完全隔离的多点rs-485通道。
两个通道使用相同的通信协议,但具体工作情况有所不同。红外通道始终是点对点模式;手持终端每次只能与一个电表通信。由于手持终端不能同时访问多个电表,因此电表可单方面响应广播消息。但是,在网络环境中,这种工作方式会导致严重的数据冲突。
rs-485通道的工作情况与之不同。由于网络中有许多电表(虽然不会有一个以上的主机),没有电表能够发送数据包以响应网络广播。主机发出一个消息后,主机收发器需要经过一定延时,为接收数据做好准备。因此,谨慎的措施是在电表响应之前设置一个传输延时,以防数据丢失。
通信原理
尽管有传输通道之分,通信协议所使用的原理却是相同的。首先,链路特征相同:通道以1200比特每秒的速率进行通信,处于异步工作方式,使用一个终止位和偶校验。其次,如图1所示,链接协议是相同的。最后,用于两个通道的命令含义相同:在ir通道上发送命令,与在rs-485通道上发送命令所起到的作用相同。
图1. 通信协议示意图 数据包具有以下结构:
开始标志: 1个字节,0x68.
命令字节中包括如下字段:
一个方向位: 当数据包由主机发送给电表时清零,当数据包由电表发送给主机时置1。红外通道工作特性
红外通道按照简单的音频调制技术工作。即有红外光束(38khz调制频率,波长850nm)时表示‘0’,无红外光束表示‘1’。下图(图2)显示了字母‘a’ (0x41)的传输过程。
图2. 红外通道音频调制技术示意图 通过max3120 cpu中的调制器传输红外线的物理通道很容易实现,该调制器集成了其中一个定时通道的输出和其中一个uart通道。通过一个外部集成的红外接收器进行解调(图3)。
图3. 一个外部集成的红外接收器,用于解调 rs-485通道工作特性
rs-485通道有两个特殊要求,因此比红外通道更加复杂:rs-485通道采用精确的半双工通信,必须与线缆进行电气隔离。第一个必要条件可以借助于maxim的半双工收发器实现,可达到满意的效果。第二个必要条件可以通过使用价格低廉的光藕进行电气隔离,见图4。
图4. 通过使用一个maxim的半双工收发器和价格低廉的光耦实现rs-485通信