主要内容

自动抄表

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

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

必需的硬件和软件

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

要实时接收信号,您还需要这些SDR设备之一和相应的支持包附加组件:金宝app

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

  • adalm-pluto收音机和adalm-pluto收音机的相应通信工具箱支持包金宝app

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

出身背景

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

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

  • 数据速率:32768 bps

  • On-Off Keyed Manchester编码信号

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

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

运行示例

当你运行这个例子:

  • 接收器初始化模拟参数并计算AMR参数。

  • data viewer显示屏显示仪表ID、消费信息和商品类型。

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

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

  • 每次数据采集时,显示屏都会更新,显示带有最新消耗信息的唯一仪表ID。

初始化参数

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

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

接收器代码结构

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

信号源

此示例可以使用三个信号源:

  1. ''文件'':通过空中信号写入文件并使用a读取基带文件阅读器对象为1.0 Msps

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

  3. ''adalm-pluto'':Adalm-pluto收音机以1.0 msps的采样率

如果将“RTL-SDR”或“ADALM-PLUTO”指定为信号源,则该示例将在计算机中搜索您指定的无线电,无线电地址为“0”的RTL-SDR无线电或无线电地址为“usb:0”的ADALM-PLUTO无线电,并将其用作信号源。

物理层

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

RTL-SDR无线电能够在225-300 kHz或900-2560 kHz范围内使用采样率。Adalm-Pluto无线电能够使用520 kHz-61.44 MHz范围内的采样率。1.0 MSP的采样率用于每曼彻斯特编码数据位产生足够数量的样本。对于跳跃模式中的每个频率,发送每个AMR数据分组。跳频允许随着时间的推移提高可靠性。由于每个分组在每个频率上传输,因此仅监视该示例的一个频率就足够了。在整个仿真运行时,无线电被调谐到915 MHz的中心频率。

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

当为位序列找到已知的SCM前导码时,使用缩短的(255239)BCH码对接收到的消息位进行解码,该BCH码最多可纠正两位错误。在发现已知IDM前导码的情况下,接收机对仪表序列号和从分组类型(第5字节)开始的整个分组执行循环冗余校验(CRC),以确定分组是否有效。有效、更正的消息传递到AMR消息解析器。

消息分析器

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

数据阅读器

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

您还可以使用data viewer更改仪表ID并开始文本文件记录。

  • 仪表ID- 将仪表ID从0更改为0,这是默认值,保留用于显示所有检测到的仪表,以显示您要显示的特定仪表ID。

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

进一步的探索

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

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

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

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

选定的参考书目