您的位置 首页 被动

用RT5370模块完成的低成本嵌入式WiFi体系

引言众所周知,WiFi与其他短距离无线通信相比,具有通信速率高、稳定、安全、支持设备多等优点。尤其是近几年智能手机迅速发展,使WiFi快速普及,这就给传统的嵌入式系统无线通信带来了机遇和挑战。就通信角

导言

众所周知,WiFi与其他短距离无线通讯比较,具有通讯速率高、安稳、安全、支撑设备多等长处。尤其是近几年智能手机迅速开展,使WiFi快速遍及,这就给传统的嵌入式体系无线通讯带来了机会和应战。就通讯视点而言,数以亿计的智能手机其实便是一个个潜在的手持遥控器或数据终端,假如能在嵌入式体系中支撑WiFi网络,将极大地拓宽与外部的通讯方法。可是,因为WiFi对体系资源要求比较高,所以嵌入式体系选用WiFi的开展相对滞后,常见的计划是,在原有的嵌入式体系中外接一个WiFi通讯转接模块,将Wi Fi信号转化为UART、SPI等常见的通讯方法。这种方法完结比较简略,可是缺陷也十分显着,额定增加了本钱,这也是阻止嵌入式体系WiFi开展的一个首要因素。本文介绍了直接将WiFi网卡集成到嵌入式体系的处理计划,体系MCU直接驱动USB接口的WiFi网卡,然后省去了WiFi转UART等桥接模块,显着降低了体系本钱,并且一起理论上处理了选用桥接模块潜在的通讯速率瓶颈问题。

1 体系计划

本文规划的嵌入式WiFi计划是智能手机以WiFi方法遥控智能小车的体系,体系架构如图1所示。手机端便是一个运转在手机上的Android使用程序,小车端的中心操控板选用STM32F105RB芯片,WiFi网卡选用依据RT5370的嵌入式模块。RT5370是一款USB接口的WiFi芯片,依据其完结的USB无线网卡十分常见,价格优势显着。STM32F105RB是ST公司STM32系列芯片的一款,72 MHz主频,具有128 KB Flash、48 KB RAM和丰厚的I/O资源,一起价格比较低,在中小嵌入式体系中广泛选用,一起其支撑USB OTG,能够驱动RT5370

用RT5370模块完结的低本钱嵌入式WiFi体系

该体系的中心便是在依据STM32F105RB的小车操控板上完结对RT5370 WiFi模块的支撑,使该操控板作业在AP形式,手机经过WiFi从操控板取得IP,然后运转相应的Android使用程序操控小车。

2 硬件规划

小车操控板包含WiFi接口和功率输出驱动两大部分。因为本文的重点是嵌入式WiFi完结,所以只给出该部分的硬件完结,如图2所示。图中STM32F105RB的USB作业在主机形式,与WiFi模块经过6引脚2.0 mm的单排针衔接。因为STM32F105RB USB模块内部有下拉电阻,所以电路衔接十分简略。

用RT5370模块完结的低本钱嵌入式WiFi体系

3 软件流程及移植

体系软件架构如图3所示。整个体系由USB驱动、WiFi协议栈、网络协议栈、使用程序4个首要部分组成。

用RT5370模块完结的低本钱嵌入式WiFi体系

USB部分完结WiFi网卡和体系MCU之间的通讯,WiFi网卡收发的数据经过USB与MCU进行交互,STM32F105RB作为USB主机,WiFi网卡作为USB客户端。

WiFi协议栈担任802.11协议的解析和封装,向下和USB驱动交互,向上和TCP/IP协议栈交互:发送端,从TCP/IP协议栈接纳数据,封装成WiFi封包,经过调用USB驱动完结物理发送;接纳端,从USB驱动接纳数据,解析802.11协议,传送给TCP/IP协议栈,完结向使用层的传递。

TCP/IP协议栈完结IP、ICMP、UDP、TCP等协议,包含完结协议封装、解析以及根本的路由。当时有许多优异的开源TCP/IP协议栈,本项目中选用LWIP,因为该协议比较老练,合适资源有限的嵌入式体系。LWIP支撑DHCP客户端,可是在该体系中作为AP来用,需求DHCP服务器,这儿自己规划了一个简略的DHCP服务器。

使用程序部分,调用网络编程接口和手机进行通讯,将收到的数据转化为驱动小车输出的PWM信号,来驱动小车。

3.1 USB驱动

ST公司的固件库供给了关于USB的支撑。本体系就依据该USB库架构,完结了USB WiFi模块需求的特定功用。

STM32的USB库架构如图4所示,其给用户供给的接口十分明晰,包含USB主机的初始化,以及对应状况机的完结。

用RT5370模块完结的低本钱嵌入式WiFi体系

3.1.1 USB主机初始化

USB主机的初始化经过USBH_Init函数完结,这个函数有5个结构类型的参数,在调用这个函数前,需求先设置好这5个参数的内容。该函数原形如下:

用RT5370模块完结的低本钱嵌入式WiFi体系
用RT5370模块完结的低本钱嵌入式WiFi体系

参数pdev,phost别离代表STM32 USB的中心操控结构和USB主机的操控结构,在STM32的USB库中现已界说,对应USB_OTG_CORE和USB_HOST。USB_OTG_FS_CORE_ID标明作业在USB的全速方法。参数Class_cb和usr_cb为用户界说的USB类操控结构和用户界说的初始化结构。这两个结构是要完结的内容,其间,用户界说的USB类操控结构,包含初始化、开释、请求和状况机4个处理函数,别离在代表用户规划的USB类的初始化、开释、初始化请求和正常作业状况中会用到。

