基于AVR单片机与上位机的通信系统设计_第1页
基于AVR单片机与上位机的通信系统设计_第2页
基于AVR单片机与上位机的通信系统设计_第3页
基于AVR单片机与上位机的通信系统设计_第4页
基于AVR单片机与上位机的通信系统设计_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘摘 要要本论文主要阐述的是基于单片机与上位机的通信系统设计,实现上位机与 AVR 单片机之间数据的传输。第一部分详细说明了系统的结构框图和系统中各个重要模块的设计方案,并根据情况的不同选择了不同的方案。第二部分是系统中下位机各部分的原理及具体硬件电路图的设计,并使用了 protel 99se 辅助软件绘制原理图。这部分包括温度检测、液晶显示等,可以通过串口将当前温度值传递给上位机。第三部分是串口通信的说明及通信协议的制定。第四部分是系统上位机用户界面的设计和实现。这里应用了 Visual Basic 6.0 编程软件设计操作界面。用户可以根据需要设置串口,发送指令并可以在操作界面显示。第五部

2、分说明了本设计的程序软件流程图,具体说明了程序的运行流程,说明了软件设计思想。本系统综合单片机原理及接口技术、串口传输技术、上位机控制等技术设计出基于 AVR 单片机与上位机的通信系统。该系统可以用于简单的数据传输,检测控制等。具有较好实用价值。关键字关键字:上位机 串行通信 通信协议AbstractThis paper mainly expounds the single chip microcomputer and computer communication system design, realization between SCM and PC AVR micro data tran

3、smission. The first part detailed explanation of the system structure diagram and system design scheme of various important modules, and according to the situation of different choice different scheme. The second part is the system of machine parts below the principle and specific hardware circuit d

4、esign, and using the Protel 99se auxiliary software rendering diagram. This section includes temperature detection, LCD display, etc, can be passed through serial current value to PC. The third part is the serial communication and communication agreement. The fourth part is the system PC user interf

5、ace design and realization. Here the Visual Basic 6.0 programming application software design interface. Users can set according to need, can send instructions and serial interface display in. The fifth part of the program design shows the software flow chart, the procedure of the operation process,

6、 the software design thought.This system integrated SCM principle and interface technology, serial transmission technology, computer control technology is designed based on AVR SCM and PC communications system. This system can be used in the simple data transmission, test and control, etc. Have good

7、 practical value.Key words: PC Serial communication Communications protocolI目录目录第一章第一章 绪绪 论论.11.11.1 系统设计介绍系统设计介绍.11.21.2 系统设计意义系统设计意义.11.11.1 系统下位机设计系统下位机设计..1 数据显示数据显示 ..2 温度检测温度检测 .41.21.2 系统通信方式系统通信方式.41.31.3 系统上位机设计系统上位机设计.5第二章第二章 系统下位机硬件设计与实现系统下位机硬件设计与实现.62.12.1 控制电路控制电路.62.2

8、2.2 电源电源.72.32.3 DS18B20DS18B20 温度检测温度检测.82.42.4 单片机显示单片机显示.9第三章第三章 串口通信串口通信.123.13.1 异步串行通信原理异步串行通信原理.123.2 同步同步/异步串行收发器异步串行收发器 USART.123.33.3 RS-232RS-232 串行通信串行通信.143.43.4 本设计的通信协议本设计的通信协议.17第四章第四章 系统上位机软件设计与实现系统上位机软件设计与实现.194 4. .1 1 初初识识 V VISUALISUAL B BASICASIC.194.24.2 V VISUALISUAL B BASICA

9、SIC 串行通信控件串行通信控件 MSCMSCOMMOMM介绍介绍..1 MSCommMSComm 控件的引用控件的引用 ..2 MSCommMSComm 控件工作方式控件工作方式 ..3 MSCommMSComm 控件控制原则控件控制原则 ..4 MSCommMSComm 控件属性说明控件属性说明 .234.34.3 上位机系统操作界面的设计与实现上位机系统操作界面的设计与实现.24第五章第五章 系统程序编写与设计系统程序编写与设计.265.15.1 下位机部分主程序下位机部分主程序.265.25.2 上位机部分

10、主程序上位机部分主程序.26II总结总结.28致谢致谢.29参考文献参考文献.30附录附录 A A:程序:程序.31(1 1)上位机部分程序)上位机部分程序.31(2 2)单片机部分程序)单片机部分程序.34附录附录 B B:电路图:电路图.40(1 1)系统总体电路图)系统总体电路图.40(2 2)电源部分电路图)电源部分电路图.411第一章第一章 绪绪 论论1.11.1 系统设计介绍系统设计介绍本课题是基于 AVR 单片机与上位机通信系统的设计,此设计包括下位机 AVR 单片机检测,串口通信,上位机用户操作界面部分等。下位机部分包括 AVR 单片机、温度检测、液晶显示和串口传输等功能,温度

