主要内容

自动抄表

此示例向您展示如何使用Communications Toolbox™通过处理由编码器-接收机-发射机(ERT)兼容仪表发出的标准消耗消息(SCM)信号和间隔数据消息(IDM)信号来读取公用电表。您可以使用来自文件的记录数据,也可以使用RTL-SDR或ADALM-PLUTO无线电实时接收空中信号。

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

所需硬件和软件

要使用来自文件的记录数据运行此示例,需要Communications Toolbox™。

为了实时接收信号,您还需要以下SDR设备之一和相应的软件附加组件:

  • RTL-SDR无线电和RTL-SDR无线电附加组件的通信工具箱支持包金宝app

  • ADALM-PLUTO无线电和模拟设备通信工具箱支持包ADALM-PLUTO无线电插件金宝app

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

背景

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

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

  • 数据速率: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);创建数据查看器对象查看器= helpamrviewer (“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 + amrParam.FrameDuration;结束停止(观众);停止查看器释放(sigSrc);%释放信号源

接收码结构

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

信号源

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

  1. “文件”:无线信号写入文件并使用基带文件阅读器对象在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 Msps的采样率用于每个曼彻斯特编码数据位产生足够数量的样本。对于跳频模式中的每个频率,都将传输每个AMR数据包。跳频允许随着时间的推移提高可靠性。由于每个数据包都在每个频率跳点上传输,因此在本例中只监视一个频率就足够了。在整个模拟运行时,无线电调到915 MHz的中心频率。

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

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

消息解析器

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

数据查看器

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

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

  • 计ID—将表ID从默认值“0”(用于显示所有检测到的表)修改为需要显示的表ID。

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

进一步的探索

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

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

您还可以探索以下功能的详细物理层,AMR消息格式:

有关适用于多个无线电的示例版本,请参见AMRMultipleRadios.m.多无线电版本允许您通过设置每个可用的无线电设备不同的中心频率来检查一个仪表的频跳模式。脚本设置为两个无线电,但可以扩展为任何数字。

选定的参考书目