第8章串行通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章 单片机串行通信
8.1 概 述 单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现 场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通 信成本,提高通信可靠性。如下图所示。
1
数据通信方式有两种:并行通信与串行通信。下面是两种通信方式的示意图:
★并行通信: 所传送数据的各位同时发送或接收,数据有多少位就需要 多少根数据线。特点:速度快,成本高,适合近距离传输,如计算机并口, 打印机接口,8255 并口等。 ★串行通信:所传送数据的各位按顺序一位一位地发送或接收。只需一根 数据,一根地线,共2 根(如双向通信发送和接收各需1根数据线)。特点: 成本低,硬件简单,适合远距离通信,传输速度低。
六. 串行通信总线标准及接口 (一)通信线的连接 通信速率和通信距离这两个方面是相互制约的,降低通信速率,可以提 高通信距离,不同的通信距离,串行通信电路有不同的连接方法:
微机 RXD TXD RXD RXD TXD GND 电 平 转 换 RXD TXD GND RXD TXD GND 电 平 转 换 微机或其他设备 RXD TXD GND
采用负逻辑:“1” —— ―5V ∽ ―15V
“0”—— +5V ∽ + 15V 不带负载时输出电平:―25V ∽ +25V
输出短路电流:
最大负载电容:
< 0.5A
2500p
10
当计算机采用RS232标准时必须转换电平,MAX232 是EIA和TTL电 平转换芯片。内部具有电压提升电路,并有两路收发器。 TTL电平可以由专用集成电路转换成RS232C标准; 如: MC1488 或 75188 TTL RS232C MC1489 或 75189 RS232C TTL 由于MC1488需要采用±12V电源,一般在单片机通信中大量使用的 是只需要+5V电源、具有发送和接收的一体化芯片,如:MAX232、 ICL232、ADM202等。 MAX232的引脚和电路如下:
数据1 SYN字符1 SYN字符2 三、串行通信的功能
数据2
….
数据n
连续传送n 个数据
校验
在串行传输中,通信的双方都按通信协议进行,所谓通信协议就是通 信双方必须共同遵守的一种约定,约定包括数据的格式、同步的方式、传 送的步骤、检纠错方式及控制字符的定义等。 串行接口的基本任务就是:
4
1.实现数据格式化 因为CPU发出的数据是字符数据,接口电路应能将这些数据根据不同通 信方式进行数据格式化的任务。 如自动生成起止方式的帧数据格式(异步方 式)或在待传送的数据块前加上同步字符(同步方式)等。 2.进行串、并转换 在发送端,接口将CPU送来的并行信号转换成串行数据进行传送;而在 接收端,接口要将接收到串行数据变成并行数据送往CPU。 3.控制数据的传输速率 接口应具备对数据传输率—波特率的选择控制能力,即自身有波特率发 生器。 4.进行传送错误检测 在发送时,对传送的数据自动生成校验位或校验码,在接收端能检查校 验位或校验码,以确定传送中是否有误码,并能自动将冗余码消除。 51系列单片机内有一个全双工的异步通信接口,通过对串行接口写控制 字可以选择其数据格 式,同时内部有波特率发生器,提供可选的波特率,来 完成双机通信或多机通信。 5
PC机上的COM1-COM4口使用的是RS-232C串行通信标准接口,本章 仅介绍RS-232C接口,其它接口可参考有关资料。
以上标准都有专用芯片实现通信协议,这些接口芯片称为收发器。 串行扩展接口是设备内部器件之间的互连接口,常用的串行扩展接口规 范有SPI、I2C等。串行扩展接口的芯片很多,可以根据需要选择。
6
五、波特率(Baud rate)和比特率(bps)
在通信中,衡量通信速率的单位有两种:波特率和比特率。 比特率(bps):在数字通信中,单位时间内传输二进制代码的有效 位(bit)数。其单位有每秒比特(bps)、每秒千比特数(Kbps)或每秒兆 比特数(Mbps) ,此处K和M分别为1000和1000000。 波特率:远距离通信时,信息必须调制在载波上和载波一起发送,正 如卫星需要通过火箭运载一样。波特率即调制速率,通常可以理解为单位 时间内传输码元符号的个数(传符号率),其单位为波特(Baud)。不同的 调制方法在一个码元上负载的比特信息不同,比特率在数值上和波特率的 关系是:比特率=波特率×单个调制状态对应的二进制位数。 显然,两相调制(单个调制状态对应1个二进制位)的比特率等于波特 率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两 倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三 倍;依次类推(关于信号调制超出本课程范围,相关内容参考通信原理方 面的教材)。
14
二、串行通信的传送过程用下面简图说明 甲方(发送) 乙方(接收)
CPU
并 MOV SBUF , A 行 数 据 TI
CPU
并 行 MOV A , SBUF 数 据 RI
shift
SBUF
串行数据
SBUF
shift
甲方发送时,CPU执行指令 MOV SBUF , A 启动了发送过程,数据 并行送入SBUF ,在发送时钟 shift的控制下由低位到高位一位一位发送, 乙方在接收时钟 shift 的控制下由低位到高位 顺序进入移位寄存器 SBUF ,甲方一帧数据发送完毕,置位发送中断标志TI,该位可作为查 询标志(或引起中断),CPU可再发送下一帧数据 。乙方一帧数据到齐 即接收缓冲器满,置位接收中断标志RI,该位可作为查询标志(或引起 接收中断),通过MOV A ,SBUF CPU将这帧数据并行读入。
8XX51
8XX51
+5V
MCS—51和PC机的双机通信
Vcc EA RST 89C51/ 89S51 30PF× XTAL 2 1 XTAL 2 GND TXD RXD C1 T1IN R1OU R1IN T T1OU C1+ T C1C2 C2+ C2GND V+ Vcc C4 VC5 C1=C2=C3=C4=C5= 1μF C3 +5V 1 2 3 4 5 6 7 8 9 6 7 8 9 1 2 3 4 5
15
由上述可知: 1. 甲、乙方的移位时钟频率应相同,即应具有相同的波特率,否则会造成 数据丢失。
2. 发送方是先发数据再查标志,接收方是先查标志再收数据。
3. CPU通过指令和SBUF并行交换数据,并不能控制数据的串行移位,它 只能查询标志位来确定数据的移位是否完成。
+5V 1μF 1μF C1 + C1C2+ V + V1μF +10V -10V 1μF
C1+ V+ C1C2+ C2-
1 2 3
16
Vcc
15 GNDຫໍສະໝຸດ Baidu14 T1OUT
1μF TTL/CM OS TTL/CMOS
C2- MAX232 T1OU T1IN T T2I T2OUT N R1OUT R1IN R2OUT R2IN
TXD
GND
GND
近距离传送电路
较远距离传送电路
8
(二)串行通信接口总线标准 1.1 测控系统中常用总线标准 测控系统中,计算机通信主要采用异步串行通信方式,常用的异步总 线标准有三种: RS-232(RS-232A RS-232B RS-232C) RS-449 (RS422 RS423 RS485) 20mA电流环 这里重点介绍RS-232,速率:20Kbit/S,最大通信距离 : 15m 1.2 抗干扰能力
接收缓冲器只能读出、不能写入。读SBUF,就是读接收寄存器。
串行控制寄存器SCON用以存放串行口的控制和状态信息。8XX51串行 口正是通过对上述专用寄存器的设置、检测与读取来管理串行通信的。 特殊功能寄存器PCON的最高位SMOD为串行口波特率的倍增控制位。 波特率发生器可以有两种选择: 1.定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率, 称为可变波特率。 2.以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固 定波特率
10μF
PC机COM1或 COM2
MAX232
图5.12 单片机和PC机的串行通信接口
12
8.2 MCS-51的串行口结构 51单片机有一个可编程的全双工异步串行通信接口,它可作异步串行 通信(UART)用,也可作同步移位寄存器,其帧格式可有8位、10位或l l 位,并能设置各种波特率,给使用者带来很大的灵活性。
2
通信的双方应该有一个约定,什么时候开始发送,什么时候发送完毕; 接收方收到的信息是否正确等,这就是通信协议。 串行通信的分类:同步串行通信和异步串行通信 一、异步通信: 异步串行通信一帧数据格式:一个起始位 “0”,表示字符的开始,然后 是5~8位数据即该字符的代码,规定低位在前,高位在后,接 下来是奇偶 校验位(可省略),最后以停止位“1”表示字符的结束。 优点:硬件结构简单。 缺点:传输速度慢。
7
例如异步传送数据的速率每秒为120个字符,每个字符由1个起始位、8 个数据位和1个停止位组成,则字符传送速率为: 10×120=1200波特/秒 传送一个波特所需的时间为: T1=1/1200=0.833ms 在上面传送中,只有8个数据位才是有用的信息,起始位和停止位用于 传送信息的辅助,所以信息的速率为:8×120=960比特/秒。 传送一个比特需要的时间为:T2=1/960=1.04ms 本课程均使用波特率计算通信的速率。
采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的 情况往往很恶劣,因而要根据具体情况进行选择。
RS232C:一般场合
RS422: 抗共模干扰信号比较强
光纤: 抗电磁干扰较强
9
三、RS-232C 美国电子工业协会(EIA)公布的一种异步通信标准。 RS232C标准是:
设备之间通信的距离不大于15米 最大传输速率20KB/S
一、串行口的内部结构 发送SBUF (99H)
输出移位寄存器
TXD P3.1
内 部 总 线
定 时 器 T1
发送控制器
串行中断 ≥1 TI RI
SCON 98H
接收控制器 接收SBUF (99H)
输入移位寄存器
波特率发生器
串 行 控 (制 寄 器 )
RXD P3.0
13
51单片机通过引脚RXD(P3.0)串行数据接收端和引脚TXD(P3.1) 串行数据发送端与外界进行通信。图中有两个物理上独立的接收、发送缓 冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。 发送缓冲器只能写入,不能读出,CPU写SBUF,一是更新发送寄存 器,同时启动串行数据发送;
RS-232
VR2IN
4 13 R1IN MAX232 5 12 R1OUT 6 11 T1IN 10 T2IN 9
R2O UT
T2OUT 7 RS-232
8
MAX232 连线图 图8-5 MAX232 引脚和连线图
MAX232引脚图
11
MCS—51之间的双机通信
RXD
TXD GND RXD TXD GND
n-1
第n个字符(一帧)
1 0 D0 D1 D2 D3 D4 D5 D6 D7 P 1 起 始 位 数据位(5~8位)
n+1
0 D0

P

校 停 验 止 位 位
3
二、同步通信
在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~ 2个字节)指示一帧的开始 ,由时钟来实现发送端和接收端同步,接收方 一旦检测到与规定的同步字符符合,下面 就连续按顺序传送若干个数据 , 最后发校验字节。见下图:
四、 串行通信接口 串行接口通常分为两种类型:串行通信接口 和 串行扩展接口。 串行通信接口(Serial Communication Interface, SCI)是指设备之间 的互连接口,它们连接的距离比较长。如当代PC机的COM接口(COM1COM4)和USB接口。USB ( Universal Serial Bus,通用串行总线)是近几 年开发的新规范,它使得设备间的连接简单快捷,并且支持热插拔,易于扩 展,被广泛应用于PC 机和嵌入式系统上。 近年来推出有RS-422/423、RS-485等串行通信标准,其采用平衡通信 接口,即在发送端将TTL电平信号转换成差分信号输出,接收端将差分信号 变成TTL电平信号输入,提高了抗干扰能力,使通信距离增加到几十米至上 千米,并且增加了多点和双向通信的能力。
相关文档
最新文档