CN102629202A - 一种处理内嵌多模块物联网移动终端设备数据***的方法 - Google Patents
一种处理内嵌多模块物联网移动终端设备数据***的方法 Download PDFInfo
- Publication number
- CN102629202A CN102629202A CN2012100582361A CN201210058236A CN102629202A CN 102629202 A CN102629202 A CN 102629202A CN 2012100582361 A CN2012100582361 A CN 2012100582361A CN 201210058236 A CN201210058236 A CN 201210058236A CN 102629202 A CN102629202 A CN 102629202A
- Authority
- CN
- China
- Prior art keywords
- module
- memory management
- management unit
- kernel
- hardware
- 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
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种处理内嵌多模块物联网移动终端设备数据***的方法,所述***包括应用单元、内存管理单元、硬件模块,内存管理单元包括Linux内核模块,硬件模块包括硬件内核模块,内存管理单元在应用单元和硬件模块之间建立通信模式,各硬件模块通过天线与外界通信;本发明设计一个内存管理单元驱动模块,与其余各个硬件模块驱动通信,同时它采用了netlink的方式实现底层驱动与上层应用程序的唯一沟通渠道,控制数据的分发和采集。采用本发明,编程上非常灵活,程序效率也非常高。
Description
技术领域
本发明涉及一种处理内嵌多模块物联网移动终端设备数据***的方法,具体涉及一种嵌入式Linux平台下终端设备驱动和应用程序接口和组织的开发方法,属于嵌入式***开发技术研究领域,涉及到内存共享、内核模块间互访和内核空间、用户空间同步/异步通信传输技术。
背景技术
物联网是通过射频识别RFID装置、红外感应器、全球定位***、激光扫描器等信息传感设备按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。物联网产业的热潮正席卷全球,需要大量物联网终端设备的支持。物联网终端设备一般是综合性很强的嵌入式***,挂载的硬件模块数量多,需要通过多个模块的配合才能完成特定的任务。传统上,对应多个模块的控制,一种设计方法是对应设计多个应用程序,以几个独立的进程的方式对其分别进行管理,各个进程之间再通过进程间通信实现数据共享;另一种办法是将几个模块的应用做到一个程序里,对应到不同的线程,同一进程的多个子线程之间共享数据更为便捷,从***的角度看模块协同工作的耦合性也会更为紧密。但是采用以上传统的设计方法,应用程序开发人员要在应用中兼顾处理几个模块,应用程序接口较为繁杂,且各模块均要来回在内核空间和应用空间之间复制数据,效率也较低。物联网的应用是丰富多彩的,为了让应用程序开发人员将精力集中到丰富的应用的实现,最好对他们屏蔽底层硬件设备。
发明内容
本发明的目的在于:在运行Linux操作***的物联网移动终端设备上,提出一种处理多个模块的数据的方法。
本发明的技术方案:
本***软件架构由各模块的接口驱动程序、内存管理单元驱动程序、上层应用程序组成。各硬件接口的驱动相互独立,又都逻辑上与内存管理单元相连,构成以内存管理单元为中心的拓扑结构,见图2。内存管理单元与上层应用之间采用netlink方式通信,作为应用程序和所有模块底层驱动的通信通道,内存管理单元负责在各模块和应用程序间收集和分发数据包。***软件的实现包括应用程序和底层驱动两部分内容。
一种处理内嵌多模块物联网移动终端设备数据***的方法,包括以下几个步骤:
步骤一:实现内存管理单元驱动框架;
实现内核模块加载函数、卸载函数和对许可权限的声明等。最主要的是module_init()和module_exit()两个函数,它们的形参均是函数指针,分别指向模块加载函数和模块卸载函数。可以通过insmod命令来调试运行这个驱动模块,调试完毕后可以把此驱动放到Linux源代码树下,编译进内核;
步骤二:实现内存管理单元驱动与用户空间应用程序的接口;
内核管理单元驱动和应用程序间,通过netlink通信。对应用程序,netlink的主要函数包括socket(), sendmsg(),recvmsg(), close();
对于应用程序,使用socket()函数创建一个socket,函数原型为int socket(int domain, int type, int protocol)。初始化本地地址和目的地址,在GUI线程的某个消息响应函数里,填充消息结构体,调用sendmsg()函数即可将消息发送到内核空间。对于应用程序的接收过程,另开一个线程。比较典型的,采用了select机制。其用户空间应用程序接收处理流程见图3。对于内核空间,调用struct sock * netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len))创建一个socket。参数uint是netlink协议类型。input是netlink socket在收到消息时调用的处理消息的回调函数指针。一旦用户程序发送netlink消息到内核,netlink_kernel_create()函数注册的回调函数input()就会被调用。内核驱动先处于等待接收状态,收到应用程序送来的消息后,解析出数据来源的地址,再将这个地址作为返回消息的目的地址。这样内核驱动与用户空间应用程序的通信通道就建立好了。数据包里包含了这个数据包的类型信息,参见图6,内存管理单元驱动依据这个字段信息,可以正确地将数据包路由到硬件模块;
步骤三:分配和组织各驱动模块内存,实现关键函数,导出符号;
各模块驱动位于Linux内核空间,在各内核模块驱动中定义全局变量再用EXPORT_SYMBOL()将其导出,可以非常便利快捷地实现数据共享。内存管理单元驱动作为***的中心,可以同任何模块通信,而其余模块与模块(包括应用程序)之间,都不直接通信,所有的数据包都要经过内存管理单元模块。根据各模块业务的不同,所需的工作空间也不一样。初始化时,可以在不同模块中定义不同大小的全局变量并导出;
现以GPRS模块和内存管理单元模块间的通信为例说明如下:
GPRS模块作为数据的发送方,内存管理单元驱动作为数据的接收方。在内存管理单元中开辟一块空间作为接收GPRS传送来的数据的缓存区。采用链队列数据结构,动态申请这块空间。当GPRS模块有新数据时,内存管理驱动模块需要新开辟空间来存储这些数据。所以,需要在内存管理单元驱动中声明一个全局函数并导出,通过调用这个函数将一个新数据包***到接收队列的尾部,这个函数的返回值被赋值给一个指针变量,这样在GPRS模块里就可以通过这个指针变量向内存管理单元驱动里申请的内存空间直接写入数据了。在内存管理单元驱动模块里,定义了一个函数并导出。这个函数的作用是遍历各个接收队列,比如上文提到的GPRS数据的接收队列,同理还有GPS的接收队列、一二维条形码阅读器的接收队列等等,有数据等待处理的话,就根据数据类型进行处理、组包,最后调用API函数netlink_unicast()将数据包送至应用程序。在Linux的驱动层次上,GPRS模块,实际是在串口驱动中,串口接收中断处理函数中收到64个字节,或者串口接收fifo中没有新数据到来,则当前接收过程完成,通过调用tty_flip_buffer_push(tty),将数据包送到TTY核心去处理。判断到当前是GPRS模块对应的串口的数据准备好,则添加一个新项进队列,再触发内存管理单元驱动的动作,处理并向用户空间报告;
当内存管理单元驱动作为数据或者命令的发送方时,直接将数据交给对应硬件模块进行处理。流程图见图5。具体的以内存管理单元将数据传送给GPRS模块驱动为例,在GPRS模块驱动程序中定义char rcvfrommem[GPRS_CMD_LEN],作为接收数据的缓冲区。定义两个全局变量,gprsarrayhead指向缓冲区的起始位置,gprsarraytail指向缓冲区的结束位置,将这两个全局变量导出。在内存管理单元驱动中,定义一个char * p指针,并用语句 extern char * gprsarrayhead和extern char * gprsarraytail声明之前两个外部变量。初始化的时候,将gprsarrayhead的值赋给p。当内存模块有数据要传给GPRS模块的时候,向p指针指向的位置写入消息即可。数据准备好以后,调用一个从串口驱动导出的全局函数,启动串口硬件的发送过程。采用以上方式处理模块间数据通信,既将各模块数据存储区独立开来,又同步了模块间工作顺序;
步骤四:组装应用程序和内存管理单元驱动模块之间通信数据包
内存管理单元驱动内部维护了多个队列,用于接收各个模块的数据。当获取到模块的原始数据后,需要按指定的格式打包上传至应用程序。上层应用程序有数据或命令要递交给底层驱动模块时,也需要按照特定格式组包。根据需求,数据包的格式定义见图6;
命令码,被用来区分各种命令;模块ID用来标明数据或命令最后要传给哪个硬件模块。序列号字段保留。Len字段记录了数据内容的字节数。数据内容一项的具体内容,可以根据模块的不同,定义成不同的结构体,比如GPS模块的数据可能是含有经纬度、高度、日期时间等各种域的结构体。在将数据传递到硬件内核模块前,需要先将命令码和数据按照硬件内核模块的需求,重新组织数据包,这个识别包再翻译包的过程构成内存管理单元驱动的命令解析环节。同理,在应用程序中,也存在这样一个命令解析的环节,参见图3和图5。采用统一的数据格式,方便了接收方处理信息。
上述的一种处理内嵌多模块物联网移动终端设备数据***的方法,所述的动终端设备硬件***由ARM9处理器,连接RFID读写器模块、WiFi模块、GPRS模块、GPS模块和一二维条形码模块组成。其中GPRS、GPS、一二维条形码模块通过UART,WiFi模块通过SDIO,RFID读写器通过USB与ARM9处理器连接。
附图说明
图1 硬件设计框架图;
图2 软件逻辑框架;
图3用户空间应用程序netlink socket接收处理流程;
图4 内存管理单元驱动处理各功能模块传来数据包流程;
图5 内存管理单元驱动处理应用程序传来数据包流程;
图6 netlink自定义数据包格式。
具体实施方式
现用具体实施例结合图1-6说明本方案,
本物联网移动终端设备硬件***由ARM9处理器,连接RFID读写器模块、WiFi模块、GPRS模块、GPS模块和一二维条形码模块组成。其中GPRS、GPS、一二维条形码模块通过UART,WiFi模块通过SDIO,RFID读写器通过USB与ARM9处理器连接(图1)。
***软件架构由各模块的接口驱动程序、内存管理单元驱动程序、上层应用程序组成。各硬件接口的驱动相互独立,又都逻辑上与内存管理单元相连,构成以内存管理单元为中心的拓扑结构,见图2。内存管理单元与上层应用之间采用netlink方式通信,作为应用程序和所有模块底层驱动的通信通道;
其初始化的程序片段如下:
……
sock_fd = socket(PF_NETLINK, SOCK_RAW,MYNETLINK); src_addr.nl_family = AF_NETLINK; src_addr.nl_pid = getpid(); src_addr.nl_groups = 0; / bind(sock_fd, (struct sockaddr*)&src_addr, sizeof(src_addr)); memset(&dest_addr, 0, sizeof(dest_addr)); dest_addr.nl_family = AF_NETLINK; dest_addr.nl_pid = 0; dest_addr.nl_groups = 0; 其中MYNETLINK是自定义的协议类型;
以上初始化的工作应完成后,当应用程序响应用户操作,比如在GUI线程的某个消息响应函数里,填充消息结构体,调用sendmsg()函数即可将消息发送到内核空间。对于应用程序的接收过程,另开一个线程,比较典型的,采用了select机制。其用户空间应用程序接收处理流程见图3;
程序片段如下:
while(1)
{
FD_ZERO(&rfds);
FD_SET(sock_fd , &rfds);
timeout.tv_sec = 0;
timeout.tv_usec = 10000;
ret = select(sock_fd+1, &rfds,NULL, NULL,&timeout);
switch(ret)
{
case -1:
continue;
case 0:
continue;//time out
default:
if(FD_ISSET(sock_fd,&rfds)){
HandleNetlink();
}
}
}
HandleNetlink()函数解析并处理数据包;
对于内核空间,调用struct sock * netlink_kernel_create(int unit, void (*input)(struct sock *sk, int len))创建一个socket。参数uint是netlink协议类型。input是netlink socket在收到消息时调用的处理消息的回调函数指针。一旦用户程序发送netlink消息到内核,netlink_kernel_create()函数注册的回调函数input()就会被调用。内核驱动先处于等待接收状态,收到应用程序送来的消息后,解析出数据来源的地址,再将这个地址作为返回消息的目的地址。这样内核驱动与用户空间应用程序的通信通道就建立好了。数据包里包含了这个数据包的类型信息,参见图6,内存管理单元驱动依据这个字段信息,可以正确地将数据包路由到硬件模块;
然后分配和组织各驱动模块内存,实现关键函数,导出符号。
内存管理单元驱动作为***的中心,可以同任何模块通信,所有的数据包都要经过内存管理单元模块。初始化时,根据业务需求在不同模块中定义不同大小的内存空间。以GPRS模块和内存管理单元模块间的通信为例说明如下:先看GPRS模块作为数据的发送方,内存管理单元驱动作为数据的接收方。在内存管理单元中开辟一块空间作为接收GPRS传送来的数据的缓存区。采用链队列数据结构,动态申请这块空间。
当GPRS模块有新数据时,内存管理驱动模块需要新开辟空间来存储这些数据。所以,需要在内存管理单元驱动中声明一个全局函数struct GprsItem allocgprsqueueitem(),并导出。链队列中的结构体被定义为GprsItem,形式如下:
struct GprsItem
{
int itemlen;
struct GprsItem * pnext;
char pdata[len];
…
}
在GPRS模块中调用allocgprsqueueitem(),一个新队列元素空间就被***到队列的尾部,这个函数的返回值被赋值给一个指针变量,这样在GPRS模块里就可以通过这个指针变量向内存管理单元驱动里申请的内存空间直接写入数据了。在内存管理单元驱动模块里,定义了一个函数dealrcvdata(),并导出。这个函数的作用是遍历各个接收队列,比如上文提到的GPRS数据的接收队列,同理还有GPS的接收队列、一二维条形码阅读器的接收队列等等,有数据等待处理的话,就根据数据类型进行处理并组包,最后调用API函数netlink_unicast()将数据包送至应用程序。在Linux的驱动层次上,GPRS模块,实际是在串口驱动中,串口接收中断处理函数中收到64个字节,或者串口接收fifo中没有新数据到来,则当前接收过程完成,调用tty_flip_buffer_push(tty),将数据包送到TTY核心去处理,判断到当前是GPRS模块对应的串口的数据准备好,则添加一个新项进GPRS数据接收队列,再调用dealrcvdata()触发内存管理单元驱动的动作,令其正确处理这包数据并通知用户空间。Dealrcvdata()函数主要流程见图4。
当内存管理单元驱动作为数据或者命令的发送方时,直接将这些数据交给对应硬件模块进行处理,流程图见图5。
具体的以内存管理单元将数据传送给GPRS模块驱动为例,在GPRS模块驱动程序中定义char rcvfrommem[GPRS_CMD_LEN],作为接收数据的缓冲区。定义两个全局变量,gprsarrayhead指向缓冲区的起始位置,gprsarraytail指向缓冲区的结束位置,将这两个全局变量导出。在内存管理单元驱动中,定义一个char * p指针,并用语句 extern char * gprsarrayhead和extern char * gprsarraytail声明之前两个外部变量。初始化的时候,将gprsarrayhead的值赋给p。当内存模块有数据要传给GPRS模块的时候,向p指针指向的位置写入消息即可。GPRS模块里的这个缓存区就被赋予了值。通过检查p是否大于了gprsarraytail,避免数组访问越界出错。数据准备好以后,调用一个从串口驱动导出的全局函数,启动串口硬件的发送过程。该函数的部分代码如下:
while (!uart_circ_empty(xmit) && count-- > 0) {
if (rd_regl(port, XXX_UFSTAT) & ourport->info->tx_fifofull)
break;
wr_regb(port, XXX_UTXH, xmit->buf[xmit->tail]);
xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
port->icount.tx++;
}
最后,内核空间和用户空间要传送信息时,采用统一的数据格式来组包,方便了接收方处理信息(图6)。
Claims (2)
1.一种处理内嵌多模块物联网移动终端设备数据***的方法,所述***包括应用单元、内存管理单元、硬件模块,内存管理单元包括Linux内核模块,硬件模块包括硬件内核模块,内存管理单元在应用单元和硬件模块之间建立通信模式,各硬件模块通过天线与外界通信;该方法的步骤包括:
步骤一:实现内存管理单元驱动内核模块
按编写Linux内核模块的基本要求,实现内核模块加载函数、卸载函数和对许可权限的声明等,可以通过insmod命令来调试运行这个驱动模块,调试完毕后可以把此驱动放到Linux源代码树下,编译进内核;
步骤二:实现内存管理单元驱动内核模块与应用单元的接口
内核管理单元驱动内核模块和应用单元间采用netlink方式通信,在应用单元和内存管理单元驱动内核模块驱动中都申请socket用于交互通信;内存管理单元驱动内核模块先守候来自应用单元的数据包;在应用单元中用进程自身的ID来标志本地地址并绑定,并向内存管理单元驱动内核模块发起会话,内存管理单元驱动内核模块从这次会话中获取应用程序socket被绑定地址的信息,至此,管理单元驱动内核模块和内核空间的通信通道建立;
步骤三:分配和组织各驱动硬件模块内存,实现并导出一些关键函数和变量
各驱动硬件模块位于Linux内核空间,在各驱动内核模块中定义全局变量再用EXPORT_SYMBOL()将其(具体名称)导出,可以非常便利快捷地实现数据共享,内存管理单元驱动内核模块作为***的中心,可以同任何模块通信,而其余模块与模块或应用单元之间,都不直接通信,所有的数据包都要经过内存管理单元,根据各硬件模块业务的不同,所需的工作空间也不一样;
步骤四:组装应用单元和内存管理单元之间通信数据包
内存管理单元驱动内核模块内部维护了多个队列,用于接收各个硬件模块的数据,当获取到硬件模块的原始数据后,需要按指定的格式打包上传至应用单元,应用单元有数据或命令要递交给硬件模块时,也需要按照特定格式组包,在将数据传递到硬件内核模块前,需要先将命令码和数据按照硬件内核模块的需求,重新组织数据包,这个识别包再翻译包的过程构成内存管理单元驱动的命令解析环节,同理,在应用程序中,也存在命令解析的环节。
2.根据权利要求1所述的一种处理内嵌多模块物联网移动终端设备数据***的方法,其特征在于所述的动终端设备硬件***由ARM9处理器,连接RFID读写器模块、WiFi模块、GPRS模块、GPS模块和一二维条形码模块组成;其中GPRS、GPS、一二维条形码模块通过UART,WiFi模块通过SDIO,RFID读写器通过USB与ARM9处理器连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100582361A CN102629202A (zh) | 2012-03-07 | 2012-03-07 | 一种处理内嵌多模块物联网移动终端设备数据***的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100582361A CN102629202A (zh) | 2012-03-07 | 2012-03-07 | 一种处理内嵌多模块物联网移动终端设备数据***的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102629202A true CN102629202A (zh) | 2012-08-08 |
Family
ID=46587462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100582361A Pending CN102629202A (zh) | 2012-03-07 | 2012-03-07 | 一种处理内嵌多模块物联网移动终端设备数据***的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102629202A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376126A (zh) * | 2014-12-11 | 2015-02-25 | 北京奇虎科技有限公司 | 在Linux驱动中绑定内核符号的方法及装置 |
CN104636128A (zh) * | 2014-09-10 | 2015-05-20 | 深圳光启创新技术有限公司 | 操作***中控制硬件设备的方法和模块 |
CN105094995A (zh) * | 2014-05-19 | 2015-11-25 | 北京东土科技股份有限公司 | 一种内核与用户态进程间的安全通信传输方法和*** |
CN105653252A (zh) * | 2014-11-21 | 2016-06-08 | 北京信威通信技术股份有限公司 | 一种linux下扩展select模型管理能力的方法 |
CN106569957A (zh) * | 2015-10-10 | 2017-04-19 | 龙芯中科技术有限公司 | 内存分配方法和装置 |
CN106708634A (zh) * | 2016-12-09 | 2017-05-24 | 福建省天奕网络科技有限公司 | Vr应用设备与厂家设备的通讯方法及其*** |
CN107846672A (zh) * | 2017-10-31 | 2018-03-27 | 泰凌微电子(上海)有限公司 | 多模IoT设备的通信模式选择方法、IoT设备及存储介质 |
CN109547796A (zh) * | 2018-11-26 | 2019-03-29 | 晶晨半导体(上海)股份有限公司 | 一种视频编解码固件管理方法和*** |
CN109543400A (zh) * | 2017-09-21 | 2019-03-29 | 华为技术有限公司 | 一种动态管理内核节点的方法和设备 |
US10599493B2 (en) | 2014-08-20 | 2020-03-24 | Kuang-Chi Intelligent Photonic Technology Ltd. | Method and module in operating system for controlling hardware device |
CN111857852A (zh) * | 2020-07-28 | 2020-10-30 | Oppo广东移动通信有限公司 | 驱动***、信息处理方法、电子设备及存储介质 |
-
2012
- 2012-03-07 CN CN2012100582361A patent/CN102629202A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094995A (zh) * | 2014-05-19 | 2015-11-25 | 北京东土科技股份有限公司 | 一种内核与用户态进程间的安全通信传输方法和*** |
US10599493B2 (en) | 2014-08-20 | 2020-03-24 | Kuang-Chi Intelligent Photonic Technology Ltd. | Method and module in operating system for controlling hardware device |
CN104636128B (zh) * | 2014-09-10 | 2018-03-02 | 深圳光启智能光子技术有限公司 | 操作***中控制硬件设备的方法和模块 |
CN104636128A (zh) * | 2014-09-10 | 2015-05-20 | 深圳光启创新技术有限公司 | 操作***中控制硬件设备的方法和模块 |
CN105653252A (zh) * | 2014-11-21 | 2016-06-08 | 北京信威通信技术股份有限公司 | 一种linux下扩展select模型管理能力的方法 |
CN104376126A (zh) * | 2014-12-11 | 2015-02-25 | 北京奇虎科技有限公司 | 在Linux驱动中绑定内核符号的方法及装置 |
CN106569957A (zh) * | 2015-10-10 | 2017-04-19 | 龙芯中科技术有限公司 | 内存分配方法和装置 |
CN106708634A (zh) * | 2016-12-09 | 2017-05-24 | 福建省天奕网络科技有限公司 | Vr应用设备与厂家设备的通讯方法及其*** |
CN109543400A (zh) * | 2017-09-21 | 2019-03-29 | 华为技术有限公司 | 一种动态管理内核节点的方法和设备 |
US11579899B2 (en) | 2017-09-21 | 2023-02-14 | Huawei Technologies Co., Ltd. | Method and device for dynamically managing kernel node |
CN109543400B (zh) * | 2017-09-21 | 2022-08-09 | 华为技术有限公司 | 一种动态管理内核节点的方法和设备 |
CN107846672A (zh) * | 2017-10-31 | 2018-03-27 | 泰凌微电子(上海)有限公司 | 多模IoT设备的通信模式选择方法、IoT设备及存储介质 |
WO2019085506A1 (zh) * | 2017-10-31 | 2019-05-09 | 泰凌微电子(上海)有限公司 | 多模IoT设备的通信模式选择方法、IoT设备及存储介质 |
US11399337B2 (en) | 2017-10-31 | 2022-07-26 | Telink Semiconductor (Shanghai) Co., Ltd. | Communication mode selection method for multimode IoT device, IoT device and storage medium |
CN109547796A (zh) * | 2018-11-26 | 2019-03-29 | 晶晨半导体(上海)股份有限公司 | 一种视频编解码固件管理方法和*** |
CN109547796B (zh) * | 2018-11-26 | 2021-03-09 | 晶晨半导体(上海)股份有限公司 | 一种视频编解码固件管理方法和*** |
CN111857852B (zh) * | 2020-07-28 | 2022-05-27 | Oppo广东移动通信有限公司 | 驱动***、信息处理方法、电子设备及存储介质 |
CN111857852A (zh) * | 2020-07-28 | 2020-10-30 | Oppo广东移动通信有限公司 | 驱动***、信息处理方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102629202A (zh) | 一种处理内嵌多模块物联网移动终端设备数据***的方法 | |
CN101669100B (zh) | 利用半导体芯片中的多核处理器资源阵列管理多个i/o接口的方法和*** | |
CN102347896B (zh) | 一种基于以太网加载fpga和dsp的平台及其实现方法 | |
CN105051706B (zh) | 用于具有pcie协议栈的低功率phy的操作的设备、方法和*** | |
CN103957198B (zh) | 一种传感数据接收转换方法及*** | |
CN102100121A (zh) | 在近距离通信中管理多个应用的方法和*** | |
CN102185833B (zh) | 一种基于fpga的fc i/o并行处理方法 | |
CN201294545Y (zh) | 多协议数据采集网关 | |
CN101340404A (zh) | 用于WiFi与ZigBee无线网络协议转换的嵌入式网关 | |
CN108351859A (zh) | 用于端点设备的直接存储器存取 | |
CN106534178B (zh) | RapidIO网络通用套接字的实现***及方法 | |
CN105162673A (zh) | 数据传输接口及方法 | |
CN103414497B (zh) | 为电子设备之间通信借助转发的控制方法和相应的设备 | |
CN109639737A (zh) | 协议发生装置、数据采集终端的协议转换方法和配置方法 | |
CN201435738Y (zh) | Profibus-dp与can现场总线协议转换器 | |
CN110190887A (zh) | 地面站、无人机数据传输***和方法以及存储介质 | |
CN107133109A (zh) | 一种模块间通信的方法、装置及计算设备 | |
CN104798010A (zh) | 至少部分的串行存储协议兼容帧转换 | |
CN102739788B (zh) | 一种基于eib协议的现场设备通信方法 | |
CN102804139A (zh) | 使用虚拟化技术实现用于无线设备的远程输入设备的***和方法 | |
CN101778038B (zh) | 基于千兆以太网的嵌入式设备高速数据传输*** | |
CN207164210U (zh) | 一种智能卡的测试装置 | |
CN103856466A (zh) | 一种可自动配置协议的采集终端装置 | |
CN102301605A (zh) | 用于在终端设备中虚拟化***设备使通过具有处理器能力的可移动便携设备实现远程管理的***和方法 | |
CN103546921B (zh) | 一种协议栈融合兼容的装置及方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120808 |