CN101369238A - Usb设备中异常监控复位处理方法 - Google Patents

Usb设备中异常监控复位处理方法 Download PDF

Info

Publication number
CN101369238A
CN101369238A CNA2008101247646A CN200810124764A CN101369238A CN 101369238 A CN101369238 A CN 101369238A CN A2008101247646 A CNA2008101247646 A CN A2008101247646A CN 200810124764 A CN200810124764 A CN 200810124764A CN 101369238 A CN101369238 A CN 101369238A
Authority
CN
China
Prior art keywords
register
usb device
data
storage space
usb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008101247646A
Other languages
English (en)
Inventor
朱巧明
刘纯平
王宜怀
郭芸
刘晓升
曹振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou University
Original Assignee
Suzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou University filed Critical Suzhou University
Priority to CNA2008101247646A priority Critical patent/CN101369238A/zh
Publication of CN101369238A publication Critical patent/CN101369238A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种USB设备中异常监控复位处理方法,包括以下步骤:(1)在USB设备的数据存储区内或高端PC机中设置一个连续的存储空间;(2)读取USB设备内各个寄存器内的数据,并将数据存入步骤(1)中所述存储空间内;(3)在***出现异常时,通过看门狗复位处理程序复位USB设备;(4)将步骤(2)中所述储空间内的数据存入对应的各个USB设备寄存器中。本发明通过将USB设备的误别地址存放于存储空间内,待复位后将该存储空间内的数据还原至USB各寄存器内,实现PC机的正常识别,避免热复位后USB设备无反应的异常出错现象,提高嵌入式***的安全性、可靠性、抗干扰性。

Description

