0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用环境中自动安装无线网卡的问题及解决方案

电子设计 来源:电子威廉希尔官方网站 应用 作者:刘丹,李式巨 2021-06-22 14:43 次阅读

讨论了Windows CE环境下无线网卡的安装,并提出了一种在系统断电重启时自动安装无线网卡的解决方案。对Windows CE的系统定制、应用程序的开发及系统封装进行了介绍。

Windows CE是为多种嵌入式系统产品而设计的紧凑、高效、可升级的操作系统,并特别为有限的硬件资源设计了多线程、多任务和完全优先的操作系统环境。在无线通信领域有很大的应用前景。

本文重点讨论了Windows CE环境下无线网卡的安装,并提出了一种在系统断电重启时自动安装无线网卡的解决方案;还对Windows CE的系统定制、应用程序的开发及系统封装进行了介绍。由于Windows CE与Windows的同源和相似,决定了学习Windows CE的简易性,这样就缩短了应用者的开发周期。

1 Windows CE简介

Windows CE包括四大基本模块,它们提供了操作系统的关键特性,分别是:内核(Kernel)模块、对象存储(Object Store)模块、GWES(用户、应用程序和操作系统之间的图形用户界面)模块和通信(Communication)模块。图1为Windows CE的模块化结构图。

操作系统定制工具有Windows CE Platform Builder(简称PB),应用程序开发工具有嵌入式开发工具包Embedded Visual Tools,包括Embedded Visual C++(简称EVC)和Embedded Visual Basic(简称EVB)。

2 特定硬件平台Windows CE操作系统的开发

应用环境中自动安装无线网卡的问题及解决方案

有了具体的嵌入式硬件平中后,就可以为其开发满足特定功能需要的Windows CE系统。总之,可以分成三个步骤:操作系统的定制、特定功能应用程序模块的开发、功能模块封装入操作系统。

2.1 操作系统的初步定制

图2为在PB中定制Windows CE操作系统的一般流程。

首先,选择操作系统的基本配置,并且为特定的平台选择相应的微处理器和平台支持包BPS(Board Support Packet)。PB提供的BSP有CEPC(基于PC机的WinCE硬件开发平台)。开发者可以选择其一或自己定制特定平台的BPS。其次,制定平台,在此阶段可开发设备驱动,适当地裁剪、添加组件,如有必要还需对某些配置文件进行修改。然后,封装所需要的各功能模块,编译生成OS镜像文件。若设备为自己定制的目标设备,则需开发OAL(OEM Adaptation Layer)、BPS和BootLoader。接着,把镜像文件下载到目标设备,进行调试;需要的话,进行重复配置、封装、下载及调试,需要的话,进行重复配置、封装、下载及调试,直到满足要求,完成平台的创建。

最后导出相应的SDK(Software Development Kit)软件开发工具包,运行后加域到EVC中,使得可以进行特定硬件平台上的应用程序开发。SDK包含程序库、头文件、示例程序源代码和库函数使用文档,同时还包括编程指导和API参与以及设备驱动工具包(DDK)。

2.2 特定功能应用程序模块的开发

开发特定功能的应用程序模块就是在EVC中编写应用程序,满足系统功能扩充的需要。重点要做以下工作:

(1)为特定平台选择相应的微处理器,如WCE THUMB或WCE x86em等。

(2)编写应用程序。方法上EVC与PC机上运行的VC差别不大。两者的区别主要有:前者的API是后者API的子集,对不兼容的函数要做一些修改或者寻求可替代的函数;前者为Unicode环境,所有字符都是两个字节,而后者为ANSI美国标准,每个字符一个字节,因此必要时两者间要作数据类型转换;另外在用户界面编程和内存管理等方面也有些差异。

(3)对程序进行编译和调试。编译时一定要选择特定的硬件平台。调试时可用微软件包提供的工具Microsoft Activesync建立PC机上与目标机的连接,把系统镜像从PC机下载到目标机上进行调试;另外EVC中带有interwetten与威廉的赔率体系 器,可以在PC机上模拟目标平台上的大部分功能。

2.3 功能模块封装入系统

