快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx

上传人:b****5 文档编号:6854484 上传时间:2023-01-11 格式:DOCX 页数:29 大小:478.90KB
下载 相关 举报
快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx_第1页
第1页 / 共29页
快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx_第2页
第2页 / 共29页
快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx_第3页
第3页 / 共29页
快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx_第4页
第4页 / 共29页
快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx

《快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx》由会员分享,可在线阅读,更多相关《快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx(29页珍藏版)》请在冰豆网上搜索。

快电场仪基于51单片机的驱动程序设计1毕业论文学术论文.docx

快电场仪基于51单片机的驱动程序设计1毕业论文学术论文

快电场仪驱动程序设计

 

快电场仪驱动程序设计

摘要

我国是个自然灾害频发的国家,其中每年因为雷电灾害导致的企业或个人的设备损坏造成的经济损失已经很是严重,因此,我们针对雷电灾害所带来的影响需要一个完善的预警系统,在我们的快电场仪研究就是为了更好的预警雷电静电感应所带来的危害。

快电场仪驱动程序设计是研究快电场的一个软件开发模块,通过对程序的设计,以实现硬件和PC机之间的通信。

由于我们团队的硬件采用51单片机AT89S52和USB接口芯片PDIUSBD12组成的单片机最小系统来实现一个完整的USB设备。

单片机控制器作为下位机,需要设一个针对D12芯片的51单片机的下位程序,称为固件程序;结合硬件电路板运用DriverStudio生产简易驱动框架来开发USB驱动程序,称为驱动程序;根据我们需要,检测到硬件的条件下还需要一个调试程序,称为应用程序。

结合三个程序组成了本次快电场仪驱动程序的设计,配合其他三位同学的成果共同完成本课题的研究。

关键词:

USB;固件程序;驱动程序;应用程序

Fast ElectricFieldInstrument DriverDesign

Abstract

Chinaisacountryoffrequentnaturaldisasters,producedbythelightningcurrentcausedbyelectromagneticandelectrostaticinductionelectronicequipmenteachyeargavetheenterpriseandtheindividualeconomicpropertydamageandcausingseriouslosses,therefore,establishaneffectivelightningmonitoringofearlywarningsystemsandresearchtheappropriatewarningforecastingmethods,hassignificance.

Fastelectricfieldinstrumentdriverprogramdesignisasoftwaredevelopmentmoduleoftheresearchingfastelectricfield.Throughtheprogramdesign,InordertorealizethecommunicationbetweenthehardwareandPC.

Becauseourteamisused51singlechipmicrocomputerandUSBinterfacechipPDIUSBD12inhardwaretoachieveacompleteUSBequipment.ItcanexchangedatawithPC,andrealizeitsexpandingfunction,throughconnectingwithPC.Incombinationwithothertwoclassmateshardwareandvirtualoscilloscope,Theelectricfieldinstrumentresearchisreflectedinthewaveform,inordertoachieveouraim.Accordingtoresearchneeds,Irequiresthedevelopmentthreemodules,includefirmware,driversandapplicationsinthispart.Composesoffastelectricfieldinstrumentdriverprogramdesign.Withtheotherthreestudentsachievementstogethercompletetheresearchonthissubject.

Keywords:

USB;Firmware;Driver;Application

1.引言

1.1快电场仪研究的意义与目的

雷电灾害是联合国公布的最严重的十种自然灾害之一。

全世界平均每分钟发生雷暴二千次,每年因雷击造成的人员伤亡超过一万人[1],导致火灾、爆炸、信息系统瘫痪等事故频繁发生,每年因雷击造成的直接经济损失达二十亿美元以上。

就整个地球而言,地球上任何时候都有雷电在活动,每秒钟的落地闪就有30~100次,而在地球表面各地,有时顷刻间就有2000个左右的闪电,平均每天发生闪电800万次,每次闪电在微秒量级的瞬间释放出约55kW•h的能量。

因此,雷电灾害对我们的生活与工作中造成了严重损失。

作为一种雷电预警设备,大气电场仪在我国只是最近才被人们所重视。

它是一种通过监测地面电场的实时变化实现对带电云层活动状况进行监测的设备,因此可以实现对雷电的短时预警。

目前地面电场仪主要应用于气象观测站或高尔夫球场、大型运动场等一些露天场所,以单站点对小范围内进行雷电预警为主,存在着预警成功率低、提前预警时间不容易控制的缺点。

同时,国内市场上大都是国外已经产品化的场磨式仪器,分为室外和室内两部分,都以单点探测为主,价格一般都比较昂贵。

国内对地面电场仪的研究最早开始于80年代初,但是大多研究旋转式或场磨式大气电场仪,没有能快速观测大气电场变化的快电场仪观测设备,并且现在大多电场仪也不能进行数据的快速记录以及转换。

基于以上原因,导师提出了快电场仪的设计与研究,我负责协助小组其他三名同学共同完成快电场仪的设计开发,负责其中驱动程序的设计。

我们在设备结构、信号处理、数据传输上充分考虑了建设成本和设计的实际需要,优化系统设计,通过在学校观测场的实地观测试验,在获得了大量探测数据的同时对设备的可靠性进行了测试,最终经过进一步的修改和完善,最终完成了快电场仪的设计方案。

1.2本课题研究的意义

随着雷雨云的发展,起电过程逐渐增强,电荷逐渐累积,云内外大气电场增大,云下的地面电场强度也随着雷雨云的发展演变而发生剧烈变化,地面大气电场仪通过感应测得雷雨云中电荷产生的静电场以及电场的极性和连续变化,从而得到雷雨云中强电荷中心的演变信息。

由于地面大气电场是空中所有带电物在地面产生电场的矢量和,所以单点地面大气电场的测量不能准确地反映雷雨云中的雷电活动状况,需要地面电场仪的组网观测,利用空间电场反演计算模型,根据电场资料反演得到可靠的雷雨云中强电荷中心的强度、极性和分布,确定雷雨云的空间位置;并结合区域内闪电定位系统提供的闪电位置信息,进行雷电的预警预报。

因此,设计出既便宜又可靠,而且方便大规模生产的快电场仪方案对于雷电预警有着极为重要的意义。

1.3系统实现的功能

快电场仪系统主要是一个人机接口设备,结合天线接收信号传输到PC机上,在虚拟示波器上显示出来波形来完成我们课题的目的。

我主要完成的是USB设备程序设计的基本功能,即主机对设备的列举和中断方式的数据传输。

这两点是USB设备所必须拥有的功能,可以称作USB设备的基本功能。

硬件设备主体由AT89S52和PDIUSBD12以及AD快速转化来实现天线接收信号的快速转化与传输,设备主体接上主机之后,能够单独完成设备的识别和配置,并可以快速实现数据通信功能。

2.软件介绍

2.1KeiluVision2

KeiluVision2是德国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。

KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。

C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。

C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:

编译器、汇编器、实时操作系统、项目管理器、调试器。

uVision2IDE可为它们提供单一而灵活的开发环境。

2.2DDK

DDK即DriveDevelopmentKit,也就是驱动开发包的意思。

一般指windows设备驱动程序开发包。

Windows2000DDK适合开发Windows2000/98/Me的WDM驱动程序,Windows2000下NT4型驱动程序。

WindowsXPDDK适合开发IA64下的驱动程序或WindowsXP/2000/Me的WDM驱动程序,WindowsXP下NT4型驱动程序。

Windows2003DDK适合开发AMD64/IA64下的驱动程序或Windows2003/XP/2000/Me的WDM驱动程序,Windows2003/XP/2000下NT4型驱动程序。

为了方便起见,我们使用第三方的开发工具是Driver Studio,它将DDK的内容封装成类,而且提供一个快速方便地生成驱动框架的工具。

在安装Driver Studio之前需下载并正确安装WindowsXPDKK。

2.3VC++软件

VC++应用基于MFCAppWizard的应用程序。

MFC(MicrosoftFoundationClassLibrary)中的各种类结合在一起从而构成的一个应用程序的框架,目的就是在此基础上建立Windows下的应用程序,这是一种比SDK更为简单的方法。

因为在总体上,MFC框架大致定义了应用程序的轮廓,并提供了给用户接口标准实现的方法,要做的就是通过定义好的接口把具体应用程序所特有的东西填入到这个轮廓中去。

MicrosoftVisualC++提供了相应的工具来完成这个工作;AppWizard能够用来生成初步的框架文件比如:

代码以及资源等;资源编辑器常用于帮助更直观地设计用户接口;ClassWizard用来协助框架文件里面代码的编写;最后,编译则通过VC++的编写来实现了应用程序特定的逻辑,从而编写出我们需要的驱动程序。

在此,我们选择MicrosoftVisualC++6.0为我们编译程序的工具。

