
串口通信-多机通信系统---单片机.doc
23页目录一、题目要求与功能分析 21.1题目要求 21.2功能及整体模块分析 2二 方案论证 32.1设计目的 32.2设计思路 32.2.1原理分析和讨论 32.2.2题设分析 4三、电路设计 63.1 整体功能框架设计 63.2 硬件电路设计 73.2.1 主机硬件电路设计 83.2.2 从机硬件电路设计 113.3软件电路设计 133.3.1 协议设计 133.3.2 主机程序流程图设计 143.3.3 从机程序流程图设计 15四 系统的调试与实现 174.1主机模块功能调试 174.2从机模块调试 174.3整体设计功能调试 17五 总结与体会 19参考文献 20附 录 21一、题目要求与功能分析1.1题目要求本小组的试验题目如下:一、任务:设计实现多台单片机系统之间的串行通信二、基本要求(难度系数0.8):(1)设计一个主从式多机通信系统,包含1台主机和3台从机,主机和从机全部为单片机;(2)选择合适总线接口芯片,正确连接主机和从机;(3)编程实现分布式数据采集功能,主机可以获取各分机当前AD转换结果,并显示三、发挥部分:(1)完善通信功能根据完成情况加分,上限+0.2)1.2功能及整体模块分析随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,多机通信系统设计的监控系统逐步普及。
此多机通信系统具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯在检测大量模拟量的工业现场使用相似的多机通讯系统;单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低本次实验的目的是就是应用单片机的串口通信功能实现一个分布式采集系统整个系统中包含一片主机和三片从机,主机的任务是实现对三片从机的AD转换结果的采集并在数码管上显示之这样从硬件的角度上将整个系统分为两个模块—主机模块和从机模块主机模块中包含单片机模块、数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD转换子模块和串口电平转换子模块就本次实验而言硬件电路的设计难点在于串口电平转换芯片MAX485的连接,而软件的设计在于串口通信协议的设定及其相互通信的过程二 方案论证2.1设计目的(1) 进一步掌握串行接口控制寄存器SCON及波特率选择、工作方式的设置方法2) 理解串行接口的多机通信系统的原理和异步串行通信标准接口RS-485的使用3) 进一步掌握C语言程序调试的的方法4) 熟悉多机通信设置从机地址来识别从机的一种方法2.2设计思路 2.2.1原理分析和讨论单片机构成的多机系统常采用总线型主从式结构。
所谓主从式,即在数个单片机中,有一个是主机,其余的是从机,从机要服从主机的调度、支配80C51单片机的串行口方式2和方式3适于这种主从式的通信结构当然采用不同的通信标准时,还需进行相应的电平转换,有时还要对信号进行光电隔离在实际的多机应用系统中,常采用RS-485串行标准总线进行数据传输图1 多机通信的主从式示意图所有从机的SM2位置1,处于接收地址帧状态主机发送一地址帧,其中8位是地址,第9位为地址/数据的区分标志,该位置1表示该帧为地址帧 所有从机收到地址帧后,都将接收的地址与本机的地址比较对于地址相符的从机,使自己的SM2位置0(以接收主机随后发来的数据帧),并把本站地址发回主机作为应答;对于地址不符的从机,仍保持SM2=1,对主机随后发来的数据帧不予理睬从机发送数据结束后,要发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束的标志主机接收数据时先判断数据接收标志(RB8),若RB8=1,表示数据传送结束,若接收帧的RB8=0,则存数据到缓冲区,并准备接收下帧信息主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据帧中TB8=1);如果地址相符,则清TB8,开始发送数据。
从机收到复位命令后回到监听地址状态(SM2=1)否则开始接收数据和命令[1]2.2.2题设分析1.从机识别给多点分别设置地址信息,在数据前加地址字段或直接在数据传输钱发送地址帧,主机通过不同的地址信息识别数据源首先,从机应处于只接受地址帧信息的状态;然后主机发送一帧地址信息;从机接收到地址帧后,将本机的地址与地址帧中的地址惊醒比较,如果地址相同,则准备接收数据,否则对其当前帧依然处于只接受地址帧状态;主机发送地址帧后,相应的从机接收数据,数据传输完毕后,从机继续回到只接受地址帧的状态在这一过程中,其他从机不受影响;当主机需要与其他从机进行数据传输时,可以再次发送地址帧呼叫主机,重复这一过程2.51单片机串口的多机通信功能根据MCS-51串行口的多机通信能力,多机通信可以按照以下协议进行: (1) 首先使所有从机的SM2位置1处于只接收地址帧的状态 (2) 主机先发送一帧地址信息,其中8位地址,第9位为地址/数据信息的标志位,该位置1表示该帧为地址信息 (3) 从机接收到地址帧后,各自将接收的地址与本机的地址比较对于地址相符的那个从机,使SM2位清零,以接收主机随后发来的所有信息;对于地址不符的从机,仍保持SM2=1,对主机随后发来的数据不予理睬,直至发送新的地址帧。
(4) 当从机发送数据结束后,发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束标志 (5) 主机接收数据时先判断数据结束标志(RB8),若RB8=1,表示数据传送结束,并比较此帧校验和,若正确,则会送正确信号00H,此信号令该从机复位(即重新等待地址帧);若校验和出错,则发送0FFH,令该从机重发数据若接收帧的RB8=0,则原数据到缓冲区,并准备接收下帧信息 (6) 若主机向从机发送数据,从机在第(3)步中比较地址相符后,从机令SM2=0,同时把本站地址发回主机作为应答之后才能收到主机发送来的数据其它从机(SM2=1),无法收到数据7) 主机收到从机的应答地址后,确认地址是否相符如果地址不符,发复位信号(数据帧中TB8=1);如果地址相符,则清TB8,开始发送数据 (8) 从机接收到复位命令后回到监听地址状态(SM2=1)否则开始接收数据和命令[2]三、电路设计3.1 整体功能框架设计本设计是将各分机当前AD转换结果传送给主机,实际应用中为实现分布式数据采集功能即主机(一般为PC机)对各个不同的地点的环境进行实时测量,主机间隔的发送地址呼叫各个从机,从机进行地址验证后启动AD转换,由AD转换芯片将电压值转换成数字量,最后把当前AD转换结果由串口MAX485传送给主机,主机经过处理在发送给PC机显示。
分析可知硬件电分为主机模块和从机模块主机模块中包含单片机子模块、LED数码管显示子模块和串口电平转换子模块,从机模块则包括单片机子模块、AD转换子模块和串口电平转换子模块在主模块中由AT89S51单片机担任主机,六个LED数码管担任显示设备和一片MAX485担任串口的电平转换在整个主机系统中有三个从机模块三个从机模块结构一样,有一片AT89S51单片机担任从机外接一片ADC0809转换芯片和一片MAX485担任串口的电平转换串口采用单工及异步通信方式设计大体思路流程图程如下:图2 多机通信的分布式数据采集功能应用示意图3.2 硬件电路设计 本设计是实现包含1台主机和3台从机主从式多机通信系统,所以硬件电路也分为主机电路和从机电路主机和从机的电路原理图基本一致,都是由单片机电路和接口电平转换电路,只是从机电路中需要增加有关本机地址的设置电路主机的电路的搭建采用主CPU板、键盘显示接口板各一块照实验原理图将主CPU板的P0口接到键盘显示接口板的位码接口,P1口接到键盘显示接口板的段码的接口从机的电路由CPU板和ADDA转换板构成 其次是电平转换电路的焊接电平转换的路的实现是通过自己搭建电路完成。
电平转换的电路主要有四块MAX485和两个100Ω电阻构成四块MAX485采用总线方式连接,每个芯片分别引出三个引脚用于单片的连接 最后将各个模块的按照原理图连接起来图3 多机通信整体模块电路连接图3.2.1 主机硬件电路设计如图所示,U1为单片机芯片AT89S51,它工作于11.0592MHz时钟,此时钟决定了串口传输波特率的设置单片机的Rxd(P3.0)和TxD(P3.1)和电平转换芯片MAX485,他们是单片机的串行输入、输出信号其中P0的作用如下:对于发端,P0口用于主机的数据采集,通过读取P0口的内容完成对发送数据区的初始化,每隔定时读取一次,如果读到00H,则表明数据读取完毕对于收端,P0口用于判断从机是否处于忙状态当读到P0口为BBH时,认为当前从机忙,需要向主机发送忙应答主机部分的连接示意图:PORT端口部分为与从机的串行接口MAX485对应的A、B相连图4 多机通信的主机部分电路设计MAX485串口电平转换电路: 串口电平转换电路的电路图如图所示:本实验中采用MAX485的电平转换芯片MAX485是一种RS-485标准接口的电平转换芯片RS-485采用差分式半双工通信方式,真正实现多点总线连接,具有传输距离远可靠性高的特点。
图 5 电平转换电路MAX485接口芯片采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式它完成将TTL电平转换为RS-485电平的功能MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0在与单片机连接时接线非常简单只需要一个信号控制MAX485的接收和发送即可同时将A和B端之间加匹配电阻,一般可选100Ω的电阻如下图是其芯片资料数据手册中的典型连接图:图 6 MAX485接口芯片数据手册的典型连接图LED数码管显示电路: LED数码管显示电路如图2所示显示子模块由六个数码管和相应的启动芯片构成其中每路通道的采集值用量为数码管显示为了节约单片机的I/O口本题的数码管采用MAX7219芯片。
给芯片的优点在于可完成电路的刷新MAX7219芯片的SEG A-SEG DP为数码管段码接口,DIG0-DIG7为位码接口,CLK、DIN、LOAD分别与单片机P1.0、P1.1、P1.2连接单片机通过串行的方式将要显示的数据通过CLK、DIN、LOAD三个接口送入相应的显示寄存器内,MAX7219将自动完成对数码管的刷新工作具体的电路如图所示图 7 LED显示电路3.2.2 从机硬件电路设计从机AT89S51的P1口的低四位用于本机的地址设定,其他的设置基本与主机相似通过跳线开关的闭合与打开的组合可以最多设定16种地址比如,四位开关全部断开时,对应的P0为1111,此时本机的地址即为1111H从机在开始加电工作前需要根据整个。
