嵌入式设备和WIFI模块的交互建立方法和装置与流程

文档序号:18141958发布日期:2019-07-10 11:10阅读:447来源:国知局
嵌入式设备和WIFI模块的交互建立方法和装置与流程

本发明涉及嵌入式,具体地涉及一种嵌入式设备和wifi模块的交互建立方法和装置。



背景技术:

目前随着嵌入式设备在国内得到了广泛的应用,其自身协议也在飞速的发展以满足各种硬件设备和业务需求。目前大部分的高端嵌入式系统平台都需要人机交互屏幕和多媒体应用,这是为了迎合主流的用户群的需求为蓝本的。但是目前作为采集和监控设备的低端嵌入式设备的系统平台(例如arm9)大部分是不支持wifi模块或者只支持透传式的方法,这就会导致采集和监控设备为了流畅支持wifi模块而选用高端嵌入式系统平台,引起成本的大幅上涨。



技术实现要素:

本发明实施例的目的是提供一种嵌入式设备和wifi模块的交互建立方法和装置,该嵌入式设备和wifi模块的交互建立方法和装置可以使嵌入式设备与wifi模块进行交互。

为了实现上述目的,本发明实施例提供一种嵌入式设备和wifi模块的交互建立方法,该嵌入式设备具有嵌入式系统,该方法包括:接收主机针对所述嵌入式系统生成的可执行代码;以及执行所述可执行代码以获取与所述wifi模块进行交互所需的配置以便于进行交互。

优选地,所述嵌入式系统为arm嵌入式系统。

优选地,所述配置包括:基于tcp/ip协议的测试工具、所述wifi模块的设备驱动、匹配所述驱动的工具集以及与所述工具集相关的动态库。

优选地,所述可执行代码包括:驱动可执行代码、工具集可执行代码、动态库可执行代码以及配置文件可执行代码。

优选地,所述可执行代码是所述主机使用对应所述嵌入式系统的工具链交叉编译驱动源代码、工具集源代码以及动态库源代码生成的。

优选地,与所述工具集相关的动态库包括:libssh、libn1以及libn1-gen1-3。

优选地,在执行所述可执行代码之后,该方法还包括:依次加载所述wifi模块的设备驱动包含的以下对象以启动所述wifi模块:模块主驱动、设备固件以及配置文件。

本发明实施例还提供一种嵌入式设备和wifi模块的交互建立装置,该嵌入式设备具有嵌入式系统,该装置包括:接收模块和处理模块,其中,所述接收模块用于接收主机针对所述嵌入式系统生成的可执行代码;以及所述处理模块用于执行所述可执行代码以获取与所述wifi模块进行交互所需的配置以便于进行交互。

优选地,所述配置包括:基于tcp/ip协议的测试工具、所述wifi模块的设备驱动、匹配所述驱动的工具集以及与所述工具集相关的动态库。

优选地,在执行所述可执行代码之后,所述处理模块还用于依次加载所述wifi模块的设备驱动包含的以下对象以启动所述wifi模块:模块主驱动、设备固件以及配置文件。

通过上述技术方案,采用本发明提供的嵌入式设备和wifi模块的交互建立方法和装置,该嵌入式设备具有嵌入式系统,该方法包括:接收主机针对所述嵌入式系统生成的可执行代码;以及执行所述可执行代码以获取与所述wifi模块进行交互所需的配置以便于进行交互。该嵌入式设备和wifi模块的交互建立方法和装置可以使嵌入式设备与wifi模块进行交互。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明一实施例提供的嵌入式设备和wifi模块的交互建立方法的流程图;

图2是本发明一实施例提供的生成动态库的方法的流程图;

图3是本发明一实施例提供的加载所述wifi模块的设备驱动的示意图;

图4是本发明一实施例提供的嵌入式设备和wifi模块的交互示意图;

图5是本发明一实施例提供的嵌入式设备的wifi功能调用的示意图;

图6是本发明一实施例提供的嵌入式设备和wifi模块的交互建立装置的结构示意图。

附图标记说明

