主要内容

自动抄表

此示例显示如何通过处理由编码器 - 接收器 - 发射器(ERT)兼容仪表发出的标准消耗消息(SCM)信号和间隔数据消息(IDM)信号来使用Communication Toolbox™来读取实用电表。您可以使用文件中的录制数据,或者使用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)通信来将仪表读数传输到远程接收器。RF传输属性包括:

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

  • 数据速率:32768 bps

  • 开关曼彻斯特编码信号

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

能够发送SCM和IDM消息的仪表在相同的通道上传输它们,其分离大约275毫秒。每个仪表使用跳跃模式通过多个频率传输SCM和IDM消息。变速器之间的实际传输频率,跳频模式和传输之间的时间间隔是随机的,以避免来自其他传输的干扰。有关更多信息,请参阅参考[1]。

运行示例

运行该示例时:

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

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

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

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

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

初始化参数

默认信号源是“文件”,使用录制的基带信号文件运行该示例amr_capture_01.bb.要使用RTL或ADALM-PLUTO SDR运行示例,请更改signalSource当你打电话的时候helperAMRInit.m文件。有效的选择signalSource是'文件','rtl-sdr'和'adalm-pluto'。

signersource ='文件';initparam = helperamrinit(signalce);%基于初始化参数计算AMR系统参数[amrparam,sigsrc] = helperamrconfig(initparam);%创建数据查看器对象查看器= Helperamrviewer(“MeterID”,initparam.meterid,...'logdata', initParam。LogData,...'logfilename', initParam。LogFilename,...'fc', amrParam。CenterFrequency,...“SignalSourceType”,initparam.signalSourcetype);开始(查看者);ratiotime = 0;%初始化无线电时间%主处理循环尽管RADIOTIME 结尾停止(观众);%停止观看者释放(sigSrc);%释放信号源

接收方代码结构

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

信号源

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

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

  2. ''RTL-SDR'':RTL-SDR无线电以1.0 MSPS的采样率

  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消息格式:

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

选定的书目