11、传感器 DS18B20 检测外界温度传给 AVR 单片机,AVR 单片机处理数据,可以通过 LCD1602 显示当前温度值。上位机部分利用辅助软件 Visual Basic 6.0 设计了操作界面,用户可以根据需要自行设置,当上位机接收到数据之后可以显示于窗口之中。上位机和下位机之间通过串口传输数据进行通信。系统中上位机用户操作界面可以和下位机 AVR 单片机之间的数据传输,并可以将数据显示在操作界面之上,实现了 AVR 单片机和上位机之间的通信。1.21.2 系统设计意义系统设计意义单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器人制作等领域,使产品功能、精度和质量大

12、幅度提升,且电路简单,故障率低,可靠性高。 AVR 单片机具有 简便易学,费用低廉 ;高速、低耗、保密 ;I/O 口功能强,具有 A/D 转换等电路;有功能强大的定时器 /计数器及通讯接口 等优点,所以在很多制作和创新中成为首选。AVR 单片机与上位机的通信系统是人与单片机应用系统之间的交互界面,在单片机应用系统中,人们常常需要通过输入设备来输入特定的信息,如电信号、语音信号、光信号等,系统对输入的信号进行分析处理后输出结果。系统的这些输出通过电、声、光、图像等方式表现出来,人们再根据系统的输出来决定下一步工作,实现人与系统之间的交互。随着信息技术的普及和发展,尤其是跨入 21 世纪以后,通信

13、技术2得到了迅速的发展,已经渗透到国民经济的各行各业和人们生活的方方面面,在工业自动化、生产过程控制、信号的采集与处理、 、安全防范、家用电器控制及日常生活等各个方面都得到了广泛的应用。本系统综合单片机原理及接口技术、串口传输技术、上位机控制等技术设计出基于 AVR 单片机与上位机的通信系统。该系统可以应用于简单的数据传输,检测控制等领域,具有较好实用价值。3第一章第一章 系统的方案设计系统的方案设计根据题目要求,整个设计系统可以划分为几个基本模块,系统框图如图 1 所示。对各模块的实现分别有以下不同的设计方案。图 1 体统总体框图本设计中,下位机系统可以检测外界环境温度,并显示在显示模块中。

14、上位机系统可以通过串口发送指令给下位机,下位机可以将数据通过串口传递给上位机,并显示于上位机的设计窗口中。1.11.1 系统下位机设计系统下位机设计系统下位机部分包括温度检测、显示模块等。温度检测模块实时检测外界环境温度,传递给 AVR 单片机 Atmega16L 分析处理后可以通过显示模块显示数据。下位机系统可以通过上位机发送的指令执行既定程序,收发数据等。.1 数据显示数据显示方案一方案一:采用 AVR 单片机 Atmega16L 控制液晶 LCD1602 显示数据。LCD1602 为字符型液晶显示模块,2 行输出,每行 16 个字符。液晶显示屏具有微功耗、体积小、重量轻、

15、可靠性高等特点。它超薄轻巧,可以满足不同需要,显示内容.丰富,接口简单方便。串 口单片机控制系统显 示温度检测按 键下位机部分显示模块PC机操作界面数据输出/入设 置上位机部分4方案二方案二:采用 AVR 单片机 Atmega16L 控制七段数码管显示数据。单片机动态扫描 4 位七段数码管,根据显示数码位数的需要把时间分成若干等分,某一时刻仅驱动一位或几位数码管,选择一定的扫描频率,使得人看起来没有闪烁的感觉。此种方法占用的 I/O 接口较多。综合考虑,选用方案一,不仅简化了接口,使电路的硬件结构优化,而且控制容易。.2 温度检测温度检测 方案一方案一:采用 DS18B20 温

16、度传感器。DS18B20 数字温度传感器是单总线器件,具有耐磨耐碰,使用方便 ,线路简单,体积小的特点。测量温度范围在55到125之间。实际应用中不需要任何外部元器件即可实现测温。 方案二方案二:采用 PT100 温度传感器。Pt100 温度传感器为正温度系数热敏电阻传感器,测量范围可达200到850,具有抗振动、稳定性好、线性度好、准确度高、耐高压等优点。但相对来说 PT100温度传感器价格较高。综合实际考虑,采用方案一。采用 DS18B20 温度传感器不仅设计的电路简单,而且降低了设计成本。1.21.2 系统通信方式系统通信方式方案一方案一:采用异步串行通信方式。串行通信,是指构成一个字符

17、或数据的每一位按时间先后一位一位地传输,占用较少通信线。异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。串行通信常作为计算机与外设或计算机之间传输信息之用,使成本降低。方案二方案二:采用并行通信方式。并行通信即构成一个字符或数据的每一位同时传送。每一位都占用一条通信线,另外还需联络线以保证微处理器能与外围设备协调地工作。并行通信具有较高的传输速度,但由于在长线上驱动和接收信号较困难,驱动和接收电路较复杂,因而并行通信的传输距离受到限制。5综合考虑,采用方案一异步串行通信方式。1.31.3 系统上位机设计系统上位机设计方案一方案一:采用 Vis

