单片机串行多机通信文档格式.docx

上传人:b****5 文档编号:18922481 上传时间:2023-01-02 格式:DOCX 页数:33 大小:618.25KB
下载 相关 举报
单片机串行多机通信文档格式.docx_第1页
第1页 / 共33页
单片机串行多机通信文档格式.docx_第2页
第2页 / 共33页
单片机串行多机通信文档格式.docx_第3页
第3页 / 共33页
单片机串行多机通信文档格式.docx_第4页
第4页 / 共33页
单片机串行多机通信文档格式.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

单片机串行多机通信文档格式.docx

《单片机串行多机通信文档格式.docx》由会员分享,可在线阅读,更多相关《单片机串行多机通信文档格式.docx(33页珍藏版)》请在冰豆网上搜索。

单片机串行多机通信文档格式.docx

使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。

串行通信只使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

其只需要少数几条线就可以在系统间交换信息。

基于以上原因本文介绍了一种基于单片机的多机通信设计,实现单片机与单片机之间通过串口进行数据传输的功能。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录相机、摄相机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高,在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。

串行通信作为单片机之间常用的通信方法之一,由于其通信编程灵活、硬件简洁并遵循统一的标准,因此其在工业控制领域得到了广泛的应用。

构成较大规模的检测、控制系统,经常要采用多个单片机,组成可以通信的多机系统。

MCS一51系列单片机为实现多机通信联网设计了方便的串行通信接口功能。

将多个MCS一51单片机组成串行总线形式的相互通道,通过写单片机的串行控制方式寄存器,将串行口置成方式2或方式3,就可以实现主机与分机之间的串行通信。

这种多机系统结构简单,应用广泛,但它只能实现由主机呼叫分机,然后实现主机与分机之间的全双工串行通信。

我们在监控系统中要求既有主机与分机主动通信,又有分机与主机主动通信,这种结构的多机系统就无法满足要求。

多机协同工作已是单片机发展的一个重要趋势,目前单片机多机通信的主要方式仍然是主从式多机通信系统。

单片机多机通信的目的是实现分布式处理系统,单片机多机通信的方式有很多种,应用前景广阔,非常具有研究意义!

1.2本系统的主要研究内容

本文在研究传统的多机通信系统的基础上,设计了一种基于MCS-51系列单片机AT89C51的多机通信系统。

打开proteus仿真电路图,按下软件下方的“开始”图标,启动系统,按下“1号机”按键,主机与从机1接通,通过主机外接的4*4矩阵键盘控制从机1的数码管,按下标号为0-9的按键时,对应从机1的数码管显示0-9,按下从机1外接的8个开关,可以控制的主机外接的8个LED发光二极管,实现全双工通信。

按下“2号机”按键,机与从机2接通,通过主机外接的4*4矩阵键盘控制从机2的数码管,按下标号为0-9的按键时,对应从机2的数码管显示0-9,按下从机2外接的8个开关,可以控制的主机外接的8个LED发光二极管,也可以实现全双工通信。

2系统分析

2.1串行通信简介

串行通信可以分为同步通信和异步通信两类。

同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。

这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。

它们均由同步字符、数据字符和校验字符(CRC)组成。

其中同步字符位于帧开头,用于确认数据字符的开始。

数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;

校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。

同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。

异步通信中,在异步通行中有两个比较重要的指标:

字符帧格式和波特率。

数据通常以字符或者字节为单位组成字符帧传送。

字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。

发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。

接收端检测到传输线上发送过来的低电平逻辑"

0"