1接收模块2处理模块。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

图1是本发明一实施例提供的嵌入式设备和wifi模块的交互建立方法的流程图。如图1所示,该嵌入式设备具有嵌入式系统,该方法包括:接收主机针对所述嵌入式系统生成的可执行代码(步骤s11);以及执行所述可执行代码以获取与所述wifi模块进行交互所需的配置以便于进行交互(步骤s12)。

本发明使用的操作系统优选为linux操作系统,嵌入式系统为arm嵌入式系统。它的系统架构由5部分组成,分别是:userapplications、clibrary、systemcallinterface、kernel、architecture-dependentkernelcode,本发明是通过增加内核wifi驱动和应用层相关的服务类工具所实现的。

优选地,本发明mcu处理器是nuc972芯片,它是以arm926ejs为核心的系统级单芯片。包含了16kbi-cache、16kbd-cache以及mmu内存管理模块。最高支持到300mhz的频率,且提供了丰富的外设接口特点。wifi模块选用的是ap6212a。支持802.11b/g/n三种模式,与主机的接口是sdiov2.0,最高频率是50兆赫兹。

由于需要低端嵌入式设备(含有低端嵌入式平台,例如arm9)与wifi模块进行交互,本发明提出了一种在嵌入式设备上添加wifi模块驱动和相关的工具集以及动态库的方法来解决问题。

移植wifi模块驱动的方法牵扯到内核、驱动层和应用层等多方面的因素,重点在于底层硬件驱动的完整支持和上层sta和ap双模式所需要的各种服务类工具和相应的动态库的交叉编译移植等方法:向上提供满足操作系统关于网络通信应用框架层的接口,向下对wifi模块的各种读写控制功能进行封装。并且本发明还添加网络通信sta和ap双模式的标准协议,来支持低成本和非显示屏的采集和监控设备。

对于上述移植,可以利用在linux操作系统的主机上对源代码进行交叉编译生成linux操作系统的嵌入式设备的开发平台可执行的代码,如果嵌入式设备是其他操作系统,则可同样利用对应系统的主机进行可执行代码的生成。

交叉编译可以理解为,在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序。交叉编译的困难主要体现在不同的体系架构拥有不同的机器特性的问题(是64位还是32位系统、是大端还是小端系统、是否必修按照4字节对齐方式进行访问、默认数据类型是有符号还是无符号以及是否支持内存管理单元mmu)和交叉编译时的主机环境与目标环境不同的问题(配置问题、主从机器编译器不一致、编译链是否交叉、动态库和静态库是否交叉以及能否在本地进程测试)。

在交叉编译之后,嵌入式设备需要接收针对自身嵌入式系统的可执行代码,以便执行该可执行代码来获取与wifi模块进行交互所需的配置。该配置包括:基于tcp/ip协议的测试工具、所述wifi模块的设备驱动、匹配所述驱动的工具集以及与所述工具集相关的动态库。

本发明中,可执行代码是所述主机使用对应所述嵌入式系统的工具链交叉编译驱动源代码、工具集源代码和动态库源代码生成的,其中可执行代码包括:驱动可执行代码、工具集可执行代码、动态库可执行代码以及配置文件可执行代码,其中配置文件可执行代码不需由源代码交叉编译得到,可直接使用以获取配置文件。嵌入式设备执行驱动可执行代码和配置文件可执行代码获取wifi模块的驱动,执行工具集可执行代码获取匹配所述驱动的工具集,执行动态库可执行代码获取与所述工具集相关的动态库(该动态库为工具集运行所必须)。工具链包括二进制程序处理工具(binutils)、编译器(gcc)以及函数库软件包(glibc)。

嵌入式设备可以通过烧写、网络传输(例如nfs)以及串口传输,或者其它传输方式接收可执行代码。

图2是本发明一实施例提供的生成动态库的方法的流程图。如图2所示,该方法包括:设置编译器编译环境(步骤s21);设置合并库环境(步骤s22);库文件建立索引(步骤s23);以及生成动态库(步骤s24)。

