地址自动分配的串口电表采集方法及智能电表采集系统与流程

文档序号:12127401阅读:904来源:国知局
地址自动分配的串口电表采集方法及智能电表采集系统与流程

本发明涉及通信技术,尤其涉及一种地址自动分配的串口电表采集方法及智能电表采集系统。



背景技术:

随着国内智能化系统的日益发展和完善,在大多数的高档的住宅小区中都开始安装远程抄表系统,作为现代化管理系统的重要组成部分,该系统发挥了相当重要的作用。住宅区中每个住户家中的水表、电表、煤气表等计量表计。其安装位置各异,有些表(如电表)集中安装,有些表(如水表)却分散在住户家中;这样就给管理部门的抄表统计工作带来困难。逐户抄表时要耗费很多人力和时间,而且入户抄表很难一次完成,有时只能估计。

为了解决这些问题,集中式的远程抄表系统被开发出来。远程抄表系统一般是基于串口通信网络技术实现。而串口通信网络一般采用主从架构,在远程抄表系统中,电表相当于从机。而串行通信总线要求每个电表(从机)具有唯一的总线地址。在传统的方式中,电表的串口总线地址是采用人工通过拨码开关方式进行设定的,安装维护成本高,且非常容易出错。



技术实现要素:

有鉴于此,有必要提供一种地址自动分配的串口电表采集方法及系统,其可以高效的实现串行通信总线通信系统中电表总线地址的分配过 程。

一种地址自动分配的串口电表采集方法,应用于一个智能电表采集系统中,所述智能电表采集系统包括:主机以及多个分别经由串口通信总线与所述主机相连的电表,所述主机与所述电表还通过至少一条地址线相连,所述方法包括:

所述主机在启动后监听多个I/O端口输入的信号,其中监听的I/O端口数不小于所述电表的总数;

所述电表在启动后通过所述地址线连接所述主机监听的多个I/O端口中的一个并向连接的端口发送一个连接信号,并侦听所述主机发送的地址信号;

所述主机在检测到连接信号后获取分配的地址,将地址返回给所述电表,并延时预定时间后通过所述通信总线向分配的地址发送握手信号;

所述电表接收到所述主机返回的地址后初始化所述通信总线并开始侦听所述主机发送的握手信号,并在接收到所述主机发送的握手信号后返回所述电表的身份验证信息;

所述主机根据所述身份验证信息校验所述电表的身份,若身份校验通过则完成通信地址的分配。

一种地址自动分配的智能电表采集系统,包括:主机以及多个分别经由通信总线与所述主机相连的电表,所述主机与所述电表还通过至少一条地址线相连;

所述主机在启动后监听多个I/O端口输入的信号,其中监听的I/O端口数不小于所述电表的总数;

所述电表在启动后通过所述地址线连接所述主机监听的多个I/O端口中的一个并向连接的端口发送一个连接信号,并侦听所述主机发送的地址信号;

所述主机在检测到连接信号后获取分配的地址,将地址返回给所述电表,并延时预定时间后通过所述通信总线向分配的地址发送握手信号;

所述电表接收到所述主机返回的地址后初始化所述通信总线并开始侦听所述主机发送的握手信号,并在接收到所述主机发送的握手信号后返回所述电表的身份验证信息;

所述主机根据所述身份验证信息校验所述电表的身份,若身份校验通过则完成通信地址的分配。

根据上述的方法与系统,采用地址线实现串行通信总线地址的分配,高效可靠,可以避免使用拨码开关或软件界面对电表进行地址设置,降低了智能电表采集系统安装维护的工作量,提高工作效率。而且,通过在同一根线缆中同时实现串行通信总线、地址线以及供电功能,可以减少使用的线缆的数量,使串行通信总线的连线结构更加精简。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

图1为本发明实施例提供的智能电表采集系统的示意图。

图2为图1的信息采集系统中智能电表分配序号的流程图。

图3为本发明实施例提供的智能电表采集系统中主机给电表分配地址的流程图。

