毕业设计(论文)基于PIC单片机的WIFI控制系统.doc
《毕业设计(论文)基于PIC单片机的WIFI控制系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于PIC单片机的WIFI控制系统.doc(47页珍藏版)》请在三一办公上搜索。
1、1 引言随着移动技术的不断发展,整个世界在走向移动化。现阶段,通信技术正面临一场深刻的变革,传统的有线网络已不能满足日益增长的通信需要。无线通信技术越来越受到关注,人们需要一种不受约束的通信技术,能够随时随地的获取信息。随着互联网越来越深入的走进人们的生活,用户对能够随时随地上网的需求越来越迫切,WIFI 无线通信技术也得到了迅速发展。WiFi(Wireless Fidelity)是无线局域网(WLAN)技术IEEE 802.11系列标准的商用名称。IEEE 802.11系列标准主要包括IEEE 802.11a/b/g/n 5种。WIFI是由AP ( Access Point)和无线网卡组成的
2、无线网络。AP一般称为网络桥接器或接入点, 它是当作传统的有线局域网络与无线局域网络之间的桥梁, 因此任何一台装有无线网卡的PC均可透过AP去分享有线局域网络甚至广域网络的资源。WIFI主要技术优点是无线接入、高速传输以及传输距离远 其中, 802.11n可以将WLAN的传输速率由目前802.11a及802.11g提供的54Mbps,提高到300Mbps甚至高达600Mbps。在开放性区域通讯距离可达305m, 在封闭性区域通讯距离76 122m,方便与现有的有线以太网整合,组网的成本更低。WIFI 设备使用的频段为2.4 2.483 5GHz的免许可频段, 在频率资源上不存在限制, 因此使用
3、成本低廉也成为了WIFI技术的又一大优势。现阶段的WIFI控制方案一般基于PC机或是高性能的ARM嵌入系统,并且目前价格便宜的WIFI无线网卡一般都定位于PC机,接口一般为PCI接口或是USB接口。诚然,以上两种方案的优势明显,主要体现在传输速度高,软件编制容易等方面,缺点是单个节点造价较高。在一些工业控制系统中,有时仅需要WIFI网络节点传送少量的数据,此时对传输性能要求并不高,当我们需要大量的这种节点时,选用PC机或是ARM的控制方案显然成本会很高。在这种情况下,需寻找一种可替代的方案,要求是对性能要求不高,但是单个节点的成本要低。随着单片机技术的发展,现阶段一些单片机的资源已经足够驾驭8
4、02.11协议和TCP/IP协议,并且我们也可以对802.11和TCP/IP协议进行适当的精简,只保留基本数据传输部分,以此实现低成本低性能的WIFI控制系统。2 总体设计方案2.1 系统概述WIFI控制系统主要由两部分构成,主控部分和无线通信部分。主控部分主要完成如下的控制功能:a) 数据采集和处理。此部分是整个系统的核心功能,数据采集和处理的方式决定了系统的总体功能。b) 通信协议控制。此部分控制无线通信的具体过程,具体来说就是建立无线连接,传送采集和处理后的数据。无线通信部分主要完成如下功能:a) 无线数据帧的封装,数据的加密解密等基带处理。b) 无线数据从媒介控制层到物理层的映射,完成
5、实际的数据收发。图2.1 WIFI控制系统整体框图2.2 控制核心的选择:由于802.11通信的速度较高,而且较高的通信速率又是802.11无线网络主要特点,故需选择一款数据处理能力强的MCU,同时802.11无线通信协议是一种比较复杂的通信协议,如果还需实现TCP/IP的通信则系统的开销会更大,所以选择的MCU应该具有比较大的片上RAM和程序存储空间。基于以上的考虑,课题最终选择了PIC32MX440这款单片机作为核心控制MCU。PIC32MX 单片机(MCU)是一款基于 MIPS Technologies 的 M4K 内核的复杂片上系统,M4K是最新型的 32 位低功耗RISC 处理器内核
6、,采用了增强型 MIPS32 Release 2 指令集构。本节概述PIC32MX系列单片机的CPU 特性和系统架构。主要特性:a) 最高可达到1.5 DMIPS/MHz 的性能 b) 可编程预取高速缓存存储器,以增强闪存中的执行效率 c) 16 位指令模式(MIPS16e),用于紧凑型代码d) 带有63个优先级的向量中断控制器e) 可编程的用户和内核工作模式f) 可对外设寄存器执行原子级位操作(单周期)g) 乘法/除法单元,最高指令发出速率为每个时钟一条3216乘法指令h) 高速Microchip ICD端口,具有基于硬件的非侵入式数据监视和应用程序数据流功能i) EJTAG调试端口,支持广
7、泛的第三方调试、编程和测试工具j) 指令控制的功耗管理模式k) 5 级流水线指令执行 l) 内部代码保护,以帮助保护知识产权m) PIC32MX440系列单片机具有USB-HOST外设,可以方便的和具有USB接口的WIFI无线网卡连接。片上USB-HOST外设具有如下特性:1.作为主机和设备的USB 全速支持;2. 低速主机支持;3. USB On-The-Go(OTG)支持;4. 集成信号传输电阻;5. 用于VBUS 监视的集成模拟比较器;6. 集成USB 收发器;7. 硬件执行的事务握手;8. 可在系统RAM 中任意位置进行端点缓冲;9. 集成用于访问系统RAM 和闪存的总线主控;10.
8、USB 模块工作时不需要使用PIC32 DMA模块。2.3 无线WIFI模块的选择:无线模块的选择主要基于成本,本课题主要的研究方向即实现一种低成本的WIFI控制方案,所以成本成为了选择WIFI模块的主要依据。同时,WIFI模块还应该易于MCU控制,软件复杂程度也是重要的考虑方面。WIFI网卡一般的接口为PCI接口或USB接口,比如雷凌公司的RT73、RT2070和RT3070等,这些都是和PC机上的接口相对应的。也有一些适合单片机接口的WIFI模块比如具有SDIO接口的Marvell8686和SPI接口的MRF24WB0MB芯片,不过接口虽然贴近单片机但是价格一般偏贵,不符合本次设计的要求,
9、此次设计采用了雷凌公司的RT73无线模块。该模块具有以下特点:a) 采用RT2571作为核心基带处理芯片,RT2571是一款高度集成的MAC/baseband 处理器,它支持IEEE802.11A/B/G标准。b) 采用USB接口作为和主MCU通信的接口,RT2571芯片集成了一个USB设备控制器,它拥有一个控制0端点,和一进一出两个批量传输端点,USB接口支持USB1.1和USB2.0控制协议。c) 支持64/124位的WEP加密和WPA和AES加密认证方式。d) 支持6,9,12,18,24,36,48,54Mbps的通信速率。2.4 WIFI控制系统基本原理和特点2.4.1 硬件部分:W
10、IFI控制系统核心由MCU控制模块和WIFI通信模块构成。两个核心模块之间由USB总线连接,MCU是USB主机端,负责各种传输事务的发起和USB设备的连接枚举操作。RT73无线模组同样支持USB1.1协议,故USB总线采用全速传输的方式,传输速率为12Mbps。2.4.2 软件部分:MCU作为USB主机,它所有发起的事务(不论控制或是BULK传输)都采用唯一的端点0进行传输。RT73使用到3个USB端点:控制端点0,BULK OUT 端点1,BULK IN 端点1。RT73模块需要在上电后进行初始化配置,配置通过USB控制传输来进行。同时,MCU端读取RT73基本配置信息,比如MAC地址等重要
11、的信息。当RT73模块完成配置后,随即转为正常的收发工作模式,此时MCU需要和RT73的两个BULK端点进行通信,如果MCU需要发送IEEE802.11帧,则将发起BULK OUT传输事务。MCU不断间隔一定的时间发起BULK IN 事务传输,轮询是否有数据到达RT73模块。可以想到检测是否有数据到达会耗费较多的CPU时间,所以合理的软件设计就成了关键。MCU对收发的802.11数据帧进行处理,负责无线通信连接的建立和断开和实际的数据传送。在802.11无线协议上层一般还会有TCP/IP协议。MCU通过对802.11层的数据包解析,获取有效的TCP/IP数据包,并将TCP/IP数据包传入TCP
12、/IP层进一步的处理。综合以上分析,方案的硬件设计并不复杂,主要是系统的供电设计以及PIC32单片机最小系统设计;USB接口的设计等。软件部分相对复杂,对于实现一个WIFI控制系统核心而言,需要如下软件模块:1. 高效而稳定的USB-HOST协议栈;2. IEEE802.11协议栈;3. 小巧而稳定的TCP/IP协议栈。以上的三个软件组件联系紧密:首先,处于最底层的是USB协议栈,此部分负责MCU和USB无线网卡之间的802.11帧通信,USB总线是一种主从轮询式总线,所以相对于PCI或其他同步总线来说耗费CPU时间较多,尤其是在接收数据时,不能采用中断的方式通知CPU,而只能采用不断试探轮询
13、的方法来确认有数据到达,所以此USB部分的通信效率就比较重要;第二,在USB上层是802.11无线通信协议栈,802.11帧通过USB总线进行传输,802.11协议栈解析802.11帧数据并作出响应的响应;第三,最上层为TCP/IP协议栈,此部分接收TCP/IP帧进行处理。TCP/IP完整协议栈比较大,所以此部分需要对TCP/IP协议栈的合理裁剪就显得尤为重要。3 系统硬件设计3.1 系统供电电路图3.1 系统电源设计如图3.1为系统的供电电路,系统采用9V的电源适配器电源输入,由于PIC32MX440单片机需要3.3V供电,故需要三端稳压器提供3.3V电压,之所以采用两路3.3V供电电路,主
14、要9V的输入电压较高,所以实际1117输出的电流会比较小,所以一路供电支MCU,另一路可以提供给其它的功率较大的设备。3.2 PIC32最小系统设计图3.2 PIC32MX440最小系统如上图3.2为PIC32最小系统,此电路较为简单,和一般的MCU一样,同样有复位电路和供电电路,单片机选用了外部晶振,晶振频率为8MHZ。4 系统软件设计4.1 USB协议栈移植4.1.1 USB协议介绍USB(Universal Serial Bus)通用串行总线,最早由INTEL和微软倡导发起,时至今日已成为最流行的桌面设备总线,现已发展到USB3.0。USB的基本通信方式为主从模式,其中主机是一个提供US
15、B接口及接口管理能力的硬件、软件及固件的复合体,可以是PC,也可以是OTG设备。USB采用轮询广播的方式传输数据,每一个USB设备都有其自身的地址,所有的数据传输均由USB主机发起,任何时刻整个USB传输系统中只允许一个数据包进行传输。USB事务处理是USB主机和USB设备间进行数据传输的基本单位,基本事务传输由一系列特定格式的信息包组成,一般而言,一次事务传输分为三个阶段:令牌阶段,数据阶段和握手阶段。其中,令牌阶段表示事务处理的开始,并定义了传输类型;数据阶段负责传输相关的数据;握手阶段用于报告事务处理的状态,以表明数据接收是否成功。信息包是USB数据传输的最小单位,USB信息包分为:令牌
16、包,数据包,握手包等信息包,在一次典型的USB通信过程中,主机首先发送令牌包以表明本次USB传输的目的地址,令牌包中一般会包括USB设备地址和端点地址。USB设备会根据收到的令牌包来决定是否和主机进行配合来完成本次事务传输;数据包中包含了本次事务传输中的真正有效数据;握手包,处于事务传输的末尾,一般用来确认传输是否已成功。USB规范了四种基本的传输模式:a) 控制传输:主要用于在设备连接时对设备进行枚举以及其他因设备而已的特定操作b) 中断传输:用于对延迟要求严格、小量数据的可靠传输,如键盘、游戏手柄等。 c) 批量传输:用于对延迟要求宽松,大量数据的可靠传输,如U盘等。 d) 同步传输:用于
17、对可靠性要求不高的实时数据传输,如摄像头、USB 音响等。USB主机除负责基本的数据传输外,还对设备的热插拔进行了支持,每当一个设备插入USB接口后,USB主机检测到外部信号线上电平的变化,由此判断有设备插入,此时USB主机随即对外设进行枚举并分配地址,具体的枚举过程如下:a) 连接了设备的 HUB 在 HOST 查询其状态改变端点 状态改变端点 状态改变端点 状态改变端点时返回对应的 bitmap,告知HOST 某个PORT状态发生了改变。 b) 主机向 HUB 查询该PORT的状态,得知有设备连接,并知道了该设备的基本特性。 c) 主机等待(至少 100mS)设备上电稳定,然后向 HUB
18、发送请求,复位并使能该d) PORT。 e) HUB执行PORT复位操作,复位完成后该PORT就使能了。现在设备进入到defalut状态,可以从Vbus获取不超过 100mA 的电流。主机可以通过 0地址与其通讯。 f) 主机通过0地址向该设备发送get_device_descriptor标准请求,获取设备描述符。 g) 主机再次向 HUB 发送请求,复位该PORT。 h) 主机通过标准请求 set_address给设备分配地址。 i) 主机通过新地址向设备发送get_device_descriptor标准请求,获取设备的描述符。 j) 主机通过新地址向设备发送其他get_configurat
19、ion请求,获取设备的配置描述符。 k) 根据配置信息,主机选择合适配置,通过set_configuration请求对设备进行配置。设备枚举过程相当设备自身的初始化过程经过了枚举的设备此时才能在整个USB总线中进行数据传输。由于课题中MCU是USB主机,以上简单的介绍了USB总线中的基本概念和设备枚举过程,对这些过程的了解能够对后边理解和移植USB-HOST协议栈起到积极作用。4.1.2 PIC32MX440单片机USB外设PIC32的通用串行总线(Universal Serial Bus,USB)模块包含模拟和数字元件, 使用最少量的外部元件即可实现USB2.0 全速和低速嵌入式主机、全速设
20、备或OTG操作。 在主机模式下,此模块旨在用作嵌入式主机,因此并未实现 UHCI或OHCI 控制器。USB 模块由时钟发生器、USB 电压比较器、收发器、串行接口引擎(Serial Interface Engine,SIE)、专用USB-DMA 控制器、上拉和下拉电阻以及寄存器接口组成。USB DMA 控制器在RAM 和 SIE 的数据缓冲区之间传输数据。集成的上拉和下拉电阻省去了对外部信号传输元件的需要。寄存器接口使 CPU 可以配置模块并与模块进行通信。4.1.3 PIC单片机USB-HOST协议栈USB 嵌入式主机栈按实现逻辑分为三层,分别为应用程序层,USB客户机驱动程序层,USB主机
21、层。USB主机层是Microchip公司提供的主机栈,是整个USB软件协议的最低成和核心,负责PIC32-USB外设的直接控制,同时对上层的USB事务直接控制;USB客户机驱动程序层是针对于特定的USB外设的软件层,比如U盘,USB-Serial线,USB网卡等设备,它们具体的USB事务传输时不同的,但它们都可以利用同一USB主机层软件,应用程序层利用下面两层提供的API和一些服务程序进行操作,是用户实现的具体功能。在有些情况下USB客户机驱动程序层和应用程序层可以合并为一层,虽然牺牲了层次和可维护性但是能够提高不少效率,在课题中,以上两层就合并为一层。图4.1 USB-HOST协议栈总体框图
22、a) 应用程序层应用程序层是实现设备期望行为所必需的固件。它是由用户设计和实现的代码,应用程序层可以通过一个或多个USB客户机驱动程序,并在需要时使用系统中任何其他固件,与USB设备进行通信。在WIFI控制系统中,IEEE802.11协议栈作为应用程序层,它可以直接调用USB主机层的API进行数据帧的传输。b) USB客户机驱动程序层每个 USB 外部设备实现一个具体的功能,有些设备可能有多重功能。USB 客户机驱动程序使嵌入式主机的应用固件能够控制与主机相连的 USB 外部设备的单个功能。多功能设备通常将由多客户机驱动程序来控制。客户机驱动程序应该以一种抽象的方式对功能建模,从而让主机应用不
23、需要了解设备的工作细节。在此层中,主要完成RT73模块的初始化,以及802.11协议栈和USB主机之间的接口函数。c) USB主机层主机层是USB 的抽象,提供下列服务:进行设备标识,进行设备枚举,管理客户机驱动程序,提供与USB 外部设备进行通信的简单接口。设备第一次连接到总线时,主机层将从设备读取描述符,以确定设备类型以及支持的功能。然后,主机层将检查TPL 来判断是否支持该设备。如果是支持的设备,主机层将初始化相应的客户机驱动程序USB主机层主要维护了一个USB主机状态机,负责完成设备上电枚举时的状态迁移,以及各种USB外设事件的处理。USBHostTasks() 此函数执行主机任务的各
24、种操作,它必须被在一定时间内轮询执行,主要实现的功能是USB设备的枚举,但并不执行USB数据传输功能。除了维护一个USB状态机任务外,USB主机层还提供了一些可供驱动层和应用层调用的API,这部分包含一系列的数据传输函数,上层USB主机设备驱动可以直接调用此部分的API函数。以下为重要的API传输控制函数:a) USBHostRead() 此函数初始化一次IN事务传输,注意仅仅为为初始化,真正的read事务传输开始是在USB中断进行的,因为此时USB外设有可能正在进行USB信息包的传输,所以不能立即开始,此函数仅仅在端点描述符链表中查找指定的端点并设置其状态为需要USB事务传输。b) USBH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 PIC 单片机 WIFI 控制系统
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4138397.html