OEM开发者通常把必要的应用程序和操作系统封装在一起发布给使用者,因此要把应用程序打包封装入初步制定的操作系统中。需要做的工作主要有两个:

(1)把编译好的可执行文件拷贝到Windows CE系统相应的文件夹中。

(2)在PB中修改相应的系统配置文件。PB所提供的配置文件包括四种文件类型:.bib,说明需要打包进镜像文件的Windows CE文件;.dat,文件系统、目录和文件分配表描述;.db,Windows CE对象存储数据库的描述;.reg,系统注册表。在开发过程中最常用到的配置文件有:Platform.bib、Platform.reg、Platform.dat、Config.bib。Platform.bib定义打包到OS镜像文件时所需要的文件(files)和模块(modules);Platform.reg定义目标平台冷启动时所加载的注册表键值;Platform.dat定义目标平台冷启动时所加载的系统文件、目录和链接等;Config.bib定义可用的物理地址,并进行一些属性设置。

做好以上两步以后,对操作系统重新编译、下载、调试,最终得到功能完整的系统镜像。

3 开发实例——Windows CE环境下无线网卡的自动安装

3.1 项目介绍

项目要求实现一个独立的嵌入式无线通信模块,通过现有的IEEE80211b无线网卡接入无线局域网进行通信。系统采用Samsung公司的S3C2410芯片开发嵌入式系统硬件平台,需要在Windows CE环境驱劝PCMCIA无线网卡。

3.2 无线网卡安装的问题和解决方案

Windows CE操作系统支持两种类型的设备驱动程序:内置式设备驱动程序和可安装设备驱动程序。当目标朵与PC机相链,且目标机有显示屏和链盘时,对于可安装的设备驱动程序,其安装步骤为:建立目标机与PC机的连接,将设备驱动程序的.dll文件复制到Windows CE的Windows目录下;当系统检测到设备时,显示屏中会出现相应的对话框,用键盘输入驱动的名称即可。

项目中要为现有的无线网卡安装驱动程序。因为Windows CE系统运行时是基于RAM存储的,ROM相当于只读硬盘,一旦系统断电或冷启动后,RAM中的信息就会丢失,尤其是一些注册表的信息,所以要对RAM持续供电。但由于本系统硬件电源不能保证持续供电,安装了无线网卡的驱动程序后,信息存储在RAM中,系统断电或冷启动后,相关的信息会丢失。而且,目标机在实际使用中无显示屏和键盘。因此,断电重启时需要自动重新安装无线网卡驱动程序。

解决方案为:从系统持久存储SM卡中读取网卡驱动程序xi825.dll和TCP/IP属性配置文件config.txt,并按配置文件设备注册表键值,然后为无线网卡安装驱动程序。若需要根据具体应用环境更新TCP/IP属性值,可用新的配置文件覆盖SM卡中的旧文件,冷启动后,重新设备属性值,在安装网卡驱动即可。

用EVC编写应用程序完成自动安装无线网卡驱动的功能,图3为应用程序的大体流程。

首先,把两个文件从SM卡的storage card文件夹拷贝到Windows CE系统的Windows目录下;拷贝成功后,按config.txt的内容对注册表进行操作,设置具体环境下的TCP/IP属性值;系统检测到无线网卡后,在弹出名为“Unidentified PCCard Adapter”的对话框中程序自动输入网卡驱动程序名,完成无线网卡的自动安装。

3.3 几个具体问题的解决

下面,再讨论一下本方案中几个具体问题的解决办法。包括对注册表的操作、自动安装功能的实现、程序流程的总体控制以及将程序打包封装入操作系统的作法。

3.3.1 对注册表的操作

Windows CE中有一系列API函数可以对注册表进行操作,完成打开关闭注册表、读取或修改键值等功能。另外,Windows CE注册表中值的类型为Unicode;而配置文件config.txt是在PC机上产生的,类别为ANSI。要按cogfing.txt中读取的值设定注册表值,就要进行数据类型的转换,可以用函数MultiByteToWideChar()实现。关键代码如下:

RegOpenKeyEx(HKEY_LOCAL_MACHINE, //根键TEXT(“Comm\xi8251\Parms\TcpIP”),

//打开根键下的子键

0, //预留值,必设为0

0, //不支持此项,必设为0

%26;amp;hKey //最终打开键的句柄指针

);

RegSetValueEx( hKey, //对键操作的句柄

TEXT(“IpAddress”),//键中的数据项名

0, //预留值,必设为0

REG_GZ, //数据项中值的类型

(CONST BYE*)((LPCTSTR)regData),//存有数据项值的缓冲区

dwDataSize //值的字节数

); //对“IpAddress”数据项的值作修改,即改变IP值

3.3.2 自动安装功能的实现

用FindWindows()函数判断对话窗口的出现;用keybd_event()函数模拟键盘输入。关键代码如下:

TCHAR g_szTitle[80]=TEXT(“Unidentified PCCard Adapter”); //指定对话框的标题

HWND hWnd=。.FindWindows(NULL,g_szTitle); //判断此标题名的窗口是否已出现,不论是否为前台窗口

if (hWnd! =NULL) //若窗口已出现

{。.SetForegroundWindows(hWnd); //将此窗口设置前台窗口

keybd_event(0x58,0,0,0); //按下x键

keybd_event(0x58,0,KEYEVENTE_KEYUP,0); //抬起x键

//完成了按下和抬起x键的两个动作,就模拟了键盘输入字符x.

。..。..。..。..//用同样的方法输入 “i825.dll”

keybd_event(0x0d,0,0,0);

keybd_event(0x0d,0,KEYEVENTF_KEYUP,0); //最后输入确认键

}

正确输入后,可以看到无线网卡的显示灯开始闪烁,说明网卡已经安装成功,等待进行无线通信。

3.3.3 程序流程的总体控制

为了保证程序流程的顺序,整个程序中还需要有一个总体监视控制的管理员。这种监控功能,可以通过发送接收特定消息给主控函数的方法,也可以采用等待特定事件对象的方法,还可以采用开定时器查询的方法等。鉴于方法简单,而且对系统资源占用并不大,这里选用了开定时器查询的方法,并设置了标志位flag区分不同阶段工作,进行相应的操作。下面列出部门关键代码:

flag=0; //最初标志位设为0,即先拷贝所需要文件

m_nTimer=SetTimer(1,2000,NULL); //开启定时器

KillTimer(m_nTimer); //时间到,先关闭定时器,进行相应判断和操作。

3.3.4 应用程序封装入系统

上文已经讲了将应用程序封装入操作系统的一般方法,分为应用程序的拷贝和修改系统配置文件两步。此项目最后要把开的应用程序monitor.exe打包封装入操作系统。这里重点介绍一下系统中几个配置文件的具体修改情况。

(1) 在Platform.bib文件中的Files部门加入以下代码

其中,monitor.lnk为monitor.exe的链接程序(快捷方式),制作方法很简单,可以通过一个ASCII码编辑器编写,格式为:#20.exe。

此配置文件中的代码表示,将monitor.exe和monitor.lnk加载到名为NK的内存区中(NK的定义在config.bib文件中的memory部分完成),文件的属性为U(非压缩文件),这样就完成了把自己所开发的应用程序及其链接程序封装进操作系统中的“声明”。

(2) 在Platform.dat文件中加入以下代码:

Directory (“):-File(”monitor.lnk“,“.lnk”)

由于Platform.bib做过声明,这两个文件在操作系统启动后会映射到目录下,这是默认的目录。所以此外的代码表示在Windows CE启动时会自动运行monitor.exe。

做完了以上工作,再对操作系统进行编译,把应用程序封装到了Windows CE操作系统中,而且系统启动后会运行此应用程序,完成自动安装无线网卡的功能。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 无线
    +关注

    关注

    31

    文章

    5451

    浏览量

    173250
  • 操作系统
    +关注

    关注

    37

    文章

    6808

    浏览量

    123291
  • 应用程序
    +关注

    关注

    37

    文章

    3267

    浏览量

    57683
