单片机原理:第七章 串行口和串行通信技术
7.1 串行通信基本知识
7.1.1 数据通信的概述
计算机通信:计算机的CPU与外部设备之间,计算机与其他计算机之间的信息交换。
通信方式有两种:并行通信和串行通信
选择:通常根据信息传送的距离等决定采用通信方式
例如:在PC机与外部设备(如打印机等)通信时:
当距离小于30m:可采用并行通信方式;
当距离大于30m时:常采用串行通信方式
89C51单片机:具有并行和串行二种基本通信方式
并行通信:
定义:是指数据的各位同时进行传送(发送或接收)的通信方式。
优点:是传送速度快;
缺点:是数据有多少位,就需要多少根传送线。
例如:早期的打印机与PC机、89C51单片机之
间的数据传送就属于并行通信。
示为89C51与外设间8位数据并行通信的连接方法。并行通信在位数多、传送距离又远时就不太合适了。
串行通信:
定义:指数据是一位一位按顺序传送的通信方式。
优点:只需一对传输线(利用电话线就可作为传输线),这样就大大降低了传送成本,特别适用于远
距离通信;
缺点:是传送速度较低。假设并行传送N位数据所需时间位T,那么串行传送的时间至少为NT,实际上总是大于NT的。
所示为串行通信方式的连接方法。
7.1.2串行通信的传输方式
1. 单工(单向):只允许数据向一个方向传送;
2. 半双工(半双向):允许数据向两个方向中的任一方向传送,但每次只能有一个站点发送;
3. 全双工(全双向):允许同时双向传送数据,因此,全双工配置是一对单向配置,它要求两端的通信设备都具有完整和独立的发送和接受能力。
7.1.3 异步通信和同步通信
同步通信:有同步头及同步时钟
异步通信: 数据按一定格式的帧传输
1、同步通信
• 同步通信中:(1)在数据开始传送前用同步字符来指示(常约定1个–2个)
(1)在数据开始传送前用同步字符来指示(常约定1个–2个)
(3)字符与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始时用同步字符SYNC来指示。
单同步字符
插入的同步字符:
(1):单同步字符方式或双同步字符方式
(2):同步字符可以由用户约定,当然也可以采用ASCII码中规定的SYNC代码,即16H。
(3):按同步方式通信时,先发送同步字符,接收方检测到同步字符后,即准备接收数据。
• 同步时钟:来实现发送端与接收端之间的同步。为了保证接收正确无误,发送方除了传送数据外,还要同时传送时钟信号。
• 同步传送可以提高传输速率。
2、异步通信:
在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据有固定的格式。
起始位:(0)信号只占用一位,用来通知接收设备一个待接收的字符开始到达。线路上在不传送字符时应保持为1。
数据位:紧接在起始位后面,它可以是5位(D0–D4)、6位、7位或8位(D0–D7)。
奇偶校验位:(D8)占一位。但也可以规定不用,则该位就可省去。也可用该位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等)。
停止位:1位、1.5位或2位,用来表征字符的结束,它一定是高电位(逻辑1)。若停止位以后不是紧接着传送下一个字符,则使线路电平保持为高电平(逻辑1)。
连续传输多个字符
例1:规定一个ASCII字符为1帧,1个起始位,8个数据位,1个奇偶校验位(奇校验位)、
1个停止位,则一帧共11位。传输字符“1”(0x31)的帧为数据低位先发送,高位后发送
例2:规定一个ASCII字符为1帧,1个起始位,8个数据位,无个奇偶校验位,1个停止位,则一帧共10位。传输字符“1”(0x31)的帧为:
3、波特率(Baud rate)
波特率:即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是b/s。
• 波特率对于CPU与外界的通信是很重要的。
• 例如:假设数据传送速率是120字符/s,而每个字符格式包含1个代码位(1个起始位、1个终止位、8个数据位)。这时,传送的波特率为:10b/字符×120字符/s=1200b/s
每一位代码的传送时间Td为波特率的倒数。
Td=1b/(1200b/s)=0.833ms
异步通信的传送速率在50b/s–115200b/s之间,常用于计算机到终端机和打印机之间的通信、直通电报以及无线电通信的数据发送等。
7.1.4 串行通信的过程及通信协议
、串←→并转换与设备同步
两个通信设备在串行线路上成功地实现通信必须解决两个问题:
(1)串←→并转换:
即如何把要发送的并行数据串行化,把接收的串行数据并行化;
2)设备同步:即同步发送设备与接收设备
的工作节拍,以确保发送数据在接收端被
正确读出。
(1)串←→并转换
串行通信是将计算机内部的并行数据转换成串行
数据,将其通过一根通信线传送;并将接收的串
行数据再转换成并行数据送到计算机中。
发送:计算机内部的并行数据被送入移位寄存器并一位一位地输出,将并行数据转换成串行数据。
如图7-5所示。
接收:来自通信线路的串行数据被压入移位寄存器,满8位后并行送到计算机内部。如图7-6所示。
在串行通信控制电路中,串–并、并–串转换逻辑被集成在串行异步通信控制器芯片中
89C51/S51单片机的串行口和PC都可实现
2)设备同步
• 进行串行通信的两台设备必须同步工作才
能有效地检测通信线路上的信号变化,从
而采样传送数据脉冲。
设备同步对通信双方有两个共同要求:
(1):统一的编码方法(帧格式)
(2):相同的传送速率(波特率)
采用统一的编码方法:
(1):确定了一个字符表示方法
(2):值的位发送顺序:(高低位)
(3):位串长度:(数据帧的构成)
(4):统一的逻辑电平规定,即电平信号
高低与逻辑1和逻辑0的固定对应关系。
通信双方只有产生相同的传送速率:才能确保设备同步,这就要求发送设备和接收设备采用相同频率的时钟。发送设备在统一的时钟脉冲上发出数据,接收设备才能正确检测出与时钟脉冲同步的数据信息。
2、串行通信协议
通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。
通信双方必须遵守统一的通信协议。串行通信协议包括同步协议和异步协议两种。
在此只讨论异步串行通信协议和异步串行协议规定的字符数据的传送格式。
(1)起始位
• 通信线上没有数据被传送时处于逻辑1状态。
• 当发送设备要发送一个字符数据时,首先发出一个逻辑0信号,这个逻辑低电平就是起始位。
• 起始位通过通信线传向接收设备,接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。
• 起始位所起的作用就是设备同步,通信双方必须在传送数据位前协调同步。
(2)数据位
起始位后面紧接着数据位
数据位的个数可以是5、6、7或8
例如:IBM-PC中经常采用7位或8位数据传送,
89C51/S51串行口采用8位或9位数据传送
•
数据位从最低有效位开始发送
(3)奇偶校验位
奇偶校验位可有可无。 若有,必紧跟数据最高位之后
通信双方需约定已知的奇偶校验方式。
偶校验:数据位和奇偶位的逻辑1的个数必须是偶数;
奇校验:逻辑1的个数必须是奇数。
作用:奇偶校验用于有限差错检测
(4)停止位约定
在奇偶位或数据位(当无奇偶校验时)之后发送的是停止位。
停止位是一个字符数据的结束标志,可以是1位,1.5位或2位的高电平。
接收设备收到停止位之后,通信线路上便又恢复逻辑1状态,直至下一个字符数据的起始位到来。
(5)波特率设置
•
通信线上传送的所有位信号都保持一致的信号持续时间
•
每一位的信号持续时间长短都由数据传送波特率来确定
例如:如果数据以1000个二进制位每秒在通信线上传送,
那么传送速度为1000波特,通常记为1000b/s,每位数据
传送的时间为1ms。
带宽100M是什么意思?
(6)挂钩(握手)信号约定
用于确定设备的状态信息
例如:准备就绪
出现故障
(见本章7.4节实例)
资料仅供学习使用
编者能力有限,如有错误欢迎留言交流
编者的其他专栏:
C语言
单片机原理
模式识别原理
数字电子技术
自动控制原理
模拟电子技术
数据结构
线性代数
复变函数与积分变换
概率论与数理统计
高等数学
大学物理
电路原理
关注编者了解更多
作者:上海理工大学教育