CN113676340A - 一种sdio通信异常的监测方法、架构及计算机可读存储介质 - Google Patents
一种sdio通信异常的监测方法、架构及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113676340A CN113676340A CN202010413011.8A CN202010413011A CN113676340A CN 113676340 A CN113676340 A CN 113676340A CN 202010413011 A CN202010413011 A CN 202010413011A CN 113676340 A CN113676340 A CN 113676340A
- Authority
- CN
- China
- Prior art keywords
- sdio
- communication
- abnormal
- kernel
- user space
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012544 monitoring process Methods 0.000 title claims abstract description 27
- 230000002159 abnormal effect Effects 0.000 claims abstract description 43
- 230000002093 peripheral effect Effects 0.000 claims abstract description 29
- 230000005856 abnormality Effects 0.000 claims abstract description 18
- 230000007246 mechanism Effects 0.000 claims abstract description 11
- 230000008859 change Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
Abstract
本发明公开一种SDIO通信异常的监测方法、架构及计算机可读存储介质,其中,SDIO通信异常的监测方法基于Linux实施,包括:步骤S1,在SDIO通信出现异常时,从SDIO外围设备驱动通信接口获取与SDIO通信异常类型相对应的SDIO异常码;步骤S2,将所述SDIO异常码保存至内核的环境变量中;步骤S3,通过内核uevent机制发送携带有所述环境变量的内核事件到用户空间;步骤S4,用户空间提取所述环境变量,从中获得所述SDIO异常码。本发明利用uevent机制携带的参数,记录SDIO标准异常码,使得SDIO设备的通信异常可以被用户空间获取,以便被针对性地处理。
Description
技术领域
本发明属于汽车电子技术领域,具体涉及一种SDIO通信异常的监测方法、架构及计算机可读存储介质。
背景技术
车载娱乐系统向多功能,智能化方向发展,导致其系统越来越庞大,越来越复杂。目前很多车载娱乐系统都基于Linux操作系统上开发,控制芯片上使用大量外围设备,SDIO(Secure Digital Input and Output,安全数字输入输出卡)接口广泛应用在控制芯片与外围设备的通信上。车载环境的复杂增加控制芯片与SDIO外围设备之间的干扰,增加SDIO外设通信异常的概率,但是车载领域对通信质量有高于一般电子产品的要求。很多场景下SDIO外设出现通信异常,要求能够不断电的情况下恢复外设的使用,因此需要对于SDIO通信异常进行监控。
现有的一些对SDIO接口的WiFi模块出现异常的监控方法,是通过SDIO设备节点的接口向WiFi模块发送请求消息,若未接收到WiFi模块的响应信息则判定与WiFi模块的通信异常。这种方案是一种被动轮询方法,不仅消耗CPU资源,而且只能发现SDIO出现通信异常,并不能定位具体的异常类型。
发明内容
本发明实施例所要解决的技术问题在于,提供一种SDIO通信异常的监测方法、架构及计算机可读存储介质,以在SDIO外围设备发生通信异常时,主动通知上层应用具体的SDIO异常码,从而获知具体的异常类型以便进行相应的处理。
为解决上述技术问题,本发明提供一种SDIO通信异常的监测方法,所述监测方法基于Linux实施,包括:
步骤S1,在SDIO通信出现异常时,从SDIO外围设备驱动通信接口获取与SDIO通信异常类型相对应的SDIO异常码;
步骤S2,将所述SDIO异常码保存至内核的环境变量中;
步骤S3,通过内核uevent机制发送携带有所述环境变量的内核事件到用户空间;
步骤S4,用户空间提取所述环境变量,从中获得所述SDIO异常码。
进一步地,所述步骤S2具体包括:将所述SDIO异常码转换为ASCII码,以“SDIOEVT=XXX”的格式保存到内核的环境变量中,其中XXX表示所述SDIO异常码。
进一步地,所述步骤S3具体包括:内核中的虚拟文件系统sysfs通过netlink向用户空间发出KOBJ_CHANGE类型的uevent事件消息,所述uevent事件消息中携带有所述步骤S2中保存的环境变量。
进一步地,所述步骤S4具体包括:用户空间的可执行文件uevent helper从接收的KOBJ_CHANGE类型的uevent事件消息中提取“SDIOEVT=XXX”格式的环境变量,从中获得所述SDIO异常码。
进一步地,用户空间获得所述SDIO异常码后,进行SDIO的重新初始化,或者对SDIO外围设备进行重新上下电。
进一步地,所述SDIO异常码为负的数值。
本发明还提供一种SDIO通信异常的监测架构,所述监测架构基于Linux实现,包括:
获取模块,用于在SDIO通信出现异常时,从SDIO外围设备驱动通信接口获取与SDIO通信异常类型相对应的SDIO异常码;
保存模块,用于将所述SDIO异常码保存至内核的环境变量中;
发送模块,用于通过内核uevent机制发送携带有所述环境变量的内核事件到用户空间;
提取模块,用于供用户空间提取所述环境变量,并从中获得所述SDIO异常码。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行所述的SDIO通信异常的监测方法。
实施本发明具有如下有益效果:通过向SDIO外围设备驱动通信接口函数内注入linux内核的uevent通知机制,在SDIO通信出现异常的时候捕捉SDIO异常码,以特定格式存入到uevent的环境变量envp中,并向用户空间发送KOBJ_CHANGE事件,实现对SDIO通信异常进行检测和通知;用户空间在处理KOBJ_CHANGE事件的时候,可以通过提取特定格式的环境变量获得SDIO异常码,使得SDIO外围设备的通信故障可以被用户空间获取,由用户空间对异常做进一步的处理,实现外设功能的恢复,是对SDIO规范的一种延伸。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一一种SDIO通信异常的监测方法的流程示意图。
图2为本发明实施例的原理示意图。
具体实施方式
以下各实施例的说明是参考附图,用以示例本发明可以用以实施的特定实施例。
请参照图1所示,本发明实施例一提供一种SDIO通信异常的监测方法,该监测方法基于Linux实施,包括:
步骤S1,在SDIO通信出现异常时,从SDIO外围设备驱动通信接口获取与SDIO通信异常类型相对应的SDIO异常码;
步骤S2,将所述SDIO异常码保存至内核的环境变量中;
步骤S3,通过内核uevent机制发送携带有所述环境变量的内核事件到用户空间;
步骤S4,用户空间提取所述环境变量,从中获得所述SDIO异常码。
具体地,请同时结合图2所示,本实施例中,采用SDIO异常码来表征SDIO通信异常类型,SDIO异常码可以是负的数值,例如下表所示,-110表示SDIO通信超时,-84表示字节序非法。
Linux错误代码 | 异常码 | 说明 |
ENODATA | -61 | /*No data available*/没有可用数据 |
EILSEQ | -84 | /*Illegal byte sequence*/字节序非法 |
EMSGSIZE | -90 | /*Message too long*/消息过长 |
ENOBUFS | -105 | /**/没有可用的缓冲空间 |
ENOTCONN | -107 | /*Transport endpoint is not connected*/传输端点未连接 |
ETIMEDOUT | -110 | /*Connection timed out*/通信超时 |
需要说明的是,Linux并没有针对异常提供进一步的处理机制,在发生SDIO通信异常时,SIDO外围设备只能处于不可用状态。在车载环境中,SDIO外围设备出现异常的概率更高,需要在失效时及时恢复,因此,在SDIO出现通信异常的时候,本实施例将异常情况通过前述SDIO异常码的形式通知上层应用,以便对应进行处理。
步骤S2中,将SDIO异常码转换为ASCII码,以字符串类型的“SDIOEVT=XXX”(XXX代表SDIO异常码)的格式保存到内核的环境变量(envp)中。
步骤S3具体是由内核中的sysfs通过netlink向用户空间发出KOBJ_CHANGE类型的uevent事件消息,消息中携带步骤S2中保存的环境变量。如前所述,该环境变量里包含有“SDIOEVT=XXX”格式的SDIO异常码。
可以理解的是,sysfs是Linux 2.6所提供的一种虚拟文件系统,不仅可以把硬件(device)和驱动(driver)的信息从内核输出到用户空间,也可以用来对硬件和驱动做设置。Sysfs虚拟文件系统中最基本的结构是kobject,kobject可以代表一个设备,一条总线等。Uevent是Kobject的一部分,用于在Kobject状态发生改变时,例如增加、移除等,通知用户空间。KOBJ_CHANGE一般用于表示设备状态或者内容发生改变,在本实施例中,即表示SIDO外围设备状态发生了改变——发生了通信异常。netlink是Linux提供的用于内核和用户空间之间的通信方式。
步骤S4中,用户空间的可执行文件(或者脚本,简称为uevent helper)从接收的KOBJ_CHANGE类型的uevent事件消息中提取“SDIOEVT=XXX”格式的环境变量,从而获得SDIO异常码,进而对SDIO异常做进一步处理。用户空间可以定制不同策略处理不同异常,例如进行SDIO的重新初始化,或者对SDIO外设进行重新上下电等操作,实现外设功能的恢复。
相应于本发明实施例一提供的一种SDIO通信异常的监测方法,本发明实施例二提供一种SDIO通信异常的监测架构,所述监测架构基于Linux实现,包括:
获取模块,用于在SDIO通信出现异常时,从SDIO外围设备驱动通信接口获取与SDIO通信异常类型相对应的SDIO异常码;
保存模块,用于将所述SDIO异常码保存至内核的环境变量中;
发送模块,用于通过内核uevent机制发送携带有所述环境变量的内核事件到用户空间;
提取模块,用于供用户空间提取所述环境变量,并从中获得所述SDIO异常码。
本发明实施例三还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如上所述的SDIO通信异常的监测方法。优选地,所述计算机程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、……),所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述装置中的执行过程。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器,或者所述处理器也可以是任何常规的处理器,所述处理器是所述装置的控制中心,利用各种接口和线路连接所述装置的各个部分。
所述存储器主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等。此外,所述存储器可以是高速随机存取存储器,还可以是非易失性存储器,例如插接式硬盘,智能存储卡(SmartMedia Card,SMC)、安全数字(Secure Digital,SD)卡和闪存卡(Flash Card)等,或所述存储器也可以是其他易失性固态存储器件。
需要说明的是,上述装置可包括,但不仅限于,处理器、存储器,本领域技术人员可以理解。
通过上述说明可知,与现有技术相比,本发明的有益效果在于:通过向SDIO外围设备驱动通信接口函数内注入linux内核的uevent通知机制,在SDIO通信出现异常的时候捕捉SDIO异常码,以特定格式存入到uevent的环境变量envp中,并向用户空间发送KOBJ_CHANGE事件,实现对SDIO通信异常进行检测和通知;用户空间在处理KOBJ_CHANGE事件的时候,可以通过提取特定格式的环境变量获得SDIO异常码,使得SDIO外围设备的通信故障可以被用户空间获取,由用户空间对异常做进一步的处理,例如进行SDIO的重新初始化,或者对SDIO外设进行重新上下电等操作,实现外设功能的恢复,是对SDIO规范的一种延伸。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (8)
1.一种SDIO通信异常的监测方法,所述监测方法基于Linux实施,包括:
步骤S1,在SDIO通信出现异常时,从SDIO外围设备驱动通信接口获取与SDIO通信异常类型相对应的SDIO异常码;
步骤S2,将所述SDIO异常码保存至内核的环境变量中;
步骤S3,通过内核uevent机制发送携带有所述环境变量的内核事件到用户空间;
步骤S4,用户空间提取所述环境变量,从中获得所述SDIO异常码。
2.根据权利要求1所述的监测方法,其特征在于,所述步骤S2具体包括:将所述SDIO异常码转换为ASCII码,以“SDIOEVT=XXX”的格式保存到内核的环境变量中,其中XXX表示所述SDIO异常码。
3.根据权利要求2所述的监测方法,其特征在于,所述步骤S3具体包括:内核中的虚拟文件系统sysfs通过netlink向用户空间发出KOBJ_CHANGE类型的uevent事件消息,所述uevent事件消息中携带有所述步骤S2中保存的环境变量。
4.根据权利要求3所述的监测方法,其特征在于,所述步骤S4具体包括:用户空间的可执行文件uevent helper从接收的KOBJ_CHANGE类型的uevent事件消息中提取“SDIOEVT=XXX”格式的环境变量,从中获得所述SDIO异常码。
5.根据权利要求4所述的监测方法,其特征在于,用户空间获得所述SDIO异常码后,进行SDIO的重新初始化,或者对SDIO外围设备进行重新上下电。
6.根据权利要求1所述的监测方法,其特征在于,所述SDIO异常码为负的数值。
7.一种SDIO通信异常的监测架构,所述监测架构基于Linux实现,其特征在于,包括:
获取模块,用于在SDIO通信出现异常时,从SDIO外围设备驱动通信接口获取与SDIO通信异常类型相对应的SDIO异常码;
保存模块,用于将所述SDIO异常码保存至内核的环境变量中;
发送模块,用于通过内核uevent机制发送携带有所述环境变量的内核事件到用户空间;
提取模块,用于供用户空间提取所述环境变量,并从中获得所述SDIO异常码。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1~6任一项所述的SDIO通信异常的监测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010413011.8A CN113676340A (zh) | 2020-05-15 | 2020-05-15 | 一种sdio通信异常的监测方法、架构及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010413011.8A CN113676340A (zh) | 2020-05-15 | 2020-05-15 | 一种sdio通信异常的监测方法、架构及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113676340A true CN113676340A (zh) | 2021-11-19 |
Family
ID=78537701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010413011.8A Pending CN113676340A (zh) | 2020-05-15 | 2020-05-15 | 一种sdio通信异常的监测方法、架构及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113676340A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567667A (zh) * | 2011-12-13 | 2012-07-11 | 中标软件有限公司 | 一种智能信息设备及其操作系统 |
CN104608772A (zh) * | 2014-12-25 | 2015-05-13 | 财团法人车辆研究测试中心 | 自动辅助驾驶的环境失效判断系统及方法 |
CN105005722A (zh) * | 2015-06-26 | 2015-10-28 | 北京北信源软件股份有限公司 | 移动存储设备的接入控制方法及装置 |
CN105242917A (zh) * | 2015-09-08 | 2016-01-13 | 珠海全志科技股份有限公司 | 一种Android设备兼容使用WiFi模组的方法和装置 |
CN109032826A (zh) * | 2018-06-22 | 2018-12-18 | 北京蜂盒科技有限公司 | WiFi故障恢复方法,装置,存储介质和电子设备 |
CN109766197A (zh) * | 2018-12-29 | 2019-05-17 | 数源科技股份有限公司 | 一种基于Android系统的4G模块稳定工作方法 |
CN110221991A (zh) * | 2018-03-02 | 2019-09-10 | 中标软件有限公司 | 计算机外围设备的管控方法及系统 |
CN110290547A (zh) * | 2019-06-28 | 2019-09-27 | 深圳市元征科技股份有限公司 | 一种WiFi模块故障恢复方法、系统及电子设备和存储介质 |
-
2020
- 2020-05-15 CN CN202010413011.8A patent/CN113676340A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567667A (zh) * | 2011-12-13 | 2012-07-11 | 中标软件有限公司 | 一种智能信息设备及其操作系统 |
CN104608772A (zh) * | 2014-12-25 | 2015-05-13 | 财团法人车辆研究测试中心 | 自动辅助驾驶的环境失效判断系统及方法 |
CN105005722A (zh) * | 2015-06-26 | 2015-10-28 | 北京北信源软件股份有限公司 | 移动存储设备的接入控制方法及装置 |
CN105242917A (zh) * | 2015-09-08 | 2016-01-13 | 珠海全志科技股份有限公司 | 一种Android设备兼容使用WiFi模组的方法和装置 |
CN110221991A (zh) * | 2018-03-02 | 2019-09-10 | 中标软件有限公司 | 计算机外围设备的管控方法及系统 |
CN109032826A (zh) * | 2018-06-22 | 2018-12-18 | 北京蜂盒科技有限公司 | WiFi故障恢复方法,装置,存储介质和电子设备 |
CN109766197A (zh) * | 2018-12-29 | 2019-05-17 | 数源科技股份有限公司 | 一种基于Android系统的4G模块稳定工作方法 |
CN110290547A (zh) * | 2019-06-28 | 2019-09-27 | 深圳市元征科技股份有限公司 | 一种WiFi模块故障恢复方法、系统及电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
WOWO: ""Linux设备模型(3)_Uevent"", 《蜗窝科技》, pages 1 - 4 * |
高正东;汪炜;: "一种汽车远程故障诊断仪TBOX的设计和实现", 今日电子, no. 12 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9954727B2 (en) | Automatic debug information collection | |
CN108228374B (zh) | 一种设备的故障处理方法、装置及系统 | |
CN109143954B (zh) | 一种实现控制器复位的系统及方法 | |
US10877845B2 (en) | Apparatus and method for diagnostic use of BIOS attributes to remediate configuration issues | |
US9026685B2 (en) | Memory module communication control | |
US9804980B2 (en) | System management through direct communication between system management controllers | |
CN102782655A (zh) | 微机相互监视系统及微机相互监视方法 | |
US20080270827A1 (en) | Recovering diagnostic data after out-of-band data capture failure | |
CN110825204A (zh) | 电子设备的主板及电源信息管理方法 | |
US10540308B2 (en) | System and method for providing a remote keyboard/video/mouse in a headless server | |
CN105373393A (zh) | 一种在非事件驱动方式的os中实现对设备的热插拔的方法 | |
WO2016145798A1 (zh) | 一种嵌入式系统的应用程序的升级方法及升级装置 | |
CN113676340A (zh) | 一种sdio通信异常的监测方法、架构及计算机可读存储介质 | |
US9558137B2 (en) | Card control device and control card of computer system having card control device | |
CN102736908B (zh) | 远程设置cmos参数的系统、装置及方法 | |
US11740969B2 (en) | Detecting and recovering a corrupted non-volatile random-access memory | |
CN116450046A (zh) | 云盘实现方法、装置、智能网卡、服务器及存储介质 | |
CN113177063B (zh) | 一种pci总线设备的热复位方法及相关装置 | |
CN114328080A (zh) | 一种固件状态检测的方法及装置、电子设备 | |
CN114860512A (zh) | 车辆的soc芯片工作状态检测方法、装置、设备和系统 | |
CN115437889B (zh) | 一种应急处理方法、系统及计算设备 | |
CN216647306U (zh) | 一种复位电路 | |
CN115981924B (zh) | 设备控制方法、电子设备及存储介质 | |
US8051153B2 (en) | Switch apparatus for a remote boot sequence of a network device | |
CN117851173A (zh) | 一种硬件监控方法、装置、计算机设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |