一种电平信号的实时监测方法及装置的制作方法

文档序号:6134374阅读:284来源:国知局
专利名称:一种电平信号的实时监测方法及装置的制作方法
技术领域
本发明涉及信号监测领域,尤指一种对电平信号进行实时监测的方法及装置。
背景技术
在电子产品设计中,经常需要对产品中的诸多模块进行监测,以便了解模块的工作情况,及时发现问题。为了节约成本和简化设计,上述模块通常会输出一个用高低电平表示的电平信号表征自身状态。进一步地,采用光耦合器件或继电器对输出的电平信号进行前后级隔离,得到干结点信号。比如电源系统中采用干结点信号表征在位/不在位状态,高电平表示系统在位,而低电平表示系统不在位。监测装置只需采集模块的电平信号就能了解模块的工作情况。
目前,对电平信号进行监测的装置通常采用带有CPU的单片机或微控制器实现,该装置简单地把电平信号连接到单片机输入/输出(I/O)管脚上。图1显示的是这种监测装置的连接示意图,该监测装置通过单片机的I/O管脚读取电平信号的状态数据,从而了解相应模块的工作状态,电平信号的状态数据用0或1表示。
图1所示方法的主要缺点是其一、单片机可用的I/O管脚数量有限,当电平信号较多时,单片机的I/O管脚不够用。以常见的51系列单片机为例,该类单片机有P0~P3口,共32个I/O管脚。其中P0口和P2口用于外接扩展存储器。而P3口的P3.0和P3.1管脚通常作串口使用,P3.2和P3.3是中断输入管脚,所以可用于连接电平信号的I/O管脚通常不超过12个。电平信号一旦超过12个,单片机就无法一次性读入所有的电平信号。
其二、单片机通常采用轮询方式查询I/O管脚的电平来获取对应模块的当前状态数据,这种方式导致单片机无法实时监测电平信号的状态变化。
其三、在电平信号较多的情况下,单片机定时查询每个电平信号需要占用大量的CPU资源,造成不必要的资源浪费。
图2显示的是现有技术中另一种电平信号监测装置,该装置增加一个可擦编程逻辑器件(EPLD,Erasable Programmable Logic Device)。把被监测的电平信号连接到EPLD的I/O管脚上,通过逻辑设计将I/O管脚映射为EPLD的内部寄存器中的某个位(bit),单片机读取EPLD的内部寄存器对应位即可获得所需模块的当前状态数据。该方法的缺点在于需要在监测装置中增加EPLD器件,成本较高。

发明内容
有鉴于此,本发明的主要目的在于提供一种电平信号的实时监测方法,使主控单元能够监测大量的电平信号,并实时获取电平信号的状态数据,避免占用过多的CPU资源和I/O管脚。
本发明的另一目的在于提供一种电平信号的实时监测装置,使电平信号的监测具有较高的实时性。
为达到上述目的,本发明的技术方案具体是这样实现的一种电平信号的实时监测方法,用于包含主控单元的设备,其特征在于,将待监测的电平信号连接到预先设置的输入/输出扩展单元,该方法包括以下步骤a、至少一个待监测的电平信号发生变化时,输入/输出扩展单元发出中断请求给主控单元,并保存待监测的电平信号状态数据;b、主控单元响应中断请求,通过总线从输入/输出扩展单元读取待监测的电平信号状态数据。
进一步地,步骤b所述的通过总线读取待监测的电平信号状态数据的方法包括
b1、利用主控单元的输入/输出管脚模拟串行总线的信号线;b2、主控单元从模拟的串行总线信号线发送数据读取请求到输入/输出扩展单元;b3、输入/输出扩展单元应答数据读取请求,发送待监测电平信号的状态数据到主控单元。
进一步地,所述主控单元为单片机或带通信控制功能的CPU,则步骤b所述的总线为串行总线或并行总线。
较佳地,所述串行总线为I2C总线,或SMBUS总线。
较佳地,所述电平信号为干结点信号。
一种电平信号的实时监测装置,包括主控单元,其特征在于,该装置进一步包括输入/输出扩展单元,用于连接待监测的电平信号,当至少一个待监测的电平信号状态数据发生变化时,保存待监测的电平信号状态数据并发出中断请求到主控单元;所述主控单元,用于响应输入/输出扩展单元发出的中断请求,并通过总线从输入/输出扩展单元读取待监测的电平信号状态数据。
进一步地,所述主控单元为单片机或带通信控制功能的CPU。
进一步地,所述输入/输出扩展单元为具有串行或并行总线接口的输入/输出扩展芯片;所述输入/输出扩展单元为具有中断输出端口的输入/输出扩展芯片。
进一步地,所述串行总线包含主控单元利用其输入/输出管脚模拟的一条或多条I2C总线或SMBUS总线。
较佳地,所述串行总线并行连接一个或多个输入/输出扩展单元。
由上述技术方案可见,本发明的这种电平信号的实时监测方法和装置,由主控单元提供总线,通过总线从I/O扩展单元读取电平信号的状态数据,实现对多个电平信号的状态监测。这种采用总线外接I/O扩展单元的方法很好地解决了连接电平信号的I/O管脚数量不够的问题,同时也无需增加EPLD或占用已有的EPLD的I/O管脚。
进一步地,本发明采用主控单元的I/O管脚模拟I2C/SMBUS总线的信号线,通过模拟的总线外接多个I/O扩展单元,故扩展性强,更适于待监测的电平信号较多的场合。
此外,本发明还利用I/O扩展单元的中断输出保证主控单元对电平信号进行监测的实时性,且基于中断的监测方法能避免不必要地占用CPU资源。


