本港台381449
基于vCOS II实时操作系统的网卡驱动程序设计全网
更新时间:2019-11-07

  、工业控制、娱乐、通信等应用领域。在一些应用场合,需要嵌入式设备具有与其它系统交换信息的能力,因此必须为嵌入式系统增加通信功能。通信功能的实现可以采用很多方式,例如实时操作系统中还没有WiFi的驱动程序,因此下面将介绍WiFi的驱动程序的编写。

  该标准定义了两种工作模式:ad hoc模式和infrastructure模式。ad hoc即对点模式,包含两个无线站点(STA,即带无线网卡的设备)。而infrastructure即AP模式,无线站点(STA)通过AP与现有的骨干网相连接,组成一个基本服务组(BSS)。在BSS中,AP不仅提供STA之间通信的桥接功能,还提供STA与有线局域网的连接,可以实现有线Hub几乎所有的功能。

  嵌入式终端硬件系统(如图1所示)以Philips公司的LPC2210嵌入式处理器为核心,LPC2210是基于16/32位ARM7TDMI-S,并支持实时仿真和跟踪的CPU。LPC2210的数据和地址总线K字节的RAM。嵌入式终端需要较大存储空间运行实时操作操作系统、TCP/IP协议、图形用户界面(GUI)、串口驱动程序、WiFi驱动程序、英文及汉字字库等,因此在外部扩展了一片容量为256K×16的静态RAM 1S61LV25616及一片容量为1M×16的Flash 39VF160。为了方便调试程序,使用了LPC2210的串口诊断程序的运行结果。

  PCMCIA总线有控制线、数据线、地址线、电源线。其中数据线的数据线。地址线位,但在WiFi网卡中只须用10位地址线。WiFi网卡的PCMCIA 的控制线根,其中RESET为复位,该线为低电平时网卡回到初始状态。CE1,CE2为卡的地址控制,当CE1,CE2为低时,分别表示偶地址和奇地址的字节有效。OE,WE分别为Memory空间的读写控制线,IORD,IOWR为I/O空间的读写控制线,均为低电平有效。REG用于选择地址访问空间,包括I/O空间和存储器空间。IREQ提示处理器处理网卡的内部事件,可以不用。在对网卡进行读写操作时,只有当HWAIT变高表示读或写的数据进入存储器,才能进行下一步总线 软件结构

  嵌入式终端的软件系统(如图2所示)包括实时操作系统、PCMCIA驱动程序、WiFi网卡驱动程序、TCP/IP协议、串口驱动程序、图形界面等。本系统中的实时操作系统vCOS II是一个公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。最多可以支持64个任务,分别对应优先级0~63,其中0为最高优先级。vCOS需要移植才能用于不同的处理器平台,移植需要改写的文件:OS_CPU.H,OS_CPU_A.S,OS_CPU_C.C.对于LPC2210嵌入式处理器,厂家的技术支持一般提供了该型号处理器的这三个移植文件,将这三个文件代替原文件即可使用。

  存。接下来进行读或写操作,读操作中,Memory空间和I/O空间的读操作分别将OE,IORD设为低电平,然后等待HWAIT变为高电平。HWAIT变为高电平后,将数据线上的状态读入。写操作中,全网最精准马会资料首先按照待写数据设置数据线上的状态,然后Memory空间的写操作和I/O空间的写操作分别将WE,IOWE设置为低电平。接下来,HWAIT变为高电平后说明数据已经写入。在读写操作完成以后,依次将OE或者IORD(读操作),WE或者IOWR(写操作),CE2,CE1,REG恢复为高电平。

  ,I/O空间的存储器有BAP(Baffuer Access Path)寄存器,命令/状态寄存器,FID管理寄存器,事件寄存器,控制寄存器,主机软件寄存器,辅助端口寄存器等,这些寄存器的含义及偏移地址见文献[2].LPC2210管理、配置网卡的数据项都是加载一个特定的RID(Resource IDenTIfiers)到BAP寄存器,读取或者写入一个特定的缓冲区。WiFi网卡驱动程序中的函数功能都是通过访问这些存储器完成的,下面将介绍这些API函数的功能。

  wlandrv_ProbeDevice()函数用于检测网卡是否存在,函数首先访问COR寄存器,设置网卡进入I/O模式,设置操作属于Memory空间的读写操作。然后,使用pcmcia_WriteReg()函数写一个值到地址为0x28的寄存器中,再用pcmcia_ReadReg()函数读取这个寄存器的值,与原来的值相比较,如果值相同,则说明网卡是存在的:

  wlandrv_PutPacket()是被TCP/IP协议调用的函数,即IP协议将发送的数据打成IP包以后,将包传递给该函数。函数的工作首先是计算需要发送的字节总长度,然后在IP包前添加添加逻辑链路控制层的帧头,帧头为4个双字,分别表示访问点地址、控制类型以及帧头类型,最后将IEEE802.3的帧头改成WiFi的帧头。最后,将打好的包送入网卡的发送缓冲区。发送缓冲区的地址是通过设置FID管理寄存器后获得的。

  wlandrv_Event()函数主要查询三个事件,即管理消息、接收数据、发送数据。通过查询消息代码,可知网卡是否已经找到AP并关联起来以及何时脱离关联。响应接收数据事件可以接收数据帧,去掉逻辑链路控制层的帧头,然后将IP包传递给IP协议层。对于发送数据事件可以不做响应。这些操作都是先查询FID寄存器后,获取事件数据的缓冲区地址,然后访问该地址的缓冲区获取相应数据 函数如下:

  我正在尝试一个需要MPLAB IDE V884的遗留项目。我很难编程或调试自定义板。(原来的固件和板都不是我开发的)...

  大家好,我不小心把这个放在WiFi板上,所以在正确的位置!我正在构建一个使用MicrochipMiWiinterface的项目,并且...

  你好, 我们使用CY8KIT - 059,因为我们需要串行仿真驱动器的USB。你能给我们一些建议如何获得USB的串行仿...

  我曾尝试使用和声2.0x在自定义板(PIC32MZ1024EFM100)上运行“USB设备MSD+CDC”,但Windows中枚举...

  μC/OS-II是一种代码公开、可裁剪的嵌入式实时多任务操作系统。该内核通过实现抢占式任务调度算法和多任务间通信...

  这个是我根据网上相关例程修改好的有关TM1638驱动程序,程序可以实现数码管驱动,3*3个按键的扫描以及16个LED的显...

  你好,我想驾驶一台基于图16F1459的湿度发生器通过labview。没有用于labview的驱动程序,我使用labview的驱动程序生成...

  嘿,开始我会说我是很新的Microchip,但我已经阅读了很多形式,所以我会尽我所能沟通我的问题,同时明确解释我的项目...

  我以前在PIC32MZ或Harmony中没有使用过I2C。查看PIC32MZ-EF系列错误表,硅问题#6影响所有硅修改,I2C...

  组件Explorer驱动器计划和放置在垫®专业设计流程。这个环境提供了易于使用的层次布局组织使持久的....

  2018 年的时候,英特尔开始为 Windows 10 用户推出“Windows Modern Dr....

  我们有很多不同的七段显示产品。可能有点,双分段和彩色的。七段显示是我们贯穿整个电子历史的非常基础的屏....

  每个嵌入式软件应用程序必须在某个时刻访问最低级别的固件并控制硬件。驱动程序的设计和实现对于确保系统满....

  很 显然,C51中缺省的putchar函数是靠查询并等待TI这个标志位来实现串口发送的,也就是说,在....

  电路设计时,我们将TLC2543有两个基准电压输入REF+、REF-分别与电源(VCC)、GND相连....

  这两个API应该配对使用,disable_irq可以被多次嵌套调用,要想重新打开irq,enable....

  μC/OS-II实时操作系统是一种可移植、可固化、可裁剪即可剥夺型的多任务实时内核,适用于各种微处理....

  GeForce Experience是NVIDIA的驱动程序自动更新工具,当然,如今的它在保留这项核....

  USB口已经成为了计算机最重要的外部接口,几乎可以代替所有外部接口。USB的规范规定USB的通信距离....

  Cree LMH2 LED模块在完全集成的模块中提供无与伦比的功效和光质量。 LMH2采用Cree的....

  不论是对大规模农业还是简单的家庭花园,保持合适的土壤湿度和 pH 值都是确保植物健康的基本要求。但要....

  作为一名嵌入式Linux新手,在学习的过程中会遇到很多问题。写了一个驱动程序怎么编译?怎么加载进内核....

  说到实时操作系统,就不得不考虑重入问题。对于PC机这样的大内存处理器而言,这似乎并不是一个很麻烦的问....

  了解如何从物联网构想阶段轻松推进到概念验证阶段,实现互联、安全且小型的物联网终端节点。快速物联网套件....

  如此窘境让不少内容创作者们不满,Change上已发起请愿活动,希望库克和他的苹果重新回头和NVIDI....

  一般固件程序可以通过MCU厂家提供的范例程序进行修改,这里省略USB固件功能的说明。只要包含以上三个....

  由于很多人总问这个问题,所以这里做一个总结供大家参考。这里必须先说明,以下的步骤都是针对Linux系....

  了解Linux设备驱动程序的基础知识,重点介绍平台驱动程序和字符驱动程序。 提出了简单的平台驱动程....

  了解如何为Linux编写用户空间设备驱动程序。 用户空间驱动程序为某些设备提供内核空间驱动程序的替....

  此会话使用DPDK API中的轮询模式驱动程序来描述各种虚拟设备,并以正确的方式提供构建NFVi所需....

  了解如何使用英特尔®SDKfor OpenCL™ - 代码分析器来优化英特尔GPU上的OpenCL™....

  首先在drivers目录下面创建GPIO文件夹,,文件夹下面创建三个文件,分别是:gpio.c,Kc....

  目前,Radeon显卡可以下载的最新32位驱动程序是10月5日重新发布的Radeon Softwar....

  Basics about the Intel® Xeon Phi™ coprocessor arch....

  WDM(Windows Driver Mode1)是Microsoft公司全新的Windows驱动程....

  Installing the Windows Android ADB driver for use ....

  这些设备包含六个独立的同相驱动程序。它们执行布尔函数Y = A. SN54ALS1034和SN54AS1034A的特点是在-55C至125C的整个军用温度范围内工作。 SN74ALS1034和SN74AS1034A的工作温度范围为0C至70C。 特性 AS1034A提供高电容驱动能力 同相驱动器 封装选项包括塑料小 - 外形(D)封装,陶瓷芯片载体(FK),标准塑料(N)和陶瓷(J)300密耳DIP 参数 与其它产品相比同向缓冲器/驱动器 Technology Family VCC (Min) (V) VCC (Max) (V) Bits (#) Voltage (Nom) (V) F @ Nom Voltage (Max) (Mhz) ICC @ Nom Voltage (Max) (mA) tpd @ Nom Voltage (Max) (ns) IOL...

  本文分析了适用于测控领域的4种实时操作系统,并对比了它们实时性能的重要指标,归纳了实时性设计和实现中....

  对于软件工程专业的学生,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程....

  本文提供了5项加速韧体(firmware)开发的秘诀,尽管它们是显而易见的方式,但在实作时却很少被真....

  在操作系统当中,设备驱动程序是一种非常重要的I/O软件。设备驱动程序是直接同IO设备打交道,直接对它....

  驱动程序一般指的是设备驱动程序,是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口,操作系统只....

  为了方便开发人员为Windows编写驱动程序,微软昨天发布了一个开源框架驱动程序模块框架(DMF)。....

  传统的嵌入式系统设计大多采用单任务顺序机制,应用程序是一个无限的大循环,所有的事件都按顺序执行,与时....

  此视频会给大家一个简单的介绍:Atmel最新的开发环境Studio6.2包含了数据断点,检测实时操作....

  MPLAB® Harmony是一款适合Microchip PIC32单片机的软件开发框架,凭借简单易....

  Enea OSE是一个成熟的高性能实时操作系统,是专门为多核CPU系统而设计的,具有很高的可扩展性,....

  lcd1602_write(0x38,LCD_WRITE_COM); //设置8位数据接口,两行指令....

  在嵌入式系统的开发中,驱动程序的设计和实施是一个关键组成部分,是满足系统实时性需求的关键。本文由资深....

  每一个嵌入式应用软件都会在某些时候访问最底层的固件和进行一些硬件控制。 驱动的设计和实施是确保一个系....

  本文首先介绍了74ls595级联电路及对它的驱动程序进行了分享,另外还介绍了74LS595串入并出应....

  LCD部分用到的RAM0200H~~~~021FH用到的Rn有R15/R14。

  同时这也反映出,依然有大量Windows用户仍然没有打上永恒之蓝漏洞补丁,建议大家尽可能打开Wind....

  本文开始介绍了12864基本参数和电气特性,其次介绍了12864极限参数及引脚功能,最后介绍了128....

  DMA数据传输无需CPU的参与,是一种更加高效的数据传输方式。现有的DMA数据传输方案都是基于DMA....

  PCF8563是PHILIPS公司推出的一款工业级内含I2C总线接口功能的具有极低功耗的多功能时钟/....

  任何开发 ZYNQ SoC 设计有大量的操作系统可供选择,并根据最终应用程序,你可以选择一个实时版本....

  #includeMSP430x11x1.h #defineuintunsignedint #d....

  本文开始介绍了驱动程序的定义与驱动程序的作用,其次介绍了DHT11温湿度传感器特性、引脚说明与封装详....

  嵌入式编程的朋友很少是正儿八经从计算机专业毕业的,都是从自动控制啊,电子相关的专业毕业的。这些童鞋们....

  大部分新的笔记本没有提供串口,在使用一些程序如考勤打卡机、门禁读卡器等设备时,无法将这些设备的串口....

  根据液晶显示器件的写入机理以及显示像素电极的排布方式就可以确定对其进行驱动的基本条件了。液晶显示器件....

  实时性:FreeRTOS “可以”配置成为一个硬(Hard)实时操作系统内核。要注意这里用的是“可以....

  在传统的嵌入式实时操作系统中,内核和应用都运行在同一特权级,应用程序可以无限制的访问整个系统地址空间....

  19264,是液晶模组的分辨率,也就是有192*64个点,是点阵液晶。液晶模组的亮度可能会由于CCF....

  电子秤普遍出现于今天的工业应用上。电子秤制造商通常采用proprietary ASICs 去达到模拟....

  传统的基于PC及低端微控制器日渐暴露出高成本、高消耗、低可靠等问题,已经不能满足现代制造的要求。##....

  对于输入类设备如键盘、鼠标、触摸屏之类的Linux驱动,内核提供input子系统,使得这类设备的处理....


香港最快开奖结果直播| 开奖结果查询| 香港最快开奖现场直播| 香港最快开奖现场直播| 78222.com| 香港惠泽了知| www.2055888.com| www.74313.com| 香港马会开码结果| 金六福论坛| 小神算开奖直播| 开码现场结果| 香港挂牌之全篇完整篇|