一种在linux内核中实现gsm0710协议的方法及装置的制造方法
【技术领域】
[0001]本发明涉及电子信息产品,特别涉及一种在LINUX内核中实现GSM0710协议的方法及装置。
【背景技术】
[0002]在智能信息化建设的今天,智能终端设备在各行各业中被得到了广泛的应用。而这些智能终端一般都有无线联网的需求,以便能够灵活的与相应的平台进行通讯,实现各种各样的业务。
[0003]具有无线联网功能的设备需要同时处理(接收和发送)各种数据流,例如AT指令流,GPRS数据流等。这些数据流都是彼此独立的。通过采用GSM0710规范定义的标准多路复用协议,将传输设备划分成多个逻辑链路通道,来同时传输这些数据流,每个逻辑通道都具备独立的缓冲区和流量控制。从而实现高效,灵活的无线联网功能。
[0004]目前最成熟,使用最广泛的GSM0710规范实现方式是在应用层来实现的,通过给每个逻辑链路通道分配一个伪终端设备,然后实现一个应用层后台程序实现数据的路由功倉泛。
[0005]这种实现方式的最大特点就是简单,但是效率非常低下,涉及到大量的数据拷贝和系统调用操作。在高负荷的系统下面,这会成为一个系统瓶颈。
【发明内容】
[0006]本发明的目的在于提供一种在LINUX内核中实现GSM0710协议的方法及装置,能够解决在高负荷的系统下,在应用层实现GSM规范实现方式所涉及到的大量数据拷贝和系统调用降低系统性能的问题。
[0007]根据本发明的一个方面,提供了一种在LINUX内核中实现GSM0710协议的方法,包括:
[0008]设置用于驱动GSM0710规范逻辑通道的TTY逻辑通道驱动模块,并利用所述TTY逻辑通道驱动模块打开或关闭与所述TTY设备对应的逻辑通道;
[0009]设置与无线通讯模块接口通讯的TTY接口驱动模块,并利用所述TTY接口驱动模块接收来自无线通讯模块的数据,以及将来自TTY设备的数据发送给无线通讯模块;
[0010]设置TTY线路规程驱动模块,并利用所述TTY线路规程驱动模块截取并处理所述TTY接口驱动模块所接收的来自无线通讯模块的数据,以及将处理后的数据发送给TTY逻辑通道驱动模块;
[0011]其中,所述TTY逻辑通道驱动模块还通过所打开的逻辑通道把来自TTY线路规程驱动模块的数据转发给所述TTY设备,并对TTY设备经由所打开的逻辑通道发送的数据进行组包处理后发送给TTY接口驱动模块,由其作为来自TTY设备的数据发送给无线通讯模块。
[0012]优选地,所述TTY逻辑通道驱动模块根据无线通讯模块设置的逻辑通道数量为每个逻辑通道注册一个TTY设备。
[0013]优选地,所述TTY线路规程驱动模块在初始化时启动,包括:
[0014]应用程序通过所述TTY设备发送启动GSM0710规范的命令给无线通讯模块;
[0015]当所述无线通讯模块返回应答后,应用程序打开用来实现TTY路线规程驱动的TTY线路规程驱动模块。
[0016]优选地,所述的TTY逻辑通道驱动模块打开与所述TTY设备对应的逻辑通道的步骤包括:
[0017]当应用程序打开TTY设备时,TTY逻辑通道驱动模块通过TTY接口驱动模块向无线通讯模块发送用来打开与所述TTY设备对应的逻辑通道的命令;
[0018]当无线通讯模块返回对所述命令的应答后,TTY逻辑通道驱动模块打开与所述TTY设备对应的逻辑通道,以便建立所述TTY设备的数据链路。
[0019]优选地,所述的TTY逻辑通道驱动模块通过TTY接口驱动模块向无线通讯模块发送用来打开与所述TTY设备对应的逻辑通道的命令具体为:
[0020]当TTY逻辑通道驱动模块检测到应用程序打开TTY设备时,TTY逻辑通道驱动模块根据GSM0710规范将所述命令进行组包,并将组包后的命令经由TTY接口驱动模块转发给无线通讯模块。
[0021]优选地,所述的利用所述TTY线路规程驱动模块处理所述TTY接口驱动模块所接收的来自无线通讯模块的数据的步骤包括:
[0022]TTY线路规程驱动模块按照GSM0710规范对截取到的数据进行解析,得到将要投递到与所述TTY设备对应的逻辑通道的数据。
[0023]优选地,所述的对TTY设备经由所打开的逻辑通道发送的数据进行组包处理后发送给TTY接口驱动模块的步骤包括:
[0024]TTY逻辑通道驱动模块通过所打开的逻辑通道接收TTY设备发送的数据;
[0025]根据GSM0710规范对所接收的数据进行组包,并将组包后的数据发送给TTY接口驱动模块。
[0026]根据本发明的另一方面,提供了一种在LINUX内核中实现GSM0710协议的装置,包括:
[0027]TTY逻辑通道驱动模块,用于设置用于驱动GSM0710规范逻辑通道的TTY逻辑通道驱动模块,并利用所述TTY逻辑通道驱动模块打开或关闭与所述TTY设备对应的逻辑通道;
[0028]TTY接口驱动模块,用于设置与无线通讯模块接口通讯的TTY接口驱动模块,并利用所述TTY接口驱动模块接收来自无线通讯模块的数据,以及将来自TTY设备的数据发送给无线通讯模块;
[0029]TTY线路规程驱动模块,用于设置TTY线路规程驱动模块,并利用所述TTY线路规程驱动模块截取并处理所述TTY接口驱动模块所接收的来自无线通讯模块的数据,以及将处理后的数据发送给TTY逻辑通道驱动模块。
[0030]优选地,所述的TTY逻辑通道驱动模块进一步包括:
[0031]逻辑通道命令子模块,用于当应用程序打开TTY设备时,TTY逻辑通道驱动模块通过TTY接口驱动模块向无线通讯模块发送用来打开与所述TTY设备对应的逻辑通道的命令;
[0032]使能逻辑通道子模块,用于当无线通讯模块返回对所述命令的应答后,TTY逻辑通道驱动模块打开与所述TTY设备对应的逻辑通道,以便建立所述TTY设备的数据链路。
[0033]优选地,所述的TTY线路规程驱动模块进一步包括:
[0034]数据解析子模块,用于TTY线路规程驱动模块按照GSM0710规范对截取到的数据进行解析,得到将要投递到与所述TTY设备对应的逻辑通道的数据。
[0035]与现有技术相比较,本发明的有益效果在于:能够通过在LINUX内核中直接实现GSM0710规范实现的方式,避免多余的数据拷贝和系统调用,提升系统性能。
【附图说明】
[0036]图1是本发明实施例提供的在LINUX内核中实现GSM0710协议的方法流程图;
[0037]图2是本发明实施例提供的在LINUX内核中实现GSM0710协议的装置结构图;
[0038]图3是本发明实施例提供的在LINUX内核中实现GSM0710协议的整体框架图;
[0039]图4是本发明实施例提供的在LINUX内核中实现GSM0710协议的程序流程框图。
【具体实施方式】
[0040]以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0041]图1是本发明实施例提供的在LINUX内核中实现GSM0710协议的方法流程图,如图1所示,具体步骤如下:
[0042]步骤S1:设置用于驱动GSM0710规范逻辑通道的TTY逻辑通道驱动模块,并利用所述TTY逻辑通道驱动模块打开或关闭与所述TTY设备对应的逻辑通道;
[0043]步骤S2:设置与无线通讯模块接口通讯的TTY接口驱动模块,并利用所述TTY接口驱动模块接收来自无线通讯模块的数据,以及将来自TTY设备的数据发送给无线通讯模块;
[0044]步骤S3:设置TTY线路规程驱动模块,并利用所述TTY线路规程驱动模块截取并处理所述TTY接口驱动模块所接收的来自无线通讯模块的数据,以及将处理后的数据发送给TTY逻辑通道驱动模块;
[0045]其中,所述TTY逻辑通道驱动模块还通过所打开的逻辑通道把来自TTY线路规程驱动模块的数据转发给所述TTY设备,并对TTY设备经由所打开的逻辑通道发送的数据进行组包处理后发送给TTY接口驱动模块,由其作为来自TTY设备的数据发送给无线通讯模块。
[0046]所述TTY逻辑通道驱动模块根据无线通讯模块设置的逻辑通道数量为每个逻辑通道注册一个TTY设备。
[0047]所述TTY线路规程驱动模块在初始化时启动,包括:
[0048]应用程序通过所述TTY设备发送启动GSM0710规范的命令给无线通讯模块;
[0049]当所述无线通讯模块返回应答后,应用程序打开用来实现TTY路线规程驱动的TTY线路规程驱动模块。
[0050]在步骤SI中,所述的TTY逻辑通道驱动模块打开与所述TTY设备对应的逻辑通道的步骤包括:
[0051]当应用程序打开TTY设备时,TTY逻辑通道驱动模块通过TTY接口驱动模块向无线通讯模块发送用来打开与所述TTY设备对应的逻辑通道的命令;
[0052]当无线通讯模块返回对所述命令的应答后,TTY逻辑通道驱动模块打开与所述TTY设备对应的逻辑通道,以便建立所述TTY设备的数据链路。
[0053]进一步地,所述的TTY逻辑通道驱动模块通过TTY接口驱动模块向无线通讯模块发送用来打开与所述TTY设备对应的逻辑通道的命令具体为:
[0054]当TTY逻辑通道驱动模块检测到应用程序打开TTY设备时,TTY逻辑通道驱动模块根据GSM0710规范将所述命令进行组包,并将组包后的命令经由TTY接口驱动模块转发给无线通讯模块。
[0055]在步骤S2中,所述的利用所述TTY线路规程驱动模块处理所述TTY接口驱动模块所接收的来自无线通讯模块的数据的步骤包括:
[0056]TTY线路规程驱动模块按照GSM0710规范对截取到的数据进行解析,得到将要投递到与所述TTY设备对应的逻辑通道的数据。
[0057]所述的对TTY设备经由所打开的逻辑通道发送的数据进行组包处理后发送给TTY接口驱动模块的步骤包括:
[0058]TTY逻辑通道驱动模块通过所打开的逻辑通道接收TTY设备发送的数据;
[0059]根据GSM0710规范对所接收的数据进行组包,并将组包后的数据发送给TTY接口驱动模块。
[0060]图2是本发明实施例提供的在LINUX内核中实现GSM0710协议的装置结构图,如图2所示,包括:TTY逻辑通道驱动模块、TTY接口驱动模块和TTY线路规程驱动模块。
[0061]所述TTY逻辑通道驱动模块用于设置用于驱动GSM0710规范逻辑通道的TTY逻辑通道驱动模块,并利用所述TTY逻辑通道驱动模块打开或关闭与所述TTY设备对应的逻辑通道。其中,所述TTY逻辑通道驱动模块的逻辑通道命令子模块用于当应用程序打开TTY设备时,TTY逻辑通道驱动模块通过TTY接口驱动模块向无线通讯模块发送用来打开与所述TTY设备对应的逻辑通道的命令。所述TTY逻辑通道驱动模块的使能逻辑通道子模块用于当无线通讯模块返回对所述命令的应答后