USB设备中异常监控复位处理方法
技术领域
本发明涉及一种异常监控复位处理方法,具体涉及一种USB设备中的异常监控复位处理方法。
背景技术
软件常常是解决问题成本最低、灵活性最高的方案,但它也迫使设计人员进行一些额外的测试以确保***的可靠性。软件实现的***特别是当前流行的嵌入式***由于程序代码设计出现的没有被发现的错误,容易引起***运行的异常,同时***的硬件部分的不稳定也经常会导致***运行的异常。在台式机***中出现导致***瘫痪的软件错误并不可怕,因为用户只需重新启动***即可,它只会造成少量数据的丢失。然而,对于应用在工控***中的嵌入式***,则必须能够在没有人为干预的条件下处理异常、恢复故障。通常采用异常监控机制来提高上述***的可靠性,该机制被称为看门狗(Watching Dog),即***异常监视模块(Computer Operating Properly),当***运行出现不能自我控制的异常时,为***提供强制复位功能,用以恢复***正常运行。
所谓***正常操作监视模块COP,是一个自动运行的计数器,在***配置中设定COP允许后,***会启动COP,用户程序必须周期性地向COP控制寄存器中写入任意值,叫做给看门狗喂食,正确喂食以后,会清除COP计数器中的计数,从而使计数器重新计数。若***由于某种原因使软件不能正常工作时,COP计数器就得不到周期性地清零,那么一段时间(大约几十毫秒)后,计数器就会溢出,这时COP模块会自动使***进行复位,***会重新从故障点恢复到正常运行的轨道上来,这样就防止了程序进入不可预料的操作状态。COP技术在很大程度上提高了嵌入式***运行的可靠性和抗干扰能力。
然而,目前的COP模块在一般的***中通过这种复位就能够保证***从故障点恢复到正常运行的轨道上,但对于某些特殊的模块(如USB模块),这种简单的复位方法就会出现问题了。具体来说,低端单片机通过USB接口与高端PC进行数据通信、采集时,由PC机提供工作电源,当USB设备进行插拔的时候,整个数据采集***会掉电。引入COP功能后,看门狗使***复位,相当于重新进行了一次***初始化。理论上讲,只要单片机端程序都是自己的行为,***重新进行***初始化后,程序都可以正常运行,但实际使用中发现***出现了一种莫名其妙的错误,会提示读取不到USB设备描述符和设备号,并且无法与USB设备通信,但是操作***并不提示发现无法识别的USB设备。
上述出错原因是:当USB设备插到PC机USB总线上以后,高端PC机依靠其操作***的定时检测机制,能及时发现有USB设备已经***到了USB总线上,然后由高端PC操作***主动分配给每个检测到的USB设备一个独立的地址来区分不同的USB设备。低端MCU方接收到高端分配的这个地址后存入寄存器中。如果发生了看门狗复位(热复位),USB模块中除了数据寄存器以外的所有的寄存器都会被清成零,这样一来,高端用热复位以前的参数进行交互,低端用热复位以后的参数(至少地址已经变成了默认的0x00了)进行交互,这就造成了热复位后高低两端进行的交互用到参数不一致。因此,造成高端PC无法与USB设备进行通信。
如上所述,为使USB设备再次正常工作,只有将USB设备再次插拔(即冷启动),PC操作***才会重新识别,分配出新的地址。显然,这对需要在没有人为干预条件下能处理异常、恢复故障的嵌入式***来说,现有的看门狗失去了其原本存在的意义。
发明内容
本发明目的是提供一种USB设备中异常监控复位处理的方法,通过该方法,在USB设备中看门狗自行复位后,高、低端设备间仍能保持正常数据通信与采集。
为达到上述目的,本发明采用的技术方案是:一种USB设备中异常监控复位处理方法,包括以下步骤:
(1)在USB设备的数据寄存器内设置一个存储空间;
(2)在***正常工作状态下,读取USB设备内各个除数据寄存器以外的寄存器内的数据,获得USB设备工作的设定值,并将该设定值存入步骤(1)中所述存储空间内;
(3)在***出现异常时,通过看门狗复位处理程序复位USB设备;
(4)将步骤(2)中所述储空间内的数据存入对应的除数据寄存器以外各个USB设备寄存器中。
USB设备与高端PC机间的数据交互,是通过USB设备的插接,依靠PC机的操作***定时检测机制,主动发起USB设备的设备列举,PC机向USB设备索取设备描述符、设备号等相关信息,并分配给一个地址,USB设备接收到该地址后将自己默认的7位地址改成该新地址,并保存到寄存器中。所述寄存器包括USB地址寄存器(UADDR)、USB中断寄存器(UIR0、UIR1、UIR2)、USB控制寄存器(UCR0、UCR1、UCR2、UCR3)、USB状态寄存器USR,当看门狗计数器溢出后(***出现异常),启动复位清零程序,此后上述各寄存器内的数据均被初始化,造成PC机无法识别恢复后的USB设备。为此,上述技术方案中,在USB设备的数据寄存器内开辟一存储空间,这是由于复位操作时,该寄存器内的数据不会被清零,因此将USB设备与PC机交互用数据保存在内,当看门狗进行复位清零程序后,便将存储空间内的交互数据重新复制到USB设备的各个对应寄存器内,从而使寄存器内的数据在复位前后相一致,PC机仍能识别该USB设备。
上述技术方案中,所述步骤(1)中的存储空间为设置于USB设备数据存储区内的8个连续字节的存储空间。
进一步的技术方案是,在看门狗复位程序清空指令之前,读取USB设备中状态寄存器、控制寄存器、中断寄存器和地址寄存器中的数据,获得所述设定值,并存入所述存储空间内;在执行清空指令后,将所述存储空间内的数据分别存入USB设备中对应的状态寄存器、控制寄存器、中断寄存器和地址寄存器中。高端PC操作***主动发起的设备列举是在低端初始化并开放总中断后,通过使低端USB设备产生USB接收中断来与其进行参数交互传递的,所以***中对USB寄存器进行的修改只可能在USB初始化函数中或者在USB中断处理函数中出现,于是可以到这两处找USB寄存器的最终值。由于先进行***初始化,再开放总中断,然后发生USB接收中断进行参数交互,中断完成之后就进行正常的设备检测,也就是说只要维持在刚退出USB中断处理函数时的寄存器的值就能够保证USB设备的正常检测、识别和通信。所以在中断处理函数退出之前的“CLI”前面加上保存所有相关寄存器的值的程序,就可以成功保存***正常运行时候的各寄存器的设定值。
另一种技术方案是,通过程序随时读取USB设备中状态寄存器、控制寄存器、中断寄存器和地址寄存器内的数据,经USB接口送至高端PC机内,由PC机分析比较得出各寄存器内的固定值,该值为所述设定值,并存放入所述存储空间内,待触发看门狗处理程序复位时,通过程序将存储空间内的设定值赋值于USB设备中的各寄存器中。高端PC机接收到USB设备传送的数据后做进一步分析,观察USB在正常工作情况下,这些寄存器的哪些位是变动的,哪些位是需要一直固定的。然后分析出影响USB设备识别的最关键的位,确定它们在正常情况下最恰当的设定值。然后只要是发生热复位(由看门狗处理程序复位的),就在热复位处理程序中把这些位还原回去,即通过修改程序,将存储空间内的数据赋值于USB设备中各寄存器内,这就达到了恢复寄存器的目的。
在上述两种技术方案中,前者更为优选,其无需判断复位的属性,既便是冷复位(***正常重启动),如果在初始化完成之后也调用存储空间内数据的程序,由于数据寄存器中的变量没有赋值,程序有可能会把一些错误的值写入到寄存器中去,但是由于是冷复位,随后高端PC机操作***发起的设备列举会重新给寄存器赋予正确的值,所以***仍能够正常进行USB设备识别和通信。这样一来,为了保持冷热复位时程序的一致性,在程序中就可以不再判断是不是热复位了,无论在哪种复位情况下,在开放总中断前一句的位置都调用这个恢复寄存器值的程度,就能保证无论发生何种复位,***都能进行正常的设备检测和正常通信。
由于上述技术方案运用,本发明与现有技术相比具有下列优点:本发明通过在看门狗复位处理程序复位清零执行之前,将存储USB设备与高端PC机交互的数据,存放于USB设备的存储空间内,待***出现异常引发看门狗复位清零程序后,由程序将存储空间内的数据分别赋予USB设备原来存放地址的各寄存器内,还原为复位前的数据,使高端PC机仍能识别该USB设备,避免USB设备热复位后的异常出错,由此确保嵌入式***的安全性、可靠性、抗干扰性,最大程度的发挥看门狗的复位作用。
附图说明
图1是本发明实施例一的***运行流程图。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例一:参见图1所示,一种USB设备中异常监控复位处理方法,包括以下步骤:
(1)在USB设备的数据存储区内设置一个8字节的连续的存储空间;
(2)在***正常工作状态下,读取USB设备内各个除数据寄存器以外的寄存器内的数据,获得USB设备工作的设定值,并将该设定值存入步骤(1)中所述存储空间内;
通常在***启动时,判断***为正常启动,此时先进行各个模块的初始化操作,开中断,然后再进行上述读取保存操作,最后转入正常工作流程;
(3)在***出现异常时,通过看门狗复位处理程序复位USB设备;
此时,***重启动,***初始化后,判断为看门狗复位操作,先进行其它模块的初始化操作,再进入步骤(4);
(4)将步骤(2)中所述储空间内的数据分别存入USB设备中对应的状态寄存器、控制寄存器、中断寄存器和地址寄存器中。
最后开中断,重新转入正常工作流程。
本实施例中,所述USB设备为JB8单片机,是飞思卡尔半导体公司生产的一款内部集成USB1.1通信模块的高性能低价位单片机。利用USB接口与高端PC进行数据通信的数据采集***,JB8单片机***通过USB电缆由PC机提供工作电源。
步骤(2)中读取USB设备的设定值,也可在步骤(3)看门狗复位程序清空指令“CLI”之前读取,复位时,先进行***初始化,再开放总中断,然后发生USB接收中断进行参数交互,中断完成之后就进行正常的设备检测,也就是说只要保存在刚退出USB中断处理函数时寄存器内的值,就能够保证USB设备的正常检测、识别和通信;因此,在看门狗中断处理程序退出之前的“CLI”前面加上保存所有相关寄存器(状态寄存器、控制寄存器、中断寄存器和地址寄存器)值的程序,就可以成功保存***正常运行时候的各寄存器的设定值。保存完之后发生看门狗复位(步骤(3)),由于数据寄存器(UenD)中的数据不会改变,所以这些变量的值在看门狗复位之后仍然保存在数据寄存器中,只需要把它们直接恢复到其他各寄存器中就可以使***正常运行,实现了寄存器在复位前后的一致性,高端PC机仍能够识别。
实施例二:一种USB设备中异常监控复位处理方法,包括以下步骤:
(1)在USB设备的数据存储区内设置一个8字节的连续的存储空间;
(2)通过程序随时读取USB设备中状态寄存器、控制寄存器、中断寄存器和地址寄存器内的数据,经USB接口送至高端PC机内,由PC机分析比较得出各寄存器内的固定值,该值为设定值,并存放入所述存储空间内;
(3)在***出现异常时,通过看门狗复位处理程序复位USB设备;
(4)通过程序将步骤(2)中所述储空间内的设定值赋值于USB设备中对应的状态寄存器、控制寄存器、中断寄存器和地址寄存器中。
在程序中随时读USB设备各个寄存器的值,通过USB接口发到高端PC机上,高端接收到这些数据后做进一步分析,观察USB在正常工作情况下,这些寄存器的哪些位是变动的,哪些位是需要一直固定的。然后分析出影响USB设备识别的最关键的位,确定它们在正常情况下最恰当的值,存放于存储空间内。只要是发生热复位,就在热复位处理程序中把这些位还原回去,这就达到了恢复寄存器的目的。

