基于stm32和dm9000的照明控制系统毕业设计论文.docx

上传人:b****7 文档编号:25477423 上传时间:2023-06-09 格式:DOCX 页数:70 大小:1.54MB
下载 相关 举报
基于stm32和dm9000的照明控制系统毕业设计论文.docx_第1页
第1页 / 共70页
基于stm32和dm9000的照明控制系统毕业设计论文.docx_第2页
第2页 / 共70页
基于stm32和dm9000的照明控制系统毕业设计论文.docx_第3页
第3页 / 共70页
基于stm32和dm9000的照明控制系统毕业设计论文.docx_第4页
第4页 / 共70页
基于stm32和dm9000的照明控制系统毕业设计论文.docx_第5页
第5页 / 共70页
点击查看更多>>
下载资源
资源描述

基于stm32和dm9000的照明控制系统毕业设计论文.docx

《基于stm32和dm9000的照明控制系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于stm32和dm9000的照明控制系统毕业设计论文.docx(70页珍藏版)》请在冰豆网上搜索。

基于stm32和dm9000的照明控制系统毕业设计论文.docx

基于stm32和dm9000的照明控制系统毕业设计论文

本科毕业论文

专业:

测控技术与仪器

班级:

11测控2班_

学生姓名:

管国翀

学号:

11210040218

课题:

基于STM32和DM9000的照明控制系统

指导老师:

陈松

完成时间:

2015年6月7日

安徽建筑大学机械与电气工程学院

二〇一五年六月七日

 

摘要

随着计算机技术和电子信息技术的高速发展,特别是近年来在互联网建设的推动下,照明控制系统越来越受到人们的关注。

本课题在分析照明控制系统的研究现状、发展趋势、研究意义的基础上提出了基于单片机以及嵌入式操作系统的照明控制系统的设计方案。

STM32F103是意法半导体推出全新STM32互连型系列微控制器中的一款性能较强产品,此芯片集成了各种高性能工业标准接口,且STM32不同型号产品在引脚和软件上具有完美的兼容性,可以轻松适应更多的应用,此芯片可以满足工业、医疗、楼宇自动化、家庭音响和家电市场多种产品需求。

DM9000是一款单芯片快速以太网MAC控制器,它与STM32控制器通信,发送指令,通过I/O端口高低电平,控制继电器,来实现整个照明系统的智能控制。

其主要特点在于功能实用、操作简单、价格低廉、易于安装,使得该系统可以广泛应用于学校、工厂等照明设施。

关键词:

单片机;照明控制;嵌入式

 

Abstract

Withtherapiddevelopmentofcomputertechnologyandelectronicinformationtechnology,especiallyinrecentyearsintheconstructionoftheInternetPushthelightingcontrolsystemmoreandmoreattentionofpeople.Thispaperonthebasisofanalysisoflightingcontrolsystem,theresearchpresentsituation,developmenttrendandtheresearchsignificancethemicrocontrollerandembeddedoperatingsystemoflightingcontrolsystemdesignbasedon.STM32F103isSTMicroelectronicslaunchednewSTM32interconnectionseriesmicrocontrollerinahighperformanceproducts.ThechipintegratesavarietyofhighperformanceindustrialstandardinterfaceandSTM32differenttypesofproductsonthepinandsoftwarewithperfectcompatibilitycaneasilyadapttotheapplicationofmore,thischipcanmeettheindustrial,medical,buildingautomationandhomeaudioandhomeappliancesmarketvariousdemandsofproducts.Dm9000isasinglechipfastEthernetMACcontroller,itcommunicatewiththeSTM32controller,sendthecommand,throughtheI/Oportlevel,controlrelaytoachieveintelligentcontrolofthelightingsystem.Itsmainfeaturesarepractical,simpleoperation,lowcost,easyinstallation,sothatthesystemcanbewidelyusedinschools,factoriesandotherlightingfacilities.

Keywords:

singlechipcomputer;lighting control;flushbonading

 

第一章绪论

1.1照明控制系统设计研究的意义

采用智能照明控制系统,使照明系统工作在全自动状态,系统按预先设定的开馆、值班、清扫、保安等照明模式进行工作,这些照明模式会按预先设定的时间相互自动地进行切换。

