一种嵌入式设备CPU及其外设状态实时监测方法、系统与流程

文档序号:11620476阅读:245来源:国知局
一种嵌入式设备CPU及其外设状态实时监测方法、系统与流程

本发明属于嵌入式技术领域,具体涉及一种嵌入式设备cpu及其外设状态实时监测方法、系统。



背景技术:

在嵌入式开发过程中,经常会遇到cpu外设调试出现异常的情况。出现异常了之后,很多时候,程序员会根据自己的经验去“猜”问题出现在哪里。当然,也会通过去读取外设的各种寄存器来进行分析,最终找到异常。但是,这个过程经常是比较繁琐的,有些问题的定位和重现也比较耗时,因为有些问题需要很特殊的测试环境下才会重现。而且,有时候虽然记录了大量外设的数据,但是缺少自动的分析工具,消耗在分析异常点的时间格外多。在研发过程中可能还会遇到其他各种各样的问题,一旦出现问题可以使用很多成熟的技术手段去解决,但是解决的过程并不都是很有效或者很快速的。



技术实现要素:

本发明的目的在于提供一种嵌入式设备cpu外设状态实时监测方法及系统,用以解决现有嵌入式设备cpu外设调试出现异常时不能快速有效定位和重现异常所在的问题;本发明还提供一种嵌入式设备cpu,用以实现实时监测嵌入式设备cpu外设的状态。

为解决上述技术问题,本发明的技术方案为:

本发明的一种嵌入式设备cpu外设状态实时监测系统,包括运行于嵌入式设备cpu端的服务器模块和运行于pc机端的pc机客户端,所述嵌入式设备cpu端的服务器模块和pc机客户端通讯连接,所述嵌入式设备cpu端的服务器模块包括:

状态记录模块:用于读取外设寄存器中存储的状态数据;

数据存储模块:用于将状态数据存入设定的存储空间;

第一数据通讯模块:用于接收pc机客户端的指令信息,并根据指令信息寻址,查找对应的存储空间,将对应存储空间中的状态数据发送到pc机;

所述pc机客户端包括:

第二数据通讯模块:用于给外设状态采集单元发送指令信息,并接收嵌入式设备cpu发送的状态数据;

可视化数据模块:用于将状态数据进行显示。

进一步地,所述嵌入式设备cpu端的服务器模块还包括用于将存储的状态数据按照设定的数据结构进行打包的模块。

进一步地,所述pc机客户端还包括用于解析接收的状态数据的数据解析模块。

进一步地,所述pc机客户端还包括用于将解析的状态数据进行分析的数据分析模块。

进一步地,所述数据结构包括:头部标识、设备id号、时标、状态分类号、cpu号、数据长度、校验和以及状态数据;其中,设备id号表示不同的外设,时标表示记录状态的时刻,状态分类号表示外设的不同状态,数据长度表示记录状态数据的长度。

进一步地,还包括用于将分析的状态数据进行图形化显示的模块,当分析的状态数据出现异常时,将对应的图形高亮显示。

本发明的一种嵌入式设备cpu,包括运行于嵌入式设备cpu端的服务器模块,所述嵌入式设备cpu端的服务器模块包括:

状态记录模块:用于读取外设寄存器中存储的状态数据;

数据存储模块:用于将状态数据存入设定的存储空间;

第一数据通讯模块:用于接收pc机的指令信息,并根据指令信息寻址,查找对应的存储空间,将对应存储空间中的状态数据发送到pc机。

进一步地,还包括用于将存储的状态数据按照设定的数据结构进行打包的模块。

进一步地,所述数据结构包括:头部标识、设备id号、时标、状态分类号、cpu号、数据长度、校验和以及状态数据;其中,设备id号表示不同的外设,时标表示记录状态的时刻,状态分类号表示外设的不同状态,数据长度表示记录状态数据的长度。

本发明的一种嵌入式设备cpu外设状态实时监测方法,pc机客户端发送包含需显示状态的外设的指令信息,嵌入式设备cpu端的服务器模块根据指令信息寻址,查找对应的存储空间,将对应存储空间中的状态数据发送到pc机客户端,pc机客户端在接收到状态数据后,将状态数据进行显示。

进一步地,还包括将读取的状态数据按照设定的数据结构进行打包的步骤。

进一步地,还包括在接收到状态数据后,解析接收的状态数据的步骤。

进一步地,还包括在解析接收的状态数据后,将状态数据进行分析的步骤。

进一步地,所述数据结构包括:头部标识、设备id号、时标、状态分类号、cpu号、数据长度、校验和以及状态数据;其中,设备id号表示不同的外设,时标表示记录状态的时刻,状态分类号表示外设的不同状态,数据长度表示记录状态数据的长度。

进一步地,还包括将分析的状态数据进行图形化显示的步骤,当分析的状态数据出现异常时,将对应的图形高亮显示。

本发明的有益效果:

