python信号处理库_python开源协议

python信号处理库_python开源协议本发明涉及的是一种在用电采集终端上实现标准MBUS协议接口用来采集水表、热量表、气表数据的方法,具体涉及一种基于MBUS标准协议接口模块采集水、热、气表的方法,属于用电信息采集领域。背景技术:我国正处于自动化楼宇建设事业蓬勃发展的时期,远程抄表系统作为其中重要的一环,正朝着自动化及智能化方向发展;MBUS(仪表总线)总线作为一种通讯方式,以其高性价比,在水热测量仪表中得到了广泛的应用,大大推动了远…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

python信号处理库_python开源协议

本发明涉及的是一种在用电采集终端上实现标准MBUS协议接口用来采集水表、热量表、气表数据的方法,具体涉及一种基于MBUS标准协议接口模块采集水、热、气表的方法,属于用电信息采集领域。

背景技术:

我国正处于自动化楼宇建设事业蓬勃发展的时期,远程抄表系统作为其中重要的一环,正朝着自动化及智能化方向发展;MBUS(仪表总线)总线作为一种通讯方式,以其高性价比,在水热测量仪表中得到了广泛的应用,大大推动了远程抄表系统的发展。

目前,许多集成电路制造商提供了MBUS接口芯片,如德州仪器的TSS 721;这些芯片在MBUS通信类设备中得到了广泛的应用,但对于一些对成本敏感的设备,采用这类芯片无疑会增加设备制造成本。

目前,各类智能测量仪表中均采用单片机控制设备运行,而大部分单片机中都具备ADC(模数转换器)模块,因此,本文提出一种利用单片机(STM32F407)的ADC功能,配合外部MBUS接口电路,实现与水热表的MBUS通信。

技术实现要素:

本发明提出一种基于MBUS标准协议采集水、热、气表的方法,其目的旨在方便与具备MBUS接口的水、热、气表进行通信。

本发明的技术解决方案:基于MBUS标准协议采集水、热、气表的方法,该方法利用了基于MBUS标准协议接口模块,基于MBUS标准协议接口模块的结构包括单片机、模数转换器、发送电路单元、接收电路单元;其中,单片机串口的发送引脚与发送电路的输入引脚相连,模数转换器的模拟量输入引脚与接收电路的发送引脚相连,模数转换器的输出引脚与单片机串口的输入引脚相连,发送电路的输出引脚和水、热、气表MBUS接口的输入引脚相连,水、气、热表MBUS接口的输出引脚和接收电路的输入引脚相连。

本发明的优点:

1)将基于MBUS标准接口协议用于低压电力线载波抄表终端,使得用电信息采集可以方便的抄读MBUS接口水表、热表、气表等;其电路带动负载多,抗干扰能力强、电路结构简单,在恶劣的情况下也能保证数据正常接收和发送;

2)接收电路采用AD值采样来解析数据,在软件实现方便也不复杂,可选的单片机硬件要求也不高,即时通信失败短时间能恢复,保证数据可靠;

3)不采用专用的MBUS接口芯片,而采用以STM32F407为中心,配合简易的外围电路来模拟MBUS数据收发,实现与从站的通信,因为接收外围电路简化,降低了成本,有一定的经济效益。

附图说明

附图1是本发明的整个产品框架原理示意图。

附图2是本发明的应用原理示意图。

附图3是发送电路单元的结构示意图。

附图4是接收电路单元的结构示意图。

附图5是ADC的输入引脚电压波形。

附图6是从站发送的报文波形图。

附图7是整个算法的工作流程图。

具体实施方式

基于MBUS标准协议采集水、热、气表的方法,该方法利用了基于MBUS标准协议接口模块,基于MBUS标准协议接口模块的结构包括发送电路单元、接收电路单元;其中,单片机串口的发送引脚与发送电路的输入引脚相连,模数转换器的模拟量输入引脚与接收电路的发送引脚相连,模数转换器的输出引脚与单片机串口的输入引脚相连,发送电路的输出引脚和水、气、热表MBUS接口的输入引脚相连,水、热、气表MBUS接口的输出引脚和接收电路的输入引脚相连。

所述的发送电路单元包括电阻、电容、肖基特二极管、稳压二极管、NPN三极管、P道沟场效应管,同时外部接入直流28V和12V电源,MCU发送端输入高电平时,发送电路输出28V, MCU发送端输入低电平时,发送电路输出12V,通过控制单片机发送引脚达到向外输出数据的目的;其中,R19为5Ω电流采样电阻,作用是将电流信号转化为电压信号,这个采样电阻会跟着负载的不同R19上的压降会有所不同,并传送给接收电路;当MBUS发送高电平信号时,V5导通,VGS(场效应管的栅极与源极间电压)电压为,此时PMOS(P道沟场效应管) Q4导通,MBUS0 TX(远程抄表系统发送)端输出高电平;当MBUS发送低电平信号时,V5截止,VGS电压为0V,此时Q4截止,MBUS0 TX输出低电平(12V);R19为5Ω电流采样电阻,采样电阻上的电压信号MBUS0-经运算放大器后可直接供MCU进行ADC(模数转换器)处理或经比较器转换成TTL(逻辑电平)电平后供MCU(单片机)处理;这个采样电阻会跟着负载的不同R19上的压降会有所不同。