2.4DriverStudio

DriverStudio是一套用来把微软Windows简单化的平台下的设备驱动程序的开发、调试以及测试的工具包。

DriverStudio目前的版本主要使用下列几种工具模块:

(1)DriverAgent的功能能够让Win32应用程序直接访问硬件。

即便我们没有一点开发设备驱动程序的经验,也能够编出DriverAgent应用程序,能够用来直接访问硬件。

DriverAgent应用程序能够在Windows98,以及Windows95,WindowsNT,Windows2000以及WindowsXP平台上运行。

(2)VToolsD是一个能够开发出针对Win9X(Windows95以及Windows98)操作系统下的设备驱动程序的开发工具。

VToolsD中有生成驱动程序的源代码的工具,run-time以及interface库,还有部分驱动程序的样本提供,能够用来为不同类型的设备驱动提供驱动程序的公共基础部分。

(3)DriverWorks对于WindowsNT下以及Windows98与Windows2000一起支持的Win32驱动模型(WDM)设备驱动程序的开发能够提供绝对的支持。

DriverWorks中包含一个非常完善的源代码的生成工具(DriverWizard)以及一些相应的类库以及驱动程序的样本,它能够提供在VC++下进行的设备驱动程序开发的支持。

我的底层开发运用的是DriverWorks以及调试工具。

在安装DriverWorks之前,首先要保证你的计算机上已经安装了MicrosoftVisualC++以及WindowsXPDDK。

所有这些包括DriverStudio的安装都需要以系统管理员身份启动系统才能正确使用。

3USB协议

3.1USB系统的使用分类及系统的描述

USB设计的初衷就是针对桌面电脑而不是应用于可移动的环境下的使用。

软件体系就是通过对各种主机控制器提供一定支持从而保证将来对USB的扩充[3]。

USB是一种电缆通用总线,能支持在电脑主机以及各式各样的即插即用的外部设备之间进行数据的传输。

根据主机预置好的标准协议从而使各种设备能够分享USB带宽,当其它的设备以及主机在运行的时候,总线会允许添加和设置以及使以及拆除外部设备。

USB系统的描述如下:

一个USB系统主要可以被定义为三个部分:

USB的相互连接、USB的设备以及USB的主机。

USB的互连的意识是指USB的一种操作,这个操作就是设备与主机进行连接以及通信,主要包括以下几方面:

(1)总线的拓扑结构:

USB的设备与主机之间的各种各样的连接方式;

(2)内部层次关系:

根据性能叠置,USB的任务被分配到系统的每一个层次;

(3)数据流模式:

主要描述数据通过USB在系统中从产生方到使用方的流动方式[3];

(4)USB的调度:

USB提供一个共享的连接。

对能够使用的连接进行调度以支持同步数据传输,而且避免了优先级判别的选定。

USB的设备如下所示:

(1)网络集线器:

可以为USB提供了更多的连接点,比普通的串口拥有多一些的连接点;

(2)功能器件:

提供了专门针对系统的具体功能,比如ISDN的连接,数字的游戏杆或者扬声器,比较有针对性的功能。

USB设备提供的USB标准接口的主要依据:

(1)对USB协议的运用;

(2)对标准USB操作的反馈,比如设置以及复位;

(3)标准性能的描述性信息;

USB传输方式:

USB总线属于一种轮讯方式的总线,主机就能控制端口初始化的所有的数据传输。

而且总线的每一哥执行动作最多可以传送三个数据包。

依照传输以前就制定好的原则,在每一次传送开始的时候,主机控制器会发送一个描述传输运作的种类以及方向,USB设备地址以及终端号的USB数据包,这个数据包通常称为标志包。

在传输开始的时候,由标志包来标志数据的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送。

接收端也要相应发送一个握手的数据包表明是否传送成功。

发送端以及接收端之间的USB数据传输,在主机以及设备的端口之间,可视为一个通道。

存在两种类型的通道:

流以及消息。

流的数据不像消息的数据,它没有USB所定义的结构,而且通道与数据带宽、传送服务类型,端口特性(如方向以及缓冲区大小)有关。

USB中有一个特殊的通道——缺省控制通道,它属于消息通道,当设备一启动即存在,从而为设备的设置、查询状况以及输入控制信息提供一个入口。

3.2总线拓扑

通用串行总线将通用串行总线设备以及主机连接起来。

通用串行总线的物理连接是一个层层排列的星型拓扑结构。

