本科毕业设计第1页共47页1引言随着移动技术的不断发展,整个世界在走向移动化。现阶段,通信技术正面临一场深刻的变革,传统的有线网络已不能满足日益增长的通信需要。无线通信技术越来越受到关注,人们需要一种不受约束的通信技术,能够随时随地的获取信息。随着互联网越来越深入的走进人们的生活,用户对能够随时随地上网的需求越来越迫切,WIFI无线通信技术也得到了迅速发展。WiFi(WirelessFidelity)是无线局域网(WLAN)技术——IEEE802.11系列标准的商用名称。IEEE802.11系列标准主要包括IEEE802.11a/b/g/n5种。WIFI是由AP(AccessPoint)和无线网卡组成的无线网络。AP一般称为网络桥接器或接入点,它是当作传统的有线局域网络与无线局域网络之间的桥梁,因此任何一台装有无线网卡的PC均可透过AP去分享有线局域网络甚至广域网络的资源。WIFI主要技术优点是无线接入、高速传输以及传输距离远其中,802.11n可以将WLAN的传输速率由目前802.11a及802.11g提供的54Mbps,提高到300Mbps甚至高达600Mbps。在开放性区域通讯距离可达305m,在封闭性区域通讯距离76~122m,方便与现有的有线以太网整合,组网的成本更低。WIFI设备使用的频段为2.4~2.4835GHz的免许可频段,在频率资源上不存在限制,因此使用成本低廉也成为了WIFI技术的又一大优势。现阶段的WIFI控制方案一般基于PC机或是高性能的ARM嵌入系统,并且目前价格便宜的WIFI无线网卡一般都定位于PC机,接口一般为PCI接口或是USB接口。诚然,以上两种方案的优势明显,主要体现在传输速度高,软件编制容易等方面,缺点是单个节点造价较高。在一些工业控制系统中,有时仅需要WIFI网络节点传送少量的数据,此时对传输性能要求并不高,当我们需要大量的这种节点时,选用PC机或是ARM的控制方案显然成本会很高。在这种情况下,需寻找一种可替代的方案,要求是对性能要求不高,但是单个节点的成本要低。随着单片机技术的发展,现阶段一些单片机的资源已经足够驾驭802.11协议和TCP/IP协议,并且我们也可以对802.11和TCP/IP协议进行适当的精简,只保留基本数据传输部分,以此实现低成本低性能的WIFI控制系统。本科毕业设计第2页共47页2总体设计方案2.1系统概述WIFI控制系统主要由两部分构成,主控部分和无线通信部分。主控部分主要完成如下的控制功能:a)数据采集和处理。此部分是整个系统的核心功能,数据采集和处理的方式决定了系统的总体功能。b)通信协议控制。此部分控制无线通信的具体过程,具体来说就是建立无线连接,传送采集和处理后的数据。无线通信部分主要完成如下功能:a)无线数据帧的封装,数据的加密解密等基带处理。b)无线数据从媒介控制层到物理层的映射,完成实际的数据收发。PIC32控制核心USB总线RT73无线网卡图2.1WIFI控制系统整体框图2.2控制核心的选择:由于802.11通信的速度较高,而且较高的通信速率又是802.11无线网络主要特点,故需选择一款数据处理能力强的MCU,同时802.11无线通信协议是一种比较复杂的通信协议,如果还需实现TCP/IP的通信则系统的开销会更大,所以选择的MCU应该具有比较大的片上RAM和程序存储空间。基于以上的考虑,课题最终选择了PIC32MX440这款单片机作为核心控制MCU。PIC32MX单片机(MCU)是一款基于MIPS®Technologies的M4K™内核的复杂片上系统,M4K™是最新型的32位低功耗RISC处理器内核,采用了增强型MIPS32®Release2指令集构。本节概述PIC32MX系列单片机的CPU特性和系统架构。主要特性:a)最高可达到1.5DMIPS/MHz的性能b)可编程预取高速缓存存储器,以增强闪存中的执行效率本科毕业设计第3页共47页c)16位指令模式(MIPS16e),用于紧凑型代码d)带有63个优先级的向量中断控制器e)可编程的用户和内核工作模式f)可对外设寄存器执行原子级位操作(单周期)g)乘法/除法单元,最高指令发出速率为每个时钟一条32×16乘法指令h)高速MicrochipICD端口,具有基于硬件的非侵入式数据监视和应用程序数据流功能i)EJTAG调试端口,支持广泛的第三方调试、编程和测试工具j)指令控制的功耗管理模式k)5级流水线指令执行l)内部代码保护,以帮助保护知识产权m)PIC32MX440系列单片机具有USB-HOST外设,可以方便的和具有USB接口的WIFI无线网卡连接。片上USB-HOST外设具有如下特性:1.作为主机和设备的USB全速支持;2.低速主机支持;3.USBOn-The-Go(OTG)支持;4.集成信号传输电阻;5.用于VBUS监视的集成模拟比较器;6.集成USB收发器;7.硬件执行的事务握手;8.可在系统RAM中任意位置进行端点缓冲;9.集成用于访问系统RAM和闪存的总线主控;10.USB模块工作时不需要使用PIC32DMA模块。2.3无线WIFI模块的选择:无线模块的选择主要基于成本,本课题主要的研究方向即实现一种低成本的WIFI控制方案,所以成本成为了选择WIFI模块的主要依据。同时,WIFI模块还应该易于MCU控制,软件复杂程度也是重要的考虑方面。WIFI网卡一般的接口为PCI接口或USB接口,比如雷凌公司的RT73、RT2070和RT3070等,这些都是和PC机上的接口相对应的。也有一些适合单片机接口的WIFI模块比如具有SDIO接口的Marvell8686和SPI接口的MRF24WB0MB芯片,不过接口虽然贴近单片机但是价格一般偏贵,不符合本次设计的要求,此次设计采用了雷凌公司的RT73无线模块。该模块具有以下特点:a)采用RT2571作为核心基带处理芯片,RT2571是一款高度集成的MAC/baseband处理器,它支持IEEE802.11A/B/G标准。b)采用USB接口作为和主MCU通信的接口,RT2571芯片集成了一个USB设备控制器,它拥有一个控制0端点,和一进一出两个批量传输端点,USB接口支持USB1.1本科毕业设计第4页共47页和USB2.0控制协议。c)支持64/124位的WEP加密和WPA和AES加密认证方式。d)支持6,9,12,18,24,36,48,54Mbps的通信速率。2.4WIFI控制系统基本原理和特点2.4.1硬件部分:WIFI控制系统核心由MCU控制模块和WIFI通信模块构成。两个核心模块之间由USB总线连接,MCU是USB主机端,负责各种传输事务的发起和USB设备的连接枚举操作。RT73无线模组同样支持USB1.1协议,故USB总线采用全速传输的方式,传输速率为12Mbps。2.4.2软件部分:MCU作为USB主机,它所有发起的事务(不论控制或是BULK传输)都采用唯一的端点0进行传输。RT73使用到3个USB端点:控制端点0,BULKOUT端点1,BULKIN端点1。RT73模块需要在上电后进行初始化配置,配置通过USB控制传输来进行。同时,MCU端读取RT73基本配置信息,比如MAC地址等重要的信息。当RT73模块完成配置后,随即转为正常的收发工作模式,此时MCU需要和RT73的两个BULK端点进行通信,如果MCU需要发送IEEE802.11帧,则将发起BULKOUT传输事务。MCU不断间隔一定的时间发起BULKIN事务传输,轮询是否有数据到达RT73模块。可以想到检测是否有数据到达会耗费较多的CPU时间,所以合理的软件设计就成了关键。MCU对收发的802.11数据帧进行处理,负责无线通信连接的建立和断开和实际的数据传送。在802.11无线协议上层一般还会有TCP/IP协议。MCU通过对802.11层的数据包解析,获取有效的TCP/IP数据包,并将TCP/IP数据包传入TCP/IP层进一步的处理。综合以上分析,方案的硬件设计并不复杂,主要是系统的供电设计以及PIC32单片机最小系统设计;USB接口的设计等。软件部分相对复杂,对于实现一个WIFI控制系统核心而言,需要如下软件模块:1.高效而稳定的USB-HOST协议栈;2.IEEE802.11协议栈;3.小巧而稳定的TCP/IP协议栈。以上的三个软件组件联系紧密:首先,处于最底层的是USB协议栈,此部分负责MCU和USB无线网卡之间的802.11帧通信,USB总线是一种主从轮询式总线,所以相对于PCI或其他同步总线来说耗费CPU时间较多,尤其是在接收数据时,不能采用中断的方式通知CPU,而只能采用不断试探轮询的方法来确本科毕业设计第5页共47页认有数据到达,所以此USB部分的通信效率就比较重要;第二,在USB上层是802.11无线通信协议栈,802.11帧通过USB总线进行传输,802.11协议栈解析802.11帧数据并作出响应的响应;第三,最上层为TCP/IP协议栈,此部分接收TCP/IP帧进行处理。TCP/IP完整协议栈比较大,所以此部分需要对TCP/IP协议栈的合理裁剪就显得尤为重要。3系统硬件设计3.1系统供电电路Vin3Vout2GND1U6LM1117-3.3Vin3Vout2GND1U7LM1117-3.3Vin3Vout2GND1*LM1117-5.01R491R50220UC11104C5+3.3V220UC12104C6EXT+3.3V220UC13104C7+5V123DCDC+9VGNDAKD51N5819图3.1系统电源设计如图3.1为系统的供电电路,系统采用9V的电源适配器电源输入,由于PIC32MX440单片机需要3.3V供电,故需要三端稳压器提供3.3V电压,之所以采用两路3.3V供电电路,主要9V的输入电压较高,所以实际1117输出的电流会比较小,所以一路供电支MCU,另一路可以提供给其它的功率较大的设备。本科毕业设计第6页共47页3.2PIC32最小系统设计PMD5/RE51PMD6/RE62PMD7/RE73SCK2/CN8/RG6/PMA54SDI2/CN9/RG7/PMA45SDO2/CN10/RG8/PMA36MCLR7SS2/CN11/RG9/PMA28VSS9VDD10C11N+/AN5/CN7/RB5/VBUSON11C11N-/AN4/CN6/RB412C21N+/AN3/CN5/RB313C21N-/AN2/CN4/RB214AN1/VREF-/CN3/RB115AN0/VREF+/CN2/RB0/PMA616OS2/RD1/U1RTS49OC3/U1RX/RD250OC4/U1TX/RD351PMWR/OC5/IC5/CN13/RD452PMRD/CN14/RD553CN15/RD654CN16/RD755VDDCORE56ENVREG57RF058RF159PMD0/RE060PMD1/RE161PMD2/RE262PMD3/RE363PMD4/RE464PGC2/AN6/RB6/OCFA17PGD2/AN7/RB718AVDD19AVSS20U2CTS/C1OUT/AN8/RB821C2OUT/AN9/RB9/PMA722TMS/AN10/RB10/CVREFOUT23TDO/AN11/RB1124VSS25VDD26TCK/AN12/RB1227TDI/AN13/RB1328U2RTS/AN14/RB14/PMA129AN15/CN12/RB15/OCFB/PMA030U2RX/SDA2/RF4/CN17/PMA931U2TX/SCL2/RF5/CN18/PMA832USBID/RF333VBUS34VUSB35D-/RG336D+/RG237VDD38OSC1/CLKI/RC1239OSC2/CLKO/RC1540VSS41IC1/RTCC/INT1/RD842IC2/U1CTS/SDA1/INT2/RD943IC3/PMCS2/PMA15/SCL1/INT3/RD1044IC4/PMCS1/PMA14/INT4/RD114