《单片机多机串口通信.docx》由会员分享,可在线阅读,更多相关《单片机多机串口通信.docx(43页珍藏版)》请在优知文库上搜索。
1、摘要本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理、实现方法和相应的通信硬件、软件设计.该设计是由单片机与单片机组成的主从限制系统,其中单片机做为上位机对下位单片机是实现限制和监视功能.它包括通信和限制两个功能模块.单片机作为下位机在整个系统中属于附属地位,主要用来接收上位机的命令.由于此通信的单片接口是RS232的9针接口,且下位机数目有限(32台).所以本设计采用了RS485总线以及RS232转RS485的协议芯片以满足长距离多机通信,本文讨论了总线接口转换、主从式通信协议设计方法,给出了采用中断式处理的通信过程流程图,并表达了设计过程中必备的绘图软件ProtelD
2、XP的应用,以及编辑源代码软件keiluVisio2的应用实现了单片机对多个单片机组成采集终端的通信与治理.关键词:单片机单片机RS-485通信AbstractThecommunication、realizedmethodandcorrespondingdesignofhardwareandsoftwarebetween单片andmultipleMCUsbasedonRS-485isdescribedindetaiinthearticle.ThisdesignInstroducesapincipalandsubordinatecontrolsystemwhichiscomposedOf单片an
3、dsinglechip.Dividedfromitsfunction,itincludestwoparts:communicationandcontrol,inwhich单片isusedasmaster;andMCUsisusedasslavesoastoreceivethesingleorderfromthebusinterfaceconversionandthedesignofmaster-slavecommunicationprotocolisintroducedandTheprogramflowchartofcommunicationwithinterruptprocessisalso
4、given.Intheprocessofdesign,theuseofunnecessarypaintersoftwareandcodeeditorsoftwareisdepictedsothatrealizethecommunicationandadministrationbetween单片andmultipleMCUswhichcomposedcollectionterminal.KeyWOrdS:单片MCUsRS-485communication目录摘要AbstractIl第一章绪论5第二章课题实施方案6系统硬件设计6系统软件设计7第三章硬件电路设计13C51单片机结构13100oh-F
5、FFFh15三I/O端口16四定时器/计数器16五中断系统1751单片机引脚功能及其连接1751中断系统19C-51的串行通信20串行接口RS232结构与引脚功能25ProteIDXP2004原理图设计28Protel2004的根本操作28绘制原理图30制作芯片原理图库31第四章软件电路设计34系统的通信协议35C51编程实现单片机与单片机之间的串行通信35总结41致谢42参考文献43第一章绪论单片机由于其具有限制功能强、设计灵活和性能价格比高的特点.因此在工业限制领域得到了广泛的应用,在工业限制领域,计算机的数量有一台变为多台,多台计算机组成了多机系统,计算机分布关系可以分为紧密耦合和松散耦
6、合,主从限制系统是一种松散式的多机系统,计算机之间由通信协议来联系.此时往往需要组成上位机对下位机的通讯系统,由一台上位机去限制多台下位机.主从控制就是一台功能较强的主机和32台左右的从机组成的多机系统.上位机一般是单片机,下位机一般是单片机系统,执行单片机与单片机串行通信的问题.本课题计算机的通信由上位机(主机)限制.主机向各个从机发送命令或者接受从机反应的信息,主机有权修改从机的参数,接受从机的数据,还可以查看从机的状态,可以说主机是主从限制的大脑.在本设计中主机用来监视或查看从机的状态,并向从机发送命令,在系统中起着主导地位.我们通过查看主机界面的状态即可响应的限制发送与接收.从机在系统
7、中处于附属地位,是命令的执行者.从机之间不能直接联系,它们之间必须有主机这个桥梁联系.在设计中我们选用了单片机作为我们的主机,从机为单片机(我们本着可得,性价比采用此选择).但在选择中出现了通讯接口的问题,我们是串型通讯,在单片机和单片机之间,我们需要电平转换,而且考虑到工业运用问题我们需要考虑总的选用,在常用的RS232和RS485中,不能使用双端信号,因此要求使用较高的输出电压,而且其传输距离仅为15米.RS485通信接口的信号传输是用两根线之间的电压表示逻辑1和O的由于发送端两根传送线,而且接受接收端也是两根传送线.这样RS485接受和发送仅需要2根线就完成了传输.由于传输线采用了差动信
8、道,所以它的干扰抑制性好,乂由于它的阻抗低无接地问题.传输距离可高达1200m,传输速度可达IMbPS比拟上面的数据,考虑工业要求,我们采用了RS485方式.第二章课题实施方案系统硬件设计系统全局图:c51单片机串行接口是一个可编程的全双工串行通信接口.它可用作异步通信方式UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的C51多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口.C51单片机通过管脚RXD(,串行数据接收端)和管脚TXD(,串行数据发送端)与外界通信.SBUF是串行口缓冲存放器,包括发送存放器和接收存放器.它们有相同名字和地址
9、空间,但不会出现冲突,由于它们两个一个只能被CPU读出数据,一个只能被CPU写入数据图2-1系统结构图在多媒体网络播送系统中,利用单片机与单片机够成的多机通信系统,采用主从式结构:主从限制多个从机,作为从机的单片机不主动发送命令或数据,一切都由主单片机限制;并且在一个多级系统中,只有一台主机,各台从机之间不能相互通信,即使有信息交换也必须通过主从转发.采用RS-485构成的多机通信系统原理框图、在总线末端接一个匹配电阻,吸收总线上的反射信号,使得正常传输信号无毛刺.匹配电阻的取值应该与总线的特性阻抗相当.在总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响.将总线上的差分信号的正端A
10、+和负端B-之间接一网络.当总线上没有传输时,正端A+的电平大约为,负端B-的电平大约为,即使有干扰信号,也很难产生串行通信的起始信号0,从而增加了总线抗干扰的水平.在该系统中,由于采用MAX487差分平衡收发器芯片,半双工传输方式,因此驱动器可接的下位机根据需要最多可扩展至128个.系统软件设计(一)程序设计#include#indude#include#defineucharunsignedchar#defineuintunsignedintucharkey_bpard;ucharD_ADDR;voiddelay(inttt)(uchari;for(;tt0;tt-)(for(i=0;i2
11、;i+);ucharGET_KEY(void)(ucharlin_onjin_tw;Pl=OXFO;if(PI&OxOf)!=OxfO)(delay(20);if(PI&OxOf)!=OxfO)(lin_on=Oxfe;while(lin_on&OxlO)!=0)(Pl=lin-on;if(PI&OxOf)!=OxfO)linJw=(PI&OXFO)|OXFO;return(lin_tw)+(lin_on);)else(lin_on=(lin_onl)10x01;return(O);+voidchose_key(void)(uchari;Pl=OXFO;IF(PiaOxOf)IOxfO)i=G
12、ET_KEY();Pl=OXFO;while(PI&0xf0)!0xf0);)swich(i)case136:key_bpard=l;brake;case72:key_bpard=2;brake;case40:key_bpard=3;brake;case24:key_bpard=4;brake;case132:key_bpard=5;brake;case68:key_bpard=6;brake;case36:key_bpard=7;brake;case20:key_bpard=8;brake;case130:key_bpard=9;brake;case66:key_bpard=0;brake;
13、case34:brake;case18:brake;case129:brake;case65:brake;case33:D_ADDR=OxO2;break;case17:D_ADDR=001;break;)voidsend-but(void)SBUF=D_ADDR;while(ITI);TI=O;SBUF=key_bpard;while(ITI);Tl=O;delay(3000);)voidmain(void)(IP=OxOO;TM0D=021;SCON=OxSO;PCON=OxOO;THI=OXfd;TR1=1;PS=I;EA=I;while(l)CHOSE_key();send_buf()
14、;)voidchose(void)interrput4using1(while(RI=O);P2=SBUF;RI=O;#include#include#include#defineucharunsignedchar#defineuintunsignedintucharcount;ucharrbuf3;ucharKEYWORD;uchartab10=0x40,0xf9f0xa4,0x60z0x99f0x92,0x82,0x(8,0x00,098;voiddelay(inttt)(uchari;for(;tt0;tt-)(for(i=0;il)(count=0;SBUF=KEY_BORD;while(!TI);TI=O;)else(count=0;)(二)通信协议设计为保证通信进行,首先做到单片机的串行口与主控机串行口的设置保持一致,即数据格式一致、通信波特率相同.如果是