还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
USB虚拟示波器设计-LabVIEW实现内容提要随着计算机技术的快速发展,计算机技术已经渗入到各个领域由于计算机的快速性、稳定性、高精度等特点,基于计算机技术的现代仪器也快速的发展起来,虚拟仪器应运而生,在对精度、稳定性等方面要求高的场合,虚拟仪器将逐渐取代传统仪器虚拟示波器,是将计算机强大的计算处理能力和一般硬件仪器的信号采集,控制能力结合在一起,从而实现一般示波器所不能实现的功能和友好的界面随着计算机技术的发展,使得虚拟仪器的实现成为可能,传统仪器的一些专用处理器和设备,被计算机的通用设备所代替,常用的虚拟仪器,多采用PCI或ISA插槽,将各种硬件连接到一起,然而采集卡的数量一般有限,因此组织系统的时候,只能指定特定的计算机,或打开计算机盖装入专门的采集卡,在使用笔记本电脑或工业一体化电脑的场合,根本就不支持PCI或ISA总线的设备本文围绕“虚拟示波器”这一热点课题,阐述了基于USB的无线虚拟示波器的设计方案、开发方法、开发过程在设计中使用了TI公司的单片机MSP430F
1611、ATMEL公司的AVR系列单片机ATMEGA16L、Philips公司的USB器件芯片以及NordicSemiconductorASA公司的增强型无线通信芯片nRF24L01利用MSP430F1611芯片内置的A/D采样实现数据采集,并通过无线模块将数据传输到主机;ATGMEGAL16L实现数据的接收并与USB通信关键词A/D采样无线传输USB虚拟仪器ATMEGA16LnRF24L01PDIUSBD12USBvirtualoscilloscopedesign--LabVIEWtoachieveAbstract Withtherapiddevelopmentofcomputertechnologycomputertechnologyhasinfiltratedintoeveryfield.Asthecomputersfaststablehigh-precisionandotherfeaturesofmoderncomputer-basedtechnologyequipmentisalsorapidlydevelopedvirtualinstrumentcameintobeinginontheaccuracyhighstabilityandsoontheoccasionthevirtualmachineswillbegraduallyreplacedbyTraditionalinstruments.ThereforeweneedamoreconvenientandmoreeffectiveandflexiblecommunicationbustoachievevirtualmachinesmoderncomputerwithaUSBinterfaceingeneraltheUSBinterfaceandtheuseofflexibleconvenientsofirstofallconsidertheUSBbus.USBbusisIntelIBMNECMicrosoftandsoon7well-knownbuscompanysnext-generationtechnologyfollowingtheadoptionofanewgenerationofUSBbusPCconfigurationofthenewmachineshardwaredevicesdonothavetoflipopenandhotswapsupportTechnologytothegreatconveniencetousersthroughtheUSBhubtoexpandupto127devicesandthroughthe3-5mofcabletoconnecttothecomputerbycollectingcardsclosetothetestobjectthusgreatlyimprovingtheelectromagneticCompatibilitystandardsintheagreementUSB
1.1inUMBbustransferrateupto
1.5-12Mb/sandintheUSB
2.0specificationtherateofupto360Mb/s.Sucharatesufficienttomeetthevastmajorityofoccasions.InthispaperaroundavirtualoscilloscopehottopicsontheUSB-basedwirelessvirtualoscilloscopedesigndevelopmentmethodsthedevelopmentprocess.InthedesignusedinTIssingle-chipMSP430F1611ATMELsAVRfamilyofsingle-chipATMEGA16LPhilipsschipUSBdevicesaswellastheNordicSemiconductorASAsenhancedwirelesscommunicationschipsnRF24L
01.MSP430F1611usethebuilt-inchipA/Dsamplingdatacollectionandwirelessdatatransmissionmoduletothehost;ATGMEGAL16LdatareceptionandcommunicationwiththeUSB.Keywords:A/DsamplingwirelesstransmissionUSBvirtualinstrumentATMEGA16LnRF24L01PDIUSBD12目录TOC\o1-2\h\z\u
一、引言1
(一)虚拟仪器的概念1
(二)虚拟仪器的组成2
(三)虚拟仪器的性能特点3
(四)虚拟仪器的发展及应用5
(五)虚拟仪器在中国的应用5
(六)LabView简介6
(七)LabVIEW的特点8
(八)通用串行总线(USB)简介9
二、方案分析13
(一)采样控制器的选取13
(二)无线传输模块的选取13
(三)USB芯片的选取14
(四)USB设备控制器选取16
(五)系统整体设计17
三、系统硬件设计18
(一)A/D采样衰减电路18
(二)A/D采样电压抬升电路19
(三)A/D采样控制电路19
(四)无线模块nRF24L01工作电路19
(五)USB模块工作电路21
(六)USB及nRF24L01主控板电路22
(七)串口调试电路23
四、软件设计23
(一)数据流图23
(二)下位机软件流程图24
(三)应用程序设计30
五、结论及展望32致谢33附录34附录一A/D采样程序34附录二nRF24L01无线传输模块数据收发程序36附录三nRF24L01接收程序(AVR)40附录四LabVIEW界面VI程序45参考文献46
一、引言
(一)虚拟仪器的概念美国国家仪器公司(NI)在20世纪80年代最早提出虚拟仪器(VirtualInstrument,简称VI)的概念其核心的思想是利用计算机的强大资源使本来需要硬件实现的技术软件化,以便最大限度地降低系统成本,增强系统功能与灵活性虚拟仪器,就是在以通用计算机为核心的硬件平台上,由用户设计定义、具有虚拟前面板、测试功能由测试软件实现的一种计算机仪器系统其基本思想就是在测试系统或仪器设计中尽可能地用软件代替硬件,即“软件就是仪器”虚拟仪器的基本构成包括计算机、虚拟仪器软件、硬件接口模块等用户可以通过友好的图形界面(这里称作虚拟前面板)操作计算机,如同操作功能相同的单台传统仪器一样在以PC计算机为核心组成的硬件平台支持下,虚拟仪器通过软件编程设计来实现仪器的测试功能,而且可以通过不同测试功能的软件模块的组合来实现多种测试功能虚拟仪器采用的开发平台LabVIEW现在已经成为行业标准的测试测量软件平台LabVIEW软件为不同领域的工程师简化了各种技术融合的复杂性,帮助工程师通过同一个软件平台,在第一时间内运用最先进的主流商业技术,加快工作效率例如一个没有学习过FPGA编程的工程师使用LabVIEWFPGA模块,可以借助LabVIEW这一已经掌握的工具开发FPGA应用,使用其自动生成的VHDL代码,而无需花时间了解FPGA的技术细节LabVIEW的优势在于其图形化的编程方式,直观、便于用户自定义;LabVIEW可集成多种I/O和硬件平台;并且可以连接到多种第三方算法和不同的测试仪器虚拟仪器系统概念是对传统仪器概念的重大突破,是计算机系统与仪器系统技术相结合的产物它利用计算机系统的强大功能,结合相应的硬件,大大突破传统仪器在数据处理、显示、传送、处理等方面的限制,使用户可以方便地对其进行维护、扩展、升级等虚拟仪器系统可以广泛地应用在通讯、自动化、半导体、航空、电子、电力、生化制药、和工业生产等各种领域现有的虚拟仪器系统按硬件工作平台主要可分为基于PC总线的虚拟仪器、基于VXI的虚拟仪器、基于PXI的虚拟仪器,所应用场合不同各有其特点虚拟仪器技术就是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用灵活高效的软件能帮助您创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求这也正是NI近30年来始终引领测试测量行业发展趋势的原因所在只有同时拥有高效的软件、模块化I/O硬件和用于集成的软硬件平台这三大组成部分,才能充分发挥虚拟仪器技术性能高、扩展性强、开发时间少,以及出色的集成这四大优势
(二)虚拟仪器的组成虚拟仪器技术的三大组成部分首先是高效的软件,软件是虚拟仪器技术中最重要的部份使用正确的软件工具并通过设计或调用特定的程序模块,工程师和科学家们可以高效地创建自己的应用以及友好的人机交互界面NI公司提供的行业标准图形化编程软件——LabVIEW,不仅能轻松方便地完成与各种软硬件的连接,更能提供强大的后续数据处理能力,设置数据处理、转换、存储的方式,并将结果显示给用户此外,NI 提供了更多交互式的测量工具和更高层的系统管理软件工具,例如连接设计与测试的交互式软件SignalExpress、用于传统C语言的LabWindows/CVI、针对微软Visual Studio的Measurement Studio等等,均可满足客户对高性能应用的需求有了功能强大的软件,您就可以在仪器中创建智能性和决策功能,从而发挥虚拟仪器技术在测试应用中的强大优势其次是模块化的I/O硬件,面对如今日益复杂的测试测量应用,NI提供了全方位的软硬件的解决方案无论您是使用PCI PXI PCMCIA USB或者是1394总线,NI都能提供相应的模块化的硬件产品,产品种类从数据采集、信号条理、声音和振动测量、视觉、运动、仪器控制、分布式I/O到CAN接口等工业通讯,应有尽有NI高性能的硬件产品结合灵活的开发软件,可以为负责测试和设计工作的工程师们创建完全自定义的测量系统,满足各种独特的应用要求目前,NI已经达到了每2个工作日推出一款硬件产品的速度,大大拓宽了用户的选择面例如NI新近推出的新一代数据采集设备——先期推出的20款M系列DAQ卡,就为数据采集领域设定了全新的标准最后是用于集成的软硬件平台NI首先提出的专为测试任务设计的PXI硬件平台,已经成为当今测试、测量和自动化应用的标准平台,它的开放式构架、灵活性和PC技术的成本优势为测量和自动化行业带来了一场翻天覆地的改革由NI发起的PXI系统联盟现已吸引了68家厂商,联盟属下的产品数量也已激增至近千种PXI作为一种专为工业数据采集与自动化应用度身定制的模块化仪器平台,内建有高端的定时和触发总线,再配以各类模块化的I/O硬件和相应的测试测量开发软件 ,您就可以建立完全自定义的测试测量解决方案无论是面对简单的数据采集应用,还是高端的混合信号同步采集,借助PXI高性能的硬件平台,您都能应付自如这就是虚拟仪器技术带给您的无可比拟的优势虚拟仪器是利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用灵活高效的软件能创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求虚拟仪器的本质是利用现有的计算机,加上特殊设计的仪器硬件和专用软件形成既有普通仪器的基本功能又有一般仪器所没有的特殊功能的高档低价的新型仪器它是利用计算机强大的图形环境和在线帮助功能,建立虚拟仪器面板,以代替传统仪器完成对仪器的控制、数据分析和显示功能虚拟仪器的输入输出由数据采集卡、GPIB卡等硬件模块完成,仪器的功能主要由软件构成虚拟仪器系统框图如图1所示 图1虚拟仪器系统框图一套完整的虚拟仪器系统的结构一般来说分为四层1.测试管理层用户使用虚拟仪器生产厂商开发的应用程序,组成自己的一套测试仪器这是虚拟仪器的优点之一,它可以方便地使用户根据自己的需要,自己的风格建立自己的测试仪器2.应用(程序)开发层由生产商提供的软件开发工具,如NI(NATIONALINSTRUMENTS)公司的LabVIEW软件,LabWindows/CVI软件用户可以用这类软件进行深层开发,以扩展仪器原有的功能3.仪器驱动层由生产商开发,针对不同类型的仪器有不同的驱动程序接口为给用户提供方便、易用的仪器驱动程序,泰克公司、惠普公司和美商国家仪器公司等35家国际上最大的仪器公司成立了VXIplugplay系统联盟,并于推出VISA(Virtu-alInstrumentSoftwareArchitecture)标准4.I/O总线驱动层由生产商开发,用于将不同类型的实际仪器通过相同标准的总线连接起来形成一套完整的测试系统,如得到广泛应用的VXI(开放式测量系统)总线系统
(三)虚拟仪器的性能特点虚拟仪器彻底改变了传统仪器由生产厂家定义功能的模式,而是在少量附加硬件的基础上,由用户定义仪器功能因为它的运行主要依赖软件,所以修改或增加功能、改善性能都非常灵活,也便于利用PC的软硬件资源和直接使用PC的外设和网络功能虚拟仪器不但造价低,而且通过修改软件可增加它的适应性,进而延长它的生命周期,是一种具有很好发展前景的仪器与传统仪器相比,虚拟仪器具有高效、开放、易用灵活、功能强大、性价比高、可操作性好等明显优点,具体表现为1.智能化程度高,处理能力强虚拟仪器的处理能力和智能化程度主要取决于仪器软件水平用户完全可以根据实际应用需求,将先进的信号处理算法、人工智能技术和专家系统应用于仪器设计与集成,从而将智能仪器水平提高到一个新的层次虚拟仪器技术是在PC技术的基础上发展起来的,所以完全“继承”了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使您在数据高速导入磁盘的同时就能实时地进行复杂的分析此外,不断发展的因特网和越来越快的计算机网络使得虚拟仪器技术展现其更强大的优势2.应用性强,系统费用低应用虚拟仪器思想,用相同的基本硬件可构造多种不同功能的测试分析仪器,如同一个高速数字采样器,可设计出数字示波器、逻辑分析仪、计数器等多种仪器这样形成的测试仪器系统功能更灵活、更高效、更开放、系统费用更低通过与计算机网络连接,还可实现虚拟仪器的分布式共享,更好地发挥仪器的使用价值NI的软硬件工具使得工程师和科学家们不再圈囿于当前的技术中得益于NI软件的灵活性,只需更新您的计算机或测量硬件,就能以最少的硬件投资和极少的、甚至无需软件上的升级即可改进您的整个系统在利用最新科技的时候,您可以把它们集成到现有的测量设备,最终以较少的成本加速产品上市的时间3.操作性强,易用灵活虚拟仪器面板可由用户定义,针对不同应用可以设计不同的操作显示界面使用计算机的多媒体处理能力可以使仪器操作变得更加直观、简便、易于理解,测量结果可以直接进入数据库系统或通过网络发送测量完后还可打印、显示所需的报表或曲线这些都使得仪器的可操作性大大提高而且易用、灵活虚拟仪器技术从本质上说是一个集成的软硬件概念随着产品在功能上不断地趋于复杂,工程师们通常需要集成多个测量设备来满足完整的测试需求,而连接和集成这些不同设备总是要耗费大量的时间NI的虚拟仪器软件平台为所有的I/O设备提供了标准的接口,帮助用户轻松地将多个测量设备集成到单个系统,减少了任务的复杂性4.开发时间少在驱动和应用两个层面上,NI高效的软件构架能与计算机、仪器仪表和通讯方面的最新技术结合在一起NI设计这一软件构架的初衷就是为了方便用户的操作,同时还提供了灵活性和强大的功能,使您轻松地配置、创建、发布、维护和修改高性能、低成本的测量和控制解决方案
(四)虚拟仪器的发展及应用虚拟仪器技术不断地扩展其功能及应用范围现在LabVIEW不仅能在PC上开发测试程序,而且可以在嵌入式处理器和FPGA上设计硬件这一技术也将最终提供这样的一个独立环境,使用户可以从设计测试系统到定义硬件的功能,如图3所示测试工程师将能使用合适的功能来进行系统级的设计当他们需要定义专门的测量功能时,他们也将可以用同样的软件工具来“细化”到合适的级别以定义测量的功能例如,工程师可以开发LabVIEW程序来使用模块化仪器进行某些测量,如DC电压和上升时间当工程师需要开发专门的测量时,他们也可以使用LabVIEW对原始的测量数据进行分析,从而开发出专门的测量,比如峰值检测如果在某些情况下他们需要使用一些新的硬件功能来实现测量,如定制的触发,那么他们可以用LabVIEW定义一个触发和滤波方案,并嵌入到仪器卡上的FPGA中虚拟仪器技术已成为测试、工业I/O和控制和产品设计的主流技术,随着虚拟仪器技术的功能和性能已被不断地提高,如今在许多应用中它已成为传统仪器的主要替代方式随着PC、半导体和软件功能的进一步更新,未来虚拟仪器技术的发展将为测试系统的设计提供一个极佳的模式,并且使工程师们在测量和控制方面得到强大功能和灵活性 虚拟仪器的功能和性能已被不断地提高,如今在许多应用中它已成为传统仪器的主要替代方式随着PC、半导体和软件功能的进一步更新,未来虚拟仪器技术的发展将为测试系统的设计提供一个极佳的模式,并且在测量和控制方面都有无以伦比的强大功能和灵活性可广泛应用于电子测量、振动分析、声学分析、故障诊断、航天航空、军事工程、电力工程、机械工程、建筑工程、铁路交通、地质勘探、生物医疗、教学及科研等诸多方面虚拟仪器的各种优点让用户可以放心地舍弃旧的传统测量设备,接受更新型、以计算机为基础的虚拟仪器系统由于计算机的性能价格比不断改进,使虚拟仪器的价格更为大众化,用户不必再受限于传统仪器的使用限制和昂贵的价格,进一步降低了使用成本,减少了系统的开发费用和系统的维护费用此外,新型笔记本电脑又把虚拟仪器的便携性和强大功能推向一个新的水平所有这些必将加快虚拟仪器的发展,使它的功能和应用领域不断增强和扩大
(五)虚拟仪器在中国的应用尽管虚拟仪器近几年在中国发展得较快,但也遇到了一些问题首先虚拟仪器的维护成本较高据哈尔滨工业大学深圳研究生院博士后和军平介绍,传统的仪器出现故障后,常常由公司内部的仪器部门通过更换相应的故障模块,得到较快的解决,维护成本较低而虚拟仪器采用的插卡式硬件密度很高,维修难度较大,维护费用较为昂贵同时中国用户的使用习惯也会影响虚拟仪器的发展据赛宝计量检测中心高级工程师王勇解释,中国的测试工程师习惯于直接使用测量设备而使用虚拟仪器还要根据特定需要做二次开发,设计针对自身应用的自定义测试系统因此需要富有经验的工程师,较长的学习和培训时间与一定的开发周期同时他认为现在虚拟仪器的实现成本相比传统仪器并没有明显的优势,因此对中国厂商的吸引力还不够强 而且虚拟仪器单个插卡模块的性能固然可能做得很高,但是其整体性能会受到PC/PXI系统的总线带宽的限制而总线速度的提升相对于计算机性能的提升周期要慢得多对于某些需要很高带宽的测量应用,虚拟仪器的使用常常受到限制
(六)LabView简介现代科技的发展日新月异计算机技术则尤为如此计算机强大的处理能力,使得它成为一种很好的工具,其应用范围也越来越广泛在工业自动化和测试及测量领域,传统的方法有许多重复建设,显然已经不能适应时代发展的需要了如何利用先进的计算机技术提高效率则成为该领域迫切需要解决的问题1986年,美国NI公司(NationInstrument)提出了虚拟仪器的概念,提出了软件即仪器的口号,彻底打破了传统仪器只能由生产厂家定义,用户无法改变的局面,从而引起仪器和自动化工业的一场革命随着现代软件和硬件技术的飞速发展,仪器的智能化和虚拟化已经成为未来各级实验室以及研究机构发展的方向虚拟仪器,顾名思义,它应具有传统仪器的功能,又有别于其传统仪器它的特点体现在其灵活性上,它能够充分利用和发挥现有计算机先进技术,使仪器的测试和测量及自动化工业的系统测试和监控变得异常方便和快捷LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench实验室虚拟仪器工程平台)是一个程序开发环境类似于C、BASIC但LabVIEW的特点在于,它使用图形化编程语言G在流程图中创建源程序,而非使用基于文本的语言来产生源程序代码LabVIEW还整合了与诸如满足GPIB、VXI、RS-232和RS-485以及数据采集卡等硬件通讯的全部功能内置了便于TCP/IP、ActiveX等软件标准的库函数虽然LabVIEW是一个通用编程系统,但是它也包含为数据采集和仪器控制特别设计的函数库和开发工具LabVIEW程序被称为虚拟仪器(VIs),是因为它们的外观和操作能模仿实际的仪器由于LabVIEW所使用的术语、图标和概念都是技术人员、科学家、工程师所熟悉的,故而即使用户没有多少编程经验,同样也能利用LabVIEW来开发自己的应用程序创建虚拟仪器的过程共分三步
(1)虚拟仪器的交互式用户接口被称为前面板,因为它模仿了实际仪器的面板前面板包含旋钮、按钮、图形和其它的控制与显示对象通过鼠标和键盘输入数据、控制按钮,可在计算机屏幕上观看结果
(2)虚拟仪器从流程图中接收命令(用G语言创建)流程图是一个编程问题的图形化解决方案流程图也是虚拟仪器的源代码
(3)一个虚拟仪器的图标和连接就象一个图形(表示某一虚拟仪器)的参数列表这样,其它的虚拟仪器才能将数据传输给一个子仪器图标和连接允许将此仪器作为最高级的程序,也可以作为其它程序或子程序中的子程序(子仪器)
1.图形化编程环境该环境包含前面板、流程图、图标和连接在软件启动时,系统会建立一个缺省名为Untitled.1的文件(VI)该文件包含两个窗口,一个用以编辑前面板,另一个用作编辑流程图前面板就象是虚拟仪器的用户接口,尤如实际仪器的面板前面板基本上是控制和显示对象的集合用以控制模拟仪器输入设备,为虚拟仪器的流程图提供数据显示模拟仪器的输出设备及流程图中获得或产生的数据流程图窗口用以编辑虚拟仪器的图形化源代码通过连线将输出、接收数据的对象连接起来创建流程图,就能实现特定的功能,控制执行的流程需特别指明的是LabVIEW运行是数据流驱动的简单地说,就是只有当所有的输入数据都准备好的时候,一个节点才能执行其功能,当节点执行完后,它所有的输出端口都会产生一个数据值数据都是从源端流到目的端数据流不同于执行一个传统程序的控制流方法(通过执行一系列的指令来实现的)控制流执行是指令驱动而数据流执行是数据流驱动或依赖数据的这里提到的节点是程序执行的元素它们类似于传统编程语言中的状态、操作、函数和子程式LabVIEW包含广泛用于数学计算、比较、转换、输入/输出的函数库另一类节点类型是结构结构就是传统编程语言的循环、条件描述的图形表示,不断的重复和执行代码LabVIEW也提供了用于连到外部基于文本的代码和用于计算基于文本的公式的特殊节点图标和连接--当一个虚拟仪器的图标被放置在另一个虚拟仪器的流程图中时,它就是一个子仪器或说是LabVIEW的一个子程序子仪器的控制和显示对象从调用它的仪器流程中获得数据,然后将处理后的数据返回给它连接是对应于子仪器控制和显示对象的一系列连线端子图标既包含虚拟仪器用途的图形化描述,也包含仪器连线端子的文字说明连接更象是功能调用的参数列表连线端子就是类似于参数每个终端都对应于前面板的一个特别的控制和显示对象连接从它的输入连线端子接收数据,然后通过子仪器的控制对象将数据传输给子仪器的代码每个虚拟仪器都有一个缺省的图标,位于两个窗口的右上角当然,图标可根据用户的需要进行修改每个虚拟仪器都有一个连接在前面板的仪器图标上右击鼠标,选择ShowConnector,即可看到该仪器的具体连接第一次显示时,会有缺省的模式若用户想修改,则可选择Pattern或Use/RemoveTerminal来进行新的模式设置
2.编程工具介绍LabVIEW提供了三个模板来编辑虚拟仪器工具模板(ToolsPalettes)、控制模板(ControlsPalettes)、功能模板(FunctionsPalettes)工具模板提供用于图形操作的各种工具,诸如移动,选取,设置卷标、断点,文字输入等等控制模板则提供所有用于前面板编辑的控制和显示对象的图标以及一些特殊的图形功能模板包含一些基本的功能函数,也包含一些已做好的子仪器这些子仪器能实现一些基本的信号处理功能,具有普遍性其中控制、功能模板都有预留端,用户可将自己制做的子仪器图标放入其中,便于日后调用
3.仪器的开发熟悉了环境之后,便可以来开发自己的虚拟仪器了由于实验条件的限制,本实验只做虚拟仪器的后两部分,实验中所采用的信号不是来自外部采集所得,而是通过软件的方法获得,也就是在流程图中编制一个简单的信号发生器,产生一些周期信号,冲激波及一些虚拟数据(用于拟合)前面板的设计分为两部分--显示部分和控制部分,并以左右形式排列在前面板编辑窗口中其中显示部分包含原始信号的显示和信号处理后的结果显示控制部分包含一些参数的设置,功能的选择,还有系统控制为了使面板更接近于真实的仪器面板,利用控制模板中DecorationsRecessedbox实现凸凹的效果;为了使控制部分和显示部分一一对应起来,防止用户的误操作,对于某些暂不使用的按钮,利用属性Visible、Disable来实现按钮的隐藏、灰显效果至于流程图,它是和前面板一一对应的整体上采用一个WhileLoop结构,由系统控制按钮来控制其内部大体包含两部分信号发生器和信号处理部分这两部分均用Case窗来实现信号处理部分的功能实现较多,因而对每一个功能采用定制子仪器的方法将其做成一个个子仪器,用特定的图标表示此法可减少流程图的复杂程度,便于数据流的跟踪和调试
(七)LabVIEW的特点虚拟仪器具有传统独立仪器无法比拟的优势,但它并不否定传统仪器的作用,它们相互交叉又相互补充,相得益彰在高速度、高带宽和专业测试领域,独立仪器具有无可替代的优势在中低档测试领域,虚拟仪器可取代一部分独立仪器的工作,但完成复杂环境下的自动化测试是虚拟仪器的拿手好戏,是传统的独立仪器难以胜任的,甚至不可思议的工作专家们指出,在这个计算机和网络时代,利用计算机和网络技术对传统的产业进行改造,已是大势所趋,而虚拟仪器系统正是计算机和网络技术与传统的仪器技术进行融合的产物,因此,在21世纪,虚拟仪器将大行其道,日渐受宠,将会引发传统的仪器产业一场新的革命LabVIEW是NI推出的虚拟仪器开发平台软件,它们能够以其直观简便的编程方式、众多的源码级的设备驱动程序、多种多样的分析和表达功能支持,为用户快捷地构筑自己在实际生产中所需要的仪器系统创造了基础条件LabVIEW采用图形化编程语言--G语言,产生的程序是框图的形式,易学易用,特别适合硬件工程师、实验室技术人员、生产线工艺技术人员的学习和使用,可在很短的时间内掌握并应用到实践中去特别是对于熟悉仪器结构和硬件电路的硬件工程师、现场工程技术人员及测试技术人员来说,编程就像设计电路图一样;因此,硬件工程师、现场工程技术人员及测试技术人员们学习LabVIEW驾轻就熟,在很短的时间内就能够学会并应用LabVIEW也不必去记忆那眼花缭乱的文本式程序代码像C或C++等其它计算机高级语言一样,LabVIEW也是一种通用编程系统,具有各种各样、功能强大的函数库,包括数据采集、GPIB、串行仪器控制、数据分析、数据显示及数据存储,甚至还有目前十分热门的网络功能LabVIEW也有完善的仿真、调试工具,如设置断点、单步等LabVIEW的动态连续跟踪方式,可以连续、动态地观察程序中的数据及其变化情况,比其它语言的开发环境更方便、更有效而且LabVIEW与其它计算机语言相比,有一个特别重要的不同点其它计算机语言都是采用基于文本的语言产生代码行,而LabVIEW采用图形化编程语言--G语言LabVIEW程序又称为虚拟仪器,它的表现形式和功能类似于实际的仪器;但LabVIEW程序很容易改变设置和功能因此,LabVIEW特别适用于实验室、多品种小批量的生产线等需要经常改变仪器和设备的参数和功能的场合,及对信号进行分析研究、传输等场合总之,由于LabVIEW能够为用户提供简明、直观、易用的图形编程方式,能够将繁琐复杂的语言编程简化成为以菜单提示方式选择功能,并且用线条将各种功能连接起来,十分省时简便,深受用户青睐与传统的编程语言比较,LabVIEW图形编程方式能够节省85%以上的程序开发时间,其运行速度却几乎不受影响,体现出了极高的效率使用虚拟仪器产品,用户可以根据实际生产需要重新构筑新的仪器系统例如,用户可以将原有的带有RS232接口的仪器、VXI总线仪器以及GPIB仪器通过计算机,联接在一起,组成各种各样新的仪器系统,由计算机进行统一管理和操作可以预见,由于LabVIEW这些其他语言无法比拟的优势,已经成为该领域的一朵奇葩!最终将引发传统的仪器产业一场新的革命
(八)通用串行总线(USB)简介1.USB是什么USB是通用串行总线UniversalSerialBus,是一种支持即插即用的新型串行接口也有人称之为“菊链daisy-chaining”,是因为在一条“线缆”上有链接127个设备的能力USB要比标准串行口快得多,其数据传输率可达每秒4Mb~12Mb而老式的串行口最多是每秒115Kb除了具有较高的传输率外,它还能给外围设备提供支持需要注意的是,这不是一种新的总线标准,而是电脑系统连接外围设备如键盘、鼠标、打印机等的输入/输出接口标准到现在为止,电脑系统连接外围设备的接口还无统一的标准,如键盘的插口是圆的、连接打印机要用9针或25针的并行接口、鼠标则要用9针或25针的串行接口USB能把这些不同的接口统一起来,仅用一个4针插头作为标准插头通过这个标准插头,采用菊花链形式可以把所有的外设连接起来,并且不会损失带宽USB正在取代当前PC上的串口和并口2.USB的“起源”随着电脑应用的拓展,PC机的外设越来越多,机箱后的插口也形形色色并行口、串行口、键盘口、鼠标口、游戏手柄接口、音频输入输出口、视频输出口……,PC机有限的I/O插槽无法满足日益增加的外设需要;不具备专业知识的普通用户难于选择合适的资源和完成复杂的安装工作因此,简化外设扩充方法使之方便易行便成为各个PC机厂家面临的重大研究课题在这个背景下,Microsoft公司于1994年提出了即插即用PlugPlay方案,这种技术解决了用户选择资源的困难,由系统自动设置,但新外设的安装仍然相当麻烦,而且外设扩充数量的问题也没有解决因此在1996年召开的面向PC机硬件技术工作者会议上,Compaq、Intel和Microsoft三家厂商提出了设备插架DeviceBay概念USB就是设备插架的一种规范3.USB的结构及传输方式
(1)USB的结构USB规范将USB分为5个部分控制器、控制器驱动程序、USB芯片驱动程序、USB设备以及针对不同USB设备的驱动程序控制器主要负责执行由控制器驱动程序发出的命令;控制器驱动程序在控制器与USB设备之间建立通信信道;USB芯片驱动程序提供对USB的支持;USB设备包括与PC相连的USB外围设备,分为两类一类设备本身可再接其他USB外围设备,另一类设备本身不可再连接其他外围设备;前者称为USB集线器(USBHUB),后者称为设备或者说,集线器带有连接其他外围设备的USB端口,而设备则是连接在计算机上用来完成特定功能并符合USB规范的设备单元,如鼠标、键盘等;设备驱动程序就是用来驱动USB设备的程序,通常由操作系统或USB设备制造商提供,如平常所说Modem驱动程序、打印机驱动程序等
(2)USB的传输方式针对设备对系统资源需求的不同,在USB规范中规定了4种不同的数据传输方式等时传输方式该方式用来连接需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等等时传输方式以固定的传输速率,连续不断地在主机与USB设备之间传输数据,在传送数据发生错误时,USB并不处理这些错误,而是继续传送新的数据;中断传输方式该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上;控制传输方式该方式用来处理主机的USB设备的数据传输包括设备控制指令、设备状态查询及确认命令当USB设备收到这些数据和命令后,将依据先进先出的原则按队列方式处理到达的数据;批传输方式该方式用来传输要求正确无误的数据通常打印机、扫描仪和数码相机以这种方式与主机连接在这4种数据传输方式中,除等时传输方式外,其他3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性 4.USB设备的的使用要使用USB设备,首先要求主板具有支持USB设备的功能,其次要求操作系统支持USB设备目前生产的主板一般都采用支持USB功能的控制芯片组,主板上也安装有USB接口插座Windows98内置了对USB的支持,如果使用Windows95,还需取得USB驱动程序Usbsupp.Exe在http://www.microsoft.com/KB下载才能使用主板提供的功能在操作系统拥有了对USB设备的支持后,安装USB设备以及相应的驱动程序,新增加的外设可以直接与主机上的USB接口相连,一般主板上只提供两个USB接口,如果USB的设备多于两个,那么就必须用USB的Hub了目前在中国大陆地区销售的所有型号的PAVILIONHOMEPC都具有2个USB接口供用户使用,设备就可以正常工作了
5.USB的优势在USB方式下,所有的外设都在机箱外连接,连接外设不必再打开机箱;允许外设热插拔,而不必关闭主机电源USB采用“级联”方式,即每个USB设备用一个USB插头连接到另一个外设的USB插座上,而其本身又提供一个USB插座供下一个USB外设连接用通过这种类似菊花链式的连接,一个USB控制器可以连接多达127个外设,而每个外设间距离线缆长度可达5米USB能智能识别USB链上外围设备的插入或拆卸它可使多个设备在一个端口上运行,速度也比现在的串行口或并行口快得多,而且其总的连线在理论上说可以无限延长对PC来说,以上这些都是一些难得的优点,因为不再需要PS/2端口、MIDI/game端口等各种不同的端口了,还可以随时随地在各种设备上任意插拨你可以在一个端口上运行鼠标、控制手柄、键盘以及其他输入装置例如数码相机,而且,你也不必重新启动系统去做这些工作现在USB设备正在快速增多,且由于操作系统已内置支持USB的功能,因而用户现在就可以方便的使用显然,USB为PC的外设扩充提供了一个很好的解决方案目前USB技术的发展,已经允许用户在不使用网卡、HUB的情况下,直接通过USB技术将几部电脑连接起来组成小型局域网,用户只需要给各部电脑起个名字就可以开始工作这种网络具备Ethernet网络的各种优点,同时少了Ethernet网络的许多限制假设一位用户上班时使用移动电脑,回家时使用PC机,为实现数据传输,他可以通过采用USB技术的接口将两部电脑连接起来交换资源,其数据传输速度可达12Mbps,这是传统串行口无法比拟的而且用户在组网的时候根本无须考虑DIP、IRQ等等问题此类技术除支持兼容Ethernet的软硬件外,也支持标准的网络通讯协议,包括IPX/SPX、NetBEUI和TCP/IP,这为通过USB技术组成的小局域网连接至大型网络或Internet提供了条件从成本上看,PC机的控制芯片组和操作系统中已经内建了USB功能,因此PC机在硬件和软件的价格上不会增加而由于减少了接口插卡和供电电源,使得外设的成本可以降低此外USB的“热插拔”功能允许用户十分方便地连接和拆卸外设,实现外设的共享这也就降低了这些外设的使用成本此外,USB还在以下几个方面加强并简化了用户对PC外设的使用可双向传输资料,你可以得到从摇杆上传回的强制回馈效果是一种真正的即插即用设计——支持USB的产品只要将连接线接到电脑的USB插槽,电脑内部就会自动分配地址,不需用户参照系统的硬件设定进行设置它为PC机的即插即用提供了极大的发展空间,所以Windows95OSR
2.1及Windows98均支持USB更高的带宽USB端口的传输速率高达12Mbps,与一个标准的串行端口相比,大约快出100倍,与一个标准的并行端口相比,也快出近10倍换句话说,USB端口的传输速率快于当前PC平台上任何其他类型的端口这意味着用户将会拥有足够的带宽供新的数字外设使用,例如音频系统、数字照相机、虚拟现实眼镜以及数据手套等内置的电源供给USB可消除某些外设对体积较大的电源适配器的需求,因为它可识别一个设备所需的电力,并可自动把这一电力提供给这一设备最高可达500毫安提供了对电话的两路数据支持远程通信设备需要两路异步数据传输能力,而串、并行或SCSI总线技术不支持这一能力USB可支持异步以及等时数据传输,因此使用这一技术后,电话已可与PC集成,共享话音邮件及其他特性高保真音频传统上,PC的音频信息可按两种方式加以生成一是CD-ROM,它可读取一个压缩光盘上的数据,然后产生一个模拟输入;另一个是声卡,它能够对任何数字数据进行译码,并可将译码后的数据转换为一个模拟输入USB音频信息的生成位于计算机之外,从而不需要声卡USB上的音频数据在到达PC之前依然是数字的,模拟转换发生于外设自身,而不是计算机之内USB的这种设计减少了电子噪音干扰声音质量的机会,从而使音频系统具有更高的保真度更小的系统空间由于USB端口与其他端口技术共享PC和移动的后面板,因此可减少外设对PC插槽的需求,并可一次性替换掉标准的串、并行端口与PS2端口,从而可较大程度地减少计算机的系统空间
二、方案分析
(一)采样控制器的选取采样控制系统采用TI公司的MSP430F1611,TI公司的MSP430系列单片机是一种超低功耗的混合信号控制器,其中包括一系列的器件,他们针对不同的应用而由各种不同的模块组成这些微控制器被设计为可用电池工作,而且可以有很长时间的应用它们具有16位RISC结构,CPU中饿、的16个寄存器和常数发生器使MSP430微控制器能达到最高的代码效率;灵活的时钟源可以使器件达到最低的功率消耗;数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在少于6us的时间内激发到活跃的工作方式MSP430系列单片机具有以下一些特点●低电压、超低功耗●强大的处理能力●系统工作稳定●丰富的片内外设●方便高效的开发环境●工业级的产品
(二)无线传输模块的选取现在市场上的无线模块非常多,在选取无线模块时,我们要充分考虑应用场合、数率、距离、性价比等各方面的因素本系统要求数据传输快、接口易用以及性价比高因此、本设计选用nRF24L01无线模块nRF24L01无线模块具有传输数率高、接口易用、性价比高等特点,以下为nRF24L01模块的特性真正的GFSK单收发芯片内置链路层增强型自动应答及自动重发功能地址及CRC检验功能数据传输率1或2MbpsSPI接口数据速率0~8Mbps125个可选工作频道很短的频道切换时间可用于跳频与nRF24XX系列完全兼容可接受5V电平的输入20脚QFN44mm封装极低的晶振要求60ppm低成本电感和双面PCB板工作电压
1.9~
3.6VnRF24L01是一款工作在
2.4~
2.5GHz世界通用ISM频段的单片无线收发器芯片无线收发器包括频率发生器、增强型、模式控制器、功率放大器、晶体振荡器、调制器、解调器、输出功率频道选择和协议的设置可以通过SPI接口进行设置极低的电流消耗当工作在发射模式下发射功率为-6dBm时电流消耗为
9.0mA接收模式时为
12.3mA,掉电模式和待机模式下电流消耗更低nRF24L01引脚图如图
2.1图2F24L01引脚
(三)USB芯片的选取PDIUSBD12带并行总线的USB接口器件特性:符合通用串行总线USB
1.1版规范高性能USB接口器件,集成了SIEFIFO存储器,收发器以及电压调整器符合大多数器件的分类规格可与任何外部微控制器/微处理实现高速并行接口2M字节/秒完全自治的直接内存存取DMA操作集成320字节多结构FIFO存储器主端点的双缓冲配置增加了数据吞吐量并轻松实现实时数据传输在批量模式和同步模式下均可实现1M字节/秒的数据传输速率具有良好EMI特性的总线供电能力在挂起时可控制LazyClock输出可通过软件控制与USB的连接采用GoodLink技术的连接指示器在通讯时使LED闪烁可编程的时钟频率输出符合ACPIOnNOW和USB电源管理的要求内部上电复位和低电压复位电路有SO28和TSSOP28封装工业级操作温度40+85高于8kV的在片静电防护电路,减少了额外元件的费用具有高错误恢复率99%的全扫描设计确保了高品质双电源操作
3.3±
0.3V或扩展的5V电源范围为
3.6~
5.5V多中断模式实现批量和同步传输PDIUSBD12是一款性价比很高的USB器件,它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口它还支持本地的DMA传输这种实现USB接口的标准组件使得设计者可以在各种不同类型微控制器中选择出最合适的微控制器这种灵活性减小了开发的时间风险以及费用,通过使用已有的结构和减少固件上的投资,从而用最快捷的方法实现最经济的USB外设的解决方案PDIUSBD12完全符合USB
1.1版的规范它还符合大多数器件的分类规格,成像类、海量存储器件通信器件、打印设备以及人机接口设备同样地PDIUSBD12理想地适用于许多外设,例如打印机、扫描仪、外部的存储设备、Zip驱动器和数码相机等等它使得当前使用SCSI的系统可以立即降低成本PDIUSBD12所具有的低挂起功耗连同LazyClock输出可以满足使用ACPIOnNOW和USB电源管理的要求低的操作功耗可以应用于使用总线供电的外设此外它还集成了许多特性包括SoftConnetTM、GoodLinkTM可编程时钟输出低频晶振和终止寄存器集合,所有这些特性都为系统显著节约了成本,同时使USB功能在外设上的应用变得容易图3D12功能框图注:这是一个概念性的框图并不包括每一个单独的信号
(四)USB设备控制器选取在USB设备系统设计之前,首先要选择一款合适的主控制器,主控制器的选择关系到整个系统的性能、功耗以及稳定性;同时也要考虑到成本,因此我们将选择范围缩小到了两款微控制器,AT89S52和ATMEGA16L上面这两款单片机都是ATMEL公司的产品,分别属于两个系列MCS-51和AVRMCS-51系列的AT89S52由先进CMOS工艺制造并带有非易失性Flash程序存储器的单片机特点如下8KB片内可重擦写闪速存储器、1000次擦写周期
4.0V到
5.5V工作电压范围全静态操作0Hz到33MHz三级加密程序存储器256x8字节内部RAM32个可编程I/O口线三个16位定时/计数器8个中断源全双工串行UART通道低功耗空闲和掉电模式掉电模式中断唤醒看门狗定时器AT89S52虽然拥有以上特点,但也有其不足,由于其片内RAM较小,在一些对RAM要求大的系统中,只能通过扩展实现要求,这样的扩展要用到大量的I/O口,从而使可用的I/O口减少;另外AT89S52的工作速度也限制了其应用的范围ATMEL的AVR系列单片机是一个优秀的RISC结构单片机系列与MCS51相比其有以下一些典型特点1.AVR的机器周期为1个时钟周期绝大多数指令为单周期指令因此每MHZ时钟有接近1MIPS的性能2.程序存贮器与数据存贮器有分开的总线程序可以高效地执行8MHZ频率下工作的AVR相当于224MHZ频率下工作的MCS513.内置可重复编程的FLASH程序存贮器和EEPROM数据存贮器支持对单片机的在系统编程ISP在生产中可以先装配后编程从而缩短工艺流程和节约购买万用编程器的费用并且可以方便地升级或修改程序4.内置上电复位电路和看门狗定时器WatchDog电路在提高产品可靠性的同时降低了电路的成本
5.部分AVR单片机与MCS51系列单片机管脚兼容如AT90S1200/2313对应AT89C1051/2051AT90S4414/8515对应AT89C51/52因此可以做到一套PCB板对应两套电路增加了用户备货的可选择性和灵活性6.定时/计数器的功能大大增强串口通信时波特率发生不占用定时器使用AT89S52作为主控制器能够提供低成本的解决方案,但由于本设计系统对速度要求很高,因此选用AVR单片机ATMEGA16L作为USB设备系统的主控制器
(五)系统整体设计1.A/D采样系统设计A/D采样系统部分完成信号的调理、信号的采样以及数据处理和数据的接收信号调理实现对外加信号的处理由于,采样的芯片采样幅度范围比较窄并且不能采样负电压,因此,要对输入信号进行处理包括将输入信号的幅度进行衰减,将输入信号负半部分信号的抬升,对输入信号进行初滤波以滤掉尖脉冲,减小干扰,提高采样数据的准确性主控芯片MSP430完成无线模块nRF4L01的通信,以及控制A/D采样的速率,控制A/D采样的速率是通过上位机发送命令,然后主控芯片对命令进行解释,并按照命令控制A/D采样的速率、A/D采样的开启、关闭图4A/D采样系统图2.USB数据传输系统设计USB数据传输系统完成采样数据的接收,完成USB与主机的通信,实现采样数据无线传输到主机上以完成信号恢复和显示其中nRF24L01实现采样数据接收以及将主机命令发出,PDIUSBD12实现USB协议和采样数据传输,主机USB驱动完成PDIUSBD12设备的识别和通信,它是应用程序与设备通信的数据通道图5USB数据传输系统图
三、系统硬件设计
(一)A/D采样衰减电路信号听过VIN输入,经过C1耦合,后由C2R1R2C5R8R9构成的一个51的衰减电路然后在经过R3和C3将信号传输到后面的电路图6衰减电路
(二)A/D采样电压抬升电路图7电压抬升电路
(三)A/D采样控制电路图8采样控制电路
(四)无线模块nRF24L01工作电路如图
3.1所示NRF24L01应用电路其中电容、电感、电阻的PCB封装,都使用0402这样整个模块的尺寸,就会变得很小PCB板使用的双层板(包括一个地层)nRF24L01的直流供电电源应尽可能靠近芯片的VDD引脚,并且经高质量的RF电容去耦nRF24L01的供电电源必须经过很好的滤波,并且与数字供电电源分离开来PCB板避免使用长的电源走线,所有元件的地、VDD及VDD与去耦电容应尽可能的靠近nRF24L01芯片如果在PCB板的顶层有铺铜“地”网,VSS应直接与铺铜面连接如果在PCB板的底层有铺铜“地”网,则应该在离VSS脚尽可能近的地方放置过孔连接每个VSS最少应有一个过孔天线输出ANT1和ANT2输出脚给天线提供稳定的RF输出这两个脚必须连接到VDD的直流通路,或者通过RF扼流圈,或者通过天线双极的中心点在输出功率最大时0dBm推荐使用负载阻抗为15Ω+j88Ω通过简单的网络匹配可以获得较低的阻抗(例如50Ω)图9nRF24L01无线模块原理图图10nRF24L01PCB图
(五)USB模块工作电路其中AMS1117为电源芯片,它为PDIUSBD12提供
3.3V的电源电压,PDIUSBD12是
3.3V与5V兼容的,即既可以工作在
3.3V下,也可以工作在5V下从而使其能灵活的应用到不同场合本设计的电源是利用USB供电,可以工作在
3.3V和5V两种情况下当设计中要使用
3.3V作为其工作电压时,只需将短接冒J1,接在
2、3两脚要工作在5V下,只需将J1接在
1、2两脚上LED1是Philips公司的技术技术可提供良好的USB连接指示在枚举中LED指示根据通信的状况间歇闪烁,PDIUSBD12成功地枚举和配置后LED指示将一直点亮随后与PDIUSBD12之间成功的传输(带应答)将关闭LED处于挂起状态时LED将会关闭LED2为电源指示灯图11USB模块原理图12USB模块PCB
(六)USB及nRF24L01主控板电路单片机控制电路使用ATMEGA16L作为主控芯片,将USB模块与主控电路集成在一个电路板上,而nRF24L01则以单独的模块形式插在主控板上,如图IDC8X2即为nRF24L01模块的插座这种设计能够有效的降低射频模块与主控电路之间的干扰,从而使整个设计的稳定性更高图13主控板原理图
(七)串口调试电路串口使用常用的MAX232,由于串口电路简单,应用范围广本设计利用串口的调试功能,能够通过串口观察数据出现故障时便于排除故障图14串口电路图
4、软件设计
(一)数据流图1.A/D采样部分A/D采样电路包括衰减电路、滤波电路、采样电路、主控电路以及无线收/发电路衰减电路用来将被测信号的电压衰减到A/D采样电压范围;滤波电路将衰减后的电压进行一次初滤波,主要是滤掉一些尖脉冲;主控芯片负责控制A/D采样的数率以及数据的转换,同时发送数据、并接收PC发送的命令、实现采样数率的变换、A/D采样的开启与关闭从而实现程控A/D采样A/D采样数据流图如下图15A/D采样部分数据流图2.USB数据传输图16USB与PC通信数据流图
(二)下位机软件流程图软件设计总流程图图17采样系统程序总流图图18USB数据传输程序流程图1.A/D采样程序图19A/D采样程序流图2.nRF24L01接收程序nRF24L01发送程序是中断驱动的,每次中断到来时,读nRF24L01的状态,以判断当前为何中断nRF24L01有三种中断状态,分别为接收中断、发送中断以及发送超时中断因此在程序中设计了三个标志位变量,以此来标志当前程序运行的状态在每次收到数据时,nRF24L01模块将会产生中断,中断处理程序通过读nRF24L01模块的状态寄存器,来辨别为何中断,产生中断后,中断处理程序将置位相应的中断标志位nRF24L01自身有32字节的缓存,因此在设计程序时,我们定义了32个字节的接收和发送缓存中断子程序中主要完成各标志位的设置,以及写nRF24L01的中断寄存器,以使下次中断能顺利产生nRF24L01接收程序主程序设计流程图如图,详细程序见附录图20nRF24L01数据接收数据流程图3.nRF24L01发送程序下图为nRF24L01的发送子程序流程图,详细程序见附录图21nRF24L01数据发送程序流图22nRF24L01处理中断程序流图4.USB数据传输程序USB部分软件设计,主要完成USB的固件程序设计,由于使用的是PDIUSBD12,协议部分,大部分是由硬件完成的,只需向PDIUSBD12的控制寄存器中写入命令和数据程序实现对USB标准请求的响应,并将标准请求码通过并行方式写入PDISUBD12芯片,然后由芯片将请求码,以一定的格式传输到主机中主机按标准请求码,对USB设备进行初始化USB设备有若干可能的状态,其中一些对于USB与主机host来说是外置的,而另外一些对USB设备来说是内置的如下表所示为USB设备外置可见的状态表1USB外置可见状态连接加电缺省编址配置挂起说明不__________设备尚未连接至接口.其他特性无关是不________________设备已连接至接口但未加电.其他特性无关.是是不____________设备已连接至接口并且已加电.但尚未被复位.是是是不________设备已连接至接口已加电.并被复位.但尚未分配地址.设备在缺省地址处可寻址.是是是是不____设备已连接至接口已加电.并被复位.且分配了唯一地址.尚未被配置.是是是是是不设备已连接至接口已加电.并被复位.且分配了唯一地址并被配置.设备功能可被使用.是是____________是设备在至少3毫秒以内探测不到总线活动自动进如挂起.设备功能不可用.图23USB程序流图端口响应处理部分的子流程图如图图24USB处理子流程图
(三)应用程序设计应用程序主要完成与USB设备通信、对A/D采样所的数据进行处理、显示以及向A/D采样模块发命令的任务应用程序的框图如图
5.9所示,它由数据读取、命令处理、数据处理、波形显示、采样控制、波形分析六部分组成VISAVirtualInstrumentSoftwareArchitecture,是一个用来与各种仪器总线进行通讯的高级应用编程接口(API)它不受平台、总线和环境的限制换言之,与GPIB设备进行通讯的程序,无论是在运行Windows2000的机器上用LabVIEW开发出来的,还是在运行MacOSX的机器上用C语言编写的,都可以使用同一个API通用串行总线(USB)是一个基于信息的通讯总线这表示PC机与USB设备通过发送指令和数据进行通讯,而这些指令和数据是通过总线以文本或二进制数据的形式发送的每个USB设备都有各自的指令集您可以使用NI-VISA的读写功能向仪器发送这些指令,并读取仪器的反馈可向仪器制造商索要仪器的有效指令清单NI-VISA从
3.0版开始支持USB通讯,它有两种VISA类函数ResourceClass,可以控制两类USB设备USBINSTR设备与USBRAW设备数据处理部分完成对数据的恢复,由于USB接收到的数据皆为16进制的数据,因此我们要将16进制的数转化成浮点数在采样电路中由于对信号进行了衰减,在数据恢复中我们为了还原原数据,要对原数据乘以相应的衰减倍数处理后的数据还要经过LabVIEW的创建波形函数模块处理,从而产生可以显示的波形波形分析主要是对波形的频谱进行分析,通过波形分析,我们能清晰的观察到波形的谐波分量图25应用程序数据流图图26应用程序界面图28显示效果
5、结论及展望由于资金、实验条件的限制,本系统在设计时没有使用采样率高的A/D采样芯片以及高速率的控制芯片现只能适用于对测量频率要求不是很高的场合,如个人学习、学校实验、低频电路检修等如果要使用在对数率和采样频率要求高的场合,可以使用现在广泛应用的FPGA技术,将采样和控制集成在FPGA芯片中,以实现单芯片和高数率的要求本设计利用了无线传输技术,可实现远距离的检修由于使用了USB及虚拟仪器技术,因此,具有使用范围广、灵活高等特点相信随着USB及虚拟仪器的技术的发展,虚拟仪器技术必将在测控行业得到广泛的应用由于时间仓储资金、设备限制该系统部分功能还有待完善,望学校继续给与实验设备与资金的支持致谢走出毕业论文的千头万绪,接下来便是自然而然的蓦然回首于是,几多往事历历在目,一丝伤感轻轻划过,无限感动激荡心头诚然,更多的感激注定只能驻扎在心底,但还是禁不住尝试有些呆板的文字表述首先,我要郑重地感谢我的导师——刘强自我因个人兴趣而选择本论文主题开始,刘强便给予充分的理解和支持,就论文的立意选材、谋篇布局做了必不可少的指导,刘老师对学术的敏锐以及思路的开阔为本文的顺利完成提供了富有成效的保证多次通过电话和e-mail督促、指导论文的写作,其严谨和负责,让一度偷懒懈怠的我倍为感动,也深感惭愧“师者,传道授业解惑也”从刘老师身上,我深刻地领略到这句话的精彩内涵在过去四年多的学习和生活中,尤其是当我遇到挫折、陷入迷茫或者做错事时,刘老师总是以师者的智慧、长辈的宽容、朋友的坦诚,给我难能可贵的指点和帮助为遇到这样的导师而感到庆幸其次,要感谢我的同门师兄妹,还要感谢我的室友、同学,感谢电子系的所有老师,他们使我的大学生活变得丰富、充实最后,我必须要感谢我的家人“吾本寒家”,感谢我的父母含辛茹苦、无怨无悔地把我抚养、栽培到现在;感谢我的姐姐,早早就毅然分担起家庭生活的重担,多年来对我无私的支持、关爱与呵护家人永远是我的依托,也是鞭策我不断前进的力量有人说,时间如流水,一刻不停地冲刷着记忆,但是,有些记忆随着时间的冲刷不会消逝,反而会变得越来越清晰、越来越值得回味,因为它们已深深铭刻在内心深处两年多的财大求学即将划上句号,收拾行囊、开始新征途的日子悄然逼近,回头看看走过的路,无限感慨,挥挥手,却依然不想说再见!附录附录一A/D采样程序#ifdef__ADC12__voidinitadcvoid{P6SEL=0X01;ADC12CTL0=~ENC;ADC12MCTL0|=SREF_1;ADC12CTL1=0X00;ADC12CTL1+=CONSEQ_1;ADC12CTL1+=ADC12SSEL_2;ADC12CTL1+=ADC12DIV_0;ADC12CTL1+=SHS_1;ADC12CTL0+=MSC;ADC12CTL0|=REFON;ADC12CTL0|=REF2_5V;ADC12CTL0+=ADC12ON;ADC12IE|=0X0001;//ADC12CTL0|=ENC;return;}voidinit_timeravoid{TACTL=TASSEL1+TACLR;TACTL+=ID1;TACTL+=ID0;CCTL1+=OUTMOD_3;CCR1=10;CCR0=10+2;TACTL|=MC0;return;}voidsettimerunsignedinttime{CCR1=time;CCR0=time+2;}unsignedintsum;unsignedcharlucounter;#if__VER__200interrupt[ADC_VECTOR]voidADC12void#else#pragmavector=ADC_VECTOR__interruptvoidADC12void#endif{ADC_BUF[adc_counter]=ucharADC12MEM
[0]4;adc_counter+=1;}#endif附录二nRF24L01无线传输模块数据收发程序#ifdef__NRF24L01__#includeapi.c#defineTX_ADR_WIDTH5#defineTX_PLOAD_WIDTH0x20ucharTX_ADDRESS[TX_ADR_WIDTH]={0x340x430x100x100x01};ucharrx_buf[TX_PLOAD_WIDTH];uchartx_buf[TX_PLOAD_WIDTH];ucharRX_DRTX_DSMAX_RT;ucharsta;/*************************************************/#defineB70x80#defineB60x40#defineB50x20#defineB40x10#defineB30x08#defineB20x04#defineB10x02#defineB00x01#defineCEB7#defineCSNB0#defineSCKB1#defineMOSIB2#defineMISOB3#defineIRQB4#defineBITx1x#defineSETBITxyx|=y#defineCLEARBITxyx=~y#defineCHECKBITxyxy#definenRF24L01_CSNHSETBITP1OUTCSN#definenRF24L01_CSNLCLEARBITP1OUTCSN#definenRF24L01_SCKHSETBITP1OUTSCK#definenRF24L01_SCKLCLEARBITP1OUTSCK#definenRF24L01_MOSIHSETBITP1OUTMOSI#definenRF24L01_MOSILCLEARBITP1OUTMOSI#definenRF24L01_CEHSETBITP6OUTCE#definenRF24L01_CELCLEARBITP6OUTCEunsignedcharSPI_RWunsignedcharbyte{unsignedcharbit_ctr;unsignedcharmm=0;forbit_ctr=0;bit_ctr8;bit_ctr++{ifbyte0x80nRF24L01_MOSIH;elsenRF24L01_MOSIL;byte=byte1;nRF24L01_SCKH;mm=CHECKBITP1INMISO;ifmm!=0byte|=1;nRF24L01_SCKL;}returnbyte;}unsignedcharSPI_RW_Regunsignedcharregunsignedcharvalue{unsignedcharstatus;nRF24L01_CSNL;status=SPI_RWreg;SPI_RWvalue;nRF24L01_CSNH;returnstatus;}unsignedcharSPI_Readunsignedcharreg{unsignedcharreg_val;nRF24L01_CSNL;SPI_RWreg;reg_val=SPI_RW0;nRF24L01_CSNH;returnreg_val;}unsignedcharSPI_Read_Bufunsignedcharregunsignedchar*pBufunsignedcharbytes{unsignedcharstatusbyte_ctr;nRF24L01_CSNL;status=SPI_RWreg;forbyte_ctr=0;byte_ctrbytes;byte_ctr++pBuf[byte_ctr]=SPI_RW0;nRF24L01_CSNH;returnstatus;}unsignedcharSPI_Write_Bufunsignedcharregunsignedchar*pBufunsignedcharbytes{unsignedcharstatusbyte_ctr;nRF24L01_CSNL;status=SPI_RWreg;forbyte_ctr=0;byte_ctrbytes;byte_ctr++SPI_RW*pBuf++;nRF24L01_CSNH;returnstatus;}voidRX_Modevoid{nRF24L01_CEL;SPI_Write_BufWRITE_REG+RX_ADDR_P0TX_ADDRESSTX_ADR_WIDTH;SPI_RW_RegWRITE_REG+EN_AA0x01;SPI_RW_RegWRITE_REG+EN_RXADDR0x01;SPI_RW_RegWRITE_REG+RF_CH40;SPI_RW_RegWRITE_REG+RX_PW_P0TX_PLOAD_WIDTH;SPI_RW_RegWRITE_REG+RF_SETUP0x07;SPI_RW_RegWRITE_REG+CONFIG0x0f;nRF24L01_CEH;}voidTX_Modevoid{nRF24L01_CEL;SPI_Write_BufWRITE_REG+TX_ADDRTX_ADDRESSTX_ADR_WIDTH;SPI_Write_BufWRITE_REG+RX_ADDR_P0TX_ADDRESSTX_ADR_WIDTH;SPI_Write_BufWR_TX_PLOADtx_bufTX_PLOAD_WIDTH;SPI_RW_RegWRITE_REG+EN_AA0x01;SPI_RW_RegWRITE_REG+EN_RXADDR0x01;SPI_RW_RegWRITE_REG+SETUP_RETR0x1a;//SPI_RW_RegWRITE_REG+SETUP_RETR0x00;SPI_RW_RegWRITE_REG+RF_CH40;SPI_RW_RegWRITE_REG+RF_SETUP0x07;SPI_RW_RegWRITE_REG+CONFIG0x0e;nRF24L01_CEH;}voidnRF24L01_Initialvoid{P1DIR=0X00;P1DIR=CSN+MOSI+SCK;P6DIR=CE;nRF24L01_CEL;nRF24L01_CSNH;nRF24L01_SCKL;}#endif附录三nRF24L01接收程序(AVR)#includeiom16v.h#includemacros.h#include24L01_api.h#includedef.h#includeuart.h#defineCONSTconstPROGMEM#defineCEPD7#defineSCKPD6#defineMISOPD5#defineCSNPD4#defineMOSIPD3#defineSET_CEPORTD|=1CE#defineCLS_CEPORTD=~1CE#defineSET_SCKPORTD|=1SCK#defineCLS_SCKPORTD=~1SCK#defineSET_CSNPORTD|=1CSN#defineCLS_CSNPORTD=~1CSN#defineMOSI_HIPORTD|=1MOSI#defineMOSI_LOPORTD=~1MOSI#defineENABLE_INT0GICR|=0x40#defineDISENABLE_INT0GICR=0x00#defineTX_ADR_WIDTH5#defineTX_PLOAD_WIDTH32BYTETX_ADDRESS[TX_ADR_WIDTH]={0x340x430x100x100x01};BYTErx_buf[TX_PLOAD_WIDTH]={0x00};BYTEsta;BYTERX_DRTX_DSMAX_RT;BYTEjk;voidInitvoid{MCUCR=0x00;GICR=0x40;DDRD=0xdb;PORTD=0x24;CLS_CE;SET_CSN;CLS_SCK;}BYTESpiRwBYTEdata{BYTEbit;forbit=0;bit8;bit++{ifdata0x80MOSI_HI;elseMOSI_LO;data=data1;SET_SCK;ifPIND0x20data|=1;CLS_SCK;}returndata;}BYTESpiRwRegBYTEregBYTEvalue{BYTEstatus;CLS_CSN;status=SpiRwreg;SpiRwvalue;SET_CSN;returnstatus;}BYTESpiReadBYTEreg{BYTEreg_val;CLS_CSN;SpiRwreg;reg_val=SpiRw0;SET_CSN;returnreg_val;}BYTESpiReadBufBYTEregBYTE*pBufBYTEbytes{BYTEstatusbyte_ctr;CLS_CSN;status=SpiRwreg;forbyte_ctr=0;byte_ctrbytes;byte_ctr++pBuf[byte_ctr]=SpiRw0;SET_CSN;returnstatus;}BYTESpiWriteBufBYTEregBYTE*pBufBYTEbytes{BYTEstatusbyte_ctr;CLS_CSN;status=SpiRwreg;forbyte_ctr=0;byte_ctrbytes;byte_ctr++SpiRw*pBuf++;SET_CSN;returnstatus;}voidRX_Modevoid{CLS_CE;SpiWriteBufWRITE_REG+RX_ADDR_P0TX_ADDRESSTX_ADR_WIDTH;SpiRwRegWRITE_REG+EN_AA0x01;SpiRwRegWRITE_REG+EN_RXADDR0x01;SpiRwRegWRITE_REG+RF_CH40;SpiRwRegWRITE_REG+RX_PW_P0TX_PLOAD_WIDTH;SpiRwRegWRITE_REG+RF_SETUP0x07;SpiRwRegWRITE_REG+CONFIG0x0f;SET_CE;}voidNRF_initvoid{Init;RX_Mode;}voidNRFProcessBYTE*buff{BYTEi;ifRX_DR{RX_DR=0;SpiReadBufRD_RX_PLOADrx_bufTX_PLOAD_WIDTH;fori=0;iTX_PLOAD_WIDTH;i++{ifk==2j=k=0;buff[j++]=rx_buf[i];}k++;}ifMAX_RT{RX_DR=0;SpiRwRegFLUSH_TX0;}ifTX_DSTX_DS=0;SEI;}#pragmainterrupt_handlerISR_int0:2voidISR_int0void{CLI;sta=SpiReadSTATUS;ifsta0x40==0x40RX_DR=1;elseifsta0x20==0x20TX_DS=1;elseifsta0x10==0x10MAX_RT=1;else;SpiRwRegWRITE_REG+STATUSsta;}附录四LabVIEW界面VI程序参考文献
[1]MSP430系列单片机接口技术及系统设计实例,北京航空航天大学出版社,2002年魏小龙.
[2]AVR单片机应用设计,电子工业出版社,2005年李长林.
[3]AVR单片机开发入门指导,清华大学出版社,2003年沈文、Eaglelee、詹卫前.
[4]LabVIEW大学实用教程(第三版)【美】JeffreyTravisJimKring著乔瑞萍译.
[5]PDIUSBD12带并行总线的USB接口器件广州周立功单片机发展有限公司
[6]UniversalSerialBusSpecificationRevision
1.1,Microsoft
[7]Singlechip
2.4GHzTransceiver,NordicSemiconductorASA
[8]www.edn.com.信号输入信号衰减信号幅度抬升及初滤波A/D采样控制MSP430主控器nRF24L01无线模块nRF24L01ATMEGA16LPDIUSBD12PCUSB驱动PC应用程序被测信号输入衰减电路初滤波电路A/D采样电路主控芯片电路无线模块收/发电路NRF24L01ATMEGA16LPDIUSBD12PCUSB驱动PC应用程序串口调试USB驱动调试PC调试程序开始A/D初始化nRF24L01初始化A/D采样完成nRF24L01请求采样数据处理nRF24L01请求处理NYYN端口初始化开始全局初始化串口初始化USB初始化nRF24L01初始化USB请求?24L01请求?USB处理nRF24L01处理NNYYA/D初始化开始设置定时器开始A/D转换收到更改指令NYNYYY开始nRF24L01初始化接收标为1?开全局中断接收完成?清接收标志NY开始nRF24L01初始化发送标志为1?发送超时标志1?开全局中断发送完成?清发送标志清超时标志NYNYN关全局中断开始读nRF24L01状态接收中断?超时中断?发送中断?接收标志置1超时标志置1发送标志置1清nRF24L01状态中断返回YNYNYN端口响应处理开始YN初始化PDIUSBD12断开USB延时连接USB端口响应?检测端口USB设备VISA资源数据处理命令处理波形显示控制面板波形分析分析结果显示。