(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。

串口通信最重要的参数是波特率、起始位、数据位、停止位和奇偶校验。

波特率:

是一个衡量通信速度的参数,表示每秒钟传送的bit的个数。

起始位:

当通信线上没有数据被传送时处于逻辑“1”状态,当发送设备要发送一个数据时,先发送一个逻辑“0”信号,这个低电平就是起始位,起始位通过通信线传向接收设备,接收端检测到这个低电平后,就确认开始接收数据了。

起始位的作用是使通信双方在传送数据前协调同步。

数据位:

是衡量通信中实际数据位的参数,当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7或8位,如何设置取决于要传送的信息。

每个包是指一个字节,包括开始/停止位、数据位和奇偶校验位,由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

停止位:

用于表示单个包的最后一位。

典型的值为1、1.5和2位,它是一个数据的结束标志,接收端接收到停止位后,通信线路上会回复逻辑“1”的状态,知道下一个起始位的到来。

奇偶校验位:

在串行通信中一种简单的检错方式,有四种方式:

偶、奇、高和低。

对于偶和检验的情况,串口会设置检验位,用一个值确保传输的数据有偶个或者奇个逻辑高位。

高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验,这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

2.2系统构成

图2.1系统设计框图

2.3系统工作原理

3系统硬件设计

3.1电路设计应用环境简介

Protel电子线路设计软件是在TANGO基础上改进的电路CAD软件,它在原理图文件格式、印制板文件格式、原理图器件库文件格式、印制板封装库文件格式、原理图编译和网络表转换与检查等方面保持了与TANGO版本一致或兼容的前提下,对原TANGO版本做了一些改动。

Protel电子线路设计软件由原理图编辑、印制板设计、原理图输出、印制板输出、原理图器件库编辑和其他应用程序组成。

电路原理图的设计是印制电路板设计中的第一步,也是非常重要的一步。

电路原理图设计得好坏将直接影响到后面的工作。

首先,原理图的正确性是最基本的要求,因为在一个错误的基础上所进行的工作是没有意义的;

其次,原理图应该布局合理,这样不仅可以尽量避免出错,也便于读图、便于查找和纠正错误;

最后,在满足正确性和布局合理的前提下应力求原理图的美观。

进行原理图设计步骤:

一、建立数据库。

打开Protel软件后,在“文件”标题栏里选择“新建”选项,在弹出的对话框里选择DocumentFolder,然后点击OK即可。

二、打开Documents,选择“文件”标题栏里选择“新建”选项,在弹出的对话框里选择“SchematicDocument”选项,建立原理图文件,并给原理图文件命名。

三、设计电路原理图。

利用Protel里的元器件库完成电路原理图的绘制。

四、检查原理图电性能可靠性。

选择工具(Tools)下面的电气规则检查,在“RuleMatrix”中选择要进行电气检查的项目,设置好各项后,在“SetupElectricalRluesCheck”对话框上选择“OK”即可运行电气规则检查,检查结果将被显示到界面上。

3.2系统硬件总体设计方案

本设计单片机之间通过串口进行通信,主机通过按键来选择要进行通信的从机,进而通过按键控制从机的数码管显示数字;

同时从机可以通过按键控制主机连接的LED灯。

数码管与单片机的连接方式采用并行连接方式。

系统设计框图如图3-1所示:

图3.1系统整体电路图

3.3主机电路模块

3.3.1单片机

AT89C51单片机内部主要由9个部件组成:

1个8位中央处理器;

4KBFlash存储器;

128B的数据存储器;

32条I/O口线;

2个定时器/计数器;

1个具有6个中断源、4个优先级的中断嵌套结构;

用于多处理机通信、I/O扩展或全双工UART的串行口;

特殊功能寄存器;

1个片内振荡器和时钟电路。

AT89S51系列单片机完全继承了MCS-51的指令系统,共有111条指令,按其功能可分为五大类:

数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令、布尔操作。

AT89C51单片机引脚如图3-1所示。

图3.1AT89C51单片机引脚图

管脚说明:

P0口:

8位、漏极开路的双向I/O口。

P0能够用于外部程序数据存储器。

它可以被定义为数据/地址的第八位。

P0口在应用时必须外接上拉电阻,作为输入时,首先应将引脚置1。

P1口:

8位双向I/O口,内部含上拉电阻。

作为输入时,应先将引脚置高;

若负载为低电平,则通过内部上拉电阻向外输出电流。

P2口:

P3口:

P3口除了通用I/O口功能外,还有第二功能。

P3口的第二功能定义如表3-1所示。

引脚定义

功能

P3.0-RXD

串行输入口

P3.1-TXD

串行输出口

P3.2-

外部中断0

P3.3-

外部中断1

P3.4-T0

计时器0外部输入

P3.5-T1

计时器1外部输入

P3.6-

外部数据存储器写选通

P3.7-

外部数据存储器读选通

表3.1P3口第二功能定义

RST:

复位输入,低电平有效。

ALE/PROG:

地址锁存允许信号输出。

在正常操作状态下,该引脚端口输出恒定频率的脉冲。

其频率为晶振频率的1/6,可用作外部定时或其他触发信号。

如果需要,可通过SFR的第0位置禁止ALE操作,但ALE的禁止位不影响对外部存储器的访问。

片外程序存储器选通信号,低电平有效。

当AT89S51执行来自外部程序存储器的指令代码时,PSEN/每个机器周期两次有效。

在访问外部数据存储器时,PSEN/无效。

片外程序存储器访问允许信号,低电平有效。

XTAL1:

外接晶振。

在单片机内部是反相放大器的输入及端。

XTAL2:

在单片机内部是反相放大器的输出端,输入到内部时钟发生器。

3.3.2矩阵键盘电路

矩阵键盘电路如图3-2所示。

单片机的P1口控制矩阵键盘。

本设计采用4*4矩阵键盘。

矩阵键盘的行线接P1.0-P1.3引脚,列线接P1.4-P1.7引脚。

将P1.0-P1.3引脚置为高电平,P1.4-P1.7引脚依次置为低电平,当按键没有按下时,P1.0-P1.3口各引脚状态不变,一旦有按键按下,则P1.0-P1.3就会有引脚变为低电平,这样,通过读入P1.0-P1.3的状态就可得知是哪一个按键按下了,然后单片机根据该按键代表的功能执行相应的程序。

图3.2矩阵键盘电路

3.3.3主机控制电路

该部分电路设计如图3-3所示。

单片机的时钟的频率直接影响着单片机的速度和系统的稳定性。

AT89S51片内由一个反相放大器构成振荡器,可以通过XTAL1和XTAL2产生时钟。

常用的单片机产生时钟的方法有两种:

内部时钟方式和外部时钟方式。

本设计选用外部时钟方式,单片机内部XTAL1引脚为高增益反向放大器的输入端,XTAL2为输出端,在这2个引脚之间接石英晶振和电容,就可以构成一个稳定的自激振荡器。

本设计选用的12MHz的晶振。

复位是单片机的初始化操作,复位信号是高电平有效,复位操作有上电自动复位、按键电平复位、外部脉冲复位和自动复位四种方式。

在本设计中复位电路采用按键电平方式,使RST引脚经过10u电解电容与VCC电源接通,同时经过电阻与地连接而实现,按下按键时,RST引脚置高,实现复位功能。

单片机的P1口控制矩阵键盘电路,P2口控制8路LED灯,从机可以向主机发送指令来控制LED灯的亮灭。

当单片机串口接收到从机发送来的指令时,判断其控制的是哪一路LED灯,再用单片机引脚控制该路LED灯。

图3.3主机控制电路

3.4从机电路模块

本设计共设置2路从机,2路从机的电路设计和实现的功能是一样的,所以这里只介绍其中一路从机的电路设计。

从机电路如图3-4所示。

单片机的P1口控制8路按键,这8路按键用于实现控制主机的8路LED灯的亮灭;

P2口控制数码管显示。

半导体数码管的每个线段都是一个发光二极管(LightEmittingDiode,简称LED),因而也把它叫做LED数码管或LED七段显示器。

半导体数码管不仅具有工作电压低、体积小、寿命长、可靠性高等优点,而且响应时间短(一般不超过0.1us),亮度也比较高。

LED数码管由八只发光二极管组成,编号是a、b、c、d、e、f、g、h,分别和同名管脚相连,当发光二极管导通时发光。

每个二极管就是一个笔划,若干个二极管发光时,就构成一个显示字符。

若将单片机的I/O口与数码管的a-g和h相连,高电平(对应共阴极数码管)或低电平(对应共阳极数码管)的位对应的发光二极管就会亮,这样,I/O口输出不同的代码就可以控制数码管显示不同的字符。

由于本设计只用了一个数码管显示数字0-9,所以直接将数码管的8个段码引脚连接至单片机的引脚上,利用单片机的引脚输出要显示的数字的代码。

图3.4从机电路

3.5电源电路模块

电源部分提供整个电路所需各种电压,由电源变压器、整流电路、滤波电路及辅助稳压输出构成,电源变压器的功率由需要输出的电流大小决定,确保有充足功率余量。

交流电经过二极管整流之后,方向单一了,但是大小(电流强度)还是处在不断地变化之中。

这种脉动直流一般是不能直接用来给无线电装供电的。

要把脉动直流变成波形平滑的直流,还需要再做一番“填平取齐”的工作,这便是滤波。

换句话说,滤波的任务,就是把整流器输出电压中的波动成分尽可能地减小,改造成接近恒稳的直流电。

直流电压纹波的大小与滤波电路的电解电容的关系是电容越大纹波越小,小功率电路一般应满足:

R*C>

=2T(R是负载电阻的阻值,C是滤波电容的容值,T是被滤波交流信号的周期)。

滤波电路主要分为以下几种:

一、电容滤波:

电容器两端电压不能突变的特性,正好可以用来承担滤波的任务,电容量越大,滤波效果越好,输出波形越趋于平滑,输出电压也越高,适于各种整流电路。

整流滤波电路对电容器的容量和耐压值要求不是太高,一般根据输出电流大小估算电容器的容量,输出电流大,容量就大;

电流小,容量就小。

二、电感滤波:

利用电感对交流阻抗大而对直流阻抗小的特点,可以用带铁芯的线圈做成滤波器。

电磁滤波输出电压较低,相输出电压波动小,随负载变化也很小,适用于负载电流较大的场合。

三、复式滤波器:

把电容按在负载并联支路,把电感或电阻接在串联支路,可以组成复式滤波器,达到更佳的滤波效果。

这种电路的形状很像字母π,所以又叫π型滤波器;

电磁与电容组成的LC滤波器,其滤波效能很高,几乎没有直流电压损失,适用于负载电流较大、要求纹波很小的场合。

但是,这种滤波器由于电感体积和重量大(高频时可减小),比较笨重,成本也较高,一般情况下使用得不多;

由电阻与电容组成的RC滤波器这种复式滤波器结构简单,能兼起降压、限流作用,滤波效能也较高,是最常用的一种滤波器。

上述两种复式滤波器,由于接有电容,带负载能力都较差。

稳压电路有分立元件稳压电路和集成稳压电路两种,其中集成稳压电路主要用于低电压小电流的整流电路,具有体积小,电路简单,稳压精度高,使用调试方便等特点。

本设计中的供电电源电路如图3-5所示。

220V市电先经过变压器降压至9V,降压后的交流电经过1N4007组成的二极管整流桥进行整流,再经大电解电容和小无极电容滤波进入到稳压块LM7805中,LM7805的输出是+5V,可供电路中元器件的供电使用。

图3.5供电电源电路

3.6元件清单

单片机AT89C51×

3

按键Button×

32

发光二极管LED-RED×

8

数码管7SEG×

2

其他

4系统软件设计

4.1软件设计应用环境与设计语言

本设计软件的设计是在KeilC51的环境下编译的。

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

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

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

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

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

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

C51V7版本是目前最高效、灵活的8051开发平台。

它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。

因此,C51V7版本无疑是8051开发用户的最佳选择。

KeilC51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计,语言上的扩展能让用户使用应用中的所有资源。

一、存储器和特殊功能寄存器的存取。

C51编译器可以实现对8051系列所有资源的操作。

SFR的存取由sfr和sbit两个关键字来提供。

变量可旋转到任一个地址空间。

用关键字-at-还能把变量放入固定的存储器。

存储模式决定了变量的存储类型。

连接定位器支持的代码区可达32个,这就允许用户在原有64KROM的8051基础上扩展程序。

在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。

二、中断功能。

C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。

可再入功能是用关键字来定义呃。

多任务、中断或非中断的代码要求必须具备可再入功能。

三、灵活的指针。

C51提供了灵活高效的指针。

通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。

特殊指针在声明的同时已制定了存储器类型,指向某一特定的存储区域。

由于地址的存储只需1-2字节,因此,指针存取非常迅速。

本设计采用C语言来完成程序设计的,C语言有以下特点:

1、语言简洁、紧凑、使用方便、灵活。

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。

2、运算符丰富。

C的运算符包含的范围很广泛,共有34种运算符,使得C的运算类型极其丰富,表达式类型多样化,灵活使用各种运算符可以实现在其他高级

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

当前位置:首页 > 工作范文 > 行政公文

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

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