单片机多机通信实现

更新时间:2023-11-26 20:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机多机通信实现

摘要:目前,单片机在多机通信领域应用很广。但研究最多的是上位机与下位

机的通信及多单片机构成的主从式多机通信系统。本文重点研究了多单片机的平权式多机通信,使各单片机有相同的权限。

本文从平权式多机通信协议入手,首先设计了具体平权式多机通信协议;主机通信用按键控制,模拟实际应用中的触发信号输入。对于1号单片机,还可通过液晶实时显示工作状态,初始为主机。在不需置其他单片机为主机的情形下,本多机通信系统可以作为主从式多机通信系统。从机通信模式通过串口中断触发启动,通信结束即恢复之前的从机状态。通信过程中,主机先发送寻址的从机号,待从机响应后开始通信。通信结束后,主机发送自己的主机号,告知从机。然后从机发给主机校验字节数据,主机检验错误,检验无误后,作出响应,1号单片机液晶会显示,2号和3号单片机收发数据无误后会使LED指示灯亮起。其外,本文研究了可切换双向接口的实现方法。通过用单片机的一个引脚控制单片机的串口的连接方式,使其工作在主机模式或从机模式。

本研究已经仿真通过,真实可行。具有一定的检错能力,串行通信的比特率是9600bit/s,通信速度较快,且可靠性高。本研究通过硬件电路解决了通信过程中多单片机争用主机权的问题。

关键词:单片机;多机通信;平权;AT89S52

Realization of many SCM communication

Abstract:At present, the single chip multi-machine communication in a wide field

of applications. However, the most studied is the host computer and lower computer communications and multi-chip microprocessor master-slave multi-machine communication system. This paper focuses on a number of single chip multi-machine communication affirmative, so that the MCU has the same permissions.

The paper machine from the multi-level communication protocol of the right to start with, first, the specific communication protocol. Host Communication button control, the practical application of simulation in the trigger signal input. For the No. 1 microcontroller, but also through the LCD display working status, the initial for the host. No other single chip set in the case of the host, the multi-machine communication system can be used as master-slave multi-machine communication system. Communication mode from the machine through the serial port interrupt triggering, communication before the end of the recovery from the machine state. Communication process, the host sends the address number from the machine until the response from the plane after communications. After communication, the host sends its own host number, informed from the machines. And then distributed to the host from the machine check bytes of data, the host test error, test and proved correct response, 1 single chip LCD displays, 2 and 3, after the MCU will send and receive data correct LED light is on. Besides, this paper, bi-directional switch implementation of the interface methods. Through the use of microcomputer control of a

I

microcontroller pin serial port connection, to work in master mode or slave mode.

This study has been simulated by the real feasible. Have some error detection capability, the bit rate of serial communication 9600bit / s, communication speed, and reliability. In this study, the hardware circuit through the communication process to resolve the contention over the host microcontroller over the issue.

Key words::SCM;Multi-machine communication;Equal rights; AT89S52

目录

1 绪论....................................................................... 1 1.1 论文研究的背景与意义 ..................................................... 1 1.2 单片机多机通信领域的历史及国内外发展现状 ................................. 1 1.3 本论文的研究内容 ......................................................... 2 2 单片机多机通信理论及方案选择 ............................................... 3 2.1 单片机串口通信 ........................................................... 3 2.2 单片机多机通信方案选择 ................................................... 5 2.3 微处理器的选择 ........................................................... 5 2.4 液晶LCD1602介绍 ......................................................... 9 3 单片机多机通信协议设计 .................................................... 15 4 硬件电路设计 .............................................................. 16 4.1 单片机最小系统的设计 .................................................... 16 4.2 矩阵键盘电路设计 ........................................................ 17 4.3 液晶显示电路设计 ........................................................ 18 4.4 可切换接口电路设计 ...................................................... 19 4.5 2号与3号单片机按键电路设计 ........................................... 23 4.6 LED显示电路设计 ....................................................... 23 4.7 主机权分配电路设计 ..................................................... 24 4.8 电源电路设计 ........................................................... 28 5 软件设计 .................................................................. 29 5.1 多机通信协议的算法设计 ................................................. 29 5.2 键盘程序设计 ........................................................... 32 5.3 系统初始化程序设计 ..................................................... 35 6 结论...................................................................... 35 参考文献 .................................................................... 36 致谢........................................................................ 37

