通讯芯片故障消除实现方法及装置的制作方法

文档序号:7750707阅读:283来源:国知局
专利名称:通讯芯片故障消除实现方法及装置的制作方法
技术领域
本发明涉及工业自动化技术领域,更具体地说,涉及一种PR0FIBUS-DP协议通讯 芯片故障消除实现方法及装置。
背景技术
现场总线是用于生产制造现场的最低层通信网络,它实现了微机化的现场测量 控制仪器或设备之间的双向串行多节点数字通信。PR0FIBUS-DP是底层控制网络,专为自 动控制系统和设备级分散I/O之间通信设计,广泛应用于分布式控制系统(Distributed Control System, DCS)的高速数据传输。中央控制器通过高速串行线同分散的现场设备 (如I/O、驱动器等)进行通信。现有技术中,PR0FIBUS-DP采用RS485传输技术,DCS系统中的各从控制站通过 PR0FIBUS-DP协议通讯专用芯片SPC3、CPLD (复杂可编辑逻辑器件)以及RS485总线组成的 通信模块与主控制站通讯协议解析和物理层的数据流传输功能,具体的模块电路如图1所
7J\ o当从控制站处于发送数据状态时,SPC3芯片将单片机要传送的数据转换为 PR0FIBUS-DP协议规定的报文,按照PR0FIBUS-DP协议的规定转换为相应串行BIT(比特) 流,通过SPC3芯片上的TXD管脚将数据发出,通过CPLD将一路数据信号分为两路信号,提 供给两路RS485总线分别进行数据传输。RS485负责将BIT码转换成差分电平,以满足总线 传输的要求。当从控制站处于接收数据状态时,SPC3芯片处于接收状态,接收总线上发送过来 的数据。RS485接口收发模块负责将总线上的差分信号转换为电平信号,通过CPLD的A/B 选择逻辑,SPC3选择接收其中一路总线发送的信号,并对接收到的BIT流,进行解析,组合 成报文,提供给单片机。但是,通过发明人的研究发现,现有技术中仍然存在着以下缺点当某从控制站的通信模块发生故障时,RS485总线接口电路一直处于发送状态,则 导致该从控制站的通信模块一直占有总线,当总线上其它从控制站的通信模块在发送数据 时,将造成数据总线上的数据混乱,系统的其它从控制站的通信模块无法正常的收发数据, 从而导致整个系统无法正常工作。

