目录一、题目要求与功能分析 (1)1.1题目要求 (1)1.2功能及整体模块分析 (1)二方案论证 (2)2.1设计目的 (2)2.2设计思路 (2)2.2.1原理分析和讨论 (2)2.2.2题设分析 (3)三、电路设计 (5)3.1 整体功能框架设计 (5)3.2 硬件电路设计 (6)3.2.1 主机硬件电路设计 (7)3.2.2 从机硬件电路设计 (10)3.3软件电路设计 (12)3.3.1 协议设计 (12)3.3.2 主机程序流程图设计 (13)3.3.3 从机程序流程图设计 (14)四系统的调试与实现 (16)4.1主机模块功能调试 (16)4.2从机模块调试 (16)4.3整体设计功能调试 (16)五总结与体会 (18)参考文献 (18)附录 (19)一、题目要求与功能分析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对应图 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。
从机在开始加电工作前需要根据整个系统的要求设定自己的地址,也就是将开关状态设置好。
这样从机在开机自检时就可以获得本机的地址。
其中将模拟电压信号转换成数字量的AD转换芯片ADC0809的连接如图中,将数据选择三个控制端都设为低电平,即选择输入通道IN-0;然后将8位数据输出口D0-D8与从机8051的P2口相连,将ADC0809的CLOCK端与从机8051的ALE相连,将ADC0809的STATRT、ENABLE、ALE端分别与从机8051的P0口的P0-3相连;并加入设置参考电压。
从机部分的连接示意图:两个PORT端口部分为与主机的串行接口MAX485其中AD转换芯片ADC0809与从机8051的连接具体如下:图9 ADC0809与8051连接图ADC0809芯片为8位A/D转换器(28PIN)IN0-IN7:8个模拟通道输入端。