图4为本发明实施例提供的数据更新流程图。

具体实施方式

为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、 特征及其功效,详细说明如后。

参阅图1,其为本发明实施例提供的智能电表采集系统100的示意图。如图1所示,智能电表采集系统100包括:主机10以及多个智能电表20。主机10与智能电表20之间可以采用串行通信总线(例如RS485串行通信总线)连接。

但在具体的线缆连接上,主机10与智能电表20之间的连接可以不采用传统的串口连接线,而可以采用8芯线缆(一般用于网线)连接,同时提供供电与通信功能。

在一个实施例中,8芯线缆的线序定义如下:

P1:电源+5V

P2:接地-

P3:保留

P4:RS485A+

P5:RS485B-

P6:保留

P7:Unit Enable(地址线)

P8:Data Enable(数据控制)

可以理解的是,8芯线缆的线序定义并不受上述限制,本领域普通技术人员可以根据具体的需要进行调整。

如上所述,基于8芯线缆中的引脚P4与P5,在主机10与智能电表20之间实现一个串行总线(例如RS485)通信系统,其中,主机10为主机,而智能电表20为电表。串行总线具有通信距离长和多电表支持的优点。但是串行总线中的电表要求具有唯一的地址。

在本实施例中,电表的地址可通过地址线(引脚P7)进行分配,参阅图2,其具体过程如下:

步骤S11,主机启动后初始化多个I/O端口为输入模式。

I/O端口的数量依赖于电表的数量,与电表的数量一一对应。本实施例中,电表数量为6个,则主机可初始化I/O端口D4~D9为输入模式。缺省时,主机地直线端口输入模式为低电平(当然也可以定义为高电平)。

现在的CPU都具有大量的I/O端口,每条地址线只占用主机和电表各一个I/O端口,同时地址线只需要传输一个地址数据,所以只需要设计低速通信,不需要占用特殊端口(例如SPI、I2C、1-Wire或UART)等。当然采用这些特殊端口同样可行。

步骤S21,电表启动后通过地址线连接主机对应的I/O端口,发送连接信号。

假设电表对应的主机的I/O端口为D4,则电表启动后通过地址线连接主机的D4端口。具体地,电表初始化端口D2为输出模式,发送一个电平信号(低-高-低)至主机的D4端口。例如,输出低电平保持50ms(时间可以定义为其他值),然后将端口D2拉高电平保持50ms(时间也可以定义为其他值),然后拉低电平。可以理解的是,此处的电平信号也可以任意约定。而上述的电平信号即为电表发送的连接信号。

步骤S22,电表将端口D2设置为输入模式,并开始侦听输入的地址信号。

例如,电表在端口D2启动摩斯电码侦听。当然,这里可以采用任何通信设计,能够传输要传输的数据即可。

步骤S23,若在设定周期(例如10s)内没有接收到任何数据,则电表停止侦听程序新重新执行步骤S21。

步骤S12,主机持续侦听I/O端口,当监测到预定的连接信号(例如电平信号下降沿高-低)时,表示有电表接入,执行步骤S13。

步骤S13,主机将分配的地址发送给电表。

首先,主机获取一个未被使用的地址,例如地址可以默认从1开始,每次分配使地址+1。然后,主机在延时预定时间(例如50ms)后在端口D4启动摩斯电码发送所分配的通信地址1。

步骤S24,电表接收到主机发送的地址后按照接收到的通信地址初始化串行总线通信,准备接收主机发送的握手信号。

步骤S14,在步骤S13之后主机延时预定时间(例如100ms)后通过串行通信总线向分配的地址(例如1)发送握手信号。

步骤S25,电表在接收到主机握手信号后返回电表身份验证信息。

步骤S15,主机根据电表返回的身份验证信息进行验证,若验证电表成功,则完成通信地址的自动分配。

步骤S16,主机通过串行总线定时向电表发出轮询请求以获取数据,若请求超时,则主机重新侦听地址线发送的连接信号,即执行步骤S12。