发明内容
有鉴于此,本发明实施例提供一种通讯芯片故障消除实现方法及装置,当通讯芯 片发生故障占用通讯总线时,能够快速切断故障芯片对通讯总线的占用。本发明实施例提供一种PR0FIBUS-DP协议通讯芯片故障消除实现方法,所述方法 包括获取通讯芯片的工作状态;当所述工作状态为数据发送状态时,判断所述数据发送状态的维持时间是否超过
4预置时间阈值,如果是,则确定所述通讯芯片发生故障;将连接所述通讯芯片的总线收发器当前的数据发送状态设置为数据接收状态。优选的,所述判断所述数据发送状态的维持时间是否超过预置时间阈值,包括获取所述通讯芯片的发送数据端口输出的电平信号;判断在第一预置时间内,所述发送数据端口输出的每个字节的电平信号中是否有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述预置时间阈值。优选的,所述判断所述数据发送状态的维持时间是否超过预置时间阈值,包括获取所述通讯芯片上标识芯片工作状态的端口输出的电平信号;判断在第二预置时间内,所述标识芯片工作状态的端口输出的电平信号中是否有 电平变化,如果否,则确定所述数据发送状态的维持时间超过所述预置时间阈值。优选的,所述将连接所述通讯芯片的总线收发器当前的数据发送状态设置为数据 接收状态的实现方式为通过设置所述总线收发器的收发控制端口为低电平,将所述收发器设置为数据接 收状态。一种PR0FIBUS-DP协议通讯芯片故障消除实现装置,所述装置包括通讯芯片状态获取模块,用于获取通讯芯片的工作状态;故障判断模块,用于当所述工作状态为数据发送状态时,判断所述数据发送状态 的维持时间是否超过预置时间阈值,如果是,则确定所述通讯芯片发生故障;故障消除模块,用于将连接所述通讯芯片的总线收发器当前的数据发送状态设置 为数据接收状态。优选的,所述故障判断模块包括第一端口信号获取子模块,用于获取所述通讯芯片的发送数据端口输出的电平信 号;第一判断子模块,用于判断在第一预置时间内,所述发送数据端口输出的每个字 节的电平信号中是否有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述 预置时间阈值。优选的,所述故障判断模块包括第二端口信号获取子模块,用于获取所述通讯芯片上标识芯片工作状态的端口输 出的电平信号;第二判断子模块,用于判断在第二预置时间内,所述标识芯片工作状态的端口输 出的电平信号中是否有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述 预置时间阈值。优选的,所述故障消除模块通过设置所述总线收发器的收发控制端口为低电平, 将所述收发器设置为数据接收状态。同现有技术相比,本发明提供的技术方案中,对通讯芯片的工作状态进行监测,当 确定通讯芯片当前的工作状态是数据发送状态时,则对当前数据发送状态持续的时间进行 监测,当持续时间超过预置时间阈值时,则确定该通讯芯片发生故障,通过改变连接所述通 讯芯片的总线收发器的当前数据发送状态为数据接收状态,从而避免故障芯片长时间占用 数据总线,而导致当数据总线上的其他通讯模块发送数据时,造成数据总线上数据混乱的情形的出现。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中 所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图 获得其他的附图。图1为现有技术中从控制站的模块电路示意图;图2为本发明实施例提供的一种PR0FIBUS-DP协议通讯芯片故障消除实现方法步 骤流程示意图;图3为本发明实施例提供的从控制站的模块电路示意图;图4为图3中故障判断逻辑的封装芯片的管脚示意图;图5为本发明实施例提供的一种PR0FIBUS-DP协议通讯芯片故障消除实现装置的 结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。下面首先对本发明提供的PR0FIBUS-DP协议通讯芯片故障消除实现方法进行说 明,参照图2所示,所述方法包括步骤201、获取通讯芯片的工作状态;步骤202、当所述工作状态为数据发送状态时,判断所述数据发送状态的维持时间 是否超过预置时间阈值,如果是,则确定所述通讯芯片发生故障;步骤203、将连接所述通讯芯片的总线收发器当前的数据发送状态设置为数据接 收状态。本发明实施例中,通过对通讯芯片的工作状态进行监测,当确定通讯芯片当前的 工作状态是数据发送状态时,则对当前数据发送状态持续的时间进行监测,当持续时间超 过预置时间阈值时,则确定该通讯芯片发生故障,这时,通讯芯片长时间占用数据总线,当 数据总线上的其他通讯模块发送数据时,将造成数据总线上数据发生混乱。当通讯芯片发 生故障时,连接所述通讯芯片的总线收发器的当前状态为数据发送状态。为了避免上述情 形的出现,通过改变总线收发器的状态为数据接收状态,使得故障芯片释放对数据总线的 占用,从而保证数据总线上的其他通讯模块可以正常通讯,提高整个系统的稳定性。在本发明的一个优选实施例中,判断所述数据发送状态的维持时间是否超过预置 时间阈值的具体实现方式可以有以下两种在第一种实现方式中,通过获取所述通讯芯片的发送数据端口输出的电平信号; 判断在第一预置时间内,所述发送数据端口输出的每个字节的电平信号中是否有电平变 化,如果否,则确定所述数据发送状态的维持时间超过所述预置时间阈值。
在第二种实现方式中,通过获取所述通讯芯片上标识芯片工作状态的端口输出的 电平信号;判断在第二预置时间内,所述标识芯片工作状态的端口输出的电平信号中是否 有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述预置时间阈值。需要说明的是,上述两种实现方式可以单独使用,也可以同时使用,即同时监测通 讯芯片的发送数据端口和标识芯片工作状态的端口的电平信号,使得对于通讯芯片的故障 判断更为准确。其中,对于发送数据端口和标识芯片工作状态的端口,根据PR0FIBUS-DP协议,预 先设定的端口工作状态的持续时间阈值不一定相同,因此,对于两个端口的工作状态的持 续时间阈值分别以第一预置时间和第二预置时间进行区分。当确定通讯芯片发生故障,通讯芯片长时间占用数据总线时,在本发明的一个优 选实施例中,通过设置所述总线收发器的收发控制端口为低电平,将所述收发器设置为数 据接收状态。当收发器被设置为接收状态时,可以使得故障芯片释放对数据总线的占用,从 而保证数据总线上的其他通讯模块可以正常通讯,提高整个系统的稳定性。 下面通过一个具体实例对本发明实施例的技术方案进行解释说明。SPC3芯片是PR0FIBUS-DP协议通讯专用芯片,通常设置于从控制站中。从控制站 在未和主控制站建立通讯连接之前,从控制站中的SPC3芯片的RTS管脚始终维持为低电 平信号输出状态;而当从控制站和主控制站建立通讯连接之后,从控制站中的SPC3芯片的 RTS管脚的输出电平信号状态则由从控制站和主控制站的通讯状态决定。对于SPC3芯片来 说,通过RTS管脚输出的电平信号可以判断该芯片的工作状态当SPC3芯片处于发送状态 时,该芯片上的RTS管脚输出电平信号为高电平信号;此时,RS485接口收发模块处于发送 状态,由其向总线上发送数据。当SPC3处于接收状态时,该芯片上的RTS管脚输出电平信 号为低电平信号;RS485接口收发模块处于接收状态,由其接收总线上由主控制站下发的 数据。除此之外,SPC3芯片上的TXD管脚是发送数据端,按照PR0FIBUS-DP协议规定, 如果芯片功能正常,在发送状态时,TXD管脚在规定的时间内存在电平变化,这是由于 PR0FIBUS-DP协议采用NRZ (不归零码)编码方式,在位持续时期,二值信号0或1不改变。 对于一个字符,在PR0FIBUS数据总线上通常利用11个BIT来表示,传输过程中,字符的表 示格式如下表 1 可见,在这11个BIT中,至少存在一个电平信号由0到1的跳变。由此,可以通过对PR0FIBUS-DP协议通讯芯片上的发送数据端口或标识芯片工作 状态的端口进行监测,通过相应端口输出的电平信号,判断确定通讯芯片是否发生故障。如图3所示,为本发明实施例中的从控制站通讯模块电路连接示意图。在图3中,故障判断逻辑用于监测SPC3芯片的工作状态,从而判断SPC3芯片是否发生故障。故障判断逻辑的输入端分别连接SPC3芯片的发送数据端口 TXD和标识芯片工作状态的端口 RTS, 故障判断逻辑的输出端分别连接两路RS485收发器的收发控制端(RE、DE),故障判断逻辑 通过对RE、DE端电平信号的控制,从而实现对RS485收发器工作状态的控制。当SPC3芯片 发生故障时,需要将RS485收发器设置为接收状态,通过改变RS485收发器的状态为数据接 收状态,使得故障SPC3芯片释放对RS485数据总线的占用,从而保证RS485数据总线上的 其他通讯模块可以正常通讯,提高整个系统的稳定性。当需要将RS485收发器的状态设置 为数据接收状态时,通常将收发控制端(RE、DE)置为低电平。如图3所示,需要说明的是,本发明实施例中,利用单片机从SPC3芯片获取通讯波 特率,提供给故障判断逻辑,故障判断逻辑根据不同的波特率设定包数据发送定时器和字 节数据发送定时器的参数。包数据发送定时器用于设置发送数据端口(TXD)工作状态的持 续时间阈值;字节数据发送定时器用于设置标识芯片工作状态的端口(RTS)工作状态的持 续时间阈值。图4示出的是实现图3中故障判断逻辑的封装芯片的管脚示意图。上电初始化后, 单片机从SPC3获取通讯波特率,根据不同的波特率,单片机将波特率信息以参数的方式通 过RDBAUD_CS、RDDATALEN_CS、DB
管脚写入到故障判断逻辑中,故障判断逻辑根据 波特率参数配置,设定包数据发送定时器、字节数据发送定时器的参数,之后,故障判断逻 辑开始检测SPC3芯片的TXD管脚和RTS管脚的电平信号,如果发现异常,即两个定时器 中有任何一个发生超时,则将故障判断逻辑上的数据发送使能端T_EN管脚置为0,从而关 断发送开关,使T_EN管脚连接的RS485收发器设置为接收状态。这里,数据发送使能端T_ EN控制由通讯芯片SPC3输出的控制RS485收发器工作状态的控制信号,如果T_EN管脚输 出为高电平(置1),则SPC3芯片输出的控制RS485收发器的控制信号可以正常的控制收 RS485收发器为数据发送状态;如果T_EN管脚输出低电平(置0),则RS485收发器被强制 设置为数据接收状态,不再接受SPC3芯片输出的控制信号的控制。需要说明的是,当对SPC3芯片的TXD管脚和RTS管脚的输出电平信号均进行监测 时,则当SPC3芯片上电后,故障判断逻辑根据不同的波特率进行波特率参数的配置,并启 动字节数据发送定时器,检测SPC3芯片的发送数据在每个字节(串口为libit)的时间长 度内是否存在电平的跳变,如果否,则认为SPC3芯片串口输出引脚存在故障,则切断数据 发送使能端T_EN,从而保证当SPC3芯片发送故障时,可以将RS485收发器设置为接收状态。上述监测过程进行的同时,故障判断逻辑判断复位管脚RST_L是否产生复位电平 信号,如果产生复位电平信号,则重新进行故障判断逻辑中寄存器的初始化;如果没有产 生复位电平信号,则对包数据发送定时器进行配置,启动包数据发送定时器,在正确发送数 据后重新装载包数据发送定时器,如果发送数据完成后,数据发送使能端T_EN仍然没有复 位,则包数据发送定时器切断数据发送使能端T_EN,直到下一次轮询到该从站数据发送开 始时,再次启动包数据发送定时器功能,从而保证当SPC3芯片发送故障时,可以将RS485收 发器设置为接收状态。可见,上述实施例中,通过对通讯芯片的工作状态进行监测,当确定通讯芯片当前 的工作状态是数据发送状态时,则对当前数据发送状态持续的时间进行监测,当持续时间 超过预置时间阈值时,则确定该通讯芯片发生故障,这时,通讯芯片长时间占用数据总线, 当数据总线上的其他通讯模块发送数据时,将造成数据总线上数据发生混乱。当通讯芯片
8发生故障时,连接所述通讯芯片的总线收发器的当前状态为数据发送状态。为了避免上述 情形的出现,通过改变总线收发器的状态为数据接收状态,使得故障芯片释放对数据总线 的占用,从而保证数据总线上的其他通讯模块可以正常通讯,提高整个系统的稳定性。上述实施例仅以SPC3芯片为例,当然,如果有其它的可以实现PR0FIBUS-DP协议 的芯片,由于芯片需要遵循PR0FIBUS-DP协议,即对于一个字符在PR0FIBUS总线上利用11 个BIT来表示,格式同SPC3芯片中字符的表示方法相类似,因此,也可以采用本发明实施例 技术方案,对此,本发明不再进行赘述。相应上述PR0FIBUS-DP协议通讯芯片故障消除实现方法,本发明实施例还提供了 一种PR0FIBUS-DP协议通讯芯片故障消除实现装置,如图5所示,为该装置的结构示意图, 该装置具体可以包括通讯芯片状态获取模块501,用于获取通讯芯片的工作状态;故障判断模块502,用于当所述工作状态为数据发送状态时,判断所述数据发送状 态的维持时间是否超过预置时间阈值,如果是,则确定所述通讯芯片发生故障;故障消除模块503,用于将连接所述通讯芯片的总线收发器当前的数据发送状态 设置为数据接收状态。在本发明的一个优选实施例中,所述故障判断模块包括第一端口信号获取子模块,用于获取所述通讯芯片的发送数据端口输出的电平信 号; 第一判断子模块,用于判断在第一预置时间内,所述发送数据端口输出的每个字 节的电平信号中是否有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述 预置时间阈值。在本发明的另一个优选实施例中,所述故障判断模块包括第二端口信号获取子模块,用于获取所述通讯芯片上标识芯片工作状态的端口输 出的电平信号;第二判断子模块,用于判断在第二预置时间内,所述标识芯片工作状态的端口输 出的电平信号中是否有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述 预置时间阈值。其中,所述故障消除模块通过设置所述总线收发器的收发控制端口为低电平,将 所述收发器设置为数据接收状态。通过对通讯芯片的工作状态进行监测,当确定通讯芯片当前的工作状态是数据发 送状态时,则对当前数据发送状态持续的时间进行监测,当持续时间超过预置时间阈值时, 则确定该通讯芯片发生故障,这时,通讯芯片长时间占用数据总线,当数据总线上的其他通 讯模块发送数据时,将造成数据总线上数据发生混乱。当通讯芯片发生故障时,连接所述通 讯芯片的总线收发器的当前状态为数据发送状态。为了避免上述情形的出现,通过改变总 线收发器的状态为数据接收状态,使得故障芯片释放对数据总线的占用,从而保证数据总 线上的其他通讯模块可以正常通讯,提高整个系统的稳定性。对于装置实施例而言,由于其基本相应于方法实施例,所以描述得比较简单,相关 之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所 述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普 通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为 磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory, RAM)等。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明实施例的精神或范围的情况下,在其它实施例中实现。因此, 本发明实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和 新颖特点相一致的最宽的范围。
权利要求
一种PROFIBUS-DP协议通讯芯片故障消除实现方法,其特征在于,所述方法包括获取通讯芯片的工作状态;当所述工作状态为数据发送状态时,判断所述数据发送状态的维持时间是否超过预置时间阈值,如果是,则确定所述通讯芯片发生故障;将连接所述通讯芯片的总线收发器当前的数据发送状态设置为数据接收状态。
2.根据权利要求1所述的PR0FIBUS-DP协议通讯芯片故障消除实现方法,其特征在于, 所述判断所述数据发送状态的维持时间是否超过预置时间阈值,包括获取所述通讯芯片的发送数据端口输出的电平信号;判断在第一预置时间内,所述发送数据端口输出的每个字节的电平信号中是否有电平 变化,如果否,则确定所述数据发送状态的维持时间超过所述预置时间阈值。
3.根据权利要求1所述的PR0FIBUS-DP协议通讯芯片故障消除实现方法,其特征在于, 所述判断所述数据发送状态的维持时间是否超过预置时间阈值,包括获取所述通讯芯片上标识芯片工作状态的端口输出的电平信号;判断在第二预置时间内,所述标识芯片工作状态的端口输出的电平信号中是否有电平 变化,如果否,则确定所述数据发送状态的维持时间超过所述预置时间阈值。
4.根据权利要求1 3中任一项所述的PR0FIBUS-DP协议通讯芯片故障消除实现方 法,其特征在于,所述将连接所述通讯芯片的总线收发器当前的数据发送状态设置为数据 接收状态的实现方式为通过设置所述总线收发器的收发控制端口为低电平,将所述收发器设置为数据接收状态。
5.一种PR0FIBUS-DP协议通讯芯片故障消除实现装置,其特征在于,所述装置包括通讯芯片状态获取模块,用于获取通讯芯片的工作状态;故障判断模块,用于当所述工作状态为数据发送状态时,判断所述数据发送状态的维 持时间是否超过预置时间阈值,如果是,则确定所述通讯芯片发生故障;故障消除模块,用于将连接所述通讯芯片的总线收发器当前的数据发送状态设置为数 据接收状态。
6.根据权利要求5所述的PR0FIBUS-DP协议通讯芯片故障消除实现装置,其特征在于, 所述故障判断模块包括第一端口信号获取子模块,用于获取所述通讯芯片的发送数据端口输出的电平信号;第一判断子模块,用于判断在第一预置时间内,所述发送数据端口输出的每个字节的 电平信号中是否有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述预置 时间阈值。
7.根据权利要求5所述的PR0FIBUS-DP协议通讯芯片故障消除实现装置,其特征在于, 所述故障判断模块包括第二端口信号获取子模块,用于获取所述通讯芯片上标识芯片工作状态的端口输出的 电平信号;第二判断子模块,用于判断在第二预置时间内,所述标识芯片工作状态的端口输出的 电平信号中是否有电平变化,如果否,则确定所述数据发送状态的维持时间超过所述预置 时间阈值。
8.根据权利要求5 7中任一项所述的PR0FIBUS-DP协议通讯芯片故障消除实现装 置,其特征在于,所述故障消除模块通过设置所述总线收发器的收发控制端口为低电平,将 所述收发器设置为数据接收状态。
全文摘要
本发明公开了一种PROFIBUS-DP协议通讯芯片故障消除实现方法及装置,其中,所述方法包括获取通讯芯片的工作状态;当所述工作状态为数据发送状态时,判断所述数据发送状态的维持时间是否超过预置时间阈值,如果是,则确定所述通讯芯片发生故障;将连接所述通讯芯片的总线收发器当前的数据发送状态设置为数据接收状态。通过本发明,当通讯芯片发生故障占用通讯总线时,能够快速切断故障芯片对通讯总线的占用。
文档编号H04L12/24GK101854258SQ201010192620
公开日2010年10月6日 申请日期2010年6月1日 优先权日2010年6月1日
发明者万雪飞, 史洪源, 张云禧, 王常力, 韩宝林 申请人:杭州和利时自动化有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1