




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要本论文主要阐述的是基于单片机与上位机的通信系统设计,实现上位机与AVR单片机之间数据的传输。第一部分详细说明了系统的结构框图和系统中各个重要模块的设计方案,并根据情况的不同选择了不同的方案。第二部分是系统中下位机各部分的原理及具体硬件电路图的设计,并使用了PROTEL99SE辅助软件绘制原理图。这部分包括温度检测、液晶显示等,可以通过串口将当前温度值传递给上位机。第三部分是串口通信的说明及通信协议的制定。第四部分是系统上位机用户界面的设计和实现。这里应用了VISUALBASIC60编程软件设计操作界面。用户可以根据需要设置串口,发送指令并可以在操作界面显示。第五部分说明了本设计的程序软件流程图,具体说明了程序的运行流程,说明了软件设计思想。本系统综合单片机原理及接口技术、串口传输技术、上位机控制等技术设计出基于AVR单片机与上位机的通信系统。该系统可以用于简单的数据传输,检测控制等。具有较好实用价值。关键字上位机串行通信通信协议ABSTRACTTHISPAPERMAINLYEXPOUNDSTHESINGLECHIPMICROCOMPUTERANDCOMPUTERCOMMUNICATIONSYSTEMDESIGN,REALIZATIONBETWEENSCMANDPCAVRMICRODATATRANSMISSIONTHEFIRSTPARTDETAILEDEXPLANATIONOFTHESYSTEMSTRUCTUREDIAGRAMANDSYSTEMDESIGNSCHEMEOFVARIOUSIMPORTANTMODULES,ANDACCORDINGTOTHESITUATIONOFDIFFERENTCHOICEDIFFERENTSCHEMETHESECONDPARTISTHESYSTEMOFMACHINEPARTSBELOWTHEPRINCIPLEANDSPECIFICHARDWARECIRCUITDESIGN,ANDUSINGTHEPROTEL99SEAUXILIARYSOFTWARERENDERINGDIAGRAMTHISSECTIONINCLUDESTEMPERATUREDETECTION,LCDDISPLAY,ETC,CANBEPASSEDTHROUGHSERIALCURRENTVALUETOPCTHETHIRDPARTISTHESERIALCOMMUNICATIONANDCOMMUNICATIONAGREEMENTTHEFOURTHPARTISTHESYSTEMPCUSERINTERFACEDESIGNANDREALIZATIONHERETHEVISUALBASIC60PROGRAMMINGAPPLICATIONSOFTWAREDESIGNINTERFACEUSERSCANSETACCORDINGTONEED,CANSENDINSTRUCTIONSANDSERIALINTERFACEDISPLAYINTHEFIFTHPARTOFTHEPROGRAMDESIGNSHOWSTHESOFTWAREFLOWCHART,THEPROCEDUREOFTHEOPERATIONPROCESS,THESOFTWAREDESIGNTHOUGHTTHISSYSTEMINTEGRATEDSCMPRINCIPLEANDINTERFACETECHNOLOGY,SERIALTRANSMISSIONTECHNOLOGY,COMPUTERCONTROLTECHNOLOGYISDESIGNEDBASEDONAVRSCMANDPCCOMMUNICATIONSSYSTEMTHISSYSTEMCANBEUSEDINTHESIMPLEDATATRANSMISSION,TESTANDCONTROL,ETCHAVEGOODPRACTICALVALUEKEYWORDSPCSERIALCOMMUNICATIONCOMMUNICATIONSPROTOCOLI目录第一章绪论111系统设计介绍112系统设计意义111系统下位机设计3111数据显示3112温度检测412系统通信方式413系统上位机设计5第二章系统下位机硬件设计与实现621控制电路622电源723DS18B20温度检测824单片机显示9第三章串口通信1231异步串行通信原理1232同步/异步串行收发器USART1233RS232串行通信1434本设计的通信协议17第四章系统上位机软件设计与实现1941初识VISUALBASIC1942VISUALBASIC串行通信控件MSCOMM介绍21411MSCOMM控件的引用21412MSCOMM控件工作方式22413MSCOMM控件控制原则23414MSCOMM控件属性说明2343上位机系统操作界面的设计与实现24第五章系统程序编写与设计2651下位机部分主程序2652上位机部分主程序26II总结28致谢29参考文献30附录A程序31(1)上位机部分程序31(2)单片机部分程序34附录B电路图40(1)系统总体电路图40(2)电源部分电路图411第一章绪论11系统设计介绍本课题是基于AVR单片机与上位机通信系统的设计,此设计包括下位机AVR单片机检测,串口通信,上位机用户操作界面部分等。下位机部分包括AVR单片机、温度检测、液晶显示和串口传输等功能,温度传感器DS18B20检测外界温度传给AVR单片机,AVR单片机处理数据,可以通过LCD1602显示当前温度值。上位机部分利用辅助软件VISUALBASIC60设计了操作界面,用户可以根据需要自行设置,当上位机接收到数据之后可以显示于窗口之中。上位机和下位机之间通过串口传输数据进行通信。系统中上位机用户操作界面可以和下位机AVR单片机之间的数据传输,并可以将数据显示在操作界面之上,实现了AVR单片机和上位机之间的通信。12系统设计意义单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故障率低,可靠性高。AVR单片机具有简便易学,费用低廉;高速、低耗、保密;I/O口功能强,具有A/D转换等电路;有功能强大的定时器/计数器及通讯接口等优点,所以在很多制作和创新中成为首选。AVR单片机与上位机的通信系统是人与单片机应用系统之间的交互界面,在单片机应用系统中,人们常常需要通过输入设备来输入特定的信息,如电信号、语音信号、光信号等,系统对输入的信号进行分析处理后输出结果。系统的这些输出通过电、声、光、图像等方式表现出来,人们再根据系统的输出来决定下一步工作,实现人与系统之间的交互。随着信息技术的普及和发展,尤其是跨入21世纪以后,通信技术2得到了迅速的发展,已经渗透到国民经济的各行各业和人们生活的方方面面,在工业自动化、生产过程控制、信号的采集与处理、安全防范、家用电器控制及日常生活等各个方面都得到了广泛的应用。本系统综合单片机原理及接口技术、串口传输技术、上位机控制等技术设计出基于AVR单片机与上位机的通信系统。该系统可以应用于简单的数据传输,检测控制等领域,具有较好实用价值。3第一章系统的方案设计根据题目要求,整个设计系统可以划分为几个基本模块,系统框图如图1所示。对各模块的实现分别有以下不同的设计方案。图1体统总体框图本设计中,下位机系统可以检测外界环境温度,并显示在显示模块中。上位机系统可以通过串口发送指令给下位机,下位机可以将数据通过串口传递给上位机,并显示于上位机的设计窗口中。11系统下位机设计系统下位机部分包括温度检测、显示模块等。温度检测模块实时检测外界环境温度,传递给AVR单片机ATMEGA16L分析处理后可以通过显示模块显示数据。下位机系统可以通过上位机发送的指令执行既定程序,收发数据等。111数据显示方案一采用AVR单片机ATMEGA16L控制液晶LCD1602显示数据。LCD1602为字符型液晶显示模块,2行输出,每行16个字符。液晶显示屏具有微功耗、体积小、重量轻、可靠性高等特点。它超薄轻巧,可以满足不同需要,显示内容丰富,接口简单方便。串口单片机控制系统显示温度检测按键下位机部分显示模块PC机操作界面数据输出/入设置上位机部分4方案二采用AVR单片机ATMEGA16L控制七段数码管显示数据。单片机动态扫描4位七段数码管,根据显示数码位数的需要把时间分成若干等分,某一时刻仅驱动一位或几位数码管,选择一定的扫描频率,使得人看起来没有闪烁的感觉。此种方法占用的I/O接口较多。综合考虑,选用方案一,不仅简化了接口,使电路的硬件结构优化,而且控制容易。112温度检测方案一采用DS18B20温度传感器。DS18B20数字温度传感器是单总线器件,具有耐磨耐碰,使用方便,线路简单,体积小的特点。测量温度范围在55到125之间。实际应用中不需要任何外部元器件即可实现测温。方案二采用PT100温度传感器。PT100温度传感器为正温度系数热敏电阻传感器,测量范围可达200到850,具有抗振动、稳定性好、线性度好、准确度高、耐高压等优点。但相对来说PT100温度传感器价格较高。综合实际考虑,采用方案一。采用DS18B20温度传感器不仅设计的电路简单,而且降低了设计成本。12系统通信方式方案一采用异步串行通信方式。串行通信,是指构成一个字符或数据的每一位按时间先后一位一位地传输,占用较少通信线。异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。串行通信常作为计算机与外设或计算机之间传输信息之用,使成本降低。方案二采用并行通信方式。并行通信即构成一个字符或数据的每一位同时传送。每一位都占用一条通信线,另外还需联络线以保证微处理器能与外围设备协调地工作。并行通信具有较高的传输速度,但由于在长线上驱动和接收信号较困难,驱动和接收电路较复杂,因而并行通信的传输距离受到限制。5综合考虑,采用方案一异步串行通信方式。13系统上位机设计方案一采用VISUALBASIC程序设计语言编写。VISUALBASIC是一种面向对象程序设计语言,可以将程序代码和数据是为对象。因此可以将引用的窗体或是窗体的控件以及整个应用程序是为一个对象。由对象的概念引申出于对象相关的属性、事件、和方法。从而大大简化了整个程序设计的步骤和难度。方案二采用VISUALC程序设计语言编写。VC是完全面向对象的编程工具,是完全编译语言。VC效率高,封装性好,继承性高,编译后得到的程序可直接运行。利用VC设计上位机不仅需要对面向对象的编程技术有扎实的理解,而且需要充分了解WINDOWS编程所涉及的方方面面。VC的可视化没有VB的好,VB功能没有VC强大,但是很容易掌握,而VC学起来有难度。综合实际考虑,采用采用方案一,利用VISUALBASIC设计上位机界面。6第二章系统下位机硬件设计与实现系统的下位机部分主要包括控制模块、温度检测模块、显示模块等。下位机控制模块采用ATMEGA16L作为主控芯片,温度检测模块采用DS18B20温度传感器检测外界温度,并传递给单片机,单片机控制显示模块LCD1602显示外界环境的实时温度。当上位机发出指令,要求下位机传递数据时,通过串口,下位机可以将此时的外界环境温度传递给上位机,实现上位机与单片机的通信。21控制电路ATMEGA16L是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。由于其先进的指令集一级单时钟周期指令执行时间,ATMEGA16L的数据吞吐率高达1MIPS/MHZ,从而可以减缓系统在功耗和处理速度之间的矛盾。图2为ATMEGA16L引脚分布图。图2ATMEGA16L引脚分布图ATMEGA16L的PA7引脚用来检测外界温度,接DS18B20;PB口用来控制显示模块,PB0PB7分别外接LCD1602的717引脚。DS18B20检7测到外界的温度,传递给单片机,单片机送数据给LCD1602实现显示功能。ATMEGA16L芯片的主要特性32个8位通用工作寄存器;4通道PWM;8路10位ADC;两个可编程的串行USART;可工作于主机/丛集模式的SPI串行接口;具有独立片内振荡器的可编程看门狗定时器;片内模拟比较器;6中睡眠模式空闲、ADC噪声抑制、省电、掉电、STANDBY模式以及扩展的STANDBY模式;32个可编程的I/O口;工作电压2755V;速度等级最高可达8MHZ。22电源AVR单片机ATMEGA16L芯片的供电电压为27V55V,本设计中采用电压稳定的5V直流稳压电源供电。直流稳压电源主要由电源变压器、整流、滤波和稳压电路等四个部分组成。稳压电源原理图如图3所示。图3直流稳压电源结构原理图模拟电源工作原理是由变压器把交流电网电压220V变成整流电路要求的交流电压,再经由4只整流二极管组成的整流桥得到直流电压,通过电容滤波达到比较平稳的直流电压,最后接入稳压电路,维持输电源变压器整流电路滤波电路稳压电路8出电压的稳定。稳压电路由输出极性不同的4片集成稳压器LM7812、LM7912、LM7905、LM7805构成,输出端即可输出12V、5V的电压,输出电流为500MA1A,使用示波器测试输出电压稳定。电路图如图4所示。12341N4007X4D2C3033UFC4033UFVIN1GND2VOUT3IC1LM7812VIN1GND2VOUT3IC2LM7912C501UFC601UFVD1VD2LED1LED2C7033UFC8033UFVIN1GND2VOUT3IC4LM7905VIN1GND2VOUT3IC3LM7805LED3LED4C901UFC1001UFD4D3TTRANS5C12200UFC22200UFR4560R3560R1560R25605V12V5V12V220V图4直流稳压电源原理图23DS18B20温度检测本系统中下位机的温度检测模块采用DS18B20。DS18B20数字温度计是DALLAS公司生产的1WIRE,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20内部结构主要由4部分构成,64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。TO92封装的DS18B20的引脚排列及引脚功能描述见图5,其见下图。9图5DS18B20的引脚排列及功能DS18B20产品的特点只要求一个端口即可实现通信。在DS18B20中的每个器件上都有独一无二的序列号。实际应用中不需要外部任何元器件即可实现测温。测量温度范围在55。C到125。C之间。数字温度计的分辨率用户可以从9位到12位选择。内部有温度上、下限告警设置。DS18B20的数据输入/输出端连接于ATMEGA16L的PA7引脚,电路原理如图6所示。AGND31X113X212RESET9PD2INT016PD3INT117PD4OC1B18PD5OC1A19PB0T01PB1T12PB2AIN03PB3AIN14PB4SS5PB5MOSI6PB6MISO7PB7SCK8ADC0PA040ADC1PA139ADC2PA238ADC3PA337ADC4PA436ADC5PA535ADC6PA634ADC7PA733PC022PC123PC224PC325PC426PC527TOSC1PC628TOSC2PC729PD7TOSC221PD6ICP20AVCC30AREF32PD1TXD15PD0RXD14GND11VCC10ATMEGA16L123DS18B20R47KVCCVCCC101UFC201UFC301UFL10UFR0VCCAVCC1GND电源地2DQ数字信号输入/输出端3VDD外接供电电源输入端123DS18B20132底视图10图6温度检测部分电路原理图24单片机显示设计中的显示模块采用LCD1602。LCD1602通用型液晶模块可以显示2行16个字符,有8位数据总线D0D7,和RS、R/W、E三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。LCD1602的引脚个功能见表1所示。表1编号符号引脚说明编号符号引脚说明1VSS电源地9D2双向数据口2VDD电源正极10D3双向数据口3VL对比度调节11D4双向数据口4RS数据/命令选择12D5双向数据口5R/W读/写选择13D6双向数据口6E模块使能端14D7双向数据口7D0双向数据口15BLA背光源正极8D1双向数据口16BLK背光源地引脚功能及使用说明VLLCD对比度调节端,电压调节范围为05V。接正电源时对比度最弱,接地电源时对比度最高,通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;RSMCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;R/W读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;ELCD模块使能信号控制端。写数据时,需要下降沿触发模块。D0D78位数据总线,三态双向。如果MCU的I/O口资源紧张的11话,该模块也可以只使用4位数据线D4D7接口传送数据。本设计就是采用4位数据传送方式;BLALED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50MA左右;BLKLED背光地端。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示。1602液晶模块内部显示地址如表2所示表20123456789101112131415000102030405060708090A0B0C0D0E0F第一行404143434445464748494A4B4C4D4E4F第二行LCD1602的数据I/O口连接于ATMEGA16L的PB引脚,电路原理如图7所示。12AGND31X113X212RESET9PD2INT016PD3INT117PD4OC1B18PD5OC1A19PB0T01PB1T12PB2AIN03PB3AIN14PB4SS5PB5MOSI6PB6MISO7PB7SCK8ADC0PA040ADC1PA139ADC2PA238ADC3PA337ADC4PA436ADC5PA535ADC6PA634ADC7PA733PC022PC123PC224PC325PC426PC527TOSC1PC628TOSC2PC729PD7TOSC221PD6ICP20AVCC30AREF32PD1TXD15PD0RXD14GND11VCC10ATMEGA16LVCCC101UFC201UFC301UFL10UFR0VCCAVCC12345678910111213141516LCD1602R10KVCC_5V图7显示部分电路原理图13第三章串口通信31异步串行通信原理异步串行数据通信以帧为传输单位,每一帧包含1位起始位“0”、8或者9位数据、1位奇偶校验位和1位停止位“1”。异步串行通信规定了数据的传送格式,如图8所示。图8数据传输帧格式异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑“1”状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。当接收设备收到起始位后,紧接着就会收到数据位。在字符数据传送过程中,数据位从最低位D0开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,停止位是一个字符数据的结束标志。在异步通信中,字符数据以图所示的格式一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“1”状态,每个字符数据的传送均以逻辑“0”开始。32同步/异步串行收发器USART起始位校验位停止位数据位0D0D1D2D3D4D5D6D7N114USART收发模块一般分为三大部分时钟发生器、数据发送器和接收器。控制寄存器为所有的模块共享。时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。发送时钟引脚XCK仅用于同步发送模式下,发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同浈结构的控制逻辑电路构成。使用写入缓冲器,实现了连续发送多浈数据无延时的通信。接收器是USART模块最复杂的部分,最主要的是时钟和数据接收单元。数据接收单元用作异步数据的接收。除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。接收器支持与发送器相同的桢结构,同时支持桢错误、数据溢出和校验错误的检测。USART支持4中模式的时钟正常的异步模式、倍速的异步模式、主机同步模式、从机同步模式。USART控制位UMSEL和状态寄存器C用于选择异步模式和同步模式。倍速的异步模式(只是用于异步模式)受控于UCSRA寄存器的U2X。使用同步模式(UMSEL1)时,XCK的数据方向寄存器(DDR_XCK)决定时钟源是由内部产生(主机模式)还是由外部产生(从机模式)。表3给出了计算波特率(位/秒)以及计算每一种使用内部时钟源工作模式的UBRR值的公式。表3使用模式波特率计算公式UBRR值计算公式异步正常模式(U2X0)16UBRFADOSC16BAUDFROSC异步倍速模式(U2X1)8FOSC8FS同步主机模式12UBRFADOSC12BAUDFROSCBAUD波特率(BPS)15系统时钟频率;OSCFUBRRUBRRH和UBRRL的数值(04095)串行数据帧由数据字加上同部位(开始位与停止位)以及用于纠错的奇偶校验位构成。USART接收一下30种组合的数据帧格式起始位1位数据位5、6、7、8或9位校验位无校验位、奇校验位、偶校验位停止位1或2位数据帧以起始位开始,紧接着是数据字的最低位,数据字最多可以有9个数据位,以数据的最高位结束。如果使能了校验位,校验位将紧接着数据位,最后是结束位。当一个完整的数据帧传输后,可以立即传输下一个新的数据帧,或是传输线处于空闲状态。进行通信之前首先要对USART进行初始化。初始化过程包括波特率的设定,帧结构的设定,以及根据需要使能接收器或发送器。33RS232串行通信在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS232C接口(又称EIARS232C)是目前最常用的一种串行通讯接口。严格的讲RS232接口是DTE数据终端设备和DCE数据通信设备之间的一个接口。RS232接口引脚定义见表4表425芯9芯信号方向来源缩写描述名23PCTXD发送数据32调制解调器RXD接收数据47PCRTS请求发送58调制解调器CTS允许发送66调制解调器DSR通信设备准备好75GND信号地81调制解调器CD载波检测16162738495DSRRTSCTSRIDCDRXDTXDDTRSG204PCDTR数据终端准备好229调制解调器RI响铃指示器目前RS232是PC机与通信工业中应用最广泛的一种串行接口。RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS232采取不平衡传输方式,即所谓单端通讯。PC主机上的RS232接口的电气电平以12V代表逻辑电平“1”,12V代表逻辑电平“0”,称为EIA电平。而单片机的接口电平为TTL电平,要实现单片机与上位机的串口通信,必须转换双方的信号电平。本设计中采用MAX232实现TTL电平与EIA电平的转换。MAX232芯片是美信公司专门为电脑的RS232标准串口设计的接口电路,使用5V单电源供电。电路原理图如图9所示。CAP11RRIN28CAP6CAP25CAP13CAP2CAP24RTOUT27ROUT29TIN210TIN111ROUT112RRIN113RTOUT114GND15VCC16U2MAX232AGND31X113X212RESET9PD2INT016PD3INT117PD4OC1B18PD5OC1A19PB0T01PB1T12PB2AIN03PB3AIN14PB4SS5PB5MOSI6PB6MISO7PB7SCK8ADC0PA040ADC1PA139ADC2PA238ADC3PA337ADC4PA436ADC5PA535ADC6PA634ADC7PA733PC022PC123PC224PC325PC426PC527TOSC1PC628TOSC2PC729PD7TOSC221PD6ICP20AVCC30AREF32PD1TXD15PD0RXD14GND11VCC10ATMEGA16LVCCC101UFC201UFC301UFL10UFR0VCCAVCCC201UFC101UF162738495DB9C301UFC401UFD1REDD2GREENR1330R2330VCC图9电平转换电路RS232的引脚线可分为控制信号线、数据输送和接收线、接地线等3类。图10为9针D型串口连接器外形。1控制信号线(1)DSR数据装置准备好DATASETREADY有效时ON状态,表明MODEM处于可以使用状态。17(2)DTR数据终端准备好DATASETRAADY有效时ON状态,表明数据终端处于可以使用状态。这两个信号有时连到电源上,一上电就立即有效。只表明设备本身可用,并不说明通信链路可以开始通信,能否开始通信要由下面的控制信号决定。(3)RTS请求发送REQUESTTOSEND求DTE请求DCE发送数据,有效ON。用来控制MODEM是否要进入发送状态。(4)CTS允许请求CLEARTOSENDDCE准备好接收DTE发来的数据,有效ON。是对RTS的响应信号。当MODEM准备好接收终端传来的数据,并向前发送,使该信号有效,通知终端开始开始沿发送数据线TXD发送数据。RTS/CTS请求应答用于半双工MODEM系统中发送方式和接收方式切换,在全双工系统配置双向通道,不需要RTS/CTS。2数据传送和接收线(1)TXD发送数据(TRANSMITTEDDATA)通过TXD接收线,将串行数据传送到MODEMDTEDCE。(2)RXD接收数据(RECEIVEDDATA)通过RXD接收线,接收从MODEM发出的串行数据DCEDTE。3地线分别是信号地SG和保护地DG,无方向。只有当DSR、DTR都处于ON状态时,才能在DTE和DCE之间进行传送操作。若DTE要发送数据,则预先将DTR线置有效ON,等CTS线上收到有效ON回答后,才能在TXD线上发送串行数据。图11为串行通信拓扑结构。图10连接器外形DTEDCESIGNALGROUNDCONTROLSIGNALSRXDTXD18图11串行通信拓扑结构34本设计的通信协议串口通信协议最重要的参数是波特率、数据位、停止位和奇偶校验,对于两个进行通行的端口,这些参数必须匹配。本设计的通信数据帧格式采用波特率9600PBS,数据位8位,无校验方式进行传输。为了保证通信的可靠性,本设计在传递数据的过程中,又增加了自己的通信通信协议。通信过程中,在传递有效数字之前加发一个头数据,在有效数据之后加发一个校验数据。头数据是用户自己定义的,校验数据采用求和校验方式。当接收设备接收到头数据、有效数据、校验数据后,均存放于暂存器中,接收设备接收完全后进行运算,将头数据和有效数据相加与校验数据位数据进行比较,比较后相等,则说明接收到的数据正确,可以应用;如果比较后的结果不相等,则说明接收到的数据不正确,接收设备可以发送请求重发命令,发送设备接收到请求重发命令后重新发送有效数据给接收设备,重新发送的过程同上。例如设下位机发送有效数据0X55H给上位机,则下位机将要发送的数据有3个头数据0X01H,有效数据0X55H,求和校验数据0X56H。下位机存放数据于数组TX_BUF中,发送给上位机,上位机接收到的数据存放于RX_BUF中,当RX_BUF中的数据接收完全后,进行运算。若RX_BUF0X01H,0X55H,0X56H,将接收到的第一位数据0X01H与第二位数据0X55H相加,结果和第三位数据0X56H相比较,比较结果相同,则说明接收的数据正确,取其中的第二位有效数据。若RX_BUF0X01H,0X57H,0X56H,将接收到的第一位数据0X01H与第二位数据0X57H相加,结果和第三位数据0X56H相比较,因为0X58H0X56H,即比较结果不相同,则上位机发送请求重19发命令给下位机,则下位机重新发送数据给上位机,过程如上。程序流程图见图12图12下位机TX_BUF数组中存入数据D0,D1,D2下位机发送数据D0、D1、D2上位机准备好接收数据上位机将接收数据D0D1与D2相比较取D1位有效数据去D0D1D2上位机好接收数据完全数据发送错误,请求从发否是20第四章系统上位机软件设计与实现上位机就是人可以直接发出操作命令的计算机,屏幕上显示各种信号的变化,如液压、水位、温度等。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。本设计中上位机要通过串口实现和下位机的通信,下位机传递即时的温度值给上位机,并显示于上位机的窗口中。41初识VISUALBASIC安装完成VISUALBASIC开发环境后,打开“VISUALBASIC60”应用程序,即可看到如图13所示的窗口。图13进入VISUALBASIC开发环境窗口看到此窗口后,打开一个标准的新工程执行文件“STANDARDEXE”。单击“打开”按钮,进入VISUALBASIC的开发环境窗口。在这个开发环境中,提供了所有程序设所需的资源和功能。如图14所示。21图14VISUALBASIC开发环境窗口为了了解VISUALBASIC的集成开发环境,介绍几种常用窗体的功能。(1)工具箱窗口。工具箱内的工具类型很多,每一个都是一种控件对象。如果要在窗体内引用工具箱内的控件,可直接点击该工具按钮,并在编辑窗体中适当位置拖拽鼠标,调整其大小,松开鼠标,就成功的使用工具箱建立了对象。如图15所示。(2)属性窗口。读者可以查看属性窗口,可以看到当前所建控件的属性,如图所示。读者可以在属性窗口中更改建立控件的属性。如图16所示(3)工程资源管理器。VISUALBASIC在设计一个功能时,通常会打开一个工程。在VISUALBASIC中,提供了图所示的“工程资源管理器”。它列出了目前执行的工程所包含的窗体,让设计者在使用和编辑时一目图1522了然。工程资源管理器中包含“查看程序代码”、“产看对象”和“切换文件夹”这3个按钮,设计者可在设计过程中方便切换。如图17所示。42VISUALBASIC串行通信控件MSCOMM介绍VISUALBASIC是一个可视化的窗口开发环境,VISUALBASIC开发的应用程序非常多,它广泛应用在教育软件、计算机字典软件及各种控制系统中。VISUALBASIC的系统内置及外挂很多控件,其中,MSCOMM通信控件可以让我们完成串行通信的设计。411MSCOMM控件的引用通信应用程序的编写比较困难,因为必须先引用MSCOMM控件才能进一步开始执行通信传输工作。由于VISUALBASIC串行通信组件不会主动出现在工具箱中,所以需要将对链接和嵌入控件添加到工具箱中,步骤如下(1)单击【PROJECT】菜单。(2)在PROJECT菜单下选择【COMPONENTS】命令。(3)打开COMPONENTS对话框,选中“MICROSOFTCOMMCONTROL图16图172360”复选框,如图18所示。(4)单击“应用”或“确定”按钮后,在工具箱中可以看到“MSCOMM控件”图标。可以使用此控件进行通信,如图19所示。412MSCOMM控件工作方式使用MSCOMM控件的目的是为了让用户设计一个系统,此系统可以和串行端口进行通信及发送数据,因此信息会在其硬件电路上流动,此控件提供了以下两种方式来处理信息的流动。事件驱动(EVENTDRIVEN)是处理连接端口通信的一种有效方法。在许多情况下,在事件发生时,程序希望被告知。如有一个字符到达或发生一个变化时。不管是否发生通信事件或错误,程序都可以利用MSCOMM控件来检测并处理这些通信事件及通信错误。程序通过检查COMMEVENT属性的值来轮询事件和错误。如果应用程序不大,这种方法可能比较好。例如,对一个简单的电话拨号程序来说,并没有必要接收每一个字符都生成事件,因为唯一需接收的字符就是调制解调器的OK相应。固定的向设备查询状态时,也以这个方图18图1924式较佳。413MSCOMM控件控制原则在使用VISUALBASIC所提供的串行通信功能之前,必须先了解VISUALBASIC的MSCOMM控件,以便可以套用串行通信的观念。对象我们要使用MSCOMM控件对外进行串行通信,因此在工具箱中选择了MSCOMM控件的图标后,便可以在窗体上安置一个MSCOMM控件,如同在画面上安装一个和串行端口通信的渠道。属性每个控件的属性都相当多,但是通过属性值的设置,我们可以指定硬件以一定的方式工作。当用户在窗体上安置一个MSCOMM控件后,可以按下F4键调出其相应的属性表,其中列出了所有可在设计阶段更改的属性。属性栏将各个属性都列出来,用户可在选择相应的项目后,进行属性的设置。414MSCOMM控件属性说明MSCOMM控件属性很多,重要属性做如下说明COMMPORT属性用来设置或返回通信连接端口号码。程序必须指定所要使用的串行端口号码,WINDOWS系统会使用所设置的通信端口与外界进行通信,程序也可借助此属性返回所使用的连接端口号码。在此设置的通信连接端口号由1开始递增,最大值为16。例如MSCOMM1COMMPORT1设置COM1进行通信传输。SETTINGS属性设置串行传输的标准格式。这个属性设置的参数就是串行传输端口设置。其中包含传送速度、奇偶校验、数据位、停止位等4个参数。其格式为“BBBB,P,D,S”,其中,BBBB表示联机速率、P表示奇偶校验方式、D为数据位数、S则为停止位数。默认值是“9600,N,8,1”,它表示所使用的通信端口是以每秒9600位的速率进行传输,不进行奇偶校验检查,数据单元是8位,停止位为1位。合法的奇偶校验位设置如表5所示。这4个参数必须按顺序排列,不可前后对调。通过SETTINGS属性设置后,传送和接收双方必须遵循传输协定,否则无法传送和接收。例如MSCOMM1SETTINGS“9600,N,8,1”25表5合法的奇偶校验位设置设置EMOSNNONE说明偶数记号奇数空白默认值无奇偶校验PORTOPEN属性在开始使用设置的通信端口之前,必须先设置通信连接端口的状态,在使用完毕之后,必须再关闭这些端口。串行通信端口各项功能都是在PORTOPEN的TRUE和FALSE之间完成的。例如MSCOMM1PORTOPENTRUE打开端口。MSCOMM1PORTOPENFALSE关闭端口。INPUT属性从输入缓存区返回并移除字符。程序靠这个命令读取对方输入缓冲区的数据,并清除缓冲区中已被读取的数据。缓冲区的特性是先进先出。例如BUFFERMSCOMM1INPUT将输入缓冲区字符读入BUFFER字符串变量中。OUTPUT属性精要发送的数据输入缓冲区。当程序需要传输字符串到对方时,可将字符串使用此命令将输出字符串写入输出缓存区中,一般数据在送达输出缓冲区后就被送出。例如MSCOMM1OUTPUT“1234”将1234字符通过串行端口传送出去。43上位机系统操作界面的设计与实现本系统的上位机部分包括显示窗口部分、串口控制部分、端口设置部分和窗口控制部分等。设计的上位机串行通信窗口如图13所示。显示窗口部分包括显示发送的指令窗口和显示接收的数据窗口。“发送的指令”区域可以输入确定指令要求下位机传递数据给上位机,而下位机发送的数据又可以显示在“接收的数据”区域。端口设置部分包括串行端口的选择,波特率的选择,数据位的选择等,通信双方必须遵循一样的通信协议,才可以通信成功。本设计中,上位机的波特率、通信数据位数、校验方式、停止位数及串行端26口都可以根据通信需要自行进行设置。本设计中可以选择的通信波特率有19200BPS、9600BPS、4800BPS;可以传输的数据位数有8位和7位两种;校验方式分为奇校验、偶校验、无校验三种方式;停止位可选择1位或2位。串行传输端口及数据传输格式设置窗口如图21所示。串口开/断部分包括打开串口、关闭串口和一个显示窗口。不管是打开串口还是关闭串口,串口状态部分都会有显示,可以让用户明白现在的串口状态。如图22所示,打开串口则串口状态栏则显示OPEN,同理关闭串口则显示CLOSE。控制部分包括清空指令和发送指令。接收到的数据和发送到的指令都可以通过不同的指令清空。图21图22图2027第五章系统程序编写与设计通信系统中的软件采用模块化的程序设计方法。从功能上来说,系统程序主要由主程序、显示程序等构成。51下位机部分主程序下位机部分实现温度的检测、显示和串口传输数据等,但是下位机为用户提供数据时主要部分。主程序主要完成指令的接受,据的发送等任务。如图23所示。图2352上位机部分主程序上位机部分主要供用户操作,当用户设置好所需选项后,可以发送指令给下位机,下位机发送数据给上位机,当上位机接收数据完全是下位机程序初始化初始化串口模式为中断方式串口接收中断标位置位发送上位机索要数据或执行上位机要求任务否28后,开始运算判断接收数据是否正确,如果正确则显示在用户窗口中,如果正确,则请求重发其程序流程图如图24所示。图24是是否请求重发否返回下位机发送数据完全运算发送数据正确在用户窗口显示用户设置选项系统初始化上位机发送指令给下位机接收下位机的数据开始29总结本文主要介绍了基于AVR单片机与上位机的通信系统设计,及串口的数据收发等。通过这次学习,对以前的知识从一知半解到现在已有一个较为清晰的认识,虽然在设计过程中缺乏实际的生产经验,难免在实际的开发生产过程中对问题的突发性缺乏预见能力,但基本能把大学期间所学的专业知识都融会贯通起来了,并用于此次毕业设计当中,达到学以致用的目的。在整个设计过程中,对PROTLE软件有了更深刻的认识,对VISUALBASIC60编程软件的操作也比较熟悉,然而,本人在使用PROTLE软件画图的过程中,从器件选择使用到PCB制作过程中,曾遇到过不少的困难,影响了设计工作的进展,但经过自己的一番钻研、与同学、老师探讨和请教之后,问题终于迎刃而解。通过自己动手实践和查阅资料。我学会了如何自己解决一些问题的能力。在以后只能通过对自己在专业知识结构上的不断完善,把所学到的理论知识更好地运用到以后的工作、学习中,脚踏实地把工作做得更加出色,更加完美,最后感谢母校及老师们的栽培30致谢3个月的毕业设计已经接近尾声,作为一个本科生,由于经验的匮乏,有许多考虑不周全的地方,如果没有导师的督促指导、同学们的支持,是难以完成我的设计的。首先要感谢我的导师刘智老师。刘老师平日里工作繁多,但在我做毕业设计的各个阶段都给予了我悉心的指导。刘老师的专业水平、治学严谨和科学研究的精神是我学习的榜样。其次要感谢在完成我毕业设计过程中,给予我帮助的同学,他们给予我了很多的经验,使我克服了许多困难来完成此次毕业设计,减少了很多工作量。如果没有他们的帮助,此次设计的完成将变得非常困难。然后还要感谢大学四年来所有的老师,对我们的指导和照顾;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励,此次毕业设计才会顺利完成。最后感谢电子工程分院和我的母校光电信息学院四年来对我的大力栽培。31参考文献1徐永和VISUALBASIC接口设计与工程实践人民邮电出版社20072张军AVR单片机应用系统开发典型事例中国电力出版社,20053康华光电子技术基础高等教育出版社19984张毅刚单片机原理及应用高等教育出版社20045黄继昌徐巧鱼等著传感器工作原理及应用实例人民邮电出版社6黄智伟全国大学生电子设计竞赛电路设计M北京航天航空大学出版社7王彦朋大学生电子设计与应用中国电力出版社20078康丽军VISUALBASIC程序设计教程与实训北京大学出版社20069曾强聪VISUALBASIC程序设计与应用中国水利水电出版社200710BRUCEA,ARTWICKMICROCOMPUTERINTERFACINGPRENTICEHALLINC,198011CURTISDJOHNSONPROCESSCONTROLINSTRUMENTATIANTECHNOLOGY12VIZIMULLER,PRFDESIGNGUIDESYSTEMS,CIRCUITS,ANDEQUATIONSARTECHHOUSE,BOSTON,MA,199532附录A程序(1)上位机部分程序PRIVATESUBCOMMAND1_CLICKMSGBOX“OPEN“IFMSCOMM1PORTOPENFALSETHENMSCOMM1PORTOPENTRUEENDIFENDSUBPRIVATESUBCOMMAND2_CLICKMSCOMM1PORTOPENFALSEMSGBOX“CLOSE“ENDSUBPRIVATESUBCOMMAND3_CLICKTEXTRECEIVETEXT“清空发送指令区ENDSUBPRIVATESUBCOMMAND4_CLICKTEXTSENDTEXT“清空接收数据区ENDSUBPRIVATESUBCOMMAND5_CLICKIFMSCOMM1PORTOPENFALSETHENMSCOMM1PORTOPENTRUEMSCOMM1OUTPUTTRIMTEXTSENDTEXTENDIFENDSUBPRIVATESUBCOMMAND6_CLICKDIMBUFBUFTRIMMSCOMM1INPUT将缓冲区内的数据读入BUF变量33中IFLENBUF0THEN判断缓冲区内是否存在数据TEXTRECEIVETEXT“ELSETEXTRECEIVETEXTBUFENDIFENDSUBPRIVATESUBCOMMAND7_CLICKENDENDSUBPRIVATESUBFORM_LOADIFMSCOMM1PORTOPENTRUETHENMSCOMM1PORTOPENFALSEELSEENDIFCOMBO1ADDITEM“COM1“COMBO1ADDITEM“COM2“COMBO1ADDITEM“COM3“COMBO1ADDITEM“COM4“COMBO1LISTINDEX0选择串口端口设置MSCOMM1COMMPORTCOMBO1LISTINDEX1MSCOMM1SETTINGS“9600,N,8,1“COMBO2ADDITEM“19200“COMBO2ADDITEM“9600“COMBO2ADDITEM“4800“选择波特率端口设置COMBO3ADDITEM“7“COMBO3ADDITEM“8“选择数据位端口设置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨盆矫正的题目及答案
- 技术知识培训内容课件
- 2024年湖南省长沙市中考语文真题及答案解析
- 2025年全媒体理论考试题及答案
- 2025年山东数学高考试题及答案
- 食品药品考试试题及答案
- 山西地理中考试题及答案
- 恐惧不安课件
- 施工吊装考试题目及答案
- 急诊科护士教学课件
- 铜仁公积金提取管理办法
- 初中班级管理课件
- 颈椎病术后护理常规
- 【课件】+有理数的减法(第2课时+有理数加减混合运算)(教学课件)数学人教版2024七年级上册
- 2025年电信项目管理工程师考试试题
- 《高速铁路动车组辅助设备维护与检修(第2版)》课件 任务三四 CRH380B型动车组车门系统
- 单梁吊培训课件
- 2025教师暑期政治培训心得体会
- 抑尘网抑尘效果的风洞试验方法研究
- 2025至2030中国纳米纤维材料行业产业运行态势及投资规划深度研究报告
- 2025-2030中国蒸压加气混凝土(AAC)行业运行态势与未来前景展望报告
评论
0/150
提交评论