步骤S26,电表在指定的时间内没有接收到主机请求,则电表重新执行步骤S21直至获得正确的总线通信地址。

在完成地址的分配后,主机与电表之间就可以采用串行通信总线完成通信。

根据本实施例的智能电表采集系统,每个电表20的串行通信总线地址是通过地址线实现自动分配的,无须运维人员手动设置每个电表的串行通信总线地址,因此,降低了运维人员的工作量,而且可以避免人工设置过程当中容易出错的问题。

串行总线总是通过主机轮询电表,当电表数量很多以及电表采集数据量较大时,串行总线通信效率下降,数据延时较大。为提升通信效率,可以通过只传输变化数据和产生新数据时电表主动通知主机推送数据,参阅图3,其具体过程可如下:

步骤S41,缓存每一条采集的数据。

步骤S42,将当前采集的数据与上一次上报的数据进行比较,如果变化幅度大于或等于设定阈值则执行步骤S43;否则,忽略掉当前采集的数据,并可从缓存中清除当前采集的数据。

步骤S43,更新电表的数据变化索引。

在初始状态下,电表的数据变化索引为一个默认值(例如0)。此后,每产生一条待上报的数据,可使电表的数据变化索引按照预定的规则增加或者减少,例如,每产生一条COV数据,可使电表的数据变化索引增加1。

步骤S44,当接收到主机发送的数据轮询请求时根据轮询请求内的变化索引值获取所有待上报的数据返回给主机。

主机在接收到电表上报的数据后,会缓存上报的数据内包含的变化索引值,在下次发送数据轮询请求内可将该变化索引值包含在轮询请求内作为请求参数。

电表可将轮询请求内包括的变化索引值与电表数据变化索引进行比较,若两者相同,则说明距离上一次上报数据未产生新的待上报数据,此时获取的待上报的数据为空,此时电表可返回空数据包或者直接返回电表数据变化索引;若电表的数据变化索引值等于轮询请求内的变化索引的值+1,则说明距离上一次上报数据,有一条待上报的数据产生,此时,电表可最新的一条待上报数据与电表变化索引一并返回给主机;其他状态表示距离上一次上报数据,有多条待上报的数据产生,此时,电表可以获取上一次上报至今产生的所有待上报数据,并将其与电表数据变化索引一并返回。

由于并不是在所有的时间段都会产生用电量的变化,这种方式在不改变基本通信原则的前提下,可以级数级提升数据轮询速度和减少总线带宽占用。

串行总线轮询方式当电表数量很多时还是不能解决数据传输及时性,电表可通过复用地址线主动通知主机有新数据需要上报,参阅图4,其具体过程如下:

步骤S51,当主机成功给电表分配串行总线地址后,主机侦听与电表地址线连接端口;

步骤S52,电表产生新的变化数据后,调用地址线发送数据更新信号。

例如,调用地址线发送一个电平信号(低—高—低)。如上所述,在主机给电表分配地址的过程中,电表发送的连接信号也可以是低高低的电平信号。因此,要求主机能够根据不同的工作状态将相同的电平信号分别解析成连接信号与数据更新信号。具体地,当某个I/O端口已经被分配地址且处于正常通信过程中时接收到的电平信号即为数据更新信号,否则,即为连接信号。

步骤S53,主机接收到数据更新信号则调用串行总线发送数据请求,以获取电表变化数据。

为保证数据同步可靠性,可同时启用地址线数据推送通知和串行总线定时轮询(轮询周期可设置较长)。电表主动推送数据通知的方式在电表数量较多时可以很大的提升数据同步实时性。

此外,除了利用地址线发送数据更新信号,还可以采用其他的引脚,例如8芯电缆的引脚8发送数据更新信号。此时,数据更新信号与连接信号分别在不同的I/O端口中传输,更加可靠,但需要占用主机与电表更多的I/O端口。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是 未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1