18、ual Basic 程序设计语言编写。Visual Basic 是一种面向对象程序设计语言,可以将程序代码和数据是为对象。因此可以将引用的窗体或是窗体的控件以及整个应用程序是为一个对象。由对象的概念引申出于对象相关的属性、事件、和方法。从而大大简化了整个程序设计的步骤和难度。方案二方案二:采用 Visual C+ 程序设计语言编写。VC+是完全面向对象的编程工具,是完全编译语言。VC+效率高,封装性好,继承性高,编译后得到的程序可直接运行。利用 VC+设计上位机不仅需要对面向对象的编程技术有扎实的理解,而且需要充分了解 Windows 编程所涉及的方方面面。VC+的可视化没有 VB 的好,VB

19、 功能没有 VC 强大,但是很容易掌握,而 VC+学起来有难度。综合实际考虑,采用采用方案一,利用Visual Basic 设计上位机界面。6第二章第二章 系统下位机硬件设计与实现系统下位机硬件设计与实现系统的下位机部分主要包括控制模块、温度检测模块、显示模块等。下位机控制模块采用 Atmega16L 作为主控芯片,温度检测模块采用 DS18B20 温度传感器检测外界温度,并传递给单片机,单片机控制显示模块 LCD1602 显示外界环境的实时温度。当上位机发出指令,要求下位机传递数据时,通过串口,下位机可以将此时的外界环境温度传递给上位机,实现上位机与单片机的通信。2.12.1 控制电路控制电

20、路ATmega16L 是基于增强的 AVR RISC 结构的低功耗 8 位 CMOS 微控制器。由于其先进的指令集一级单时钟周期指令执行时间,ATmega16L的数据吞吐率高达 1MIPS/MHz,从而可以减缓系统在功耗和处理速度之间的矛盾。图 2 为 ATmega16L 引脚分布图。图 2 ATmega16L 引脚分布图Atmega16L 的 PA7 引脚用来检测外界温度,接 DS18B20;PB 口用来控制显示模块,PB0-PB7 分别外接 LCD1602 的 7-17 引脚。DS18B20 检7测到外界的温度,传递给单片机,单片机送数据给 LCD1602 实现显示功能。Atmega16L

21、 芯片的主要特性:32 个 8 位通用工作寄存器;4 通道 PWM;8 路 10 位 ADC;两个可编程的串行 USART;可工作于主机/丛集模式的 SPI 串行接口;具有独立片内振荡器的可编程看门狗定时器;片内模拟比较器;6 中睡眠模式:空闲、ADC 噪声抑制、省电、掉电、Standby 模式以 及扩展的 Standby 模式;32 个可编程的 I/O 口;工作电压:2.7-5.5V;速度等级最高可达 8MHz。2.22.2 电源电源AVR 单片机 Atmega16L 芯片的供电电压为 2.7V-5.5V,本设计中采用电压稳定的 5V 直流稳压电源供电。直流稳压电源主要由电源变压器、整流、滤

22、波和稳压电路等四个部分组成。稳压电源原理图如图 3 所示。图 3 直流稳压电源结构原理图模拟电源工作原理是由变压器把交流电网电压 220V 变成整流电路要求的交流电压,再经由 4 只整流二极管组成的整流桥得到直流电压,通过电容滤波达到比较平稳的直流电压,最后接入稳压电路,维持输电源变压器整流电路滤波电路稳压电路8出电压的稳定。稳压电路由输出极性不同的 4 片集成稳压器LM7812、LM7912、LM7905、LM7805 构成,输出端即可输出12V、5V 的电压,输出电流为 500mA 1A,使用示波器测试输出电压稳定。电路图如图 4 所示。12341N4007x4D2C30.33uFC40.

23、33uFVin1GND2Vout3IC1LM7812Vin1GND2Vout3IC2LM7912C50.1uFC60.1uFVD1VD2LED1LED2C70.33uFC80.33uFVin1GND2Vout3IC4LM7905Vin1GND2Vout3IC3LM7805LED3LED4C90.1uFC100.1uFD4D3TTRANS5C12200uFC22200uFR4560R3560R1560R2560-5V-12V+5V+12V220V图 4 直流稳压电源原理图2.32.3 DS18B20DS18B20 温度检测温度检测本系统中下位机的温度检测模块采用 DS18B20。DS18B20

24、数字温度计是 DALLAS 公司生产的 1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20 内部结构主要由 4 部分构成,64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。TO92 封装的 DS18B20 的引脚排列及引脚功能描述见图 5,其见下图。9图 5 DS18B20 的引脚排列及功能DS18B20DS18B20 产品的特点:产品的特点:只要求一个端口即可实现通信。在 DS18B20 中的每个器件上都有独一无二的序列号。实际应用中不需要外部任

