单片机多机串口通信.docx
《单片机多机串口通信.docx》由会员分享,可在线阅读,更多相关《单片机多机串口通信.docx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理、实现方法 和相应的通信硬件、软件设计.该设计是由单片机与单片机组成的主从限制系统,其中单片 机做为上位机对下位单片机是实现限制和监视功能.它包括通信和限制两个功能模块.单片 机作为下位机在整个系统中属于附属地位,主要用来接收上位机的命令.由于此通信的单片 接口是RS232的9针接口,且下位机 数目有限132台).所以本设计采用了 RS485总线 以及RS232转RS485的协议芯 片以满足长距离多机通信,本文讨论了总线接口转换、主 从式通信协议设计方法,给出了采用中断式处理的通信过程流程图,并表达了设计过程中必 备的绘
2、图软件Protel DXP的应用,以及编辑源代码软件keil uVision2的应用,实现了单片机 对多个单片机组成采集终端的通信与治理.关键词:单片机单片机RS-485通信KEY_BORD=P1;delay(2);P2=tabrbufl;)void dushu(void) interrupt 4 using 1 (while(RI=0);rbufcount=SBUF;RI=0;if(rbufO=OxOI)(count=count+l;if(countl)(count=0;SBUF=KEY_BORD;while(!TI);TI=0;) else(count=0;)(二)通信协议设计为保证通信进
3、行,首先做到单片机的串行口与主控机串行口的设置保持一致,即数据格式 一致、通信波特率相同.如果是多点通信,每个从机要分配一个地址 码.系统中协议有三种帧 格式:呼叫帧、应答帧和数据帧.呼叫帧由主机发出.应答帧只能由从机发出.当从机收到呼 叫帧后,把本机地址和当前状态回发给主机.设置开机自检、自诊断程序,机器不能带病工作; 如果需要,还可以设置在工作空闲时或定时自检程序.单片机与单片机构成的多机通信系统采用主从结构.数据通信总是有主机发 起.主机处于 发送状态“说时从机总是处于“听状态.假设主机发送的地址信 息与本地从机相符,那 么接受该数据,否那么,继续“听总线上的数据.假设从机需 要发送数据
4、,那么必须等到主 机轮询本地从机时,才可以提出请求.这种网络模式 下从机不会“侦听其他从机对主机的 响应,这样就不会对其他从机产生错误的 响应.主从式多机通信协议中,通信速率设为.系统 上电或复位后,使所有从机 的SM2位置1处于只接收地址帧监听状态.主机向从机发送一帧 地址信息,从 机接收到地址帧后,将其与本地地址比拟,判断是否一致.假设与本地地址相符, 那么去除SM2,同时发送应答帧,进入通信状态;其他与本地地址不相符的从机那么保持SM2 位不变,继续监听.主从机均以中断方式进行通信,程序流程如图2-2所示:图2-2通信流程图(三)多机发送是的分时说、听多机传送时,通信协议要合理地协调总线
5、的分时公用,通信波特率的计算要有 冗余.采用 RS-485总线连接的多个站点,由于485总线是异步半双工的通信总 线,在某一个时刻,总线 只可能呈现一种状态,即任一时刻只有一个站点在“说”,那么数据将在通信总线里碰撞,结 果是处于接受状态的站点不能收到正确的数据.在RS-485总线通信网络中,必须限制好每 个站点的“听、说”状态,即收、发状态,对总线的使用权必须进行分配,以使各个从机 的发送限制信号在时间上 完全隔离,保证能及时、正确地传输数据.要做到总线上设备在时 序上的严格配合,必须要遵从一下儿点:1 .复位时,主从机都应该处于接受状态.2 .限制端RE、DE的信号有效脉冲宽应该大于发送或
6、接收一帧信号的宽度.3 .总线上所连接的各从机的发送限制信号在时序上完全隔开.通信方式一般是 主节点循 环轮询各个从节点.各个从节点都有自己的网络通信识别号,即本机地 址.当朱节点的轮询信 息中包含自己的网络通信识别号,此从节点对此帧进行应 答,其他节点那么忽略此帧,不做处 理.第三章硬件电路设计C51单片机结构一个8位CPU 128字节特殊功能存放器(SFR)128字节数据存储器(RAM) 4K字节内部程序存储器(ROM)两个16位定时器/计数器 四组32位可编程的并行I/O端口一个串行通信端口 中断限制系统内部振荡器和时钟电路 系统总线C51单片机内部包含了作为微型计算机所必须的根本功能部
7、件,各功能部件相互独立而融 为一体,集成在同一块芯片上.C51内部结构如图3-1所示:-CPU结构(一)算术逻辑部件ALUC51的ALU是一个性能极强的运算器,能进行加、减、乘、除四那么运算,也可 进行与、 或、非等逻辑运算,还可以实现数据传送、移位、判断和程序转移等功能.二)定时限制部件OSCOSC是限制器的核心,能为限制器提供时钟脉冲.三)专用存放器组.程序计数器单片程序计数器单片是一个二进制16位程序地址存放器编码范围为OOOOH-FFFFH,共64KB,专门用来存放下一条需要执行的指令的内存地址,能自动加Io1 .累力口器ACC累加器ACC是一个专门用来存放操作数或运算结果的8位存放器
8、.2 .通用存放器B通用存放器B是专门为乘法和除法设置的8位存放器,通常用来存放积的高8位或除法的 余数.3 .程序状态字PSW程序状态字PSW是用来存放指令执行后有关状态的8位标志存放器,其各位的定义如图3-2所示:PSW0PSWIPSW2PSW3PSW4PSW5PSW6PSW7cyACFORSiRSoovp图3-2程序状态字各位定义4 .堆栈指针SPSP是一个8位存放器,能自动加、减1,专门用来存放堆栈的栈顶地址.遵循“先进后此 后进先出”的规律.5 .数据指针DPTRDPTR是一个16位的存放器,由两个八位存放器DPH和DPL拼装而成.主要用来存放 存储器的地址,DPH用来存放高8位,D
9、PL用来存放低8位.二ROM存储器C51内部仅有4KBROM存储器,地址范围为OOOOH-OFFFHoc51可外接ROM,但一定 保证片内和片外之和不能超过64KB即C51有64KB的寻址区OOOOH-FFFFH),在4KB地址范围为OOOOH-OFFFH里还可供片外使用,其取决 于限制线EA,如图3-3所示1000H-FFFFH外部ROMOOOOH-OFFFH片内ROMEA=1片外ROMEA=O图3-3程序存储器地址分配三I/O端口I/O段口是MCS-51单片机对外部实现限制和信息交换的必经之路,是一个过 渡的集成电 路,用于信息传送过程中的速度匹配和增强他的负载水平.并行I/O端口C51有
10、四个并行I/O端口,分别命名为Po、PI、P2和P3,在这四个并行I/O端口中,每个 端口都有双向I/O功能.每个端口内部都有一个八位数据输出锁存器 和一个八位数据输入缓 冲器.四个并行I/O端口作为通用I/O使用是,共有写端口、读端口和读引脚三种操作方式.写端 口就是输出数据,是把累加器A或其他存放器中数据传送到端口锁 存器中,然后由端口自动 从端口引脚线上输出,读端口是把端口锁存器中输出数据读到CPU的累加器.读引脚是输入 外部数据的操作,是从端口引脚线上读入 外部的输入数据.(2)串行I/O端口C51有一个全双工的可编程串行I/O端口.这个串行I/O端口既可以在程序控制下把CPU 的八位
11、并行数据变成串行数据一位一位地从发送数据线Txd发送出去,也可以把串行接收到 数据变成八位并行数据送给CPU,而且这种串行发送和串行接受可以单独进行,也可以同步 进行.C51串行发送和串行接收利用了 P3 口的第二功能,即引脚作为串行数据的发送线Txd和 引脚作为串行数据的接收线Rxdo串行I/O 口的电路结构还包括串行口限制存放器SCON、 电源及波特率选择存放器单片ON和串行数据缓冲器SBUF等.四定时器/计数器C51内部有两个16位可编程的定时器/计数器,命名为To和Ti,都由两个8位存放器TH 和TL拼装而成.定时器/计数器To和Ti有定时器和计数器两种工作模式.在定时模式下,T.、T
12、i的计数脉 冲可以有单片机时钟脉经12分频后提供,故定时时间和单片机时钟频率有关.在计数模式下,T.、Ti的计数脉冲可以从和引脚上输入.五中断系统中断是指CPU暂停原程序执行转而为外部设备效劳执行中断效劳程序,并在效劳 完后回到原程序执行的过程.中断系统是指能够处理上述中断过程所需要的那局部电路.C51有三个内部中断源和两个外部中断源内部中断源是指两个定时器/计数器中断源和 一个串行口中断源,串行口中断源是在串行口每发送完一个八位二进制 数据或接受到一组输 入数据八位后自动向中断系统提出的.外部中断源通常指外部设备其产生的中断请求信号可以从和即INTO和INTi引脚上输入.51单片机引脚功能及
13、其连接一 MCS-51单片机引脚功能引脚如图3-4所示(RXD) 3 F3(TXO F3,5(INTO) f=3.6 (INTI )(TO) F3.72234m 23456789;:二-12 匚 UUUUULJ r_I)匚匚ULJ0987654321。987G54321I x/cc1 RO O (AOO)q 00ID 2 4 AMAA AA 二 0) A A A 0 0 000 00LS - A d 4ATX.二 5 1 I ,J I JJA|J d IU 夕 iT: : 1P4.图3-4单片机引脚图(一)端口线4*8=32 条)1. Po 口一:功能a :不带片外存储器,P。可以作为通用I/
14、O 口使用,一用于传送CPU的输入/输出数据, 此时,输入缓冲、输出锁存,不须外接专用锁存器.功能b :带片外存储器,一在CPU访问片外存储器时显示用于传送片外存储器的低8位,然 后传送CPU对片外存储器的读写数据.口 :通用I/O 口,用于传送CPU的输入/输出数据.口 ( j :功能a :通用I/O 口,用于传送CPU的输入/输出数据.功能b :与Po 口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外 存储器单元,但并不能像Po 口那样还可以传送存储器的读写数据.4. P3 口 (-):功能a :通用I/O 口,用于传送CPU的输入/输出数据.功能b :限制功能端如下表
15、:RXD 串行口输入)TXD 串行口输出)INTO (外部中断0输入)INT1 外部中断1输入)TO 定时计数器0的外部输入T1 定时、计数器1的外部输入WR 片外数据存储器写选通)RD 片外数据存储器读选通)(二)电源线(2条)Vcc为+5V电源线,Vss为接地线.(三)限制线(6条)ALE/丽赢1址锁存允许/编程线,配合P0 口引脚的第二功能使用.在访问片外存储器 是,C51CPU在一引脚线上输出片外存储器低8位地址的同时还在ALE/PR65砥上输出一个 高电位脉冲,用于把这个片外存储器第8位地址锁存到 外部专用地址锁存器,一边空出一引脚 线去传送随后而来的片外存储器读写数据.在不访问片外
16、存储器时,C51自动在ALE/PROG线 ZE输出频率为fosc/6的脉 冲序列.1. . Ea/Vpp:允许访问片外存储器/编程电源线.2. Psen:片外ROM选通线,在执行访问片外ROM的指令MOVC时,C51自动在PseN瓯h产 生一个负脉冲,用于为片外ROM芯片的选通.3. RST/VPd:复位/备用电源线,可以使C51处于复位工作状态.4. XTAL1和XTAL2 :片内振荡电路输入线.如图3-5所示51中断系统中断是指计算机暂时停止原程序执行转而为外部设备效劳,并在效劳完后自动返回原程序 执行的过程.中断由中断源产生,中断源在需要时可以向CPU提出“中断请求. “中断请求 通常是
17、一种电信号,CPU 一旦对这个电信号进行检 测和响应便可自动转入该中断源的中断效 劳程序执行,并在执行完后自动返回原 程序继续执行,并且中断源不同中断效劳程序的功能也 不同.中断系统是指能够实现中断功能的那局部硬件电路和软件程序,对于MCS-51单片机, 大局部中断 电路都是集成在芯片内部的即内部中断,包括定时器溢出中断源2个和串行口 中断源),只有INT。和INT中断输入线上的中断请求信号产生电路才分散在各中断源电路或接口芯片电路里(即外部中断).而本工程中使用的是串行口中断源.C51的串行通信串行通信是一种能把二进制数据按位传送的通信,故它所需传输线条数极少,特别适用于 远程通信之中.一串
18、行通信根底一异步通信中的字符帧字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等四局部组成.在串行通信 中,发送端一帧一帧发送信息,接收端一帧一帧接收信息.两相邻字 符帧之间可以无空闲位, 也可以由假设干空闲位,自行定义.图3-7表示每一帧的结构:8位数据起始位奇偶校验停止位0DOD1D2D3D4D5D6D70/11第n字符帧(共11位)图3-7帧结构(二波特率定义是每秒传送二进制数码的位数,单位是bps (位/秒),用于表征数据传输 的速度,波 特率越高,数据传输速度越快.而实际的字符传输速率是以帧/秒来衡量.(三通信制式1 .半双工制式:A、B只能是一个发送,一个接收,即一条信号线和
19、一条接地线.2 .全双工制式:A、B两站间有两个独立的通信回路,两站都可以同时发送和接 收数据,其 两站间至少需要三条传输线:一条用于发送,一条用于接收和一条用于信号地.二O 51的串行接口(-)串行口限制存放器SCON和单片ONC-51对串行口的限制是通过SCON实现的,也和电源限制存放器单片ON有 串行口限制存AbstractThe communication、 realized method and corresponding design of hardware and software between 单片 and multiple MCUs based on RS-485 is d
20、escribed in detai in the article. This design instroduces a pincipal and subordinate control system which is composed of 单片 and single chip. Divided from its function, it includes two parts: communication and control, in which 单片 is used as master; and MCUs is used as slave so as to receive the sing
21、le order from the bus interface conversion and the design of master-slave communication protocol is introduced and The program flowchart of communication with interrupt process is also given. In the process of design, the use of unnecessary painter software and code editor software is depicted so th
22、at realize the communication and administration between 单片 and multiple MCUs which composed collection terminal.Keywords:单片 MCUs RS-485 communication放器SCON决定串行口通信工作方式,限制数据的接收和发送,并标示串行口的工作状态等.其位格式为图3-8所示:9FH 9EH 9DH 9CH 9BH 9AH 99H 98H3vio| 3VI1942RENIB8RB8TIRI$CON(98H)图3-8特殊功能存放器SCONSMo SMi相应工作方式说明所
23、用波特率00方式0同步移位存放器fosc/1201方式110位异步收发由定时器限制10川211位异步收发fosc/52 或 fosc 上 411方式311位异步收发由定时器限制其中fOSC为晶振频率SM2 :多机通讯限制位.在方式0时,SM2 一定要等于0.在方式1中,当(SM2) =1那么 只有接收到有效停止位时,RI才置1 .在方式2或方式3当(SM2) =1且接收到的第九位数据 RB8=0时,RI才置1.REN :接收允许限制位.由软件置位以允许接收,乂由软件清0来禁止接收.TB8:是要发送数据的第9位.在方式2或方式3中,要发送的第9位数据,根据需要由 软件置1或清。.例如,可约定作为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 串口 通信
限制150内