收藏 人收藏

    评论

    相关推荐

    求USB网卡方案和USB无线网卡方案

    求购USB网卡方案和USB无线网卡方案?vcd8029@126.com
    发表于 05-03 09:43

    细说无线上网卡无线网卡的区别

        随着笔记本的普及,移动上网成了最为迫切的伴侣,不过很多读者疑惑的是,目前市面上有一种无线网卡,还有一种无线上网卡,虽然只是相差一个字,但它们的功能却大大的不同,两者的价格
    发表于 06-23 13:37

    在Windows CE环境无线网卡如何自动安装

    有谁来解释一下在Windows CE环境无线网卡如何去自动安装
    发表于 06-04 06:15

    ralink无线网卡驱动

    很小的ralink无线网卡驱动,ralink无线网卡驱动免费下载。
    发表于 03-16 00:28 43次下载

    Windows CE环境无线网卡自动安装

    摘要:讨论了Windows CE环境无线网卡安装,并提出了一种在系统断电重启时自动安装无线网卡
    发表于 03-11 12:39 1240次阅读
    Windows CE<b class='flag-5'>环境</b>下<b class='flag-5'>无线网卡</b>的<b class='flag-5'>自动</b><b class='flag-5'>安装</b>

    无线网卡有什么作用

    无线网卡有什么用 目前国内所销售的笔记本电脑,其标配的无线网卡,都是指wlan无线网卡,即wifi无线网卡,主要用于组建无线局域
    发表于 07-02 17:25 5583次阅读

    Windows CE环境无线网卡自动安装

    本文讨论了Windows CE环境无线网卡安装,并提出了一种在 系统断电重启时自动安装无线网卡
    发表于 04-18 10:02 0次下载

    无线网卡怎么用

    第一步:把无线网卡插入USB接口后指示灯会亮起,计算机会自动识别该无线网卡,如果无线网卡没有问题,会在右下角显示“新硬件已安装并可以使用”
    的头像 发表于 12-10 15:01 9.1w次阅读

    无线网卡有几种

    无线网卡采用的接口划分,有PCI无线网卡(包括ISA接口)、USB无线网卡和PCMCIA无线网卡(包括CF接口)。
    的头像 发表于 01-04 16:16 2w次阅读

    浅析无线网卡的原理与应用

    在本文中,您将学习无线网卡如何与热点通信以连接到Internet。您还将了解可用的各种无线网卡以及购买无线网卡时应查找的内容,以便您也可以一边喝着拿铁咖啡一边检查电子邮件。
    的头像 发表于 09-30 11:30 7069次阅读

    无线网卡怎么安装_无线网卡怎么连接台式电脑

    无线网卡怎么用?这一直是一个很多人都喜欢问的问题,尽管现在无线网卡设计上越来越方便灵活,但是不可避免的还是有很多人对其的使用表示困惑,例如笔记本无线网卡驱动是怎么安装打开的却并非所有人
    的头像 发表于 12-22 17:01 2.4w次阅读

    台式电脑无线网卡怎么安装

    台式机装无线网卡的方法:台式电脑的无线网卡是那种类似U盘的东西接到电脑的USB接口上,也有那种插到PCI插槽里的。前者方便,体积较小,但是价格贵点,后者价格便宜,而且用起来比较方便。这种网卡可以通过
    的头像 发表于 12-22 17:29 1.3w次阅读

    选择无线网卡的原则和方法

    选择无线网卡的原则和方法 无线网卡是一种用于连接电脑或其他设备与无线网络的设备,它可以通过Wi-Fi信号接收和发送数据。随着无线网络的广泛应用,选择一款合适的
    的头像 发表于 12-11 11:38 1208次阅读

    什么是无线网卡?它是如何工作的?如何安装无线网卡

    什么是无线网卡?它是如何工作的?如何安装无线网卡无线网卡无线适配器)是一种设备,用于使计算机或其他设备能够连接到
    的头像 发表于 12-15 09:58 1908次阅读

    无线网卡驱动怎么安装 无线网卡怎么连接台式电脑

    如今,随着科技的不断发展,无线网络已经成为了我们生活不可或缺的一部分。对于台式电脑用户而言,如果没有内置无线网卡,就需要通过安装外置无线网卡
    的头像 发表于 01-19 09:54 3289次阅读