CN113676340A - 一种sdio通信异常的监测方法、架构及计算机可读存储介质 - Google Patents

一种sdio通信异常的监测方法、架构及计算机可读存储介质 Download PDF

Info

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
Application number
CN202010413011.8A
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.)
Guangzhou Automobile Group Co Ltd
Original Assignee
Guangzhou Automobile Group Co Ltd
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 Guangzhou Automobile Group Co Ltd filed Critical Guangzhou Automobile Group Co Ltd
Priority to CN202010413011.8A priority Critical patent/CN113676340A/zh
Publication of CN113676340A publication Critical patent/CN113676340A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management 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通信异常的监测方法、架构及计算机可读存储介质
技术领域
本发明属于汽车电子技术领域,具体涉及一种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通信异常的监测方法。
CN202010413011.8A 2020-05-15 2020-05-15 一种sdio通信异常的监测方法、架构及计算机可读存储介质 Pending CN113676340A (zh)

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)

* Cited by examiner, † Cited by third party
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模块故障恢复方法、系统及电子设备和存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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