本发明的嵌入式设备cpu外设状态实时监测方法及系统,通过在嵌入式设备软件平台设计实现的外设状态采集单元来实时读取嵌入式设备cpu外设的寄存器,获取各种外设的各种状态,并将这些状态信息发送给pc客户端,pc客户端将这些状态信息进行显示,以供调试人员分析。本发明能够在嵌入式开发过程中,及时的读取各种外设的寄存器来查看并分析外设的状态,当外设出现异常后,只需将本系统记录的数据做分析便能够及时的发现问题所在,无需再去写测试代码、或者拷机重现异常,方便问题的定位和重现,有利于在观测到外设异常后做及时的处理,从而提高测试效率。

本发明的嵌入式设备cpu,设计多个模块来将嵌入式设备cpu外设的状态信息进行读取并存储,能够根据指令信息将需处理的外设状态信息进行打包发送,能够提高测试效率。

附图说明

图1是本发明的嵌入式设备cpu外设状态实时监测系统图;

图2是本发明的数据通讯示意图;

图3是本发明的数据包结构示意图;

图4是存储模块逻辑存储空间示意图;

图5是外设在内存空间存储结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚,下面结合附图及实施例,对本发明作进一步的详细说明,但本发明的实施方式并不局限于此。

本发明的嵌入式设备cpu外设状态实时监测系统实施例:

通常情况下,嵌入式设备cpu外设都有各自对应的寄存器,而这些外设都会根据事先的定义,将自己的状态信息存储在这些寄存器里。若有需求,可通过读取这些寄存器里存储的内容,即可获知该外设的一些状态信息。

如图1所示,嵌入式设备cpu外设状态实时监测系统包括嵌入式设备cpu端服务器模块和pc机客户端,嵌入式设备cpu和pc机通讯连接,pc机上设置有客户端,嵌入式设备cpu端服务器上设置有外设状态采集单元。外设状态采集单元在嵌入式设备软件平台设计实现,与pc客户端相互配合从而实现对嵌入式设备cpu外设状态的实时监测。外设状态采集单元与pc客户端之间的通讯可以支持多种方式:串口、以太网等,不同的通讯方式由相应的介质及其驱动支持。

另外,这里的pc机并不只是指个人pc机,也包括能够处理数据且显示数据的终端,可以是笔记本、pad等等。

外设状态采集单元主要作用是记录指定外设的状态数据,按照设定的数据结构进行打包并存入各自对应的存储空间里,然后将这些外设状态数据传递给pc客户端;pc客户端主要用来下发指令给外设状态采集单元,并将接收的外设状态数据进行解析并分析。

外设状态采集单元包括状态记录模块、数据存储模块和第一数据通讯模块。具体的作用和实现的功能如下:

1)状态记录模块:根据pc客户端发送的指令,确定需要记录哪些外设的状态信息以及记录状态的频率等;然后cpu通过通讯总线来读取需记录状态信息的外设的寄存器,获取外设的各种状态信息;接着将这些外设状态按照图3的格式进行打包,形成一个个的数据包;并将这些数据包发送给数据存储模块。

从图3中可以看出,该数据结构包括:头部标识(oxeb90aa55)、设备id号、时标、状态分类号、cpu号、数据长度、校验和以及状态数据。在嵌入式设备软件平台初始化的时候,外设状态采集单元就会根据设备的实际的外设情况,为每个外设分配不同的设备id号,以便在解析数据包时能够根据设备id号便可区分不同的外设;外设的状态分类号需要根据每个外设的特性定义,同样根据外设的状态分类号便可区分外设的不同状态;时标是记录状态的时刻。

2)数据存储模块:该模块为每一个需要统计状态的外设分配存储空间,并按照一定的规律,将接收的数据包存储在对应的数据存储区。如图4所示,该外设对应的数据存储区是在初始化时候申请的内存空间,每个外设都有自己独立的存储空间。

3)第一数据通讯模块:用来处理和pc客户端的数据交互,如图2所示。该模块不仅接收并解析pc客户端下发的指令信息,根据解析出的指令信息来确定有哪些外设需要统计状态信息;根据指令信息寻址,查找对应的存储空间,将对应存储空间中的数据包进行上传,即发送给pc客户端。

pc客户端包括第二数据通讯模块、数据解析模块、数据分析模块和可视化数据模块。具体的作用和实现的功能如下:

1)第二数据通讯模块:用来实现人机交互,即向外设状态采集单元下发指令,接收外设状态采集单元反馈来的数据包,并传递给数据解析模块。

2)数据解析模块:根据事先定义的数据包的数据结构,解析接收到的数据包,并根据解析的结果按照cpu号、设备id、状态分类号等进行分类统计,放入不同的数据队列供数据分析模块和可视化数据模块使用,存储数据结构示意图如图5所示。

3)可视化数据模块:将解析出来的状态数据以一种图形化的形式现实出来(线形图、柱状图、饼状图、树形图等),显示方式根据每种外设状态的特点自动选定,也可以是用户自定义。

