单片机通信接口论文.docx
- 文档编号:9653047
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:38
- 大小:2.81MB
单片机通信接口论文.docx
《单片机通信接口论文.docx》由会员分享,可在线阅读,更多相关《单片机通信接口论文.docx(38页珍藏版)》请在冰豆网上搜索。
单片机通信接口论文
基于单片机的通信接口程序设计
摘要
随着计算机技术的发展,特别是单片机的迅速发展,微处理器已经从单极应用发展到多级应用。
多级应用的关键又在于微机之间的相互通信。
通信接口技术就是专门研究和解决微机间通信,对于单片机双机、多机之间及单片机与计算机的通信都会产生重要意义;而其中以串行通信应用最为广泛。
在串行通信方式时,要通信双方都必须采用一个标准接口,其中RS-232接口是单片机通信应用最广泛的一种标准接口,但串口不能直接和单片机相连,需要转换芯片,本设计中,选用MAX232芯片进行电平的转换。
本设计主要讨论了两AT89C51单片机串行通信的有关技术和方法。
通过对系统的通信方式选择、波特率的设置及对接口电路的软件和硬件的设计分析,最终实现了两AT89C51单片机之间的通信,同时对串行通信的多个单片机之间通信进行了扩展讨论。
关键字:
串行接口通信;RS-232;MAX232;AT89C51
Basedonsingle-chipcomputercommunicationinterfaceprogramming
ABSTRACT
Alongwiththedevelopmentofcomputertechnology,especiallytherapiddevelopmentofthesinglechip,themicroprocessorhasdevelopedfromsinglestageapplicationtomultipleapplication.Multistageapplicationandthekeyliesinmutualcommunicationbetweenthemicrocomputer,.Communicationtechnologyisaspecializedresearchandsolvethecommunicationbetweenmicrocomputerandmicrocontrollerdoublemachine,machineandsinglechipmicrocomputerandcomputercommunicationsbetweenwillhaveimportantmeaning;Andamongthem,themostwidelyusedserialcommunication.Inserialcommunicationmode,communicationbothsidesmustuseastandardinterfaceoftheRS232interfaceisoneofthemostwidelyusedsinglechipmicrocomputercommunicationinterface,butcannotbedirectlyconnectedtosinglechipmicrocomputerserialport,needtotransformchipthisdesignselectstheMAX232chipleveltransformation.ThisdesignmainlydiscusstwoAT89C51singlechipmicrocomputerserialcommunicationaboutthetechniquesandmethods.Throughtothesystemcommunicationmodeselection,baudratesettingandtheinterfacecircuitofthehardwareandsoftwaredesign,finallyrealizesthecommunicationbetweenthetwoAT89C51,atthesametimeformultiplesingle-chipserialcommunicationbetweentheexpandeddiscussion.
KEYWORDSerialcommunication,RS-232,MAX232,AT89C51
目录
第1章绪论1
1.1串行通信的背景和意义1
1.2单片机串行通信的发展状况1
第2章串行通信相关知识3
2.1异步通信与同步通信3
2.1.1异步通信3
2.1.2同步通信3
2.2串行通信的传输方式3
2.3串行通信中的错误校验3
2.4传输速率与传输距离4
2.5AT89C51的串行口4
2.5.1串行口的结构4
2.5.2AT89C51的串行和控制寄存器5
第3章设计方案7
3.1设计任务7
3.2方案设计7
3.3整体电路7
第4章.硬件设计8
4.1主控模块设计8
4.2.MAX232电平转换芯片11
第5章软件设计13
5.1串行通信软件实现13
5.2程序框图13
第6章.程序调试和仿真16
6.1试所需软件简介16
6.2子程序调试17
第7章单片机串行通信领域的扩展24
7.1采用RS-232接口存在的问题24
7.2多机通信24
7.2.1结构24
7.2.2通信过程24
总结26
参考文献27
附录28
附录一、主机发送程序28
附录二、从机接收程序29
附录三、系统电路图31
致谢33
第1章绪论
1.1串行通信的背景和意义
计算机与计算机或着计算机与终端之间的数据信息的传送可以采用串行通信和并行通信两种方式。
但是因为,串行通信方式进行数据信息的传输时,是将构成数据信息的二进制数据位按一定的顺序逐位进行传输,所以该方式使用的传送线少,硬件电路也就简单很多,所以该方式进行通信的成本低。
RS-232接口是现今常用的一种串行通信的接口标准,它是1969年,美国电子工业协会(ElectronicsIndustryAssociation,EIA)公布的用于串行通信接口的电气标准,该标准是采用一个25针的连接器DB-25或者9针连接器DB-9,连接器每个引脚的信号内容是已经被规定好的,而且对各种信号的电平规定也是有规定好的标准。
单片机的特点是数据传输快速、控制也灵活,而且随着计算机技术,尤其是单片机技术的飞速发展,单片机越来越多的被应用在工业及日常生活中,与人们的生活日趋紧密,如:
一些工业控制系统中使用单片机对温度、流量和压力等参数进行检测和控制。
因此如何实现单片机与单片机之间的信息传输的现实意义就显得越来越重要。
1.2单片机串行通信的发展状况
任何一微处理器不可能独立完成所有的工作,都需要与一些其他部件及外围设备相连接,但若将各个部件和每种外围设备都分别用一组线路和CPU直接连接,那样的话硬件电路将会非常错综复杂,有时甚至复杂的难以实现。
为简化硬件电路的设计,简化电路系统结构,常常使用一组线路,配合以合适的接口电路,与各个部件及外围设备连接,这组共用的连接线路就是总线。
采用总线结构可大大方便部件的扩充,特别是总线的标准是统一制定了,这样使得不同的设备间的相互连接通信更容易实现。
此外,在微机通信中,基本的通信方式有两种:
并行通信(数据段各位同时进行传输)和串行通信;与之相对应的通信总线分别被称为并行总线和串行总线。
在并行通信方式中,数据有多少位就需要多少条传输线,所以这种方式速度快、实时性好,但由于占用的口线多,不适于小型化产品;串行通信方式只使用一对传输线,所以节省资源,特别是当所要传送的数据的位数比较多的时候,进行远距离的数据传输时,这一点更为突出,所以在数据通信量不是很大的微处理电路中就显得非常简易、方便、灵活,但是串行通信传送速度比并行通信慢。
串行通信一般分异步通信方式和同步通信方式。
第2章串行通信相关知识
2.1异步通信与同步通信
2.1.1异步通信
异步通信就是指通信的发送和接收设备分别使用各自的时钟频率,控制数据信息的发送和接收过程。
为了使双方的收发协调,所以应使发送和接收设备的时钟频率尽可能相同。
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(即时间间隔)可以是任意的,但是每个字符中的每一位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。
异步通信的特点:
不要求收发双方时钟的严格一致,实现容易,设备成本较低,但每个字符要附加2~3位用于起止位,各帧之间还要有间隔,所以传输效率不高。
2.1.2同步通信
同步通信是通过同步字符在每一个数据块传输的开始时,使收或发双方达到同步,其中同步字符是由用户选择一个或者两个特殊的8位二进制码。
同步通信的特点:
以同步字符作为传送的开始,进而达到收与发双方的同步,每位占用的时间相等,该方式传输的效率较高,但实现的硬件设备比异步通信复杂。
2.2串行通信的传输方式
(1)单工(Simple)制式
单工制式是指通信双方仅能沿一个方向进行数据传输。
(2)半双工(HalfDuplex)制式
半双工制式是指通信双方可以交替进行双向数据信息的传输,但是,任何时刻只能由一方发送信息,另外一方接收信息,数据的传输可以沿两个方向,但是不能同时进行。
(3)全双工(FullDuplex)制式
全双工制式是指数据信息的传输在双向可同时进行。
2.3串行通信中的错误校验
(1)奇偶校验
在发送数据信息时,紧随数据位后边的那1位为奇偶校验位(1或0)。
奇校验时,数据中“1”的个数与校验位“1”的个数之和应该为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应该为偶数。
接收字符时,对“1”的个数进行校验,如果发现不一致,则说明在数据信息传输的过程中出现了差错,奇偶校验也只能检测出是否有错误,而不能对其进行修改,另外奇偶校验不能检测出双位错误。
(2)累加和校验
累加和校验就是将需要校验的数据块信息求和,然后将产生一个字节的校验字符结果附加到数据块的末尾;将接收方得到“累加和”校验结果与发送方的“校验和”比较,如果相符说明数据传输过程没有差错,反之说明传送中发生了差错。
(3)循环冗余校验(CRC校验)
CRC校验的实质就是模-2除法的余数,若选用的除数不同,CRC的类型也不一样。
2.4传输速率与传输距离
(1)传输速率
比特率即每秒可传输多少位的二进制代码,其单位是:
位/秒(bps)。
例如:
每秒钟可传送字符为120个,并且每个字符的格式中包含的位数是10(即8个数据位和起、止位),则其比特率的值为:
10位×120个/秒=1200位/秒
(2)传输距离、速率间的关系
串行口所传送的串行信息的最远的距离,与传输速率以及传输线的电气的特性有关,并且其变化是:
传输的距离随传着输的速率的增加而逐渐减小。
2.5AT89C51的串行口
2.5.1串行口的结构
AT89C51片内有一双工的串行通信接口,其是由发送缓冲寄存器SBUF、接收缓冲寄存器SBUF和移位寄存器三部分组成,而且串口接收缓冲寄存器SBUF是挂在一条内部总线上,通过内部总线传输数据信息。
串行口的基本结构示意图如图2-2所示
图2-2串行口的基本结构示意图
2.5.2AT89C51的串行和控制寄存器
串行口和控制寄存器
AT89C51单片机串行口特殊寄存器:
SBUF为串行数据缓冲寄存器,它是一个可寻址的特殊寄存器,其内包含接收寄存器和发射寄存器,可以实现全双工通信,但是这两个寄存器有相同的名字和单元地址。
AT89C51的串行数据传输很简单,只要将数据写入缓冲器就可以发送数据,而从接收缓冲器读出数据既可接收数据。
⑴:
串行通信寄存器
SCON控制寄存器是一个可位寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如下(表2-1):
表2-1串行控制寄存器
SCON
D7
D6
D5
D4
D3
D2
D1
D0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
位地址
9FH
9EH
8DH
9CH
9BH
9AH
99H
98H
下面我介绍各个控制位功能:
1)SM0、SM1:
关于串行口的工作方式控制位见下表:
表2-2串口工作方式
SM0
SM1
工作方式
功能
波特率
0
0
0
8位同步移位寄存器(用于I/O扩展)
fORC/12
0
1
1
10位异步串行通信(UART)
可变(T1溢出率*2SMOD/32)
1
0
2
11位异步串行通信(UART)
fORC/64或fORC/32
1
1
3
11位异步串行通信(UART)
可变(T1溢出率*2SMOD/32)
2)SM2:
多机通信控制位
工作方式2和方式3专用于多机通信,SM2位主要用于方式2和方式3。
接收状态,当串行口工作方式2或方式3和SM2=1时,只有当接收到第9位数据(RB8)值是1时,才会把接收到的前8位数据送给SBUF,并置位RI发出中断申请,反之则会放弃收到的数据。
当SM2=0时,只有当接收到有效停止位时才会启动RI,若没接收到有效停止位,则RI清“0”。
在方式0中SM2应为“0”。
3)REN:
允许接收控制位。
由软件置“1”时,表示允许接收;软件置“0”时,表示不允许接收。
4)TB8:
在方式2和方式3中,要发送的第9位数据,需要时通过软件置位和清零。
5)RB8:
在方式2和方式3中,将要接收到的第9位数据。
在方式2和方式3中,RD8用于存放接收到的第9位数据信息,以识别接收到的数据特征。
在方式1时,如SM2=0,RB8接收到的停止位。
在方式0中,不使用RB8。
6)TI:
发送中断标志。
由硬件在方式0发送完第8位时置“1”,或在其它方式中串行发送停止位的开始时置“1”。
必须由软件清“0”。
7)RI:
接收中断标志。
由硬件在方式0串行发射第8位结束时置“1”
⑵:
专用寄存器PCON
PCON的格式及定义如下表(表2-3):
表2-3专用寄存器PCON
PCON
D7
D6
D5
D4
D3
D2
D1
D0
位符号
SMOD
GF1
GF0
PD
IDL
PCON是8位的特殊功能寄存器,其地址是87H,不可以寻址,其中最高位SMOD用于单片机波特率系数的控制位:
当SMOD=1时,方式1、2、3的波特率加倍,反之不加倍。
⑶:
中断允许寄存器IE
表2-4中断允许寄存器
符号
EA
ES
ET1
EX1
ETO
EX0
位地址
AFH
AEH
ADH
ACH
ABH
AAH
A8H
A8H
ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。
第3章设计方案
3.1设计任务
1主要是能够实现两个单片机的串行通信,并对多机通信进行探究。
2进行仿真调试。
3.2方案设计
本次设计,基于两个单片机AT89C51,采用RS-232标准进行双机通信。
发送方的数据信息由串口TXD输出,经电平转换芯片MAX232将TTL电平转换为RS-232电平输出,然后通过传输线将信号传送到接收端。
接收方也是经过MAX232芯片进行电平转换,然后信号到达接收方串行接口的接收端。
接受方接收后,在二极管亮接收的信息。
为提高抗干扰的能力,还在输入输出端加光耦合进行光电隔离。
3.3整体电路
第4章.硬件设计
4.1主控模块设计
AT89C51是一种性能高而且功耗较低的CMOS8位微控制器,在本系统中作为主控器件。
它内部有4K的可编程Flash存储器,也是Atmel公司生产的一款单片机,其采用了密度高及难失性存储器的制造技术,并且能和工业中常用的80C51单片机指令及引脚全部兼容。
在单片机的芯片上,含有灵活简单的8位CPU以及在系统可编程Flash,因为它的高灵活性,使得AT89C51应用在众多的嵌入式控制系统,并能高效的解决问题。
其DIP封装引脚结构如图(图4-1)
图4-1AT89C51引脚结构
引脚说明:
VCC:
接主电源+5V;GND:
是电源引脚(VCC);电源接地端,是单片机的公共参考地。
四个串行口P0、P1、P2、P3:
P0是一个8位漏极开路型双向I/O端口,P0口可作为通用I/O口使用,但是在对端口进行输入操作之前,应先向端口的锁存器写入“1”。
当CPU访问片外存储器时,P0口自动作为地址/数据复用总线使用,分时向外部存储器提供低8位地址和传输8位双向数据信号。
P1是一个内部带有上拉电阻的8位双向I/O端口。
当P1输出高电平,能向外部提供上拉电流负载,因此,不必再外接上拉电阻。
当作为输入端口使用时,也是应该先向端口的输出锁存器写入“1”,然后才读取端口的数据信息。
P2也是一个内部带有上拉电阻的8位双向I/O端口。
当CPU访问外部存储器时,P2口自动可作为高位地址输出口,与P0口的低8位地址一起形成外部存储器的16位地址总线,这时候,P2口不是作为通用输入/输出口使用。
P3是一个内部带上拉电阻的8位双向I/O端口。
P3口除了作为通用I/O端口外,它的主要功能是它的各位具有第二功能。
它的第二功能如表所示(表4-1):
表4-1P3端口第二功能说明
端口引脚
引脚(DIP40封装)
第二功能
P3.0
10
RXD(串行数据输入口)
P3.1
11
TXD(串行数据输出口)
P3.2
12
INT0(外部中断0)
P3.3
13
INT1(外部中断1)
P3.4
14
T0(定时器/计数器0外部输入)
P3.5
15
T1(定时器/计数器1外部输入)
P3.6
16
WR(外部数据存储器写脉冲)
P3.7
17
RD(外部数据存储器读脉冲)
单片机是整个系统中的核心控制器,本设计采用AT89C51作为主控芯片。
它的最小系统设计框图如图(图4-2)
图4-2单片机最小系统示意
本设计中系统的时钟电路(图4-3)采用的是内部方式,即利用芯片本身内部的振荡电路。
AT89C51单片机内包含有一个用于构成振荡器的增益较高的反相放大器,其引脚XTAL1和XTAL2分别是这个放大器的输入端和输出端,它与片外晶体谐振器(在其中作为反馈元件)一起构成了一个自激振荡器。
外接晶体谐振器与电容C1和C2构成了一个并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小与震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性有关。
因此,电容应尽可能的选择陶瓷电容,例如本设计中电容值约为30pF。
图4-3时钟电路
图4-4复位电路
本设计中使用外部的复位电路来复位,如图图4-4所示。
单片机引脚RST就是复位引脚,它经过一触发器和复位电路相连,触发器也可用来限制噪声,它的输出是在每个机器周期内由复位电路执行一次。
复位电路有两种基本方式:
上电自动复位、按钮复位,本设计电路系统选用的是按键钮式。
本设计的单片机时钟频率用11.05926MHz,C取10μF,R17约为10KΩ,R16约为1KΩ。
串行通信接口的标准
单片机常用RS-232接口,它是1969年,美国电子工业协会(ElectronicsIndustryAssociation,,EIA)公布的串行通信接口的电气标准。
该标准规定了数据通信设备(DCE)和数据终端设备(DTE)之间按位串行传送信息的接口信息,也安排了接口的电气信号与机械要求,是最常用的一种接口标准。
RS-232提供了单片机和单片机、单片机和计算机间串行通信的标准接口。
为保证通信的可靠性,在选择接口时应该注意:
(1)通信速率;
(2)通信的距离;(3)抵抗干扰的
能力;
采用RS-232标准接口进行数据传输时,最高传输速率为20Kbit/s,最长传输电缆为15m。
由于RS-232发送和接受之间的公用地,传输用的是非平衡模式,因此共模噪声会耦合到通信系统中,影响通信质量;因为RS-232规定的逻辑电平与单片机的逻辑电平数值相同,所以在应用中必须把微处理器的信号电平(TTL电平)转换成RS-232电平,以便于RS-232标准的电平匹配。
在本设计中选用专用的电平转换芯片MAX232解决电平转换问题。
4.2.MAX232电平转换芯片
MAX232芯片是日本MAXIM公司为串行口生产的收发器,其内部有电压倍增电路和电压转换电路,只需+5V电源供电。
在+5V供电的条件下,能将0/5V(TTL电平)转换为+10V/-10V(RS-232电平),将+10V/-10V(RS-232电平)转换为0/5V(TTL电平)。
能代替传统的接口芯片,并省去+12V/-12V电源,使用较为方便。
MAX232外围要4个电解电容C1、C2、C3、C4,是内部电源转换所需电容。
MAX232芯片引脚图如下(图4-6)
图4-6MAX232芯片引脚框图
图4-7RS232接口引脚图
表4-2RS232接口定义
引脚
定义
符号
1
载波检测
DCD
2
接收数据
RXD
3
发送数据
TXD
4
数据终端准备好
DTR
5
信号地
SG
6
数据准备好
DSR
7
请求发送
RTS
8
清除发送
CTS
9
振铃提示
RI
所以,MAX232芯片的T1I引脚接AT89C51单片机的TXD引脚,MAX232芯片的R1O引脚接AT89C51单片机的RXD引脚;MAX232芯片的R1I引脚接DB9针接口的第3引脚(图4-7,表4-2)。
实例接口电路如下(图4-8)
图4-8RS232接口电路
第5章软件设计
5.1串行通信软件实现
通过通信协议进行发送、接收,甲机先送AAH给乙机,当乙机接收到AAH后,向甲机回答BBH。
甲机收到BBH后则把数码表TAB[16]中的16个数据信息送给乙机,并发送及检验。
乙机接收到16个数据并计算接收到数据的检验和,与甲机发送来的检验和比较,若检验和数值相同则发送00H给甲机;反之发送FFH给甲机,重新接收。
乙机收到正确的数据后则对应的二极管就会亮。
(1)串行口工作采用方式1;用定时器1产生9600bit/s的波特率,工作采用方式2。
(2)功能:
将本机ROM中数码表TAB[16]中的16个数发送到从机,并保存在从机内部ROM中,从机收到正确的数据后则对应的二极管亮。
(3)通信协议:
甲机先发送联络信号(AAH),乙机接收到后返回一联络信号(BBH),表示乙机已准备好接收数据信息。
(4)通信过程使用第九位发送奇偶校验位。
(5)乙机接收到一个数据后,立刻进行奇偶校验,若数据无错,则返回00H,反之返回FFH。
(6)甲机发送一个数据后,等乙从机返回数据;若返回值是00H,则继续发送下一个数据,若是FFH,则重新发送数据。
5.2程序框图
(1)发送端程序框图,如图5.1发送端程序框图所示:
图5.1发送端程序框图
(2)接收端程序框图,如图5.2接收端程序框图所示:
图5.2接收端程序框图
第6章.程序调试和仿真
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 通信 接口 论文