提高管理水平,减少维护费用。

博物馆建筑面积一般较大,人工维护繁琐,智能照明控制系统的应用,将普通照明人为的开与关转换成智能化管理,使管理者能将其高素质的管理意识运用于照明控制系统中去,同时大大减少了馆内的运行维护费用。

可观的节能效果。

智能照明控制系统使用了先进的电力电子技术,能对控制区域内的灯具进行智能调光,当室外光较强时,室内照度自动调暗,室外光较弱时,室内照度则自动调亮,使室内的照度始终保持在恒定值附近,从而能够充分利用自然光实现节能的目的。

此外,智能照明的管理系统采用设置照明工作状态等方式,通过智能化自动管理避免了照明区域“长明灯”等现象,根据照明的使用规律启动不用的灯光场景,通过对灯光的调光也可以让灯光不用满负荷使用,又达到好的照度效果,大幅度的节约用电。

保护灯具,延长寿命。

保护灯具实际上也是节能的一种方式,灯具损坏的致命原因主要是电压过高,工作电压越高,其寿命则成倍降低。

因此适当降低灯具工作电压是延长灯具寿命的有效途径。

美莱恩控制系统能成功地抑制电网的冲击电压和浪涌电压,使灯具不会因上述原因而过早损坏。

并且美莱恩采用了软启动和软关断技术,避免了灯丝的热冲击,使灯具寿命进一步得到延长。

智能照明系统通常能使灯具寿命延长2~4倍,不仅节省大量灯具,而且大大减少更换灯具的工作量,有效地降低了照明系统的运行费用。

1.2国内外发展概况与发展趋势

上世纪90年代,美国率先提出了“绿色照明计划”,这以后,各国也都在不同程度开始对其进行推广工作。

在我国,近几年也加大了扶持LED绿色照明企业的力度,并制定节能认证标准,提高产品技术和质量水平,建立持续、高效发热照明产品市场。

更值得一提的是,国家和地方政府组织的“LED照明产品的大宗采购”,将LED绿色照明产品推广到市政建设、轨道交通、公共空间等领域;同时,开展电力需求管理活动,将绿色照明活动扩展到大型的集团公司、央企及私人企业。

从绿色照明的发展阶段来看,目前正处在产品创新、节能标准进一步规范的环节。

以LED照明产品为例,由于其是一种高效、节能环保的新光源,国家和地方政府已开始从各方面推广和扶持。

然而照明行业的发展也面临着一些难题,例如LED照明市场混乱,低价、质量差的产品居多,为一些性能优异的绿色照明产品的市场占有率造成了很大影响。

除此之外,照明产品标准不明确、节能要求不统一也为其推广造成了困扰。

年初,国家出台的《绿色建筑行动方案》中,倡导节能减排、降低建筑能耗、减少二氧化碳排放、发展绿色建筑,这对绿色照明的发展是有一定的影响和推动作用的。

当然,仅有这个方案也是远远不够的,我认为,在建立绿色建材标准体系时,绿色照明作为绿色建材的一部分也应该纳入标准体系之中。

同时,国家在规范绿色照明标准及要求、对照明产品进行质量管制的同时,也应该为照明企业的产品发展与创新指出阶段性的方向,并适当对绿色照明企业进行扶持。

 

第二章系统总体设计方案与硬件介绍

2.1系统的总体方案设计介绍

命令照明灯状态

           

命令I/O状态(照明灯状态)

 

I/O

 

 

图2.1方案介绍

 

首先控制端,通过网络给网络端口(dm9000网卡)发命令stm32取到命令控制I/O高低电平,控制继电器控制照明灯。

 

2.2系统的硬件设计

电路原理图绘制软件Protel99SE介绍

Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。

2.2.1单片机控制模块设计

普通设计中大多采用51单片机、PIC单片机或者是AVR单片机,这些单片机的缺点是高功耗、性能低并且硬件资源匮乏。

相比之下,STM32系列是基于专为要求高性能、低成本、低功耗的嵌入式应用而专门设计的ARMCortex-M3内核的微控制器。

图2.2STM32F103

