单片机多机通信实现毕业论文.docx

上传人:b****4 文档编号:11562846 上传时间:2023-03-19 格式:DOCX 页数:80 大小:1.10MB
下载 相关 举报
单片机多机通信实现毕业论文.docx_第1页
第1页 / 共80页
单片机多机通信实现毕业论文.docx_第2页
第2页 / 共80页
单片机多机通信实现毕业论文.docx_第3页
第3页 / 共80页
单片机多机通信实现毕业论文.docx_第4页
第4页 / 共80页
单片机多机通信实现毕业论文.docx_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

单片机多机通信实现毕业论文.docx

《单片机多机通信实现毕业论文.docx》由会员分享,可在线阅读,更多相关《单片机多机通信实现毕业论文.docx(80页珍藏版)》请在冰豆网上搜索。

单片机多机通信实现毕业论文.docx

单片机多机通信实现毕业论文

 

毕业设计说明书

单片机多机通信实现

 

专业电子信息工程

学生XX杜运福

班级B电子062

学号0610620224

指导教师X春永

完成日期2010年6月10日

 

单片机多机通信实现

摘要:

目前,单片机在多机通信领域应用很广。

但研究最多的是上位机与下位机的通信及多单片机构成的主从式多机通信系统。

本文重点研究了多单片机的平权式多机通信,使各单片机有相同的权限。

本文从平权式多机通信协议入手,首先设计了具体平权式多机通信协议;主机通信用按键控制,模拟实际应用中的触发信号输入。

对于1号单片机,还可通过液晶实时显示工作状态,初始为主机。

在不需置其他单片机为主机的情形下,本多机通信系统可以作为主从式多机通信系统。

从机通信模式通过串口中断触发启动,通信结束即恢复之前的从机状态。

通信过程中,主机先发送寻址的从机号,待从机响应后开始通信。

通信结束后,主机发送自己的主机号,告知从机。

然后从机发给主机校验字节数据,主机检验错误,检验无误后,作出响应,1号单片机液晶会显示,2号和3号单片机收发数据无误后会使LED指示灯亮起。

其外,本文研究了可切换双向接口的实现方法。

通过用单片机的一个引脚控制单片机的串口的连接方式,使其工作在主机模式或从机模式。

本研究已经仿真通过,真实可行。

具有一定的检错能力,串行通信的比特率是9600bit/s,通信速度较快,且可靠性高。

本研究通过硬件电路解决了通信过程中多单片机争用主机权的问题。

关键词:

单片机;多机通信;平权;AT89S52

 

RealizationofmanySCMmunication

Abstract:

Atpresent,thesinglechipmulti-machinemunicationinawidefieldofapplications.However,themoststudiedisthehostputerandlowerputermunicationsandmulti-chipmicroprocessormaster-slavemulti-machinemunicationsystem.Thispaperfocusesonanumberofsinglechipmulti-machinemunicationaffirmative,sothattheMCUhasthesamepermissions.

Thepapermachinefromthemulti-levelmunicationprotocoloftherighttostartwith,first,thespecificmunicationprotocol.Hostmunicationbuttoncontrol,thepracticalapplicationofsimulationinthetriggersignalinput.FortheNo.1microcontroller,butalsothroughtheLCDdisplayworkingstatus,theinitialforthehost.Noothersinglechipsetinthecaseofthehost,themulti-machinemunicationsystemcanbeusedasmaster-slavemulti-machinemunicationsystem.municationmodefromthemachinethroughtheserialportinterrupttriggering,municationbeforetheendoftherecoveryfromthemachinestate.municationprocess,thehostsendstheaddressnumberfromthemachineuntiltheresponsefromtheplaneaftermunications.Aftermunication,thehostsendsitsownhostnumber,informedfromthemachines.Andthendistributedtothehostfromthemachinecheckbytesofdata,thehosttesterror,testandprovedcorrectresponse,1singlechipLCDdisplays,2and3,aftertheMCUwillsendandreceivedatacorrectLEDlightison.Besides,thispaper,bi-directionalswitchimplementationoftheinterfacemethods.Throughtheuseofmicroputercontrolofamicrocontrollerpinserialportconnection,toworkinmastermodeorslavemode.

Thisstudyhasbeensimulatedbytherealfeasible.Havesomeerrordetectioncapability,thebitrateofserialmunication9600bit/s,municationspeed,andreliability.Inthisstudy,thehardwarecircuitthroughthemunicationprocesstoresolvethecontentionoverthehostmicrocontrollerovertheissue.

Keywords:

SCM;Multi-machinemunication;Equalrights;AT89S52

单片机多机通信实现

1绪论

1.1课题研究的背景与意义

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

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

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

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

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

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

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

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

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

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

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

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

1.2单片机多机通信领域的历史及国内外发展现状

单片微型计算机(SingleChipMicroputer)简称单片机,又称MCU(MicroControllerUnit),是将计算机的基本部分微型化,使之集成在一块芯片上的微机.片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。

随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。

所涉及的市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。

生产MCS—51系列单片机的厂家如美国AMD公司、ATMEL公司、INTEL公司、WINBOND公司、PHILIPS公司、ISSI公司、TEMIC公司及南韩的LG公司、日本NEC、西门子公司等。

到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动,集群移动通信,无线电对讲机等。

单片机的通信领域应用首先从两片单片机之间的通信发展起来,后来有了主从式多机通信并得到了广泛的应用,又出现了以单片机作为下位机与以PC机作为上位机的通信应用,上位机用VB或VC++等面向对象的程序设计语言编写通信收发程序,也得到了广泛的应用。

虽然,单片机多机通信已经有较长的研究历史了,但其形式大多是主从式的,很少是平权式的。

1.3本课题的研究内容

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

初始时,1号单片机为主机。

主机通过串口向从单片机发送指定格式的数据,从单片机收数据并作出响应,主机通过液晶屏显示通信信息,从机通过LED显示通信状态。

主机通信结束即转为从机,其他单片机可置为主机,获得总线控制权。

1号单片机通过矩阵键盘控制通信过程与显示,2与3号单片机通过独立按键控制通信状态与主从机切换。

在此多机通信系统中,各个单片机具有平等的权限。

仅在初始时,1号单片机被默认置为主机,若不需使2号与3号单片机变成主机,则此通信系统可以作为主从式多机通信系统。

任何时刻,系统只有一片单片机作为主机,其他均为从机。

主机发送的信息可以传送到指定从机,各从机之间也不能直接通信。

主机发起通信,从机接收到自己的单片机号后,开始与主机通信。

2单片机多机通信理论及方案选择

2.1单片机串口通信

2.1.1单片机串口介绍

AT89S52单片机内部含有一个可编程全双工串行通信接口,具有UART的全部功能。

该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。

在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。

MCS-51串行口的发送和接收时钟可由两种方式产生,一种是由主机频率fosc经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。

串行口的发送过程由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。

串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。

接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。

TI和RI是由硬件置位的,但需要用软件复位。

2.1.2单片机串口控制寄存器

a.SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。

两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。

串行口对外有两条独立的收发信号线RXD(P3.0)、TXD(P3.1),因此可以同时发送、接收数据,实现全双工。

b.SCON寄存器用来控制串行口的工作方式和状态,可按位寻址,其字节地址为98H。

它用于定义串行口的工作方式及实施接收和发送控制。

字节地址为98H,其各位定义如表2-1。

表2-1SCON寄存器的各位功能定义

D7

D6

D5

D4

D3

D2

D1

D0

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

表2-2串行口工作方式选择位定义

SM0、SM1

工作方式

功能描述

波特率

00

方式0

8位移位寄存器

Fosc/12

01

方式1

10位UART

可变

10

方式2

11位UART

Fosc/64或fosc/32

11

方式3

11位UART

可变

其中fosc为晶振频率

SM2:

多机通讯控制位。

在方式0时,SM2一定要等于0。

在方式1中,当SM2=1时,则只有接收到有效停止位时,RI才置1。

在方式2或方式3下,当SM2=1且接收到的第九位数据RB8=1时,RI才置1。

REN:

接收允许控制位。

由软件置位以允许接收,又由软件清0来禁止接收。

TB8:

是要发送数据的第9位。

在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。

RB8:

接收到的数据的第9位。

在方式0中不使用RB8。

在方式1中,若SM2=0,RB8为接收到的停止位。

在方式2或方式3中,RB8为接收到的第9位数据。

