主要内容

自动抄表

这个例子向您展示了如何使用通信工具箱™通过处理编码器-接收器-发射器兼容的仪表发出的标准消耗消息(SCM)信号和间隔数据消息(IDM)信号来读取电能表。您可以使用从文件中记录的数据,或者使用RTL-SDR或ADALM-PLUTO无线电实时接收无线信号。

在Si金宝appmulink®中,您可以探索在Simulink中的自动抄表金宝app的例子。

所需硬件和软件

要使用文件中记录的数据运行此示例,您需要通信工具箱™。

为了实时接收信号,您还需要这些SDR设备之一和相应的支持包Add-On:金宝app

  • RTL-SDR无线电和相应的RTL-SDR无线电通信工具箱支持包金宝app

  • ADALM-PLUTO无线电和相应的通信工具箱支持包ADALM-PLUTO无线电金宝app

有关更多信息,请参见软件定义无线电(SDR)发现页面

背景

自动抄表(AMR)是一种从公用事业表(如电、气或水表)自动收集消费和状态数据并将数据发送给公用事业供应商以进行计费或分析的技术。AMR系统利用低功率射频(RF)通信将仪表读数发送到远程接收器。射频传输特性包括:

  • 范围内传输频率:910-920 MHz

  • 数据速率:32768 bps

  • 开关曼彻斯特编码信号

SCM和IDM是仪表发送的两种传统消息类型。SCM报文固定长度为96位,IDM报文固定长度为736位。这些表显示了SCM和IDM报文的报文格式:

能够同时发送SCM和IDM消息的仪表在同一通道上以大约275毫秒的间隔传输它们。每个仪表使用跳频模式在多个频率上传输SCM和IDM消息。为了避免其他传输的干扰,实际传输频率、跳频模式和传输间隔都是随机的。有关详情,请参阅参考资料[1].

运行示例

当你运行这个例子:

  • 接收机初始化仿真参数并计算AMR参数。

  • 数据查看器显示仪表ID、消费信息和商品类型。

  • 模拟循环调用信号源、物理层、消息解析器和数据查看器。

  • 处理循环使用帧持续时间跟踪无线电时间。

  • 每个数据捕获的显示都会更新,显示带有最新消费信息的唯一仪表id。

初始化参数

默认信号源是'File',它使用录制的基带信号文件运行示例amr_capture_01.bb.要使用RTL或ADALM-PLUTO SDR运行示例,请更改signalSource当你呼叫helperAMRInit.m文件。有效的选择signalSource分别为“File”、“RTL-SDR”和“ADALM-PLUTO”。

signalSource =“文件”;initParam = helperAMRInit (signalSource);%根据初始化参数计算AMR系统参数[amrParam, sigSrc] = helperAMRConfig (initParam);%创建数据查看器对象观众= helperAMRViewer (“MeterID”, initParam。MeterID,...“LogData”, initParam。LogData,...“LogFilename”, initParam。LogFilename,...“俱乐部”, amrParam。CenterFrequency,...“SignalSourceType”, initParam.SignalSourceType);开始(观众);radioTime = 0;%初始化无线电时间%主处理循环radioTime < initParam。rcvdSignal = sigSrc();amrBits = helperAMRRxPHY (rcvdSignal amrParam);amrMessages = helperAMRMessageParser (amrBits amrParam);更新(观众、amrMessages);radioTime = radioTime + amrparameter . frameeduration;结束停止(观众);停止查看器释放(sigSrc);%释放信号源

接收方代码结构

流程图总结了接收机的代码结构。信号处理主要分为四个部分:信号源、物理层、消息解析器和数据查看器。

信号源

这个例子可以使用三个信号源:

  1. “文件”:将无线信号写入文件并使用基带文件阅读器对象为1.0 Msps

  2. “RTL-SDR”:采样率为1.0 Msps的RTL-SDR无线电

  3. “ADALM-PLUTO”:ADALM-PLUTO radio at a sample rate of 1.0 Msps

如果您指定“RTL-SDR”或“ADALM-PLUTO”作为信号源,该示例搜索您的计算机为您指定的无线电,无论是一个RTL-SDR无线电在无线电地址'0'或ADALM-PLUTO无线电在无线电地址'usb:0',并使用它作为信号源。

物理层

从信号源接收的基带样本由物理层(PHY)处理,产生包含SCM或IDM信息的包。此图显示了物理层接收处理。

RTL-SDR无线电能够使用范围为225-300 kHz或900-2560 kHz的采样率。ADALM-PLUTO无线电能够使用520 kHz-61.44 MHz范围内的采样率。使用1.0 Msps的采样率来产生足够数量的曼彻斯特编码数据位的采样。对于跳频模式中的每个频率,发送每个AMR数据包。随着时间的推移,跳频可以增加可靠性。由于每个包都在每个频率跳上传输,因此在本例中只监视一个频率就足够了。在整个模拟运行时,收音机被调到915 MHz的中心频率。

通过提取复采样的幅值,对接收到的复采样进行幅值解调。开关键曼彻斯特编码意味着位选择块包括时钟恢复。这个块输出位序列(忽略传输中的空闲时间),随后检查已知的前导。如果前导匹配,则进一步解码位序列,否则丢弃该位序列并处理下一个序列。

当对一个位序列找到已知的SCM序言时,接收到的消息位将使用一个缩短的(255,239)BCH码进行解码,该码最多可以纠正两个位错误。在发现已知IDM序言的情况下,接收器对仪表序列号和从包类型(第5字节)开始的整个包执行循环冗余检查(CRC),以确定包是否有效。有效的、经过纠正的消息传递给AMR消息解析器。

消息解析器

对于有效的消息,这些位随后被解析为SCM或IDM格式的特定字段。

数据查看器

数据查看器在单独的MATLAB图上显示解码包。对于每一个成功解码的数据包,都会显示出meter ID、商品类型、AMR数据包类型、消耗信息和捕获时间。在捕获和解码数据时,应用程序以表格形式列出从这些消息解码的信息。该表只列出惟一的仪表id及其最新消费信息。

您还可以使用数据查看器更改仪表ID并开始文本文件日志记录。

  • 计ID—将meter ID从默认值0(保留显示所有检测到的meter)修改为需要显示的具体的meter ID。

  • 将数据记录到文件—将解码后的消息保存为TXT文件。您可以使用保存的数据进行后期处理。

进一步的探索

示例附带的数据文件只有一个读数,并且以915 MHz的中心频率捕获。使用RTL-SDR或ADALM-PLUTO,示例将显示来自多个仪表的读数,当它在居民区运行较长时间时。

您可以使用AMRExampleApp用户界面进一步研究AMR信号。这个应用程序允许您选择信号源和改变中心频率的RTL-SDR或ADALM-PLUTO。这个链接启动AMRExampleApp应用程序所示。

你也可以探索以下功能的物理层的细节,AMR消息格式:

下面是使用多个无线电的示例版本AMRMultipleRadios.m.这允许您通过为每个可用的无线电设备设置不同的中心频率来检查仪表的频率跳模式。该脚本设置为两个无线电,但可以扩展为任何数字。

选定的参考书目