1.ARM控制器使用STM32F103,STM32F103是意法半导体推出全新STM32互连型系列微控制器中的一款性能较强产品,此芯片集成了各种高性能工业标准接口,且STM32不同型号产品在引脚和软件上具有完美的兼容性,可以轻松适应更多的应用。

新STM32的标准外设包括10个定时器、两个12位AD(模数转换器)(快速交替模式下2Msample/s)、两个12位DA(数模转换器)、两个I2C接口、五个USART接口和三个SPI端口和高质量数字音频接口IIS,另外STM32F103拥有全速USB(OTG)接口,两路CAN2.0B接口,以及以太网10/100MAC模块。

此芯片可以满足工业、医疗、楼宇自动化、家庭音响和家电市场多种产品需求。

2.STM32F1系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,其内核是Cortex-M3。

该系列芯片按片内Flash的大小可分为三大类:

小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。

3.芯片集成定时器,CAN,ADC,SPI,I2C,USB,UART,等多种功能

内核:

--ARM32位的Cortex-M3,--最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHZ(DhrystONe2.1)--单周期乘法和硬件除法

存储器--从32K到512K字节的闪存程序存储器(STM32F103XXXX中的第二个X表示FLASH容量,其中:

“4”=16K,“6”=32K,“8”=64K,B=128K,C=256K,D=384K,E=512K)--最大64K字节的SRAM电源管理--2.0-3.6V供电和I/O引脚-上电/断电复位(POR/PDR)、可编程电压监测器(PVD)--4-16MHZ晶振振荡器--内嵌经出厂调教的8MHz的RC振荡器--内嵌带校准的40KHz的RC振荡器-产生CPU时钟的PLL--带校准的32KHz的RC振荡器

低功耗睡眠、停机和待机模为RTC和后备寄存器供电

模数转换器--2个12位模数转换器,1us转换时间(多达16个输入通道)--转换范围:

0至3.6V--双采样和保持功能--温度传感器DMA--2个DMA控制器,共12个DMA通道:

DMA1有7个通道,DMA2有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接口,LIN,IRDA接口和调制解调控制)2个SPI接口(18M位/秒)CAN接口(2.0B主动)USB2.0全速接口计算单元CRC计算单元,96位的新批唯一代码封装ECOPACK封装。

图2.3STM32F103电路原理图

图2.4时钟电路

 

图2.5STM32F103引脚分布图

2.2.2DM9000网络通信模块

1.DM9000是一款单芯片快速以太网MAC控制器。

它有一个一般处理接口,一个10/100M自适应的PHY和4KDWORD值的SRAM。

它的目的是在低功耗和高性能进程的3.3V与5V的支持宽容,DM9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用电话线网络设备或其他收发器。

该DM9000支持8位,16位和32位接口访问内部存储器,以支持不同的处理器。

DM9000物理协议层接口完全支持使用10MBps下3类、4类、5类非屏蔽双绞线和100MBps下5类非屏蔽双绞线,完全符合IEEE802.3u规格。

2.DM9000是Davicom公司的一款以太网控制芯片,在网络中他可自动获得同设定MAC地址一致的IP包,完成IP包的收发,再用ARM来结合完成上层协议,就构成了一个完整的网络终端。

图2.6DM9000电路原理图

图2.7驱动电路电路图

3.网卡芯片DM9000和STM32的连接。

首先,可以从硬件上完成网卡芯片DM9000与ARM处理器STM32的三大总线连接,以及和以太网的连接,嵌入式ARM系统和以太网接口连接图

嵌入式系统数据网卡芯片

以太网连接

地址DM

STM32

控制

图2.8连接示意图

4.DM9000默认I/O基地址为300H。

CMD引脚用于设置COMMAND模式,CMD为高时,选择数据端口。

CMD为低时,选地址端口。

数据端口和地址端口的地址码由下式决定:

DM9000地址端口=高位片选地址+300H+0H,DM9000数据端口=高位片选地址+300H+4H

5.DM9000的调试过程

DM9000的调试过程中,首先要确保芯片能否正常工作,即确保MAC地址是存储在EE-PROM中,且MAC地址正常。