所述接收电路单元包括采样电阻、电容、运算放大器;外部接入直流5V电源,电压信号经过放大、偏置后,通过模数转换器输入到单片机的接收引脚;在MBUS发送电路中,MBUS接收端输入电流信号为0~20mA,采样电阻上的MBUS0-(远程抄表系统接收端)幅值为,然后该信号输入到MBUS接收电路中,通过运算放大器对信号进行20dB放大,放大后信号幅值为1V,运算放大器的型号优选SGM321。

所述接收电路单元中有隔直电容C90,隔直电容C90将MBUS总线上因为静态电流造成的直流偏置信号隔除,电阻R76、R77、R46构成运放直流偏置电路,直流偏置电压为,运算放大器放大倍数为倍,直流偏置电压经过运算放大器放大约为1.2V,当MBUS0-端接收到信号时,经过C90电容耦合,再经过放大器放大,将信号直接输入MCU的ADC(模数转换器),由MCU处理。

算法作为MBUS数据功能的一部分,其作用是将模拟信号转化为数字信号,所述接收电路单元和以下算法相互配合工作:根据MBUS总线协议,主站通过检测总线上是否出现11-20mA脉冲电流确定接收“0”还是“1”,当有脉冲时,表示“0”,否则为“1”,结合接收电路,当ADC检测到至少0.5V的电压跳变时表示“0”,否则为“1”。

经测试,ADC的输入引脚电压波形如图5所示;整个从站发送报文波形如图6所示,从图中可以看出,输入电压逐步下移,但电压跳变值保持稳定。

根据上述接收电压波形特点,整个算法的原理如下:当主站发送数据前,检测总线上空闲时的电压值,并作为接收时判断起始位的参考电压值;数据发送完成后,对接收数据进行解析,得到正确数据供单片机使用;

具体解析过程如图7所示:在ADC看门狗模式中设置预期的阈值上限值,使能ADC中断,启动ADC采样;当总线电压变高,并超过阈值上限时,则会触发ADC中断;在ADC中断服务程序中,关闭ADC中断,并启动定时器中断,中断周期为半个bit位的时间,用来采集起始位的电压值,在定时器中断服务程序中,计算电压值,比参考值电压大0.5V以上则视为数据起始位,并启动周期为1个bit位时间的定时器中断,采集数据位,校验位及停止位的电压值;否则,重新检测起始位。

为了避免信号中噪声的影响,对于起始位及后面的数据位、校验位、停止位中的每个bit,在其传输过程中均多次采样,采样次数因波特率的变化而变化,然后采用中位值平均滤波算法处理采集到的数据,得到一个可靠的电压值。

为了能够自适应不同的负载,MBUS主站每次发送数据前,采集电压值作为参考值,并在随后接收的过程中,将检测到的每个bit电压值与参考值作比较,并将此电压值作为新的参考值,与下一个bit电压值作比较。通过计算电压值的变化来判断bit位值,能够保证在不同的负载下,均能正确接收从站的数据。

所述MBUS为远程抄表系统仪表总线,VGS为场效应管是栅极与源极间电压、TTL为逻辑电平、MBUS0 TX为远程抄表系统发送端、MCU为单片机、ADC为模数转换器。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181534.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021.12 激活_最新在线免费激活

    (idea2021.12 激活)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
  • 图解ConcurrentHashMap

    图解ConcurrentHashMap曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。   集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集…

    2022年6月24日
  • 数仓分层

    000概述数仓分层是数据仓库设计中十分重要的一个环节,优秀的分层设计能够让整个数据体系更容易理解和使用本文的大纲001,介绍数据分层的作用002,分层设计的原则以及介绍一种通用的数据分层设计003,具体案例004,落地实践意见005,思考001,数据分层的作用我们需要一套行之有效的数据组织和管理方法来让我们的数据体系更有序,这就是数据分层。数据分层的好处有①,清晰数据结构:每一…

    2022年4月4日
  • cmd输入java, javac命令都无效详细解决方案

    cmd输入java, javac命令都无效详细解决方案问题:安装jdk后,配置完环境变量,可在cmd输入java和javac都无反应,解决下面教大家分析一下出错原因。1、检验jdk是否成功安装到计算机中(可能单单是环境变量出错导致指令无效)到自己jdk的安装目录的bin文件夹下,在地址栏输入cmd回车(本人jdk安装在D:\MySoft\jdk)在打开的cmd窗口分别输入java,javac命令验证jdk是否安装成功。出现以上提示,表明我们的jdk是安装成功的,所以问题出在环境变量。如果输入java让然无效,显然,是你的jdk安装失败了

    2022年5月28日
  • bs模型与cs模型共同点_bs模型的基本假设

    bs模型与cs模型共同点_bs模型的基本假设bs模式客户端通过浏览器,浏览web服务器上的网页,这样的模型叫bs模型,b指客户端browser,s指服务端server。在客户端和浏览器端之间走的报文是http协议(即超文本传输协议) cs模型客户端(client)发报文,服务器(server)收报文,服务器收到报文之后处理。这与bs模式没有很大区别,只不过是c与s间可以自定义数据传送报文。cs模式一般走的协议是tcp协议

    2022年9月14日
  • recvfrom error 10022

    recvfrom error 10022http://blog.sina.com.cn/s/blog_6ffee9410100pqdt.html折腾了一个下午加大半个晚上,查了300多个网页,20多个技术论坛,终于把这个问题解决了,真不容易。总结下出现这个错误的一般原因和我出错的原因。出现这个错误的一般原因:1.fromlen参数没有初始化2.from参数没有设置正确,也就是结构问题3.参

    2022年7月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号