图3-1显示了通用串行总线的拓扑结构。

图3-1通用串行总线的拓扑结构

由于集线器以及电缆的传播时间限制,允许的最大层数是七层(包括根部层)。

在第七层中,主机以及任何设备的通信路径能够最多支持五个非根集线器。

一个复合设备占有了两个层(见图3-1),当它处以第七层时是不能被使用的。

只有功能部件才能在第七层使用。

任何通用串行总线系统中只有一个主机。

主机计算机系统的通用串行总线接口称作主机控制器。

主机控制器可由硬件、固件或软件整合实现。

根集线器集成在主机系统内部,能够提供一个或多个连接点。

3.3USB物理接口的电器特性

3.3.1USB物理接口

USB传送信号以及电源是通过一种有四根线的电缆,其中的两根线是用于发送信号。

存在两种数据传输率:

图3-2 USB物理接口

(1)USB的高速信号的比特率定为12Mbps;

(2)低速信号传送的模式定为1.5Mbps;

电缆中包括VBUS和GND二条线,同时为设备提供电源。

其中VBUS使用+5V电源[4]。

USB要求电缆的长度一定要很宽,最长可为几米。

为了匹配指定的IRdrop以及其它一些特性,因此一定要选择合适的导线长度,比如设备的能源预算以及电缆的适应度。

目的就是为了保证一定要要的输入电压以及终端的阻抗。

最重要的终端设备是位于电缆的尾部的。

在每个端口都可以检测出终端是否连接或者分离,并区分出高速,或低速的设备,从而实现了有效的USB方便、快捷的目的。

3.3.2电源

主要包括两方面:

(1)电源分配:

电源分配能够简单的解释为即USB的设备如何通过USB分配从而得到由主计算机提供的能源。

每个USB单元只能通过电缆提供有限的能源。

主机针对那种相连的USB设备直接提供电源使其能够用的。

而且每个USB设备也许都有自己本身的电源。

那些稚嫩通过电缆提供足够的能源的设备称作“总线供能”设备。

另外一些相反的,那些可以选择能源来源的设备称作“自供电”设备。

而且,集线器也能够为与之相连的USB设备提供一定的电源。

(2)电源管理:

就是通过电源管理系统,使得USB的系统软件以及设备与主机如何的协调好工作。

USB主机与USB系统有彼此独立的电源管理系统。

USB的系统软件能够与主机的能源管理系统结合一起共同来处理不同的电子元件比如挂起以及唤醒,而且更有特色的是,USB设备应用具体特有的电源管理特性,那就是可让系统软件以及控制其中的电源管理。

3.4USB物理体系结构

USB总线设备通过星型的拓扑结构来达到与主机的物理连接的目的,其物理拓扑结构如图3-3所示。

USB的接入点一般由集线器(Hub)提供。

这些由集线器提供的额外的接入点被称为端口(Port)。

主机中包含了一个嵌入的集线器,被称为根集线器(Roothub)通过根集线器,主机能够提供一个或者多个接入点。

能够提供主机需要的附加功能的设备称为功能模块。

为了避免出现环形接入的特殊情况,在USB使用的过程使用了分层的拓扑结构。

这种结构一般都是树型结构。

通过集线器的使用来扩展从而可以连接多达127个外部设备。

图3-3USB物理总线拓扑结构

USB的电缆有4根线,其中的两根传送的是十5V电源,另外两根仅仅是数据线而已。

其解释如表3-1所示。

信号线的特殊性阻抗为9052,而信号送入信号线的方式是利用差模方式。

通过这种差模的传输方式,可以使得接收端的灵敏度能够达到高于200mV。

功率很小的外部设备能够直接通过USB总线电源供电,而不需要外接电源,USB总线最多能够提供5V,500mA电源,并且支持挂机以节约能源以及唤醒模式。

表3-1USB电缆信号定义

编号

信号名称

颜色

注释

1

VBUS

红色

电源线

2

D-

白色

-数据

3

D+

绿色

+数据

4

GND

黑色

地线

3.5USB低层通信协议

USB协议定义串行数据线路上发生的动作。

可用的数据传输时间(带宽)被划分成帧,每个帧lms长,一个全速的数据帧最多含有1500字节,而对于低速的帧最多含有187字节。

(1)包

在串行线路上传输的最小数据块是包,它仅沿一个方向发送,要么来自主机,要么发送给主机。

一个包通常由同步信号、包标志(PID)、地址、传送的数据和CRC等组成。