25、何元器件即可实现测温。测量温度范围在55。C 到125。C 之间。数字温度计的分辨率用户可以从 9 位到 12 位选择。内部有温度上、下限告警设置。DS18B20 的数据输入/输出端连接于 Atmega16L 的 PA7 引脚,电路原理如图 6 所示。AGND31X113X212RESET9PD2 (INT0)16PD3 (INT1)17PD4 (OC1B)18PD5 (OC1A)19PB0 (T 0)1PB1 (T 1)2PB2 (AIN0)3PB3 (AIN1)4PB4 (SS)5PB5 (MOSI)6PB6 (MISO)7PB7 (SCK)8(ADC0) PA040(ADC1) PA13

26、9(ADC2) PA238(ADC3) PA337(ADC4) PA436(ADC5) PA535(ADC6) PA634(ADC7) PA733PC022PC123PC224PC325PC426PC527(TOSC1) PC628(TOSC2) PC729PD7 (T OSC2)21PD6 (ICP)20AVCC30AREF32PD1 (T XD)15PD0 (RXD)14GND11VCC10ATMEGA16L123DS18B20R4.7KVCCVCCC10.1uFC20.1uFC30.1uFL10uFR0VCCAVCC1GND电源地2DQ数字信号输入/输出端3VDD外接供电电源输入端1 2

27、 3DS18B20132底视图10图 6 温度检测部分电路原理图2.42.4 单片机显示单片机显示设计中的显示模块采用 LCD1602。LCD1602 通用型液晶模块可以显示 2 行 16 个字符,有 8 位数据总线 D0-D7,和 RS、R/W、E 三个控制端口,工作电压为 5V,并且带有字符对比度调节和背光。现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。LCD1602 的引脚个功能见表 1 所示。表 1:编号符号引脚说明编号符号引脚说明1VSS电源地9D2双向数据口2VDD电源正极10D3双向数据口3VL对比度调节11D4双向数据口4RS数据/命令选择12D5双向数据口

28、5R/W读/写选择13D6双向数据口6E模块使能端14D7双向数据口7D0双向数据口15BLA背光源正极8D1双向数据口16BLK背光源地引脚功能及使用说明:VL:LCD 对比度调节端,电压调节范围为 05V。接正电源时对比度最弱,接地电源时对比度最高,通常使用一个 10K 的电位器来调整对比度,或者直接串接一个电阻到地;RS:MCU 写入数据或者指令选择端。MCU 要写入指令时,使 RS 为低电平;MCU 要写入数据时,使 RS 为高电平;R/W:读写控制端。R/W 为高电平时,读取数据;R/W 为低电平时,写入数据;E:LCD 模块使能信号控制端。写数据时,需要下降沿触发模块。D0D7:8

29、 位数据总线,三态双向。如果 MCU 的 I/O 口资源紧张的11话,该模块也可以只使用 4 位数据线 D4D7 接口传送数据。本设计就是采用 4 位数据传送方式;BLA: LED 背光正极。需要背光时,BLA 串接一个限流电阻接VDD,BLK 接地,实测该模块的背光电流为 50mA 左右; BLK: LED 背光地端。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示。1602 液晶模块内部显示地址如表 2 所示 :表 2:01234567891011121314150001

30、02030405060708090A0B0C0D0E0F第一行404143434445464748494A4B4C4D4E4F第二行LCD1602 的数据 I/O 口连接于 Atmega16L 的 PB 引脚,电路原理如图 7 所示。12AGND31X113X212RESET9PD2 (INT0)16PD3 (INT1)17PD4 (OC1B)18PD5 (OC1A)19PB0 (T 0)1PB1 (T 1)2PB2 (AIN0)3PB3 (AIN1)4PB4 (SS)5PB5 (MOSI)6PB6 (MISO)7PB7 (SCK)8(ADC0) PA040(ADC1) PA139(ADC2)

31、 PA238(ADC3) PA337(ADC4) PA436(ADC5) PA535(ADC6) PA634(ADC7) PA733PC022PC123PC224PC325PC426PC527(TOSC1) PC628(TOSC2) PC729PD7 (T OSC2)21PD6 (ICP)20AVCC30AREF32PD1 (T XD)15PD0 (RXD)14GND11VCC10ATMEGA16LVCCC10.1uFC20.1uFC30.1uFL10uFR0VCCAVCC12345678910111213141516LCD1602R10KVCC_5V图 7 显示部分电路原理图13第三章第三章

32、 串口通信串口通信3.13.1 异步串行通信原理异步串行通信原理异步串行数据通信以帧为传输单位,每一帧包含 1 位起始位“0”、8 或者 9 位数据、1 位奇偶校验位和 1 位停止位“1”。异步串行通信规定了数据的传送格式,如图 8 所示。图 8 数据传输帧格式异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑“1”状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。当接收设备收到起始位后,紧接着就会收到数据