II

附录1:1号单片机电路原理图 ................................................. 38 附录2:2号单片机电路原理图 ................................................. 39 附录3:3号单片机电路原理图 ................................. 错误!未定义书签。 附录4:仿真电路图 .......................................................... 42 附录5:源程序: ............................................................ 43

I

盐城工学院本科生毕业设计说明书 (2010)

单片机多机通信实现

1 绪论

1.1 课题研究的背景与意义

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。

单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。

构成较大规模的检测、控制系统,经常要采用多个单片机,组成可以通信的多机系统。Mcs一51系列单片机为实现多机通信联网设计了方便的串行通信接口功能。将多个Mcs一51单片机组成串行总线形式的相互通道,通过写单片机的串行控制方式寄存器,将串行口置成方式2或方式3,就可以实现主机与分机之间的串行通信。这种多机系统结构简单,应用广泛,但它只能实现由主机呼叫分机,然后实现主机与分机之间的全双工串行通信。我们在监控系统中要求既有主机与分机主动通信,又有分机与主机主动通信,这种结构的多机系统就无法满足要求。

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

单片机多机通信的目的是实现分布式处理系统,单片机多机通信的方式有很多种,应用前景广阔,非常具有研究意义! 1.2 单片机多机通信领域的历史及国内外发展现状

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

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

1

单片机多机通信实现

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

所涉及的市场占有率最高的是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

盐城工学院本科生毕业设计说明书 (2010)

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-1 SCON寄存器的各位功能定义

D7 SM0

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

3

D6 SM1

D5 SM2

D4 REN

D3 TB8

D2 RB8

D1 TI

D0 RI

单片机多机通信实现

SM0、SM1 0 0 0 1 1 0 1 1

工作方式 方式0 方式1 方式2 方式3

功能描述 8位移位寄存器 10位UART 11位UART 11位UART

波特率 Fosc/12 可变

Fosc/64或fosc/32 可变

其中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

4

盐城工学院本科生毕业设计说明书 (2010)

方式3:9位UART,帧信息为11位,其中一位起始位“0”、八位数据位(先低位后高位),一位控制位(第九位)和一个停止位“1”。波特率可变,根据定时器1的溢出率计算。

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

单片机的串行通信传输方式有三种:单工制式、半双工制式和全双工制式。 2.2 单片机多机通信方案选择

根据需要,各片单片机有相等的权限,每块单片机都可设置为主机或从机,因此单片机的串口应具有双向可选择性。采用两个同相三态门加上一个反相器即可构成这样的接口,并由单片机的一根引脚控制单片机串口的连接方式。

发送数据区可存放1B~48B的数据,以空字符'\\0'作为发送数据结束标志。接收数据时以空字符作为接收有效数据结束标志。通信结束时,从机发回收发长度作为校验。 2.3 微处理器的选择

本系统对微处理器要求不是太高,速度不要求太高,但代码较长,因此要求微处理器应有较大的程序存储空间,最好用Flash ROM。通信的发送缓冲区与接收缓冲区均从RAM中分配,为了能传送更多的数据,要求要有较大的RAM。此外,处理器还应有一个全双工的串行口。

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

AT89S52是一种低功耗高性能的CMOS 8位微处理器,具有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 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

其引脚结构如下图:

5

单片机多机通信实现

图2-1 AT89S52的引脚结构

单片机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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,

6

本文来源:https://www.bwwdw.com/article/sxlt.html

Top