对DM9000的寄存器进行读写测试,从PAB0到PAB5把MAC地址写入到DM9000寄存器,然后再读取寄存器来验证它。

其次可以进行EEPROM93C46的字数据测试,进行以太网连接测试,通过连接LED灯的亮灭以及读取NSR寄存器来检查IINKSTbit[6]的状态是否为“1”来验证以太网是否已经连接成功。

进行外部环回测试,使用一个交叉线插到RJ-45,检查能否收到所发送的包。

进行向另一台主机发包、收包的测试,最后连上交换机,把事先编译好的程序下载到处理器中去,验证是否实现联网。

第三章系统软件设计

3.1网络通信协议

TCP/IP协议在全球互联网上取得了巨大的成功,人们通过该协议进行文件传送,电子邮件发送等多种应用,TCP/IP协议已成为事实上的全球网络通信标准。

随着嵌入式系统技术的深入发展,越来越多的嵌入式设备也需要互连成网,协同工作,如无线传感器、信息家电、智能仪表等。

在嵌入式设备中通过TCP/IP协议连接Interact网络需求更加强烈。

在嵌入式系统上运行TCP/IP协议可以使得该系统直接与内部网络甚至全球互联网相联,而不需要引入额外的网关设备,给嵌入式设备通信带来巨大的便利。

嵌入式系统的本身资源有限,并且其应用和功能比较单一,具有较强的针对性,因此不需要一个完整的TCP/IP网络协议组件,只需要实现与需求相关的部分协议,不使用的协议则不需要支持。

另一方面,对于某些特定的嵌入式系统,甚至需要优化TCP/IP协议栈或者在TCP/IP协议栈中编写自己需要的网络协议。

那些不能提供开放源码的商用嵌入式系统的TCP/IP协议栈很难满足用户的配置需求,需要用户自行开发和定制适合自己系统需求的嵌入式

TCP/IP协议栈。

由瑞典计算机科学研究所AdamDunkels开发的uIP0.9,去掉了全功能TCP/IP协议栈中不常用的功能,保留网络通信所必要的协议机制,大大减少了协议代码量,降低了协议对系统资源的要求。

该协议由公开源代码的c语言编写,任何人都可以在网络上下载其源代码并对其进行修改,以适应各自不同的应用场合。

uIP0.9采用模块化设计,其代码量在几千字节左右,仅需要几百字节的内存就可以顺利运行,完全适应当前的嵌入式系统。

3.1.1UIP协议栈及其体系结构

UIP是一个适用于8/16位机上的小型嵌入式TCP/IP协议栈,简单易用,资源占用少是它的设计特点。

其设计重点放在IP、ICMP和TCP协议的实现上,协议虽然也同时实现了UDP和ARP协议,但仅将其作为可选模块。

UIP处于网络通信的中间层,其上层协议在这里被称之为应用程序,而下层硬件或固件被称之为网络设备驱动。

TCP/IP协议组中的链路层协议如PPP等可由UIP之下的设备驱动实现;应用层协议如H33"P、FTP、SMTP等可由UIP之上的应用程序实现。

这样的设计方式大大减小了协议代码量和RAM占用量。

为进一步节省资源占用,简化应用接口,UIP在内部实现上还作了如下特殊的处理:

①采用单一的全局数据收发缓冲区,不支持内存动态分配;

②基于事件驱动的应用程序接口,各并发连接采用轮循处理,仅当网络事件发生时,由UIP内核唤起应用程序处理。

这样,UIP用户只须关注特定应用就可以了。

传统的TCP/IP实现一般要基于多任务处理环境,而大多数8位机系统不具备这个条件;

③应用程序主动参与部分协议栈功能的实现(如TCP的重发机制,数据包分段和流量控制),由UIP内核设置重发事件,应用程序重新生成数据提交发送,免去了大量内部缓存的占用。

基于事件驱动的应用接口使得这些实现较为简单。

正是由于UIP所具有的以上显著特点,自从0.6版本以来就被移植到多种处理器上,包括MSP430、AVR和Z80等。

3.1.2协议栈接口

图1描述了UIP、底层系统和应用程序三者之间的调用关系。