PID由8位组成,其中后4位是纠错位。

有4类10个PID如表1.2所示。

(2)事务

事务是主机和一个设备之间使用一个或多个包的离散交互。

一个事务通常由主机开始,一般分三个阶段,第一阶段发送令牌(token)包,第二阶段发送是数据(data)包(可以沿任何一个方向发送),在数据包传送完之后,就会由设备返回一个握手(handshake)包。

(3)帧开始(SOF)

SOF包由主机发送,指示一个帧的开始。

这个包包括一个11位的帧号,这个帧号从0到Ox7FF连续变化,并重新折回0,SOF包被所有高速设备看到。

像任何其它包一样,SOF包可能被破坏。

(4)事务包结构

控制传输涉及主机给设备发送一个SETUP包、任一方向的0个或多个DATA包以及一个握手包。

IN包或OUT包开始所有其它的传输。

设备端点的定义确定它是中断传输、块传输还是同步传输。

主机定时启动中断传输,看设备端点是否有任何数据可用。

设备端点可以返回数据。

另外,设备可能发送NAK,指示没有可用的数据,或者状态没有改变[5]。

3.6USB2.0系统配置

USB设备能够随时的安装以及折卸,因此,在物理的总线的系统软件布局上一定要支持这种动态变化.

3.6.1USB设备的安装

所有的USB设备都是通过接在USB上的端口,网络的集线器知道了这些指定的USB设备,集线器出现有一个状态指示器会直接指明在其中的某个端口上,USB设备是否被安装或者被拆除了,主机将会把所有的集线器排成队列,然后,以读取回其状态指示。

在USB设备安装以后,主机激活该端口必须通过设备控制通道,同事还可以把预设的地址值传递给USB设备。

  主机针对每一个设备指定的唯一的USB地址。

不仅会起到检测作用还可以起功能重要,并且可以检测这种新装的USB设备到底是集线器还是功能部件。

主机一旦为USB设备建立了控制通道,就会使用指定的USB的地址以及零号端口。

  如果安装的USB设备是集线器,而且USB设备连在其端口上,那上述过程,每个USB设备的安装都必须重新要做一遍。

  如果安装的设备是功能部件的话,那么主机中的关于该设备的软件将因设备的连接而被引发.那样就不需要单独安装,会很方便。

3.6.2USB设备的拆卸

当USB设备从集线器的端口拆除以后,集线器将会自动关闭该端口,而且会向主机报告该设备已经不存在。

然后USB的系统软件将会准确地进行处理,如果去除的是USB设备上的集线器,USB的系统软件将自动对反链在集线器上的所有的设备进行处理。

3.6.3总线标号

总线标号就是指定出针对连接在总线上的设备的唯一的地址的一种动作,因为USB允许USB设备在任何时刻都可以从USB上安装或者拆卸,所以总线标号是USB的系统软件从头到尾都要做的动作,而且总线标号同时还包括对拆除设备的检测以及处理。

3.7数据流种类

在主机以及USB设备间的交换的时候,数据以及控制信号都存在两种通道:

单向以及双向。

USB的数据是在主机软件以及一个USB设备的指定端口之间进行传送。

这种主机软件以及USB设备的端口之间的联系称作通道。

总的来说,各通道之间的数据之间的流动是相互独立的,没有什么联系的。

此外,一个指定的USB设备可有许多不同的通道。

例如,一个USB设备就存在一个端口,可以建立一个发送数据的通道,可以向其他USB设计发送数据,同时它也可以建立一个通道,这个通道可以从其它USB设备的端口接收数据。

USB的结构包含数据传输有以下四种基本的类型:

(1)控制数据传送:

用来对在设备连接的时候进行设置,还可以对指定的设备进行控制,比如通道控制;

(2)批量数据传送:

大批量产生并且使用的数据,在传输受到约束的情况下,具有很广的动态范围;

(3)中断数据的传送:

用来描述或者匹配人的感觉,以及对特征反应的回馈;

(4)同步数据的传送:

由之前就确定的传送延迟来填满预定的USB带宽。

3.8USB带宽

USB的带宽可以分配给各种通道,当一个通道建立起之后,USB就会分配给它一定的带宽,但是当USB设备需要提供一些数据缓冲的时候。

如果USB提供了更多带宽,那么需更多的缓冲区。

不过USB的体系必

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

当前位置:首页 > 法律文书 > 调解书

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

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