Claims (4)

1.一种USB设备中异常监控复位处理方法,包括以下步骤:
(1)在USB设备的数据寄存器内设置一个存储空间;
(2)在***正常工作状态下,读取USB设备内除数据寄存器以外的各个寄存器内的数据,获得USB设备工作的设定值,并将该设定值存入步骤(1)中所述存储空间内;
(3)在***出现异常时,通过看门狗复位处理程序复位USB设备;
(4)将步骤(2)中所述储空间内的数据存入对应的除数据寄存器以外各个USB设备寄存器中。
2.根据权利要求1所述的USB设备中异常监控复位处理方法,其特征在于:所述步骤(1)中的存储空间为设置于USB设备数据存储区内的8个连续字节的存储空间。
3.根据权利要求2所述的USB设备中异常监控复位处理方法,其特征在于:在看门狗复位程序清空指令之前,读取USB设备中状态寄存器、控制寄存器、中断寄存器和地址寄存器中的数据,获得所述设定值,并存入所述存储空间内;在执行清空指令后,将所述存储空间内的数据分别存入USB设备中对应的状态寄存器、控制寄存器、中断寄存器和地址寄存器中。
4.根据权利要求2所述的USB设备中异常监控复位处理方法,其特征在于:通过程序随时读取USB设备中状态寄存器、控制寄存器、中断寄存器和地址寄存器内的数据,经USB接口送至高端PC机内,由PC机分析比较得出各寄存器内的固定值,该值为所述设定值,并存放入所述存储空间内,待触发看门狗处理程序复位时,通过程序将存储空间内的设定值赋值于USB设备中的各寄存器中。
CNA2008101247646A 2008-09-02 2008-09-02 Usb设备中异常监控复位处理方法 Pending CN101369238A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101247646A CN101369238A (zh) 2008-09-02 2008-09-02 Usb设备中异常监控复位处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101247646A CN101369238A (zh) 2008-09-02 2008-09-02 Usb设备中异常监控复位处理方法