4)数据分析模块:根据不同外设相应的状态特征,对数据解析模块解析的状态数据进行实时的分析,一旦发现异常就会发出告警,并会在可视化模块将异常数据对应的图形高亮显示。这是一个针对不同的外设来进行二次分析的一个过程,针对不同的外设会增加不同的分析策略,在不断分析和测试的过程中,可以通过不断的积累而越来越全面和强大。

具体的状态监测过程如下:

首先,装置初始化。主要完成三部分工作,即:

1)为每个外设分配唯一的设备id号,并根据每种外设各自的特点,对需要进行状态记录的外设进行分类并分配状态分类号,即设备id号用来区分不同的外设,状态分类号用来区分同一外设的不同状态类型。

2)初始化状态监测使用到的变量结构、为外设分配存储空间。

3)启动一个数据通讯的任务,该任务会根据pc客户端的指令来处理数据的上送。

接着,在初始化完成后,pc客户端会通过第二数据通讯模块下发指令给外设状态采集单元,该下发的指令告诉外设状态采集单元有哪些外设状态信息需要进行记录以及记录的频率。

外设状态采集单元通过通讯总线来读取外设的存储器,获取外设的状态信息,并按照图3的格式进行打包,形成一个个的数据包。这些数据包包括备id号、时标、状态分类号、cpu号、数据长度、校验和以及状态数据等。并将这些信息发送给数据存储模块进行存储。数据存储模块按照事先分配的存储空间,将这些数据包存储在对应的数据存储区里。

在接收到pc客户端下发的指令后,第一数据通讯模块根据指令信息寻址,查找对应的存储空间,将对应存储空间中的数据包进行上传,将这些外设数据传递给pc客户端。

然后,pc客户端的第二数据通讯模块在接收到这些数据包以后,数据解析模块会解析接收的数据包,将这些数据包进行分门别类,并将数据按照cpu号、设备id、外设分类号等信息进行分类统计,放入不同的数据队列,以供不同的外设对应的数据分析模块和可视化数据模块来使用。

最后,数据分析模块将解析出来的数据进行实时的分析,并将分析的结果通过可视化数据模块以一种图形化的形式表现出来,显示方式可以根据每种外设的特点来选定,可以自动选定,也可以是用户自定义,这些图形可以是线形图、柱状图、饼形图、树形图等等,方便人机交互。如若分析时发现数据异常便会告警,并在可视化图形模块中将对应的图形进行高亮显示,以提示测试人员。

在本实施例中,外设状态采集单元中的状态记录模块,能将读取的状态数据按照设定的数据结构进行打包,形成一个个的数据包,接着,数据存储模块将这些数据包存储在设定的存储空间中,打包的主要目的是为了区分每个外设的每一种状态的数据,由于状态数据量可能很大,所以需要将数据按照一种科学紧凑的方式缓存起来,充分利用有限的存储空间(如图4、5所示),大量的、不同外设的、不同状态类型的数据放在一起,需要制定便捷、有效的数据协议来区分每一个状态数据。在这个过程中,数据打包的过程对应pc客户端的数据解析模块实现的功能,即将cpu端的数据通讯模块发送来的数据包进行解析,将状态数据解析出来。这是一种较常规的一种数据发送方法,因数据结构中带有校验和,也使得pc客户端处理的状态数据较为准确。

另外,pc客户端将接收到外设状态采集单元发送来的数据包进行解析以后,可不做处理,直接通过可视化数据模块将这些状态数据进行显示,调试人员根据显示的状态数据,人为的分析这些数据,从而判断是否出现异常。这种方法可能会花费调试人员较多的时间,但也基本能实现本发明的功能。

总体来说,该系统能够在研发阶段提高调试效率、提升问题的分析能力,一旦本系统支持的外设在有异常的情况下,测试人员无需再去写测试代码、不用再耗时地拷机重现异常,只需将本系统记录的数据在pc客户端工具上重现,就能在图形化显示的界面上发现异常发生的时间、异常发生的前后外设的状态、异常发生时刻的状态等,通过这些信息即可方便地分析嵌入式设备cpu外设的状态。

本发明的嵌入式设备cpu外设状态实时监测方法实施例:

在上述介绍的嵌入式设备cpu外设状态实时监测系统,其实质在于提供了一种本发明的嵌入式设备cpu外设状态实时监测方法,即pc机客户端发送包含需显示状态的外设的指令信息,cpu根据指令信息读取cpu外设存储器中存储的状态信息,并将读取的状态信息存入设定的存储空间,然后将状态信息发送给pc机客户端,pc机客户端在接收到状态数据后,将状态数据进行显示。由于对上述系统的介绍已足够清楚明白,故对该方法不再做过多介绍。

本发明的嵌入式设备cpu实施例:

在上述介绍的嵌入式设备cpu外设状态实时监测系统中介绍了该系统中的嵌入式设备cpu,嵌入式设备cpu端服务器模块包括状态记录模块、数据存储模块和第一数据通讯模块,其实现的功能及工作原理也已做详细介绍,故对本发明的嵌入式设备cpu不再做过多介绍。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

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