TI:

发送中断标志。

在方式0中,第8位发送结束时,由硬件置位。

在其它方式的发送停止位前,由硬件置位。

TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。

TI必须用软件清0。

RI:

接收中断标志位。

在方式0,当接收完第8位数据后,由硬件置位。

在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。

RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。

RI也必须用软件清0。

c.PCON中的SMOD用来控制波特率加倍。

d.TMOD设置定时器1的工作方式,用来产生波特率

e.如果用到中断,则还需要用到中断相关的寄存器IE,IP等

2.1.3单片机串口的四种工作方式

方式0:

同步移位寄存器方式,其波特率是固定为振荡频率fosc的1/12。

在这种工作方式下,发送和接收串行数据都通过RXD(P3.0)进行,从TXD(P3.1)输出移位脉冲,控制外部的移位寄存器移位。

1帧信息为8位,没有起始位,停止位。

方式1:

8位UART,1帧信息为10位,其中一位起始位“0”、八位数据位(先低位后高位)和一个停止位“1”,波特率可变,根据定时器1的溢出率计算。

方式2:

9位UART,1帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。

波特率为振荡频率的1/64或1/32

方式3:

9位UART,帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。

波特率可变,根据定时器1的溢出率计算。

附加的第9位数据为SCON中的TB8的值,它由软件置位或清零,可作为多机通信中地址/数据信息的标志位,也可作为数据的奇偶校验位。

单片机的串行通信传输方式有三种:

单工制式、半双工制式和全双工制式。

2.2单片机多机通信方案选择

根据需要,各片单片机有相等的权限,每块单片机都可设置为主机或从机,因此单片机的串口应具有双向可选择性。

采用两个同相三态门加上一个反相器即可构成这样的接口,并由单片机的一根引脚控制单片机串口的连接方式。

发送数据区可存放1B~48B的数据,以空字符'\0'作为发送数据结束标志。

接收数据时以空字符作为接收有效数据结束标志。

通信结束时,从机发回收发长度作为校验。

2.3微处理器的选择

本系统对微处理器要求不是太高,速度不要求太高,但代码较长,因此要求微处理器应有较大的程序存储空间,最好用FlashROM。

通信的发送缓冲区与接收缓冲区均从RAM中分配,为了能传送更多的数据,要求要有较大的RAM。

此外,处理器还应有一个全双工的串行口。

综合考虑以上各种因素,选用MCS-51系列的单片机AT89S52。

AT89S52是一种低功耗高性能的CMOS8位微处理器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适用于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

其引脚结构如下图:

图2-1AT89S52的引脚结构

单片机AT89S52的引脚说明:

VCC:

电源

GND:

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在Flash编程和校验时,P1口接收低8位地址字节。

P1口的第二功能如下表:

表2-2P1口的第二功能

引脚号

第二功能

P1.0

T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1

T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5

MOSI(在系统编程用)

P1.6

MISO(在系统编程用)

P1.7

SCK(在系统编程用)

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVXRI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

在Flash编程和校验时,P3口也接收一些控制信号。

P3口具有第二功能,具体如下表。

表2-3P3口的第二功能

引脚号

第二功能

P3.0

RXD(串行输入)

P3.1

TXD(串行输出)

P3.2

INT0(外部中断0)

P3.3

INT1(外部中断1)

P3.4

T0(定时器0的外部输入)

P3.5

T1(定时器0的外部输入)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

RST:

复位输入。

晶振工作时,RST脚连续两个机器周期高电平使单片机复位。

看门狗计时完成后,RST脚输出96个晶振周期的高电平。

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。

当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

访问外部程序存储器控制信号。

为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接收12伏VPP电压。

XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:

振荡器反相放大器的输出端。

表2-4AT89S52特殊寄存器映象及复位值

并不是所有的地址都被定义了,片上没有定义的地址是不能用的。

读这些地址,一般将得到一个随机数据;写入的数据将会无效。

用户不应该给这些未定义的地址写入数据“1”。

由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。

定时器2寄存器:

寄存器T2CON和T2MOD包含定时器2的控制位和状态位(如表2和表3所示),寄存器对RCAP2H和RCAP2L是定时

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

当前位置:首页 > 经管营销 > 经济市场

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

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