图1为现有技术的一个电平信号的监测装置的连接示意图;图2为现有技术的另一个电平信号的监测装置的连接示意图;图3为本发明第一和第三实施例中实时监测装置的连接示意图;图4为本发明第二实施例的实时监测装置的连接示意图;图5为本发明第二实施例中电平信号的实时监测流程图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
第一实施例如图3所示,本实施例提供的对电平信号进行实时监测的装置包括主控单元301和I/O扩展单元302。其中,I/O扩展单元302的I/O管脚连接待监测的电平信号,用于监测电平信号的状态变换情况,当电平信号的状态数据变化时,I/O扩展单元302向主控单元301发出中断请求;主控单元301响应中断请求,利用总线从I/O扩展单元302的总线接口读取电平信号。
基于图3所示的装置,本实施例中电平信号的实时监测方法包括以下步骤首先、连接I/O扩展单元302的I/O管脚中至少一个待监测的电平信号发生变化时,I/O扩展单元302将所有I/O管脚上连接的电平信号状态数据读入内部寄存器,并给主控单元301发出中断请求。
其次、主控单元响应中断请求,通过总线从I/O扩展单元读取待监测电平信号的状态数据。
第二实施例在第一实施例的基础上,本实施例所提供的电平信号实时监测装置利用串行总线实现主控单元和I/O扩展单元之间的数据传输。如图4所示,主控单元利用I/O管脚模拟串行总线的信号线,通过总线从I/O扩展单元读取电平信号的状态数据。实际应用中,主控单元可以采用带CPU的单片机401或微控制器实现,也可以是常用的带通信控制功能的CPU,例如motorola公司的power PC系列CPU等。I/O扩展单元402采用具有标准串行总线接口、多个I/O管脚以及能产生中断输出的芯片实现。
上述串行总线优选I2C/SMBUS总线标准。其中,I2C(Inter-IntegratedCircuit)是philips公司开发并推出的一种具有多端控制能力的双线双向串行数据总线标准,串行管理总线(SMBUS,Serial Management Bus)是1995年由Intel公司提出的另一种总线标准,SMBUS能够兼容I2C总线标准,故本发明中将I2C和/或SMBUS表示为I2C/SMBUS总线标准。I2C/SMBUS总线标准规定在一次数据传输中,由一个设备充当主设备,控制自身与另一个具有单一地址的设备(从设备)之间的数据传输,主设备为数据传输过程产生时钟信号。
由于I2C/SMBUS总线需要串行时钟线(SCL)和串行数据线(SDA)来保证数据传输,故本实施例中,单片机401提供两个I/O管脚分别模拟SCL和SDA。如图4所示,单片机401的两个模拟SCL和SDA总线的管脚连接I/O扩展单元402的I2C/SMBUS总线接口,从I/O扩展单元402读取电平信号的状态数据,则I/O扩展单元402需要有标准的I2C/SMBUS总线接口。
现有的大部分I/O扩展芯片都具有I2C/SMBUS总线接口、多个I/O管脚以及能产生中断输出。例如philips公司的PCA9555、PCA9554等芯片;MAXIM公司也有满足上述要求的I/O扩展芯片。
进一步地,模拟总线外接两个上拉电阻403,阻值可选4.7k欧姆,并设置上拉电压Vcc与单片机401的供电电压一致,通常Vcc设为+5V。
如图4所示的装置中,单片机的I/O管脚模拟的I2C/SMBUS总线最多可以接入八片相同类型的I/O扩展芯片。比如模拟的I2C/SMBUS总线上接入八片PCA9555,而PCA9555有16个I/O管脚,所以模拟一条I2C/SMBUS总线能对128个电平信号进行状态监测。八个I/O扩展芯片的中断输出并接在单片机的同一个中断输入口,且I/O扩展芯片的I2C/SMBUS总线接口也并接在单片机模拟的总线上。只要有一个I/O扩展芯片发出中断请求,单片机就响应并执行中断,逐个读取I/O扩展芯片的电平信号状态数据,将所有电平信号的状态数据保存到单片机。
进一步地,如果需要监测的电平信号超过128个,还可以再利用单片机的另外两个I/O管脚模拟另一条I2C/SMBUS总线,实现对另外128个电平信号的状态监测。
上述单片机可以用带通信控制功能的CPU替换,利用该类型CPU的通用I/O(GPIO)管脚来模拟I2C/SMBUS总线。
基于图4所示的装置,本实施例的电平信号实时监测方法如图5所示,包括以下步骤步骤501当连接到I/O扩展单元的I/O管脚上的至少一个电平信号发生变化时,I/O扩展单元内部的逻辑电路和寄存器启动工作,将所有I/O管脚上的电平信号状态数据读入内部寄存器,并发出中断请求给单片机。
上述电平信号发生变化是指在某个时钟周期到来时,电平信号的状态数据与上一个时钟周期不同,即电平信号从高电平变为低电平,或反之从低电平变为高电平。如果所有电平信号的状态数据都没有变化,则I/O扩展单元既不读入电平信号的状态数据,也不发出中断请求。只要有一个电平信号的状态数据发生变化,I/O扩展单元就会读入电平信号的状态数据,并向单片机发出中断请求/INT。
对于I/O扩展单元上电初始化的特殊情况,I/O扩展单元会自动将I/O管脚初始状态读入内部寄存器。在单片机初始化时,即使没有接收到I/O扩展单元的中断请求,也需要从I/O扩展单元读取I/O管脚的状态数据。
在I/O扩展单元的芯片设计中,每个I/O管脚都逻辑映射为I/O扩展单元内部寄存器中的某个位,故与I/O管脚连接的电平信号的状态数据被保存到寄存器的相应位。
步骤502单片机响应中断,模拟I2C/SMBUS总线,实时地从I/O扩展单元读取电平信号的状态数据。
本步骤中,单片机模拟I2C/SMBUS总线,读取电平信号状态数据的过程具体如下1、单片机的两个I/O管脚模拟I2C/SMBUS总线的两个信号线SCL和SDA,可选单片机的P1和P3端口中任意两个管脚模拟总线信号线。如果单片机没有外接扩展存储器,也可以利用P0和P2口的管脚来模拟。
2、单片机通过模拟的总线信号线向I/O扩展单元发送一个启动位,启动数据传输。随后,单片机向I/O扩展单元传送I/O扩展单元的地址,并传送读写位‘0’给I/O扩展单元,表示要写一个命令字到I/O扩展单元。
此处,单片机传送的地址有七位,其中四位是I/O扩展芯片的类型,剩余三位A2、A1和A0是I/O扩展芯片的硬件连接地址,例如当A2设置为低电平接地、A1也设置为接地、A0设置为高电平上拉到电源时,该芯片的硬件地址为001。
3、I/O扩展单元接收到地址后,判断该地址与自身地址是否匹配,若匹配则给单片机发送应答。
4、单片机接收到应答位后,传送I/O扩展单元中保存电平信号状态数据的寄存器地址给I/O扩展单元,I/O扩展单元收到寄存器地址后再次回复一个应答位。
其中,单片机根据图4所示的连接关系获得保存电平信号状态数据的寄存器地址,并事先保存在单片机中。
5、单片机再次传送一个启动位,并传送I/O扩展单元的地址。该操作与步骤2相同。随后,单片机传送读写位‘1’给I/O扩展单元,表示要读取步骤4发送的寄存器地址中的电平信号的状态数据。
6、I/O扩展单元对单片机的请求给予应答,逐位发送寄存器地址中的电平信号状态数据。单片机接收所有电平信号的状态数据,并在数据传输完毕后发送通知位完成本次状态数据的读取操作。
上述步骤2~步骤6中,单片机和I/O扩展单元之间的数据传输都是通过模拟的I2C/SMBUS总线完成的,且单片机和I/O扩展单元之间的数据传输满足I2C/SMBUS总线时序。
当单片机读取了I/O扩展单元的电平信号状态数据后,I/O扩展单元发出的中断请求被清除。只有在I/O扩展单元的I/O管脚状态有新的变化时,I/O扩展单元才会再次产生中断请求。
上述步骤501和步骤502中,I/O扩展单元在电平信号发生变化时发出中断请求给单片机,并在单片机传送读写位‘1’给I/O扩展单元时,才将I/O扩展单元的I/O管脚状态数据保存到内部寄存器。
第三实施例本实施例的实时监测装置如图3所示,在第一实施例的基础上,主控单元301直接利用自身的并行总线从I/O扩展单元302读取电平信号,则I/O扩展单元302需采用带有并行总线接口的芯片实现。
对应上述装置,本实施例的电平信号实时监测方法包括以下步骤首先、至少一个待监测的电平信号发生变化时,I/O扩展单元将待监测信号的状态数据读入内部寄存器,并发出中断请求给主控单元。上述过程是通过I/O扩展单元内部的逻辑电路和寄存器实现的。
其次、主控单元响应中断请求,通过并行总线从I/O扩展单元读取待监测信号的状态数据。
在第一、第二以及第三实施例中,实时监测装置所监测的电平信号可以是干结点信号。
由上述的实施例可见,本发明的这种电平信号的实时监测方法和装置可以通过总线外接I/O扩展单元,故扩展性强,适用于待监测的电平信号多的场合,且基于中断的监测方法能避免不必要地占用CPU资源。
权利要求
1.一种电平信号的实时监测方法,用于包含主控单元的设备,其特征在于,将待监测的电平信号连接到预先设置的输入/输出扩展单元,该方法包括以下步骤a、至少一个待监测的电平信号发生变化时,输入/输出扩展单元发出中断请求给主控单元,并保存待监测的电平信号状态数据;b、主控单元响应中断请求,通过总线从输入/输出扩展单元读取待监测的电平信号状态数据。
2.根据权利要求1所述的方法,其特征在于,步骤b所述的通过总线读取待监测的电平信号状态数据的方法包括b1、利用主控单元的输入/输出管脚模拟串行总线的信号线;b2、主控单元从模拟的串行总线信号线发送数据读取请求到输入/输出扩展单元;b3、输入/输出扩展单元应答数据读取请求,发送待监测电平信号的状态数据到主控单元。
3.根据权利要求1所述的方法,其特征在于,所述主控单元为单片机或带通信控制功能的CPU,则步骤b所述的总线为串行总线或并行总线。
4.根据权利要求2或3所述的方法,其特征在于,所述串行总线为I2C总线,或SMBUS总线。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述电平信号为干结点信号。
6.一种电平信号的实时监测装置,包括主控单元,其特征在于,该装置进一步包括输入/输出扩展单元,用于连接待监测的电平信号,当至少一个待监测的电平信号状态数据发生变化时,保存待监测的电平信号状态数据并发出中断请求到主控单元;所述主控单元,用于响应输入/输出扩展单元发出的中断请求,并通过总线从输入/输出扩展单元读取待监测的电平信号状态数据。
7.根据权利要求6所述的装置,其特征在于,所述主控单元为单片机或带通信控制功能的CPU。
8.根据权利要求6所述的装置,其特征在于,所述输入/输出扩展单元为具有串行或并行总线接口的输入/输出扩展芯片;所述输入/输出扩展单元为具有中断输出端口的输入/输出扩展芯片。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述串行总线包含主控单元利用其输入/输出管脚模拟的一条或多条I2C总线或SMBUS总线。
10.根据权利要求9所述的装置,其特征在于,所述串行总线并行连接一个或多个输入/输出扩展单元。
全文摘要
本发明公开了一种电平信号的实时监测方法。该方法的过程包括待监测信号连接到输入/输出扩展单元,至少一个待监测信号发生变化时,输入/输出扩展单元发出中断请求给主控单元,并保存待监测的电平信号状态数据;主控单元响应中断请求,通过总线从输入/输出扩展单元读取待监测信号的状态数据。本发明还同时公开了一种电平信号的实时监测装置,该装置包括输入/输出扩展单元和主控单元。本发明的这种方法和装置扩展性强,适用于待监测的电平信号较多的场合,且基于中断的监测方法能避免不必要地占用CPU资源,保证主控单元对电平信号的状态监测的实时性。
文档编号G01R31/28GK1811480SQ200510002940
公开日2006年8月2日 申请日期2005年1月26日 优先权日2005年1月26日
发明者方庆银, 张冬艳 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1