目前wifi模块支持sta无线终端(station)和ap无线接入(accesspoint)两种模式。支持运行sta模式的网络工具是wpa_supplicant、wpa_cli和udhcpc(获取ip地址),其相应的配套动态库为libssh、libnl和libnl-genl-3,配置文件为wpa_supplicant.conf(配置用户名和密码等)。上述三种动态库在常规的低端嵌入式设备的板级支持包里面是没有的,需要源代码进行交叉编译生成。以下例举了交叉编译openssl库以生成libssh动态库的过程:

1、设置编译器编译环境cc=arm-linux-uclibcgnueabi-gcc

2、设置合并库环境ar=arm-linux-uclibcgnueabi-ar$(arflags)r

3、库文件建立索引ranlib=arm-linux-uclibcgnueabi-ranlib

4、生成动态库libssh.so

其它动态库的生成方法类似。

支持运行ap模式的网络工具是hostapd和udhcpd,其相应的配套动态库与sta模式保持一致。配置文件则是hostapd.conf和udhcpd.conf(动态分配ip地址),编译的方法和使用与sta类似。

图3是本发明一实施例提供的加载所述wifi模块的设备驱动的示意图。如图3所示,在执行所述可执行代码之后,该方法还包括:依次加载所述wifi模块的设备驱动包含的以下对象以启动所述wifi模块:模块主驱动、设备固件以及配置文件。

其中,执行命令insmod/lib/modules/bcmdhd.ko,加载模块主驱动bcmdhd.ko;执行命令firmware_path=/etc/firmware/fw_bcmdhd.bin,加载设备固件fw_bcmdhd.bin;执行命令nvram_path=/etc/firmware/nvram.txt,加载配置文件。

图4是本发明一实施例提供的嵌入式设备和wifi模块的交互示意图。如图4所示,在移植上述基于tcp/ip协议的测试工具、所述wifi模块的设备驱动、匹配所述驱动的工具集以及与所述工具集相关的动态库之后,wifi模块与嵌入式设备处理器通过sdio总线接口进行数据和指令交互,然后wifi模块与上层应用通过标准系统调用接口来进行网络数据的通信传输。sdio总线传输数据信号(sdio_data)、时钟信号(sdio_clk)以及命令信号(sdio_cmd)等。

图5是本发明一实施例提供的嵌入式设备的wifi功能调用的示意图。如图5所示,将嵌入式设备分为用户空间和内核空间,基于tcp/ip协议的测试工具和匹配wifi模块的设备驱动的工具集位于用户空间,tcp/ip协议栈、wifi模块的设备驱动以及sduo标准驱动位于内核空间。wifi模块的设备驱动通过驱动可执行代码移植,基于tcp/ip协议的测试工具和匹配wifi模块的设备驱动的工具集通过工具集可执行代码移植。嵌入式设备自带tcp/ip协议栈,在获取上述配置之后,可以匹配wifi模块的设备驱动的工具集控制wifi模块的设备驱动,并通过基于tcp/ip协议的测试工具进行测试,基于tcp/ip协议栈发送数据,如此可以完成与wifi模块的交互。

图6是本发明一实施例提供的嵌入式设备和wifi模块的交互建立装置的结构示意图。如图6所示,该嵌入式设备具有嵌入式系统,该装置包括:接收模块和处理模块,其中,所述接收模块用于接收主机针对所述嵌入式系统生成的可执行代码;以及所述处理模块用于执行所述可执行代码以获取与所述wifi模块进行交互所需的配置以便于进行交互。

优选地,所述配置包括:基于tcp/ip协议的测试工具、所述wifi模块的设备驱动、匹配所述驱动的工具集以及与所述工具集相关的动态库。

优选地,在执行所述可执行代码之后,所述处理模块还用于依次加载所述wifi模块的设备驱动包含的以下对象以启动所述wifi模块:模块主驱动、设备固件以及配置文件。

通过上述技术方案,采用本发明提供的嵌入式设备和wifi模块的交互建立方法和装置,可以使嵌入式设备与wifi模块进行交互。

以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1