CN104182259A - 基于Linux的网关设备中SIM认证卡驱动方法及网关设备 - Google Patents
基于Linux的网关设备中SIM认证卡驱动方法及网关设备 Download PDFInfo
- Publication number
- CN104182259A CN104182259A CN201410425458.1A CN201410425458A CN104182259A CN 104182259 A CN104182259 A CN 104182259A CN 201410425458 A CN201410425458 A CN 201410425458A CN 104182259 A CN104182259 A CN 104182259A
- Authority
- CN
- China
- Prior art keywords
- certification card
- sim
- linux
- gateway device
- sim certification
- 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
Landscapes
- Telephonic Communication Services (AREA)
- Telephone Function (AREA)
Abstract
本发明提供的基于Linux的网关设备中SIM认证卡驱动方法及网关设备,通过在识别出SIM认证卡插入所述网关设备时,将所述SIM认证卡驱动初始化;调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡,优选可将SIM认证卡注册为Dev设备进行读写等操作,本发明的SIM认证卡自动识别,节省时间,不需要昂贵的硬件设备和专用的驱动程序,即可进行SIM认证卡的热插拔使用。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种基于Linux的网关设备中SIM认证卡驱动方法及网关设备。
背景技术
随着“光进铜退”的快速推进,如何降低运营成本、简化装维流程、提升用户体验是通信行业“光进铜退”工作是否成功的重要指标。而作为光接入的重要设备的家庭网关,其成本压力已成为阻碍光进铜退发展的因素之一,且终端的统一定制,导致无法为用户实现个性化服务。另外,目前家庭网关的装维流程及配置相对较为复杂,影响了用户体验。通过制定和开发机卡分离型家庭网关标准及产品,实现业务开通和家庭网关松耦合,进而实现家庭网关业务开通的真正零接触,增强产品的易用性和用户的满意度。
机卡分离型家庭网关是指在现有家庭用宽带客户网关的基础上,将配置参数从家庭用宽带客户网关中分离出,并存储于用户SIM认证卡内,机卡分离型家庭用宽带客户网关出厂时仅提供基本的硬件驱动配置,插入用户SIM认证卡后,通过读取卡内的参数进行相关配置,结合终端综合管理系统,为用户提供上网、IPTV、语音等各类业务的设备。
机卡分离型家庭网关程序设计必须编写相应的SIM认证卡驱动。
但是,现有Linux嵌入式设备对SIM认证卡操作主要有使用/proc文件系统,系统使用echo来返回或者读写数据,由于插拔SIM认证卡没有使用中断,使用的是设备查询方法,则会占用较多系统资源。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于Linux的网关设备中SIM认证卡驱动方法及网关设备,以解决现有技术中网关设备热插拔SIM认证卡使用占用系统资源多的问题。
为实现上述目标及其他相关目标,本发明提供一种基于Linux的网关设备中SIM认证卡驱动方法,所述方法包括:在识别出SIM认证卡插入所述网关设备时,将所述SIM认证卡驱动初始化;调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡。
优选的,所述识别SIM认证卡插入所述网关设备,包括:在所述SIM认证卡插入所述网关设备时产生低电平以作为SIM认证卡插入识别;在所述SIM认证卡未插入所述网关设备时产生高电平以作为SIM认证卡未插入识别。
优选的,所述软中断函数为Linux中的tasklet函数。
优选的,所述注册SIM认证卡包括:将SIM认证卡注册为Linux下的设备。
优选的,所述方法包括:通过Linux中的回调函数对已注册的SIM认证卡进行操作,所述操作包括:打开、关闭、读、写及接口控制中的一种或多种组合。
为实现上述目标及其他相关目标,本发明提供一种基于Linux的网关设备,包括:识别模块,用于在识别SIM认证卡插入所述网关设备时,发出识别信号;处理模块,用于在接收到所述识别信号时,用于将所述SIM认证卡驱动初始化;并调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡。
优选的,所述识别模块,用于在所述SIM认证卡插入所述网关设备时产生低电平以作为SIM认证卡插入识别;并用于在所述SIM认证卡未插入所述网关设备时产生高电平以作为SIM认证卡未插入识别。
优选的,所述软中断函数为Linux中的tasklet函数。
优选的,所述注册SIM认证卡包括:将SIM认证卡注册为Linux下的设备。
优选的,所述处理模块,还用于通过Linux中的回调函数对已注册的SIM认证卡进行操作,所述操作包括:打开、关闭、读、写及接口控制中的一种或多种组合。
如上所述,本发明提供的基于Linux的网关设备中SIM认证卡驱动方法及网关设备,通过在识别出SIM认证卡插入所述网关设备时,将所述SIM认证卡驱动初始化;调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡,优选可将SIM认证卡注册为Dev设备进行读写等操作,本发明的SIM认证卡自动识别,节省时间,不需要昂贵的硬件设备和专用的驱动程序,即可进行SIM认证卡的热插拔使用。
附图说明
图1显示为本发明一实施例中基于Linux的网关设备中SIM认证卡驱动方法的流程示意图。
图2显示为本发明另一实施例中SIM认证卡的文件结构示意图。
图3显示为本发明一实施例中SIM认证卡的数据帧结构示意图。
图4a显示为本发明一实施例中SIM认证卡的命令APDU的结构示意图。
图4b显示为本发明一实施例中SIM认证卡的应答APDU的结构示意图。
图5显示为本发明另一实施例中基于Linux的网关设备的结构示意图。
元件标号说明
1 基于Linux的网关设备
11 识别模块
12 处理模块
S1~S4 流程步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,本发明提供一种基于Linux的网关设备中SIM认证卡驱动方法,所述方法包括:
步骤S1:在识别出SIM认证卡插入所述网关设备时,将所述SIM认证卡驱动初始化。
在一实施例中所述识别SIM认证卡插入所述网关设备,包括:在所述SIM认证卡插入所述网关设备时产生低电平以作为SIM认证卡插入识别;在所述SIM认证卡未插入所述网关设备时产生高电平以作为SIM认证卡未插入识别。
Linux内核在使用驱动时首先需要装载驱动。在装载过程中需要进行一些初始化工作,如,建立设备文件,分配内存地址空间等,在Linux驱动程序中用module_init函数来处理SIM认证卡驱动初始化工作。
步骤S2:调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡。
在一实施例中,所述软中断函数为Linux中的tasklet函数,其中,tasklet是建立在softirq基础上的一种中断的下半部机制,在本质上与softirq基本相同,但却有简单的编程接口和宽松的锁规则。tasklet是通过两种softirq来实现的,即HI_SOFTIRQ和TASKLET_SOFTIRQ,因此,tasklet也被分为两种:高优先级的tasklet(基于HI_SOFTIRQ)和普通优先级的tasklet(基于TASKLET_SOFTIRQ)。
如前所述,在SIM认证卡未插入时接触高电平,在SIM认证卡插入时接触低电平,并通过将自身高或低电平传递给网关设备的处理芯片来识别SIM认证卡的插入和拔出;当有SIM认证卡插入时会调用sim_card_tasklet_det_handler处理函数,声明和SIM认证卡使用任务的函数例如为:
static DECLARE_TASKLET(sim_card_tasklet_det_enable;以及
sim_card_tasklet_det_handler,(unsigned long)&sim_card_data);
优选的,所述注册SIM认证卡可包括:步骤S3:将SIM认证卡注册为Linux下的设备即Dev目录下设备,在一实施例中,每个Linux驱动都需要有一个设备文件。否则应用程序将无法与驱动程序交互。建立设备文件的工作一般在Linux初始化工作的函数中register_chrdev完成创建设备文件,例如:register_chrdev(202,″simcarddev″,&sim_card_dev_fops),从而使得应用程序可以通过/dev/simcarddev设备访问SIM认证卡。
进一步的,所述方法还可包括:步骤S4:通过Linux中的回调函数对已注册的SIM认证卡进行操作,所述操作包括:打开、关闭、读、写及接口控制中的一种或多种组合。
具体来说,Linux驱动包含了多种动作,也可称为事件。例如,向设备文件写入数据时会触发“写”事件,Linux系统会调用对应驱动程序的write回调函数,从设备文件读数据时会触发“读”事件,Linux系统会调用对应驱动程序的read回调函数。一个驱动程序并不一定要指定所有的回调函数,回调函数会通过相关机制进行注册。
下面的结构体声明了相关的回调函数::
据此,以下举例来说明对SIM认证卡的操作功能包括:
1、调用Sim_Card_Dev_File_Ioctl回调函数控制SIM认证卡;
控制SIM认证卡包括对SIM认证卡激活,一级子目录,一级子目录下的基本文件等参数。如图2所示,0x7FXX代表一级子目录,0x6FXX代表一级子目录下的基本文件;
2、调用Sim_Card_Dev_File_Read回调函数读SIM认证卡数据;
对应于应用程序读文件的fread,这里用到read:它也是file_operations结构的成员。这里它对应Sim_Card_Dev_File_Read函数。它的参数有:一个file结构;一个缓冲区buf,用户空间从该缓冲区中读数据。
请一并参阅图3至图4b,结合SIM认证卡的进一步的技术内容进行更清楚描述。
A、SIM认证卡的基本数据帧结构
通信使用的协议是ISO7816-3所规定的T=0的异步半双工字符传输协议。基本的数据帧是由1个起始位(低电平)、8个数据位和1个奇偶校验位组成的,如图3所示。其中,校验位是将8个数据位与其自身做偶校验,也就是其中1的个数必须足偶数。起始位不做校验运算。在保护时间内SIM认证卡和CPU都要处于高电平(即I/O口是高电平)。在T=0协议里,如果SIM认证卡或者CPU检测到奇偶校验结果不正确,则在保护时间内把I/O端口拉低,以示出错。
B、SIM认证卡的APDU结构
应用协议数据单元APDU(Application Protocol Data Units)包括了命令APDU以及应答APDU,其结构分别如图4a至图4b所示,图4a是显示命令APDU结构,图4b是显示应答APDU结构,其中:CLA是指令的类别,A0被制定为GSM的应用;INS是指令代码;P1、P2、P3是指令参数,P3指示的是数据的长度;Data就是要传输的数据;SW1和SW2就是命令处理后返回的状态。
所述结构体定义如下:
如读一级子目录0x7F00,一级子目录下的基本文件0x6F00,长度为0x4c的sim卡认证数据为:<P00=″AXAL2014041400000111″P01=″AXAL140111″P02=″111111111111″P03=″2.0″>
3、调用Sim_Card_Dev_File_Write回调函数写SIM认证卡数据
与fwrite类似,内核空间有write:它是file_operations结构的成员。Sim_Card_Dev_File_Write有几个参数:一个file结构;buf缓冲区,供用户空间写入。
如图5所示,本发明还提供一种基于Linux的网关设备1,由于本发明的Linux的网关设备1所采用的技术原理与上述方法大致相同,因此部分技术细节将不再重复赘述;所述基于Linux的网关设备1包括:识别模块11,用于在识别SIM认证卡插入所述网关设备1时,发出识别信号;处理模块12,用于在接收到所述识别信号时,用于将所述SIM认证卡驱动初始化;并调用Linux的软中断函数,来对插入至所述网关设备1的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡。
优选的,所述识别模块11,用于在所述SIM认证卡插入所述网关设备1时产生低电平以作为SIM认证卡插入识别;并用于在所述SIM认证卡未插入所述网关设备1时产生高电平以作为SIM认证卡未插入识别。
优选的,所述软中断函数为Linux中的tasklet函数。
优选的,所述注册SIM认证卡包括:将SIM认证卡注册为Linux下的设备。
优选的,所述处理模块12,还用于通过Linux中的回调函数对已注册的SIM认证卡进行操作,所述操作包括:打开、关闭、读、写及接口控制中的一种或多种组合。
需特别说明的是,本发明提供的基于Linux的网关设备1中,处理模块12可以包括作为网关设备1控制器使用的网关芯片及外围功能电路,亦可包含是所述网关芯片上装载的软件处理模块12;所述识别模块11可以包括:例如开关电路、选择电路或其他可以根据SIM认证卡插入或未插入产生相应电平的电路等等。
综上所述,本发明提供的基于Linux的网关设备中SIM认证卡驱动方法及网关设备,通过在识别出SIM认证卡插入所述网关设备时,将所述SIM认证卡驱动初始化;调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡,优选可将SIM认证卡注册为Dev设备进行读写等操作,本发明的SIM认证卡自动识别,节省时间,不需要昂贵的硬件设备和专用的驱动程序,即可进行SIM认证卡的热插拔使用。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种基于Linux的网关设备中SIM认证卡驱动方法,其特征在于,所述方法包括:
在识别出SIM认证卡插入所述网关设备时,将所述SIM认证卡驱动初始化;
调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡。
2.根据权利要求1所述的基于Linux的网关设备中SIM认证卡驱动方法,其特征在于,所述识别SIM认证卡插入所述网关设备,包括:
在所述SIM认证卡插入所述网关设备时产生低电平以作为SIM认证卡插入识别;
在所述SIM认证卡未插入所述网关设备时产生高电平以作为SIM认证卡未插入识别。
3.根据权利要求1所述的基于Linux的网关设备中SIM认证卡驱动方法,其特征在于,所述软中断函数为Linux中的tasklet函数。
4.根据权利要求1所述的基于Linux的网关设备中SIM认证卡驱动方法,其特征在于,所述注册SIM认证卡包括:将SIM认证卡注册为Linux下的设备。
5.根据权利要求4所述的基于Linux的网关设备中SIM认证卡驱动方法,其特征在于,包括:通过Linux中的回调函数对已注册的SIM认证卡进行操作,所述操作包括:打开、关闭、读、写及接口控制中的一种或多种组合。
6.一种基于Linux的网关设备,其特征在于,包括:
识别模块,用于在识别SIM认证卡插入所述网关设备时,发出识别信号;
处理模块,用于在接收到所述识别信号时,用于将所述SIM认证卡驱动初始化;并调用Linux的软中断函数,来对插入至所述网关设备的SIM认证卡所产生硬件中断进行侦测,以注册或删除SIM认证卡。
7.根据权利要求6所述的基于Linux的网关设备,其特征在于,所述识别模块,用于在所述SIM认证卡插入所述网关设备时产生低电平以作为SIM认证卡插入识别;并用于在所述SIM认证卡未插入所述网关设备时产生高电平以作为SIM认证卡未插入识别。
8.根据权利要求6所述的基于Linux的网关设备,其特征在于,所述软中断函数为Linux中的tasklet函数。
9.根据权利要求6所述的基于Linux的网关设备,其特征在于,所述注册SIM认证卡包括:将SIM认证卡注册为Linux下的设备。
10.根据权利要求9所述的基于Linux的网关设备,其特征在于,所述处理模块,还用于通过Linux中的回调函数对已注册的SIM认证卡进行操作,所述操作包括:打开、关闭、读、写及接口控制中的一种或多种组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410425458.1A CN104182259A (zh) | 2014-08-26 | 2014-08-26 | 基于Linux的网关设备中SIM认证卡驱动方法及网关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410425458.1A CN104182259A (zh) | 2014-08-26 | 2014-08-26 | 基于Linux的网关设备中SIM认证卡驱动方法及网关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104182259A true CN104182259A (zh) | 2014-12-03 |
Family
ID=51963335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410425458.1A Pending CN104182259A (zh) | 2014-08-26 | 2014-08-26 | 基于Linux的网关设备中SIM认证卡驱动方法及网关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104182259A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080137541A1 (en) * | 2006-12-07 | 2008-06-12 | Kaitki Agarwal | Providing dynamic changes to packet flows |
US20090002333A1 (en) * | 2007-06-22 | 2009-01-01 | Chumby Industries, Inc. | Systems and methods for device registration |
CN201312356Y (zh) * | 2008-12-22 | 2009-09-16 | 沈逸林 | 数字电视网络媒体话机终端 |
CN101656777A (zh) * | 2009-09-01 | 2010-02-24 | 大唐微电子技术有限公司 | 一种卡座式安全认证模块及其进行终端认证的认证方法 |
CN102572988A (zh) * | 2012-02-16 | 2012-07-11 | 福建星网锐捷网络有限公司 | 用户识别模块切换方法、装置和通信设备 |
-
2014
- 2014-08-26 CN CN201410425458.1A patent/CN104182259A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080137541A1 (en) * | 2006-12-07 | 2008-06-12 | Kaitki Agarwal | Providing dynamic changes to packet flows |
US20090002333A1 (en) * | 2007-06-22 | 2009-01-01 | Chumby Industries, Inc. | Systems and methods for device registration |
CN201312356Y (zh) * | 2008-12-22 | 2009-09-16 | 沈逸林 | 数字电视网络媒体话机终端 |
CN101656777A (zh) * | 2009-09-01 | 2010-02-24 | 大唐微电子技术有限公司 | 一种卡座式安全认证模块及其进行终端认证的认证方法 |
CN102572988A (zh) * | 2012-02-16 | 2012-07-11 | 福建星网锐捷网络有限公司 | 用户识别模块切换方法、装置和通信设备 |
Non-Patent Citations (1)
Title |
---|
邢东旭 等: ""一种基于Linux软中断机制的计费网关系统"", 《大连理工大学学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733005B (zh) | 一种控制智能设备联动的方法及装置 | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
CN108762956B (zh) | 获取Native本地数据的方法、服务器、移动终端及存储介质 | |
CN108462760A (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
EP3007066A1 (en) | Method for using shared device in apparatus capable of operating two operating systems | |
CN107251069B (zh) | 一种近场通信支付方法及终端 | |
CN104796428A (zh) | 一种动态验证方法、客户端、服务器和系统 | |
CN104881318A (zh) | 一种接口调用方法、装置及终端 | |
CN106663017B (zh) | 实现主机卡模拟的方法、终端、数据路由方法及装置 | |
CN113407086B (zh) | 对象拖拽方法、设备和存储介质 | |
CN114281484B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN103677872A (zh) | 一种信息处理方法、装置和电子设备 | |
CN105184337A (zh) | 一种nfc设备进行智能卡应用检测方法和系统 | |
CN110069366A (zh) | 一种重加载方法、装置及服务器 | |
EP3065097A1 (en) | Device and method for facilitating a transaction | |
CN110457925A (zh) | 内外部存储中应用数据隔离方法、装置、终端及存储介质 | |
CN102609650B (zh) | 实现电子设备中软件加密下载的系统及方法 | |
CN107277163B (zh) | 一种设备远程映射方法及装置 | |
KR100374526B1 (ko) | 스마트 카드 및 그를 이용한 컴퓨터 프로그램 동작 방법 | |
CN110990116B (zh) | 在智能网卡和虚拟机之间传输数据的方法、装置和系统 | |
CN109872148B (zh) | 基于tui的可信数据处理方法、装置以及移动终端 | |
CN105871840A (zh) | 一种证书管理方法及系统 | |
CN104182259A (zh) | 基于Linux的网关设备中SIM认证卡驱动方法及网关设备 | |
CN105117761A (zh) | 一种标签信息处理方法 | |
CN111352357B (zh) | 机器人的控制方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20141203 |
|
RJ01 | Rejection of invention patent application after publication |