目录
1.基础概念知识
1.1串行和并行
1.1.1串行通信
位通过单根线一一发送,下图显示了二进制(01000011)中字母“C”的串行传输。当时钟线为高电平时,接收数据位,高电平为1,低电平为0。
1.1.2并行通信
数据位在导线中同时传输,下图显示了二进制(01000011)中字母“C”的并行传输: 当时钟线为高电平时,8个数据位同时接受数据,高电平为1,低电平为0
1.2单工和双工
1.2.1单工
单工通信只支持信号在一个方向上传输(正向或反向),任何时候不能改变信号的传输方向。为保证正确传送数据信号,接收端要对接收的数据进行校验,若校验出错,则通过监控信道发 送请求重发的信号。
此种方式适用于数据收集系统,如气象数据的收集、电话费的集中计算等。
1.2.1半双工
半双工通信允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输。因此,半双工通信实际上是一种可切换方向的单工通信。
此种方式适用于问讯、检索、科学计算等数据通信系统;
1.2.2全双工
全双工通信允许数据同时在两个方向上传输,即有两个信道,因此允许同时进行双向传输。全双工通信是两个单工通信方式的结合,要求收发双方都有独立的接收和发送能力。全双工通信效率高,控制简单,但造价高。
计算机之间的通信是全双工方式。一般的电话、手机也是全双工的系统,因为在讲话时可以听到对方的声音。
1.3同步通信和异步通信
同步是阻塞模式
,异步是非阻塞模式
。
1.3.1同步通信
发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。
1.3.2异步通信
发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。
SPI和I2C都是同步通信,因为他们都有时钟线,UART是异步通信方式,他只有两个数据线,发送完数据不会确认你是否接收到。
1.4波特率
波特率用于描述UART通信时的通信速度,其单位为bps(bit per second)即每秒钟传送的bit的数量(二进制位数量)1byte = 8bit
1.5CPU控制外部设备的方式:中断,轮询,DMA
1.5.1轮询
轮询最简单,CPU通过不断地查询某个外部设备的状态,如果外部设备准备好,就可以向其发送数据或者读取数据,这种方式由于CPU不断查询总线,导致指令执行受到影响,效率非常低。
1.5.2中断
中断方式克服了CPU轮询外部设备的缺点,正常情况下,CPU执行指令,不会主动去检查外部设备的状态。外部设备准备好之后,向CPU发送中断信号,CPU收到中断信号后停止当前的工作,会根据中断信号指定的设备号处理相应的设备。这种处理方式既不影响CPU的工作,也能保证外部设备的数据得到及时处理,工作效率很高。
1.5.3DMA
中断方式效率虽然很高,但是对于大量数据的传输就显得力不从心。大量的中断会导致CPU忙于处理中断而减少对指令的处理,效率会变的很低。对于大量的数据传输可以不通过CPU而直接传送到内存,这种方式叫做DMA(DIrect Memory Access)。使用DMA方式,外部设备在数据准备好之后只需向DMA控制器发送一个命令,把数据的地址和大小传送过去,由DMA控制器负责把数据从外部设备直接存放到内存。DMA方式适合处理大量的数据,因此越来越多的嵌入式处理器开始支持它。