1、本科毕业论文专业测控技术与仪器班级11测控2班_学生姓名学号11210040218课题基于STM32和DM9000的照明控制系统指导老师完成时间2015年6月7日安徽建筑大学机械与电气工程学院二一五年六月七日安徽建筑大学毕业设计(论文)I摘要随着计算机技术和电子信息技术的高速发展,特别是近年来在互联网建设的推动下,照明控制系统越来越受到人们的关注。本课题在分析照明控制系统的研究现状、发展趋势、研究意义的基础上提出了基于单片机以及嵌入式操作系统的照明控制系统的设计方案。STM32F103是意法半导体推出全新STM32互连型系列微控制器中的一款性能较强产品,此芯片集成了各种高性能工业标准接口,且S
2、TM32不同型号产品在引脚和软件上具有完美的兼容性,可以轻松适应更多的应用,此芯片可以满足工业、医疗、楼宇自动化、家庭音响和家电市场多种产品需求。DM9000是一款单芯片快速以太网MAC控制器,它与STM32控制器通信,发送指令,通过I/O端口高低电平,控制继电器,来实现整个照明系统的智能控制。其主要特点在于功能实用、操作简单、价格低廉、易于安装,使得该系统可以广泛应用于学校、工厂等照明设施。关键词单片机;照明控制;嵌入式安徽建筑大学毕业设计(论文)IIABSTRACTWITHTHERAPIDDEVELOPMENTOFCOMPUTERTECHNOLOGYANDELECTRONICINFORMA
3、TIONTECHNOLOGY,ESPECIALLYINRECENTYEARSINTHECONSTRUCTIONOFTHEINTERNETPUSHTHELIGHTINGCONTROLSYSTEMMOREANDMOREATTENTIONOFPEOPLETHISPAPERONTHEBASISOFANALYSISOFLIGHTINGCONTROLSYSTEM,THERESEARCHPRESENTSITUATION,DEVELOPMENTTRENDANDTHERESEARCHSIGNIFICANCETHEMICROCONTROLLERANDEMBEDDEDOPERATINGSYSTEMOFLIGHTIN
4、GCONTROLSYSTEMDESIGNBASEDONSTM32F103ISSTMICROELECTRONICSLAUNCHEDNEWSTM32INTERCONNECTIONSERIESMICROCONTROLLERINAHIGHPERFORMANCEPRODUCTSTHECHIPINTEGRATESAVARIETYOFHIGHPERFORMANCEINDUSTRIALSTANDARDINTERFACEANDSTM32DIFFERENTTYPESOFPRODUCTSONTHEPINANDSOFTWAREWITHPERFECTCOMPATIBILITYCANEASILYADAPTTOTHEAPP
5、LICATIONOFMORE,THISCHIPCANMEETTHEINDUSTRIAL,MEDICAL,BUILDINGAUTOMATIONANDHOMEAUDIOANDHOMEAPPLIANCESMARKETVARIOUSDEMANDSOFPRODUCTSDM9000ISASINGLECHIPFASTETHERNETMACCONTROLLER,ITCOMMUNICATEWITHTHESTM32CONTROLLER,SENDTHECOMMAND,THROUGHTHEI/OPORTLEVEL,CONTROLRELAYTOACHIEVEINTELLIGENTCONTROLOFTHELIGHTING
6、SYSTEMITSMAINFEATURESAREPRACTICAL,SIMPLEOPERATION,LOWCOST,EASYINSTALLATION,SOTHATTHESYSTEMCANBEWIDELYUSEDINSCHOOLS,FACTORIESANDOTHERLIGHTINGFACILITIESKEYWORDSSINGLECHIPCOMPUTER;LIGHTINGCONTROL;FLUSHBONADING安徽建筑大学毕业设计(论文)III目录第一章绪论111照明控制系统设计研究的意义112国内外发展概况与发展趋势1第二章系统总体设计方案与硬件介绍321系统的总体方案设计介绍322系统的硬件
7、设计4221单片机控制模块设计4222DM9000网络通信模块7第三章系统软件设计1031网络通信协议13311UIP协议栈及其体系结构14312协议栈接口1432程序流程图16321程序运行初始化流程图16322程序功能流程图1733系统LED灯程序1834系统主程序2135通信协议程序30第四章系统的程序调试3141系统的主程序调试31411编写程序31412烧写代码下载3242系统硬件连接3343系统调试结果34第五章毕业设计总结36致谢37参考文献38安徽建筑大学毕业设计(论文)IV附录一硬件电路图39附录二英文资料和译文41安徽建筑大学毕业设计(论文)1第一章绪论11照明控制系统设计
8、研究的意义采用智能照明控制系统,使照明系统工作在全自动状态,系统按预先设定的开馆、值班、清扫、保安等照明模式进行工作,这些照明模式会按预先设定的时间相互自动地进行切换。提高管理水平,减少维护费用。博物馆建筑面积一般较大,人工维护繁琐,智能照明控制系统的应用,将普通照明人为的开与关转换成智能化管理,使管理者能将其高素质的管理意识运用于照明控制系统中去,同时大大减少了馆内的运行维护费用。可观的节能效果。智能照明控制系统使用了先进的电力电子技术,能对控制区域内的灯具进行智能调光,当室外光较强时,室内照度自动调暗,室外光较弱时,室内照度则自动调亮,使室内的照度始终保持在恒定值附近,从而能够充分利用自然
9、光实现节能的目的。此外,智能照明的管理系统采用设置照明工作状态等方式,通过智能化自动管理避免了照明区域“长明灯”等现象,根据照明的使用规律启动不用的灯光场景,通过对灯光的调光也可以让灯光不用满负荷使用,又达到好的照度效果,大幅度的节约用电。保护灯具,延长寿命。保护灯具实际上也是节能的一种方式,灯具损坏的致命原因主要是电压过高,工作电压越高,其寿命则成倍降低。因此适当降低灯具工作电压是延长灯具寿命的有效途径。美莱恩控制系统能成功地抑制电网的冲击电压和浪涌电压,使灯具不会因上述原因而过早损坏。并且美莱恩采用了软启动和软关断技术,避免了灯丝的热冲击,使灯具寿命进一步得到延长。智能照明系统通常能使灯具
10、寿命延长24倍,不仅节省大量灯具,而且大大减少更换灯具的工作量,有效地降低了照明系统的运行费用。12国内外发展概况与发展趋势上世纪90年代,美国率先提出了“绿色照明计划”,这以后,各国也都在不同程度开始对其进行推广工作。在我国,近几年也加大了扶持LED绿色照明企业的力度,并制定节能认证标准,提高产品技术和质量水平,建立持续、高效发热照明产品市场。更值得一提的是,国家和地方政府组织的“LED照明产品的大宗采购”,将LED绿色照明产品推广到市政建设、轨道交通、公共空间等领域同时,开展电力需求管理活动,将绿色照明活动扩展到大型的集团公司、央企及私人企安徽建筑大学毕业设计(论文)2业。从绿色照明的发展
11、阶段来看,目前正处在产品创新、节能标准进一步规范的环节。以LED照明产品为例,由于其是一种高效、节能环保的新光源,国家和地方政府已开始从各方面推广和扶持。然而照明行业的发展也面临着一些难题,例如LED照明市场混乱,低价、质量差的产品居多,为一些性能优异的绿色照明产品的市场占有率造成了很大影响。除此之外,照明产品标准不明确、节能要求不统一也为其推广造成了困扰。年初,国家出台的绿色建筑行动方案中,倡导节能减排、降低建筑能耗、减少二氧化碳排放、发展绿色建筑,这对绿色照明的发展是有一定的影响和推动作用的。当然,仅有这个方案也是远远不够的,我认为,在建立绿色建材标准体系时,绿色照明作为绿色建材的一部分也
12、应该纳入标准体系之中。同时,国家在规范绿色照明标准及要求、对照明产品进行质量管制的同时,也应该为照明企业的产品发展与创新指出阶段性的方向,并适当对绿色照明企业进行扶持。安徽建筑大学毕业设计(论文)3第二章系统总体设计方案与硬件介绍21系统的总体方案设计介绍命令照明灯状态命令I/O状态(照明灯状态)I/O图21方案介绍首先控制端,通过网络给网络端口(DM9000网卡)发命令STM32取到命令控制I/O高低电平,控制继电器控制照明灯。电脑DM9000STM32继电器照明灯安徽建筑大学毕业设计(论文)422系统的硬件设计电路原理图绘制软件PROTEL99SE介绍PROTEL99SE是应用于WINDO
13、WS9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源地层和16个机加工层。221单片机控制模块设计普通设计中大多采用51单片机、PIC单片机或者是AVR单片机,这些单片机的缺点是高功耗、性能低并且硬件资源匮乏。相比之下,STM32系列是基于专为要求高性能、低成本、低功耗的嵌入式应用而专门设计的ARMCORTEXM3内核的微控制器。图22STM32F1031ARM控制器使用STM32F103,
14、STM32F103是意法半导体推出全新STM32互连型系列微控制器中的一款性能较强产品,此芯片集成了各种高性能工业标准接口,且STM32不同型号产品在引脚和软件上具有完美的兼容性,可以轻松适应更多的应用。新STM32的标准外设包括10个定时器、两个12位AD模数转换器快速交替模式下2MSAMPLE/S、两个12位DA数模转换器、两个I2C接口、五个USART接口和三个SPI端口和高质量数字音频接口IIS,另外STM32F103拥有全速USB(OTG)接口,两路CAN20B接口,以及以太网10/100MAC模块。此芯片可以满足工业、医疗、楼宇自动化、家庭音响和家电市场多种产品需求。安徽建筑大学毕
15、业设计(论文)52STM32F1系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是CORTEXM3。该系列芯片按片内FLASH的大小可分为三大类小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。3芯片集成定时器,CAN,ADC,SPI,I2C,USB,UART,等多种功能内核ARM32位的CORTEXM3,最高72MHZ工作频率,在存储器的0等待周期访问时可达125DMIPS/MHZ(DHRYSTONE21)单周期乘法和硬件除法存储器从32K到512K字节的闪存程序存储器(STM32F103XXXX中的第二个X表示
16、FLASH容量,其中“4”16K,“6”32K,“8”64K,B128K,C256K,D384K,E512K)最大64K字节的SRAM电源管理2036V供电和I/O引脚上电/断电复位(POR/PDR)、可编程电压监测器(PVD)416MHZ晶振振荡器内嵌经出厂调教的8MHZ的RC振荡器内嵌带校准的40KHZ的RC振荡器产生CPU时钟的PLL带校准的32KHZ的RC振荡器低功耗睡眠、停机和待机模为RTC和后备寄存器供电模数转换器2个12位模数转换器,1US转换时间(多达16个输入通道)转换范围0至36V双采样和保持功能温度传感器DMA2个DMA控制器,共12个DMA通道DMA1有7个通道,DMA
17、2有5个通道支持的外设定时器、ADC、SPI、USB、IIC和UART多达112个快速I/O端口仅Z系列有超过100个引脚26/37/51/80/112个I/O口,所有I/O口一块映像到16个外部中断;几乎所有的端口均可容忍5V信号调试模式串行单线调试(SWD和JTAG接口多达8个定时器3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器2个看门狗定时器(独立的和窗口型的)系统时间定时器24位自减型计数器多达9个通信接口2个I2C接口3个USART接口(支持ISO7816接口,LI
18、N,IRDA接口和调制解调控制)2个SPI接口18M位/秒)CAN接口(20B主动)USB20全速接口计算单元CRC计算单元,96位的新批唯一代码封装ECOPACK封装。安徽建筑大学毕业设计(论文)6图23STM32F103电路原理图图24时钟电路安徽建筑大学毕业设计(论文)7图25STM32F103引脚分布图222DM9000网络通信模块1DM9000是一款单芯片快速以太网MAC控制器。它有一个一般处理接口,一个10/100M自适应的PHY和4KDWORD值的SRAM。它的目的是在低功耗和高性能进程的33V与5V的支持宽容,DM9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功
19、能的家用电话线网络设备或其他收发器。该DM9000支持8位,16位和32位接口访问内部存储器,以支持不同的处理器。DM9000物理协议层接口完全支持使用10MBPS下3类、4类、5类非屏蔽双绞线和100MBPS下5类非屏蔽双绞线,完全符合IEEE8023U规格。2DM9000是DAVICOM公司的一款以太网控制芯片,在网络中他可自动获得同设定MAC地址一致的IP包,完成IP包的收发,再用ARM来结合完成上层协议,就构成了一个完整的网络终端。安徽建筑大学毕业设计(论文)8图26DM9000电路原理图图27驱动电路电路图安徽建筑大学毕业设计(论文)93网卡芯片DM9000和STM32的连接。首先,
20、可以从硬件上完成网卡芯片DM9000与ARM处理器STM32的三大总线连接,以及和以太网的连接,嵌入式ARM系统和以太网接口连接图嵌入式系统数据网卡芯片以太网连接地址DMSTM32控制图28连接示意图4DM9000默认I/O基地址为300H。CMD引脚用于设置COMMAND模式,CMD为高时,选择数据端口。CMD为低时,选地址端口。数据端口和地址端口的地址码由下式决定DM9000地址端口高位片选地址300H0H,DM9000数据端口高位片选地址300H4H5DM9000的调试过程DM9000的调试过程中,首先要确保芯片能否正常工作,即确保MAC地址是存储在EEPROM中,且MAC地址正常。对D
21、M9000的寄存器进行读写测试,从PAB0到PAB5把MAC地址写入到DM9000寄存器,然后再读取寄存器来验证它。其次可以进行EEPROM93C46的字数据测试,进行以太网连接测试,通过连接LED灯的亮灭以及读取NSR寄存器来检查IINKSTBIT6的状态是否为“1”来验证以太网是否已经连接成功。进行外部环回测试,使用一个交叉线插到RJ45,检查能否收到所发送的包。进行向另一台主机发包、收包的测试,最后连上交换机,把事先编译好的程序下载到处理器中去,验证是否实现联网。DM9000安徽建筑大学毕业设计(论文)10第三章系统软件设计31网络通信协议TCPIP协议在全球互联网上取得了巨大的成功,人
22、们通过该协议进行文件传送,电子邮件发送等多种应用,TCPIP协议已成为事实上的全球网络通信标准。随着嵌入式系统技术的深入发展,越来越多的嵌入式设备也需要互连成网,协同工作,如无线传感器、信息家电、智能仪表等。在嵌入式设备中通过TCPIP协议连接INTERACT网络需求更加强烈。在嵌入式系统上运行TCPIP协议可以使得该系统直接与内部网络甚至全球互联网相联,而不需要引入额外的网关设备,给嵌入式设备通信带来巨大的便利。嵌入式系统的本身资源有限,并且其应用和功能比较单一,具有较强的针对性,因此不需要一个完整的TCPIP网络协议组件,只需要实现与需求相关的部分协议,不使用的协议则不需要支持。另一方面,
23、对于某些特定的嵌入式系统,甚至需要优化TCPIP协议栈或者在TCPIP协议栈中编写自己需要的网络协议。那些不能提供开放源码的商用嵌入式系统的TCPIP协议栈很难满足用户的配置需求,需要用户自行开发和定制适合自己系统需求的嵌入式TCPIP协议栈。由瑞典计算机科学研究所ADAMDUNKELS开发的UIP09,去掉了全功能TCPIP协议栈中不常用的功能,保留网络通信所必要的协议机制,大大减少了协议代码量,降低了协议对系统资源的要求。该协议由公开源代码的C语言编写,任何人都可以在网络上下载其源代码并对其进行修改,以适应各自不同的应用场合。UIP09采用模块化设计,其代码量在几千字节左右,仅需要几百字节
24、的内存就可以顺利运行,完全适应当前的嵌入式系统。311UIP协议栈及其体系结构UIP是一个适用于816位机上的小型嵌入式TCPIP协议栈,简单易用,资源占用少是它的设计特点。其设计重点放在IP、ICMP和TCP协议的实现上,协议虽然也同时实现了UDP和ARP协议,但仅将其作为可选模块。UIP处于网络通信的中间层,其上层协议在这里被称之为应用程序,而下层硬件或固件被称之为网络设备驱动。TCPIP协议组中的链路层协议如PPP等可由UIP之下的设备安徽建筑大学毕业设计(论文)11驱动实现;应用层协议如H33“P、FTP、SMTP等可由UIP之上的应用程序实现。这样的设计方式大大减小了协议代码量和RA
25、M占用量。为进一步节省资源占用,简化应用接口,UIP在内部实现上还作了如下特殊的处理采用单一的全局数据收发缓冲区,不支持内存动态分配;基于事件驱动的应用程序接口,各并发连接采用轮循处理,仅当网络事件发生时,由UIP内核唤起应用程序处理。这样,UIP用户只须关注特定应用就可以了。传统的TCPIP实现一般要基于多任务处理环境,而大多数8位机系统不具备这个条件;应用程序主动参与部分协议栈功能的实现如TCP的重发机制,数据包分段和流量控制,由UIP内核设置重发事件,应用程序重新生成数据提交发送,免去了大量内部缓存的占用。基于事件驱动的应用接口使得这些实现较为简单。正是由于UIP所具有的以上显著特点,自
26、从06版本以来就被移植到多种处理器上,包括MSP430、AVR和Z80等。312协议栈接口图1描述了UIP、底层系统和应用程序三者之间的调用关系。其中UIP协议通过一系列接口函数与底层系统和上层应用程序通信,它内部的协议集合对外部系统来说是透明的,从而增强了该协议的通用性和独立性,可以非常方便地移植到不同系统和应用平台。图1描述了UIP、底层系统和应用程序三者之间的调用关系。其中UIP提供了3个函数给底层系统UIPINITUIPINPUTUIPPERIODIC。应用程序向UIP提供一个调用函数UIPAPPCALL,在网络事件或计时事件发生时进行调用;同时,UIP也要向应用程序提供一些与协议栈的
27、接口函数,应用程序根据接口函数提供的信息或者状态,执行相应的操作。UIPAPPCALL()应用程序UIP协议栈安徽建筑大学毕业设计(论文)12UIPINPUT()UIPPERIODC()图31UIP、底层系统和应用程序之间的调用关系设备驱动程序接口UIP内核中有两个函数直接提供给底层设备驱动程序。一个是UIPINPUT,当设备驱动程序从网络层收到的一个数据包时要调用这个函数,设备驱动程序必须事先将数据包存入到UIPBUR中,包长放到UIPLEN,然后交由UIPINPUT处理。当函数返回时,如果UIPLEN不为0,则表明有带外数据如SYN,ACK等要发送。当需要ARP支持时,还需要考虑更新ARP
28、表示或发出ARP请求和回应。以下代码即为设备驱动程序从网络层收到的个数据包后的处理过程DEFINEBUFSTRUETUIPETHHDRDEFINELED2_ONGPIO_SETBITSGPIOC,GPIO_PIN_6DEFINELED3_ONGPIO_SETBITSGPIOC,GPIO_PIN_7DEFINELED1_OFFGPIO_RESETBITSGPIOB,GPIO_PIN_5DEFINELED2_OFFGPIO_RESETBITSGPIOC,GPIO_PIN_6DEFINELED3_OFFGPIO_RESETBITSGPIOC,GPIO_PIN_7EXTERNUNSIGNEDSHORT
29、LPORTVOIDSERVER_UDP_APPCALLVOIDVOIDLED_POLLVOID函数名VOIDLED_POLLVOID参数无返回无功能查询LED灯的状态并返回其状态/VOIDLED_POLLVOIDUINT8_TLED1_READVALUEUINT8_TLED2_READVALUEUINT8_TLED3_READVALUELED1_READVALUEGPIO_READOUTPUTDATABITGPIOB,GPIO_PIN_5安徽建筑大学毕业设计(论文)19LED2_READVALUEGPIO_READOUTPUTDATABITGPIOC,GPIO_PIN_6LED3_READVA
30、LUEGPIO_READOUTPUTDATABITGPIOC,GPIO_PIN_7IFLED1_READVALUE0MYUDP_SEND“LED1亮N“,8ELSEMYUDP_SEND“LED1灭N“,8IFLED2_READVALUE0MYUDP_SEND“LED2亮N“,8ELSEMYUDP_SEND“LED2灭N“,8IFLED3_READVALUE0MYUDP_SEND“LED3亮N“,8ELSEMYUDP_SEND“LED3灭N“,8/函数名VOIDMYUDP_SENDCHARSTR,SHORTN参数返回无功能UDP数据包发送/VOIDMYUDP_SENDCHARSTR,SHORTN
31、CHARNPTRNPTRCHARUIP_APPDATAMEMCPYNPTR,STR,NUIP_UDP_SENDN/发送N个数据/函数名VOIDUDP_NEWDATAVOID安徽建筑大学毕业设计(论文)20参数返回无功能UDP数据包发送/VOIDSERVER_UDP_NEWDATAVOIDCHARNPTRSHORTLENLENUIP_DATALEN/读取数据长度NPTRCHARUIP_APPDATA/取得数据起始指针IFLENPB1/GPIO_INITSTRUCTUREGPIO_PINGPIO_PIN_1GPIO_INITSTRUCTUREGPIO_SPEEDGPIO_SPEED_50MHZGP
32、IO_INITSTRUCTUREGPIO_MODEGPIO_MODE_OUT_PPGPIO_INITGPIOA,/名称VOIDRCC_CONFIGURATIONVOID功能系统时钟配置为72MHZ,外设时钟配置入口参数无出口参数无说明调用方法无/VOIDRCC_CONFIGURATIONVOID/RCC_APB2PERIPHCLOCKCMDRCC_APB2PERIPH_AFIO,ENABLESYSTEMINITSTRUCTTIMERPERIODIC_TIMER,ARP_TIMER/名称INTMAINVOID功能程序入口入口参数无出口参数无说明调用方法无/INTMAINVOIDCONSTUINT
33、8_TMAC_ADDR60X00,0XE0,0X3D,0XF4,0XDD,0XF7INTISTRUCTUIP_ETH_ADDRETHADDRSTRUCTTIMERT安徽建筑大学毕业设计(论文)23DHCP_SUCCESS_FLAG0X00RCC_CONFIGURATION/系统时钟设置LED_CONFIGUSART1_INIT/串口1初始化USART2_INITTIMER_SET/基本时钟CLOCK_ARCH_INITTIMER_SETTIMER_SET/显示例程LOGO/PRINTF“SYSTEMISRUNRN“/向串口1发送开机字符。NET_INITAL/初始化网络设备以及UIP协议栈,配
34、置IP地址/应用层MAC初始化FORI0I0需要发送的数据在UIP_BUF,长度是UIP_LEN这是2个全局变量/IFUIP_LEN0UIP_ARP_OUT/加以太网头结构,在主动连接时可能要构造ARP请求TAPDEV_SEND/发送数据到以太网(设备驱动程序)安徽建筑大学毕业设计(论文)25IFUIP_UDP/轮流处理每个UDP连接,UIP_UDP_CONNS缺省是10个/FORI0I0/IFUIP_LEN0UIP_ARP_OUT/加以太网头结构,在主动连接时可能要构造ARP请求TAPDEV_SEND/发送数据到以太网(设备驱动程序)ENDIF/UIP_UDP/CALLTHEARPTIMER
35、FUNCTIONEVERY10SECONDS/IFTIMER_EXPIREDUIP_ARP_TIMER/函数名UIPPRO输入输出功能说明中断触发读取网络接收缓存/VOIDUIPPROVOID/IFETH_INT1/当网络接收到数据时,会产生中断REPETH_INT0UIP_LENTAPDEV_READ/从网络设备读取一个IP包,返回数据长度IFUIP_LEN0/收到数据/处理IP数据包只有校验通过的IP包才会被接收/IFBUFTYPEHTONSUIP_ETHTYPE_IPUIP_ARP_IPIN/去除以太网头结构,更新ARP表安徽建筑大学毕业设计(论文)26UIP_INPUT/IP包处理/当
36、上面的函数执行后,如果需要发送数据,则全局变量UIP_LEN0/IFUIP_LEN0/有带外回应数据UIP_ARP_OUT/加以太网头结构,在主动连接时可能要构造ARP请求TAPDEV_SEND/发送数据到以太网(设备驱动程序)/处理ARP报文/ELSEIFBUFTYPEHTONSUIP_ETHTYPE_ARP/是ARP请求包UIP_ARP_ARPIN/当上面的函数执行后,如果需要发送数据,则全局变量UIP_LEN0需要发送的数据在UIP_BUF,长度是UIP_LEN这是2个全局变量/IFUIP_LEN0/是ARP请求,要发送回应TAPDEV_SEND/发ARP回应到以太网上/ELSE/防止大
37、包造成接收死机,当没有产生中断,而中断信号始终为低说明接收死机/IFETH_REC_F0GOTOREP/函数名INITNET输入输出功能说明初始化网络硬件、UIP协议栈、配置本机IP地址/VOIDNET_INITALVOID安徽建筑大学毕业设计(论文)27UIP_IPADDR_TIPADDRTAPDEV_INIT/DM9000AEP初始化/UIP_INIT/UIP协议栈初始化SERVER_UDP_FLAGSERVER_UDP_NULLSERVER_UDP_FLAGSERVER_UDP_DHCPIF1PRINTF“UIPIPADDRESS192,168,1,8RN“UIP_IPADDRIPADD
38、R,192,168,1,8/设置IP地址UIP_SETHOSTADDRIPADDRPRINTF“UIPROUTEADDRESS192,168,1,1RN“UIP_IPADDRIPADDR,192,168,1,1/设置默认路由器IP地址UIP_SETDRADDRIPADDRPRINTF“UIPNETMASK255,255,255,0RN“UIP_IPADDRIPADDR,255,255,255,0/设置网络掩码UIP_SETNETMASKIPADDRENDIF35通信协议程序UIP_LISTENHTONS1200WHILE1UIP_LISTENHTONS5005/处理UIP事件,必须插入到用户程
39、序的循环体中/UIPPRO/中断触发读取网络接收缓存ETH_POLL/定时查询TCP及UDP连接收发状态ARP表更新,并响应/名称VOIDETH_POLLVOID功能定时查询TCP连接收发状态ARP表更新,并响应入口参数无出口参数无说明安徽建筑大学毕业设计(论文)28调用方法无/VOIDETH_POLLVOIDUNSIGNEDCHARI0IFTIMER_EXPIREDLED_FLAG0X00GPIO_WRITEBITGPIOA,GPIO_PIN_1,BIT_SETGPIO_WRITEBITGPIOA,GPIO_PIN_1,BIT_RESETTIMER_RESET/轮流处理每个TCP连接,UIP
40、_CONNS缺省是10个/FORI0I0需要发送的数据在UIP_BUF,长度是UIP_LEN这是2个全局变量/IFUIP_LEN0UIP_ARP_OUT/加以太网头结构,在主动连接时可能要构造ARP请求TAPDEV_SEND/发送数据到以太网(设备驱动程序)IFUIP_UDP/轮流处理每个UDP连接,UIP_UDP_CONNS缺省是10个/FORI0I0/IFUIP_LEN0安徽建筑大学毕业设计(论文)29UIP_ARP_OUT/加以太网头结构,在主动连接时可能要构造ARP请求TAPDEV_SEND/发送数据到以太网(设备驱动程序)ENDIF/UIP_UDP/CALLTHEARPTIMERFU
41、NCTIONEVERY10SECONDS/IFTIMER_EXPIREDUIP_ARP_TIMER/函数名UIPPRO输入输出功能说明中断触发读取网络接收缓存/VOIDUIPPROVOID/IFETH_INT1/当网络接收到数据时,会产生中断REPETH_INT0UIP_LENTAPDEV_READ/从网络设备读取一个IP包,返回数据长度IFUIP_LEN0/收到数据/处理IP数据包只有校验通过的IP包才会被接收/IFBUFTYPEHTONSUIP_ETHTYPE_IPUIP_ARP_IPIN/去除以太网头结构,更新ARP表UIP_INPUT/IP包处理/当上面的函数执行后,如果需要发送数据,
42、则全局变量UIP_LEN0需要发送的数据在UIP_BUF,长度是UIP_LEN这是2个全局变量/IFUIP_LEN0/有带外回应数据UIP_ARP_OUT/加以太网头结构,在主动连接时安徽建筑大学毕业设计(论文)30可能要构造ARP请求TAPDEV_SEND/发送数据到以太网(设备驱动程序)/处理ARP报文/ELSEIFBUFTYPEHTONSUIP_ETHTYPE_ARP/是ARP请求包UIP_ARP_ARPIN/如是是ARP回应,更新ARP表;如果是请求,构造回应数据包/当上面的函数执行后,如果需要发送数据,则全局变量UIP_LEN0需要发送的数据在UIP_BUF,长度是UIP_LEN这是
43、2个全局变量/IFUIP_LEN0/是ARP请求,要发送回应TAPDEV_SEND/发ARP回应到以太网上/ELSE/防止大包造成接收死机,当没有产生中断,而中断信号始终为低说明接收死机/IFETH_REC_F0GOTOREP/安徽建筑大学毕业设计(论文)31第四章系统的程序调试41系统的主程序调试411编写程序根据各个程序模块,编写所需的程序,下面介绍一下用软件KEILUVISION4编写过程。1运行软件KEILUVISION4,进入操作界面,新建工程,单击“PROJECT”出现下拉菜单,单击“NEWPROJECT”弹出创建工程窗口,输入新建工程名称,然后保存,弹出窗口图41,选择CPU的类
44、型为ARMCORTEXM3,该工程建立成功。图41新建工程2在新的工程里,单击,出现文本“TEXT1”,在文本中编写主程序如图42,编写完成后,单击保存,在文件名中输入“MAINC”,保存该程序。安徽建筑大学毕业设计(论文)32图42编写主程序3完成所有程序后,将对其编译和连接,查看有没有错误存在。单击,对所有的程序进行编译和连接,结果在“BUILD”里,如图43所示图43编译和连接412烧写代码下载在“PROJECT”中选择“OPTIONSFORTARGETTARGET1”,在界面中选择“DEBUG”,设置“CORTEXM3JLINK”之后创建,将烧写速度选择2MHZ,如图44所示。打开“U
45、TILITIES”,选择“CORTEXM3JLINK”,点击“SETTING”,如图5所示。最后在“FLASH”里“DOWNLOAD”进行烧写代码的下载,将代码下载到开发板。安徽建筑大学毕业设计(论文)33图44设置烧写速度图45下载代码42系统硬件连接电脑和转接板连在同一个路由器上,转接板接在开发板3V接口上,将开发板接通电源,并打开开关,设置电脑IP地址,打开网络调试助手,设置协议类型,本地端口号并连接,设置目标主机IP地址和目标端口,设置完毕后,通过在网络调试助手上发布命令来实现对小灯的控制。安徽建筑大学毕业设计(论文)3443系统调试结果图46小灯显示结果安徽建筑大学毕业设计(论文)3
46、5图47网络助手显示结果安徽建筑大学毕业设计(论文)36第五章毕业设计总结在大学的学习过程中,毕业设计是一个重要的环节,是我们步入社会参与实际项目的规划建设的一次极好的演示毕业设计是四年学习的总结和提高,和做科研开发工作一样,要有严谨求实的科学态度。毕业设计有一定的学术价值和实用价值,能反映出作者所具有的专业基础知识和分析解决问题的能力。此次毕业设计是我们从大学毕业生走向未来工作重要的一步。从最初的选题,开题到分析调查、绘图直到完成设计。其间,查找资料,老师指导,与同学交流,反复修改,每一个过程都是对自己能力的一次检验和充实。在毕业设计期间,尽可能多的阅读文献资料是很重要的,一方面是为毕业设计
47、做技术准备,另一方面是学习做毕业设计的方法。一次优秀的设计对启发我们的思维,掌握设计的规范、流程、具体操作都很有帮助。但是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,对设备的不了解,对具体设计涉及到的规范要求的不熟悉等等,需要在做的过程中需要去不断的翻阅相关的资料和书籍,这降低了自己的速度和设计的进程,但这个过程对我来说是对自己知识的不足处的一个很好的补充和对已学过知识的一个巩固,在老师、同学以及自己的不断努力下,不怕麻烦,不怕重复,当克服了这些问题之后,我会感觉到自己的知识在一点一滴地积累,不知不觉中增加。我相信,只要肯钻研,只要挤时间,一切自己想要的知识都可
48、以掌握。这个过程虽然是有一定的难度,但自己还是慢慢的摸索,也在老师的指导下从熟悉到上手,经过这次努力对自己的信心很好的提高。通过这样的一个自己从开始到结束全程自己参与的设计来说对知识的了解和掌握是纯理论的学习远远达不到的效果。这次实践是对自己大学四年所学的一次大检阅,使我明白自己知识还很浅薄,虽然马上要毕业了,但是自己的求学之路还很长,以后更应该在工作中学习,努力使自己成为一个可以参与工作能独立完成设计的人。最后顺利的完成这次毕业设计,为自己的大学生涯画上一个完美的句号。安徽建筑大学毕业设计(论文)37致谢本次毕业设计的完成,得益于所有直接和间接给过我帮助的人,我要感谢他们。首先我要感谢我的毕
49、业设计辅导老师陈松老师,我的毕业设计是在他的亲切关怀和悉心指导下完成的。陈老师在我毕业设计的过程中给了我充分的指导和帮助,并且在确定研究方案和收集有关资料时也给了我很大的帮助。在毕业设计过程中理清了我的毕业设计思路,扫除了我的毕业设计障碍,修改了我毕业设计中的不足之处,尤其软件学习当中给了我莫大的帮助,陈老师的博学和严谨的科研态度使我受益匪浅,在此谨向陈老师崇高的敬意和衷心的感谢。其次,我要感谢我的同学,他们在我毕业设计过程中给了提供过许多有意义的资料,他们教会了我许多解决问题的方法,使我能够从容的面对困难,克服困难。最后,我要感谢大学里所有教过我的老师,感谢他们在这四年当中对我殷切教导和做人方面的潜移默化的影响。我要感谢大学期间所有结识的朋友,是你们使我拥有了美好的大学时光安徽建筑大学毕业设计(论文)38参考文献1康华光电子技术基础,模拟部分5版M等教育出版社,200653王骅浅谈4线电阻触摸屏和STM32的接口实现J中国高新技术企业,20091