其中UIP协议通过一系列接口函数与底层系统和上层应用程序通信,它内部的协议集合对外部系统来说是透明的,从而增强了该协议的通用性和独立性,可以非常方便地移植到不同系统和应用平台。

图1描述了UIP、底层系统和应用程序三者之间的调用关系。

其中UIP提供了3个函数给底层系统:

uip—init()'uip—input()’uip—periodic()。

应用程序向UIP提供一个调用函数uipappcall(),在网络事件或计时事件发生时进行调用;同时,UIP也要向应用程序提供一些与协议栈的接口函数,应用程序根据接口函数提供的信息或者状态,执行相应的操作。

Uip-appcall()

 

Uip-input()uip-periodc()

 

图3.1UIP、底层系统和应用程序之间的调用关系

设备驱动程序接口:

UIP内核中有两个函数直接提供给底层设备驱动程序。

一个是uip—input(),当设备驱动程序从网络层收到的一个数据包时要调用这个函数,设备驱动程序必须事先将数据包存入到uipbur中,包长放到uip—len,然后交由uip—input()处理。

当函数返回时,如果uip—len不为0,则表明有带外数据(如SYN,ACK等)要发送。

当需要ARP支持时,还需要考虑更新ARP表示或发出ARP请求和回应。

以下代码即为设备驱动程序从网络层收到的个数据包后的处理过程:

#defineBUF((struetuip—eth—hdr*)&uip—buf[O])

uip

len=ethemet

devicedriver

—poll();

//接收以太网数据包(设备驱动程序)

if(uip—len>0){//收到数据

if(BUF一>type:

HTONS(UIP

ETHTYPE

—IP)){

//是IP包吗?

uip

—arp—ipin();//去除以太网头结构,更新ARP表

uip

—input();//IP包处理

if(uip—len>0){//有带外回应数据

uip-arpout();//加以太网头结构,

在主动连接时可能要构造ARP请求

ethemet

devieedriver

—send();

//发送数据到以太网(设备驱动程序)

}

}else

if(sot一>type==HTONS(U1P-ETHTYPE-ARP)){

//是ARP请求包

uip

—arp—arpin();//如是是ARP回应,更新ARP表;

如果是请求,构造回应数据包

if(uip—len>0){

//是ARP请求,要发送回应

ethernet

devicedriver

—send();

//发ARP回应到以太网上

另一个UIP内核直接提供给底层设备驱动程序的函数是uip—periodic(conn)。

这个函数用于UIP内核对各连接的定时轮循,因此需要一个硬件支持的定时程序周期性地用它轮循各连接,一般用于检查主机是否有数据要发送,如有,则构造IP包。

以下示例即为UIP内核对各连接的定时轮循过程:

for(i=0;i

uip

—periodic(i);

if(uip—len>O){

uip

—arp—out();

ethemet

devicedriver

—send();

从本质上来说,uip—input()和uip—periodic()在内部是一个函数,即uip—process(u8一tflag),uIP的设计者将uip—process(UIP—DATA)定义成uip_intput(),而将uip—process(UIP—TIMER)定义成uip—periodic(),因此从代码实现上来说是完全复用的。

应用程序接口:

UIP使用基于事件的程序模式,应用程序由c语言函数实现。

当收发数据、新连接建立或者数据需要重新传输时,UIP都会调用应用程序。

同时,应用程序还要周期查询是否有新的数据收发。

因为应用程序只提供了一个回调函数,所以应用程序还要把不同的网络服务映射到不同的端13和连接。

UIP在接受到底层传来的数据包后,如果需要送上层应用程序处理,就调用UIP—APPCALL()。

同时设置结构体UIP—eonn指针指向当前连接。

UIPconn记录一条TCP连接的所有相关信息,它是维持UIP运行的关键结构,定义如下:

struct【cp—conn{

u8一ttcpstateflags;//TCP的状态和标志

ul6

一tlport,rpert;//当地和远端端口

ul6

一tfipodar[2];//远端的地址

u8

trcv

nxt[4];//下一个要接收的序列号

u8

tsod

—xt[4];∥上一个已发送的序列号

u8

一taek-nxt[4];//对端下一个应答序列号

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1