单片机:串行接口之通信概念
通信概念
- 1. 引言
- 2. 并行通信与串行通信
- 2.1 并行通信
- 2.2 串行通信
- 3. 串行通信制式
- 3.1 单工通信
- 3.2 半双工通信
- 3.3 全双工通信
- 4.串行通信数据传输原理
- 4.1 发送过程
- 4.2 接收过程
- 5. 异步通信与同步通信
- 5.1 串行异步通信方式
- 5.2 串行同步通信方式
- 6. 串行通信的校验方法
- 6.1 奇偶校验(Parity Check)
- 6.2 循环冗余校验(Cyclic Redundancy Check)
- 7. 串行通信的速度
- 8. 串行通信接口标准
- 8.1 TTL电平标准
- 8.2 RS-232C标准
- 8.3 RS-485 标准
- 9. 总结
1. 引言
在之前的学习中我们知道51单片机有4个并行接口,即P0、P1、P2、P3。而单片的引号是有限的是宝贵的。对于并行接口来说,传输一个字节,就要链接8个引脚。有点浪费,这次我们学习一下串行接口。传输一个字节只需要一个引脚就能搞定。在学习串行接口之前,我们先回顾一下通信的基本概念。
2. 并行通信与串行通信
计算机的通信方式有两种,一种是并行通信,另外一种是串行通信。
2.1 并行通信
并行通信是指一次同时传输多位信号数据的通信方式。每一位数据都需要一条数据信号线。并行通信传输信号多,线路复杂,成本高,主要用于近距离传输。比如台式电脑机箱内的排线。
比如一次传送8位或16位,相应地就需要8条或16条数据信号线,一般还需要控制信号线,状态信息号线。
2.2 串行通信
串行通信是指多位数据不同时传送,而是一位接一位按顺序传送的通信方式。串行通信传输线少(相比于并行通信,同样的距离并行通信需要8 ~ 10根线,而串行通信只需要1 ~ 2根线),线路简单,成本低,适合远距离通信。
比如一个字节数据,传送时,发送端把它按顺序分成8位,通过发送数据信号线一位一位的发送出去,接收端接收后再把它按顺序组装成一个字节。数据信号线只需要一条或两条(双向)
3. 串行通信制式
串行通信可分为以下3种
- 单工通信
- 半双工通信
- 全双工通信
3.1 单工通信
单工通信:设备A只有发送数据,设备B只有接收数据,两者通过一条数据信号线相连,信息只能由A传给B,即单项传送。
比如:电台发送广播,收音机接收广播。电视台发送新闻,电视接收新闻。
3.2 半双工通信
半双工通信:设备A即可发送数据,又可接收数据。设备B即可发送数据,又可接收数据。但两者也只有一条数据信号线相连。同一时刻信号只能实现一个方向的传送。
比如:对讲机。
3.3 全双工通信
全双工通信:设备A,设备B 通过两根信号线链接,可同时发送数据,也可同时接收数据。实现数据双向传输。现在大多数同学都采用全双工方式。
比如:电话系统,internet网络。
4.串行通信数据传输原理
串行通信中,高电平表示数字1,低电平表示数字0。发送端和接收端要保持相同的时钟周期。发生端发送一个高电平,接收端就能接收到一个数字1。发送端发送一个低电平,接收端就能接收到一个数字0。
4.1 发送过程
发送端发送数据时,先将要发送的数据送入移位寄存器,然后再发送时钟的控制下,将该并行数据逐位移位输出,送到发送数据线上,若数据是1,则发送数据线送高电平,若数据是0,则发送数据线送低电平。通常是在发送时钟的下降沿将移位寄存器的数据串行输出,每个数据位的时间间隔由发送时钟的周期来划分。
4.2 接收过程
接收端接收串行数据时,一般用接收时钟的上升沿对接收数据采集,进行数据位检测,如果检测到高电平,接收未1,如果检测到低电平,接收未0。接收的数据依次移入接收器的移位寄存器中,最后组成并行数据输出。
串行通信传送的距离比较远,数据在线路上传送时容易收到外部环境的干扰,为了避免外部环境干扰,接收端在接收信息时,通常把一个接收时钟通过倍频技术进行16倍频,分成16个周期(接收的的信息分成16份),用中间7、8、9这3个周期对数据采样,如果两次或两次以上采样到高电平,接收为1;如果两次或两次以上采样到低电平接收未0。这样就可以一定程度避免外部脉冲干扰。
5. 异步通信与同步通信
串行通信按信息的格式划分有以下两种
- 串行异步通信方式
- 串行同步通信方式
5.1 串行异步通信方式
串行一步通信方式的特点是数据在线路上传送时是以一个字符(字节)为单位,未传输时线路空闲,空闲为高电平。传送一个字符又称为一帧信息。传送时每个字符前加一个低电平的起始位,然后是数据位,低位再前高位在后,数据位后面可带一个奇偶校验位,最后是停止位。停止位用高电位表示。
异步传送时,字符间可以间隔,间隔的位数不固定。由于一次只传送一个字符,因而一次传送的位数比较少,对发送时钟和接收时钟的要求相对不高。线路简单,但传送速度较慢。
问:ASCII使用的有效位数是多少位?
A. 8位 B,7位。
问:ASCII 最后一位通常在型号传输过程中做何使用?
5.2 串行同步通信方式
串行同步通信方式是数据在线路上传送时以字符块为单位,一次传送多个字符(字节),传送时须在前面加一个或两个同步字符(字节),后面加校验字符(字节)。
同步传送时一次连续传送多个字符,传送的位数多,对发送时钟和接收时钟要求较高,往往用一个时钟源控制,控制线路复杂。
6. 串行通信的校验方法
为保证发送和接收的数据正确,通常要对数据的正确性进行校验。
- 奇偶校验
- 循环冗余校验
6.1 奇偶校验(Parity Check)
在异步通信中,发送端发送数据之后增加一个校验位,这个校验位可为‘1’ 或‘0’,以保证整个字符(包含校验位)中‘1’的个数为偶数(偶校验)或奇数(奇校验)。接收端接收到数据后,对‘1’的个数进行校验,如果发现和发送端不一致,则说明数据传送过程中出现差错。奇偶校验能够检查出字符中发生的一位错误,但不能自动纠错。
通俗的说法,发送端和接收端提前约定好,发送的数据中1的个数一定是偶数个(偶校验),接收端接收到1的个数不是偶数个,就知道这个字节在传输的过程中有错了。
6.2 循环冗余校验(Cyclic Redundancy Check)
再同步通信中常采用CRC循环冗余校验码。发送端发送数据块是,利用编程原理,对传送的数据块按某种算法产生校验码,并将校验码放在数据块之后一桶发送。接收端接收到数据字符块和校验码后,用接收的的数据字符块按同样算法计算校验码,并把计算得到的校验码和接收的校验码进行比较。若相同则传送无差错;否则说明接收数据有错。
7. 串行通信的速度
比特率:单位时间内传输的二进制代码的位数,单位为每秒比特数(b/s)。
8. 串行通信接口标准
串行通信标准化接口
8.1 TTL电平标准
电平标准
逻辑1:+5V
逻辑0: 0V
输出时,逻辑1电平≥2.4V;逻辑0电平≤0.4V主要应用
数字电路、微控制器、通信接口
通信距离在1.5m以内
8.2 RS-232C标准
电平标准
逻辑1:-3 ~ -5V
逻辑0:+3 ~ +5V主要应用
计算机与计算机之间、计算机与终端或外设之间的近距离链接和数据传送。
数据传输速率小于20kb/s,电缆长度小于15m。
8.3 RS-485 标准
电平标准
逻辑1:+2 ~ +6V
逻辑0:-2 ~ -6V主要应用
工业自动化、远程数据采集
电缆长度数千米。
9. 总结
串行通信因其结构简单、成本低廉、抗干扰能力强等优点,已成为单片机、计算机及各类嵌入式设备中最主流的通信方式之一。理解其基本原理与标准,是进行嵌入式系统设计和通信协议开发的重要基础。