33、位。在字符数据传送过程中,数据位从最低位 D0 开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。在奇偶位或数据位之后发送的是停止位,停止位是一个字符数据的结束标志。在异步通信中,字符数据以图所示的格式一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“1”状态,每个字符数据的传送均以逻辑“0”开始。3.23.2 同步同步/ /异步串行收发器异步串行收发器 USARTUSART起始位校验位停止位数据位0D0D1D2D3D4D

34、5D6D7N114USART 收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。控制寄存器为所有的模块共享。时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。发送时钟引脚 XCK 仅用于同步发送模式下,发送器部分由一个单独的写入缓冲器(发送 UDR)、一个串行移位寄存器、校验位发生器和用于处理不同浈结构的控制逻辑电路构成。使用写入缓冲器,实现了连续发送多浈数据无延时的通信。接收器是 USART 模块最复杂的部分,最主要的是时钟和数据接收单元。数据接收单元用作异步数据的接收。除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收U

35、DR)。接收器支持与发送器相同的桢结构,同时支持桢错误、数据溢出和校验错误的检测。USART 支持 4 中模式的时钟:正常的异步模式、倍速的异步模式、主机同步模式、从机同步模式。USART 控制位 UMSEL 和状态寄存器 C用于选择异步模式和同步模式。倍速的异步模式(只是用于异步模式)受控于 UCSRA 寄存器的 U2X。使用同步模式(UMSEL=1)时,XCK 的数据方向寄存器(DDR_XCK)决定时钟源是由内部产生(主机模式)还是由外部产生(从机模式)。表 3 给出了计算波特率(位/秒)以及计算每一种使用内部时钟源工作模式的 UBRR 值的公式。表 3:使用模式波特率计算公式UBRR 值