用户依据要求别离完结对应的功用,对应本项意图WiFi模块,详细的移植完结如下:

用RT5370模块完结的低本钱嵌入式WiFi体系

其间,USBH_CDC_InterfaceInit完结WiFi模块的初始化,对应Linux版别驱动中的芯片寄存器装备、通讯缓冲区装备、加载固件的挂钩函数等处理,以及在MainVirtualIF_open中完结翻开WiFi等操作。USBH_CDC_Handle则完结USB的状况机功用。

用户界说的初始化函数是给用户供给一个完结自己特定初始化操作的接口,这儿没有用到。

这些参数都设置好后,直接调用USBH_Init即可完结对USB硬件和架构的初始化。

3.1.2 USB状况机

USB初始化完结后,其间心处理都是由USB状况机USBH_Process来完结从枚举、功用处理到反常康复等的办理,其间会经过函数挂钩的方法调用在初始化进程中设置的对应函数。

详细状况转化进程如图5所示。首要主机检测是否有USB模块刺进,假如有,则转入枚举进程。关于本体系来说,WiFi模块直接安装在操控板上,上电后就会检测到有刺进并转入枚举进程;枚举完毕后,STM32F105RB的USB库会给用户供给一个用户输入和特定类初始化的操作,关于该WiFi模块,归属于通讯类,在类初始化操作中会作WiFi模块相应地初始化,包含读取模块的装备信息、MAC地址等;在这些初始化进程完结后,会进入模块状况机处理进程,关于该WiFi模块来说,便是循环处理接纳数据的进程。在这个进程中假如产生反常,则进入反常处理后从头从闲暇状况开端状况切换。规范的STM32F105RBUSB模块还有USB模块拔除的状况转化,因为该项目中WiFi模块直接装在母板上,所以不会进入这个状况。

用RT5370模块完结的低本钱嵌入式WiFi体系

特别地,USB WiFi状况机处理函数首要完结WiFi数据的传输,详细的传输经过USB的批处理传输方法进行。关于数据接纳,体系会一向轮询WiFi模块,判别是否有数据可用。假如有,则将数据读入接纳缓冲区中,并设置相应的标志告诉上层软件。关于数据发送,上层直接建议数据传输,调用USB发送函数,进行发送。

3.2 802.1 1协议驱动

WiFi协议栈的完结依据Mediatek官方供给的Linux源码驱动,相应移植到该项意图STM32F105RB体系中。图6剖析了RT5370 Linux的驱动流程和需求完结的对应移植作业。

用RT5370模块完结的低本钱嵌入式WiFi体系

从左面的驱动流程能够看出,首要是设置Linux驱动架构下面的probe、open等函数,在本体系中这块并不需求,直接从硬件初始化开端,因为驱动自身便是可移植性比较好的C言语代码,所以这块代码根本能够直接移植过来;然后是驱动所需的通讯缓冲区的资源初始化,这部分和操作体系相关,依据本体系的状况,直接预留相应的内存作为通讯缓冲区;WiFi对应的装备信息在Linux下是一个装备文件,在存在根文件的体系中,关于没有文件体系的状况,直接将对应的装备值以默认值的方法保存,可是这也导致了一个问题,相应的WiFi装备(如SSID等)不能够更改,需求在后续完结中完善;这些设置作业都准备好后,发动对应的定时器和2个使命别离处理WiFi的播送Beacon衔接信息和实践用户数据,并用相应的定时器和模块完结。

3.3 TCP/IP协议栈LWIP

完结了WiFi驱动从Linux到STM32F105RB体系的移植后,相当于完结了OSI模型中网络层的移植,后续便是相应协议栈的移植。本项目中协议栈选用LWIP,版别是v1.3.2。需求指出的是,因为该项意图USB WiFi作业于AP形式,需求完结DHCP服务器的功用。而在LWIP中只要DHCP客户端功用,服务器需求自己完结,在本项目中依据需求完结了一个简略的DHCP服务器。

3.4 使用程序

在完结了WiFi驱动、协议栈以及DHCP服务器后,依据STM32的WiFi现已能够作业,别离用手机和计算机与操控板衔接,成功取得IP,在计算机端运转ping指令,能够成功ping通。在此基础上,编写依据LWIP的套接子程序,以及相应的小车驱动程序,完结经过手机能够流通地操控小车。

结语

实验标明,该体系完结的WiFi除具有本钱方面的优势外,还具有体系发动快、通讯呼应快的特色,一般体系2 s即能够发动,手机3 s即能够取得IP,比常用路由器的呼应快了许多;%&&&&&%MP呼应一般小于2 ms,呼应速度的优势也十分显着。用手机经过WiFi操控智能小车,能够做到流通操控。理论和实践证明,在依据Cortex—M3的低本钱嵌入式体系中完结WiFi是彻底可行的。

当然,因为时刻约束,该项目WiFi体系的加密功用,以及一般的WiFi体系需求的依据web界面方法的装备功用没有完结。考虑到当时STM32F105RB的资源使用状况,咱们使用了80 KB空间,体系还留有48 KB空间,后续完好完结加密和Web界面装备在理论上是可行的,有待进一步验证。

  • STM32单片机中文官网
  • STM32单片机官方开发工具
  • STM32单片机参阅规划

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/296309.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部