单片机:串行接口之通信概念
通信概念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 Check6.2 循环冗余校验Cyclic Redundancy Check7. 串行通信的速度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电平标准电平标准逻辑15V逻辑0 0V输出时逻辑1电平≥2.4V;逻辑0电平≤0.4V主要应用数字电路、微控制器、通信接口通信距离在1.5m以内8.2 RS-232C标准电平标准逻辑1-3 ~ -5V逻辑03 ~ 5V主要应用计算机与计算机之间、计算机与终端或外设之间的近距离链接和数据传送。数据传输速率小于20kb/s电缆长度小于15m。8.3 RS-485 标准电平标准逻辑12 ~ 6V逻辑0-2 ~ -6V主要应用工业自动化、远程数据采集电缆长度数千米。9. 总结串行通信因其结构简单、成本低廉、抗干扰能力强等优点已成为单片机、计算机及各类嵌入式设备中最主流的通信方式之一。理解其基本原理与标准是进行嵌入式系统设计和通信协议开发的重要基础。