Publications (1)

Publication Number Publication Date
CN101369238A true CN101369238A (zh) 2009-02-18

Family

ID=40413070

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101247646A Pending CN101369238A (zh) 2008-09-02 2008-09-02 Usb设备中异常监控复位处理方法

Country Status (1)

Country Link
CN (1) CN101369238A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455946A (zh) * 2010-10-19 2012-05-16 瑞昱半导体股份有限公司 Usb装置异常的检测与恢复电路及其方法
WO2012075655A1 (zh) * 2010-12-06 2012-06-14 无敌科技(西安)有限公司 传输中断可自动恢复的电子装置及其方法
CN102752880A (zh) * 2012-06-12 2012-10-24 洪涛 控制标准usb接口无线网卡重启的控制装置及控制方法
CN111459711A (zh) * 2020-03-31 2020-07-28 烽火通信科技股份有限公司 一种内存恢复方法及***

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102455946A (zh) * 2010-10-19 2012-05-16 瑞昱半导体股份有限公司 Usb装置异常的检测与恢复电路及其方法
WO2012075655A1 (zh) * 2010-12-06 2012-06-14 无敌科技(西安)有限公司 传输中断可自动恢复的电子装置及其方法
CN102752880A (zh) * 2012-06-12 2012-10-24 洪涛 控制标准usb接口无线网卡重启的控制装置及控制方法
CN111459711A (zh) * 2020-03-31 2020-07-28 烽火通信科技股份有限公司 一种内存恢复方法及***

Similar Documents

Publication Publication Date Title
CN105938450B (zh) 自动除错信息收集的方法及***
CN101464819B (zh) 进入低功率模式前的硬件驱动处理器状态存储
CN102761439B (zh) Pon接入***中基于看门狗的异常检测记录装置及方法
CN102662782B (zh) 一种监控***总线的方法及装置
CN107122321A (zh) 硬件修复方法、硬件修复***以及计算机可读取存储装置
CN102880527B (zh) 一种基板管理控制器的数据恢复方法
CN108388496A (zh) 一种***日志的收集方法
CN101364193A (zh) 自动恢复bios的方法以及使用该方法的电脑与***
CN100492305C (zh) 一种计算机***的快速恢复方法及设备
CN101937344B (zh) 一种计算机快速启动的装置及方法
CN101976217A (zh) 网络处理器异常检测方法及***
CN100395722C (zh) 一种对控制***异常状态信息进行保存的方法
CN105760241A (zh) 一种内存数据导出方法和***
CN105183521A (zh) 一种安装计算操作***的方法及usb接口存储设备
CN109032863A (zh) 一种NVMe固态硬盘及其故障原因的确定方法、***
CN101369238A (zh) Usb设备中异常监控复位处理方法
CN102983989A (zh) 一种服务器虚拟地址的迁移方法、装置和设备
CN102620948A (zh) 抽水蓄能机组故障智能分析方法及其***
CN103778024A (zh) 服务器***及其讯息处理方法
CN1979444A (zh) 保证伺服程序不间断运行的***及其方法
CN101241451A (zh) 一种嵌入式***的串口可靠通讯控制方法
CN104158843A (zh) 分布式文件存储***的存储单元失效检测方法及装置
KR100605031B1 (ko) Usb 메모리 장치를 이용한 임베디드 시스템의 장애복구 및 업그레이드 방법
CN100419689C (zh) 中断处理方法及装置
CN101739115A (zh) 精简型计算机主机及精简型计算机主机唤醒方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20090218