36、计算公式异步正常模式(U2X=0)) 1(16UBRRfBAUDosc116BAUDfUBRROSC异步倍速模式(U2X=1)) 1(8UBRRfBAUDosc18BAUDfUBRROSC同步主机模式) 1(2UBRRfBAUDosc12BAUDfUBRROSCBAUD波特率(bps);15系统时钟频率;oscfUBRRUBRRH 和 UBRRL 的数值(0-4095)串行数据帧由数据字加上同部位(开始位与停止位)以及用于纠错的奇偶校验位构成。USART 接收一下 30 种组合的数据帧格式:起始位:1 位 数据位:5、6、7、8 或 9 位校验位:无校验位、奇校验位、偶校验位停止位:1 或 2

37、 位数据帧以起始位开始,紧接着是数据字的最低位,数据字最多可以有 9 个数据位,以数据的最高位结束。如果使能了校验位,校验位将紧接着数据位,最后是结束位。当一个完整的数据帧传输后,可以立即传输下一个新的数据帧,或是传输线处于空闲状态。进行通信之前首先要对 USART 进行初始化。初始化过程包括波特率的设定,帧结构的设定,以及根据需要使能接收器或发送器。3.33.3 RS-232RS-232 串行通信串行通信在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C 接口(又称 EIARS-232-C)是目前最常用的一种串行通讯接口。严格的讲 RS-2

38、32 接口是DTE(数据终端设备)和 DCE(数据通信设备)之间的一个接口。RS-232 接口引脚定义见表 4:表 4:25 芯9 芯信号方向来源缩写描述名23PCTXD发送数据32调制解调器RXD接收数据47PCRTS请求发送58调制解调器CTS允许发送66调制解调器DSR通信设备准备好75GND信号地81调制解调器CD载波检测16162738495DSRRTSCTSRIDCDRXDTXDDTRSG204PCDTR数据终端准备好229调制解调器RI响铃指示器目前 RS-232 是 PC 机与通信工业中应用最广泛的一种串行接口。RS-232 被定义为一种在低速率串行通讯中增加通讯距离的单端标准

39、。RS-232 采取不平衡传输方式,即所谓单端通讯。PC 主机上的 RS-232 接口的电气电平以-12V 代表逻辑电平“1” ,+12V 代表逻辑电平“0” ,称为 EIA 电平。而单片机的接口电平为 TTL电平,要实现单片机与上位机的串口通信,必须转换双方的信号电平。本设计中采用 MAX232 实现 TTL 电平与 EIA 电平的转换。MAX232 芯片是美信公司专门为电脑的 RS-232 标准串口设计的接口电路 ,使用+5v 单电源供电。电路原理图如图 9 所示。CAP 1+1RR-IN28CAP-6CAP 2-5CAP 1-3CAP +2CAP 2+4RT-OUT27R-OUT 29T

40、-IN210T-IN111R-OUT 112RR-IN113RT-OUT114GND15VCC16U2M AX232AGND31X113X212RESET9PD2 (INT0)16PD3 (INT1)17PD4 (OC1B)18PD5 (OC1A)19PB0 (T 0)1PB1 (T 1)2PB2 (AIN0)3PB3 (AIN1)4PB4 (SS)5PB5 (M OSI)6PB6 (M ISO)7PB7 (SCK)8(ADC0) PA040(ADC1) PA139(ADC2) PA238(ADC3) PA337(ADC4) PA436(ADC5) PA535(ADC6) PA634(ADC7

41、) PA733PC022PC123PC224PC325PC426PC527(TOSC1) PC628(TOSC2) PC729PD7 (T OSC2)21PD6 (ICP)20AVCC30AREF32PD1 (T XD)15PD0 (RXD)14GND11VCC10ATM EGA16LVCCC10.1uFC20.1uFC30.1uFL10uFR0VCCAVCCC20.1uFC10.1uF162738495DB9C30.1uFC40.1uFD1REDD2GREENR1330R2330VCC图 9 电平转换电路RS232 的引脚线可分为控制信号线、数据输送和接收线、接地线等3 类。图 10 为 9

42、 针 D 型串口连接器外形。1.控制信号线(1)DSR 数据装置准备好 ( Data set ready ) 有效时 ON 状态,表明MODEM 处于可以使用状态。17(2)DTR 数据终端准备好 ( Data set raady ) 有效时 ON状态,表明数据终端处于可以使用状态。这两个信号有时连到电源上,一上电就立即有效。只表明设备本身可用,并不说明通信链路可以开始通信,能否开始通信要由下面的控制信号决定。(3)RTS 请求发送 ( Request to send )求 DTE 请求 DCE 发送数据,有效 ON。用来控制 MODEM 是否要进入发送状态。(4)CTS 允许请求 ( Cle

43、ar to send )DCE 准备好接收 DTE发来的数据,有效 ON。是对 RTS 的响应信号。当 MODEM 准备好接收终端传来的数据,并向前发送,使该信号有效,通知终端开始开始沿发送数据线 TxD 发送数据。RTS/CTS 请求应答用于半双工 MODEM 系统中发送方式和接收方式切换,在全双工系统配置双向通道,不需要 RTS/CTS。2.数据传送和接收线(1)TXD 发送数据 ( Transmitted data )通过 TXD 接收线,将串行数据传送到 Modem (DTEDCE)。(2)RXD 接收数据 ( Received data )通过 RXD 接收线,接收从 Modem 发

44、出的串行数据(DCEDTE)。3.地线分别是信号地 SG 和保护地 DG,无方向。只有当 DSR、DTR 都处于ON 状态时,才能在 DTE 和 DCE 之间进行传送操作。若 DTE 要发送数据,则预先将 DTR 线置有效 ON,等 CTS 线上收到有效 ON 回答后,才能在TXD 线上发送串行数据。图 11 为串行通信拓扑结构。图 10 连接器外形DTEDCESignal GroundControl SignalsRXDTXD18图 11 串行通信拓扑结构3.43.4 本设计的通信协议本设计的通信协议串口通信协议最重要的参数是波特率、数据位、停止位和奇偶校验,对于两个进行通行的端口,这些参数

45、必须匹配 。本设计的通信数据帧格式采用波特率 9600pbs,数据位 8 位,无校验方式进行传输。为了保证通信的可靠性,本设计在传递数据的过程中,又增加了自己的通信通信协议。通信过程中,在传递有效数字之前加发一个头数据,在有效数据之后加发一个校验数据。 头数据是用户自己定义的,校验数据采用求和校验方式。当 接收设备接收到头数据、有效数据、校验数据后,均存放于暂存器中,接收设备接收完全后进行运算,将头数据和有效数据相加与校验数据位数据进行比较, 比较后相等,则说明接收到的数据正确,可以应用;如果比较后的结果不相等,则说明接收到的数据不正确,接收设备可以发送请求重发命令,发送设备接收到请求重发命令

46、后重新发送有效数据给接收设备, 重新发送的过程同上。例如:设下位机发送有效数据 0 x55H 给上位机,则下位机将要发送的数据有 3 个:头数据 0 x01H,有效数据 0 x55H,求和校验数据0 x56H。下位机存放数据 于数组 TX_BUF 中,发送给上位机,上位机接收到的数据存放于 RX_BUF 中,当 RX_BUF 中的数据接收完全后,进行运算。若 RX_BUF = 0 x01H,0 x55H,0 x56H ,将接收到的第一位数据 0 x01H 与第二位数据 0 x55H 相加,结果和第三位数据 0 x56H 相比较,比较结果相同,则说明接收的数据正确,取其中的第二位有效数据。若 R

47、X_BUF = 0 x01H,0 x57H,0 x56H ,将接收到的第一位数据 0 x01H 与第二位数据 0 x57H 相加,结果和第三位数据 0 x56H 相比较,因为 0 x58H0 x56H,即比较结果不相同,则上位机发送 请求重19发命令给下位机,则下位机重新发送数据给上位机,过程如上。程序流程图见图 12图 12下位机 TX_BUF 数组中存入数据D0,D1,D2下位机发送数据D0、D1、D2上位机准备好接收数据?上位机将接收数据D0+D1 与 D2 相比较取 D1 位有效数据去D0 + D1 = D2 ?上位机好接收数据完全?数据发送错误,请求从发否是20第四章第四章 系统上位

48、机软件设计与实现系统上位机软件设计与实现上位机就是人可以直接发出操 作命令的计算机 ,屏幕上显示各种信号的变化,如液压、水位、温度等。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。 本设计中上位机要通过串口实现和下位机的通信,下位机传递即时的温度值给上位机,并显示于上位机的窗口中。4 4. .1 1 初初识识 VisualVisual BasicBasic安装完成 Visual Basic 开发环境后,打开“Visual Basic 6.0”应用程序,即可看到如图 13 所示的窗口。图 13 进入 Visual Basic 开发环境窗口看到此窗口后 ,打开

49、一个标准的新工程执行文件 “Standard EXE” 。单击“打开”按钮,进入 Visual Basic 的开发环境窗口。在这个开发环境中,提供了所有程序设所需的资源和功能。如图 14 所示。21图 14 Visual Basic 开发环境窗口为了了解 Visual Basic 的集成开发环境,介绍几种常用窗体的功能。(1)工具箱窗口。工具箱内的工具类型很多,每一个都是一种控件对象。如果要在窗体内引用工具箱内的控件,可 直接点击该工具按钮,并在编辑窗体中适当位置拖拽 鼠标,调整其大小 ,松开鼠标,就成功的使用工具箱 建立了对象。 如图 15 所示。(2)属性窗口。读者可以查看属性窗口,可以看

50、到当前所建控件的属性,如图所示。读者可以在属性窗口中更改建 立控件的属性。 如图 16 所示(3)工程资源管理器。 Visual Basic 在设计一个功能时,通常会打开一个工程。在 Visual Basic 中,提供了图所示的“工程资源管理器 ” 。它列出了目前执行的工程所包含 的窗体,让设计者在使用和编辑时一目图 1522了然。工程资源管理器中包含 “查看程序代码 ” 、 “产看对象”和“切换文件夹”这 3 个按钮,设计者可在设计过程中方便切换。如图17 所示。4.24.2 VisualVisual BasicBasic 串行通信控件串行通信控件 MSCommMSComm 介绍介绍Visu

51、al Basic 是一个可视化的窗口开发环境,Visual Basic 开发的应用程序非常多,它广泛应用在教育软件、计算机字典软件及各种控制系统中。Visual Basic 的系统内置及外挂很多控件,其中,MSComm 通信控件可以让我们完成串行通信的设计。.1 MSCommMSComm 控件的引用控件的引用通信应用程序的编写比较困难,因为必须先引用 MSComm 控件才能进一步开始执行通信传输工作。由于 Visual Basic 串行通信组件不会主动出现在工具箱中,所以需要将对链接和嵌入控件添加到工具箱中,步骤如下:(1)单击【Project】菜单。(2)在 project

52、菜单下选择【components】命令。(3)打开 components 对话框,选中“Microsoft Comm Control 图 16图 17236.0”复选框,如图 18 所示。(4)单击“应用”或“确定”按钮后,在工具箱中可以看到“MSComm 控件”图标。可以使用此控件进行通信,如图 19 所示。.2 MSCommMSComm 控件工作方式控件工作方式使用 MSComm 控件的目的是为了让用户设计一个系统,此系统可以和串行端口进行通信及发送数据,因此信息会在其硬件电路上流动,此控件提供了以下两种方式来处理信息的流动。事件驱动(Event-driven)是处理连接端

53、口通信的一种有效方法。在许多情况下,在事件发生时,程序希望被告知。如有一个字符到达或发生一个变化时。不管是否发生通信事件或错误,程序都可以利用MSComm 控件来检测并处理这些通信事件及通信错误。程序通过检查 CommEvent 属性的值来轮询事件和错误。如果应用程序不大,这种方法可能比较好。例如,对一个简单的电话拨号程序来说,并没有必要接收每一个字符都生成事件,因为唯一需接收的字符就是调制解调器的 OK 相应。固定的向设备查询状态时,也以这个方图 18图 1924式较佳。.3 MSCommMSComm 控件控制原则控件控制原则在使用 Visual Basic 所提供的串行通信

54、功能之前,必须先了解Visual Basic 的 MSComm 控件,以便可以套用串行通信的观念。对象:我们要使用 MSComm 控件对外进行串行通信,因此在工具箱中选择了 MSComm 控件的图标后,便可以在窗体上安置一个 MSComm 控件,如同在画面上安装一个和串行端口通信的渠道。属性:每个控件的属性都相当多,但是通过属性值的设置,我们可以指定硬件以一定的方式工作。当用户在窗体上安置一个 MSComm 控件后,可以按下 F4 键调出其相应的属性表,其中列出了所有可在设计阶段更改的属性。属性栏将各个属性都列出来,用户可在选择相应的项目后,进行属性的设置。.4 MSCommM

55、SComm 控件属性说明控件属性说明MSComm 控件属性很多,重要属性做如下说明:CommPort 属性:用来设置或返回通信连接端口号码。程序必须指定所要使用的串行端口号码,Windows 系统会使用所设置的通信端口与外界进行通信,程序也可借助此属性返回所使用的连接端口号码。在此设置的通信连接端口号由 1 开始递增,最大值为 16。例如: MSComm1.Commport=1 设置 COM1 进行通信传输。Settings 属性:设置串行传输的标准格式。这个属性设置的参数就是串行传输端口设置。其中包含传送速度、奇偶校验、数据位、停止位等 4 个参数。其格式为“BBBB,P,D,S”,其中,B

56、BBB 表示联机速率、P 表示奇偶校验方式、D 为数据位数、S 则为停止位数。默认值是“9600,N,8,1” ,它表示所使用的通信端口是以每秒 9600 位的速率进行传输,不进行奇偶校验检查,数据单元是 8 位,停止位为 1 位。合法的奇偶校验位设置如表 5 所示。这 4 个参数必须按顺序排列,不可前后对调。通过 Settings 属性设置后,传送和接收双方必须遵循传输协定,否则无法传送和接收。例如:MSComm1.Settings=“9600,N,8,1” 25表 5 合法的奇偶校验位设置设置EMOSNNone说明偶数记号奇数空白默认值无奇偶校验PortOpen 属性:在开始使用设置的通信

57、端口之前,必须先设置通信连接端口的状态,在使用完毕之后,必须再关闭这些端口。串行通信端口各项功能都是在 PortOpen 的 True 和 False 之间完成的。例如: MSComm1. PortOpen=True 打开端口。MSComm1. PortOpen=False 关闭端口。Input 属性:从输入缓存区返回并移除字符。程序靠这个命令读取对方输入缓冲区的数据,并清除缓冲区中已被读取的数据。缓冲区的特性是先进先出。例如:Buffer$=MSComm1.Input 将输入缓冲区字符读入 Buffer 字符串变量中。Output 属性:精要发送的数据输入缓冲区。当程序需要传输字符串到对方时

58、,可将字符串使用此命令将输出字符串写入输出缓存区中,一般数据在送达输出缓冲区后就被送出。例如:MSComm1.Output=“1234” 将 1234 字符通过串行端口传送出去。4.34.3 上位机系统操作界面的设计与实现上位机系统操作界面的设计与实现本系统的上位机部分包括显示窗口部分、串口控制部分、端口设置部分和窗口控制部分等。设计的上位机串行通信窗口如图 13 所示。显示窗口部分包括显示发送的指令窗口和显示接收的数据窗口。“发送的指令”区域可以输入确定指令要求下位机传递数据给上位机,而下位机发送的数据又可以显示在“接收的数据”区域。端口设置部分包括串行端口的选择,波特率的选择,数据位的选择

59、等,通信双方必须遵循一样的通信协议,才可以通信成功。本设计中,上位机的波特率、通信数据位数、校验方式、停止位数及串行端26口都可以根据通信需要自行进行设置。本设计中可以选择的通信波特率有 19200bps、9600bps、4800bps;可以传输的数据位数有 8 位和 7位两种;校验方式分为奇校验、偶校验、无校验三种方式;停止位可选择 1 位或 2 位。串行传输端口及数据传输格式设置窗口如图 21 所示。串口开/断部分包括打开串口、关闭串口和一个显示窗口。不管是打开串口还是关闭串口,串口状态部分都会有显示,可以让用户明白现在的串口状态。如图 22 所示,打开串口则串口状态栏则显示Open,同理

60、关闭串口则显示 Close。控制部分包括清空指令和发送指令。接收到的数据和发送到的指令都可以通过不同的指令清空。图 21图 22图 2027第五章第五章 系统程序编写与设计系统程序编写与设计通信系统中的软件采用模块化的程序设计方法。从功能上来说,系统程序主要由主程序、显示程序等构成。5.15.1 下位机部分主程序下位机部分主程序下位机部分实现温度的检测、显示和串口传输数据等,但是下位机为用户提供数据时主要部分。主程序主要完成指令的接受,据的发送等任务。如图 23 所示。图 235.25.2 上位机部分主程序上位机部分主程序上位机部分主要供用户操作,当用户设置好所需选项后,可以发送指令给下位机,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论