串行通信的基本方式
异步串行通讯: 以字符为信息单位传送。字符与字符之间的传送是异步的,字符内部位与位之间的传送是同步的。用于发送数据量较少和数据传输速率较低的场合。
同步串行通讯:以数据块位信息单位传送,每个数据块包含多个字符。对时钟非常严格,收发两端使用同一时钟来控制数据块的传输。
校验方式
(1)奇校验 (2)偶校验
(3)数据块的累加和校验
(4)一般使用循环冗余码校验(CRC):将整个数据块看作一个二进制数,然后用一个特定的数去除它,将余数作为检验码附在数据块后面发送。接受方在接受到该数据块和校验码后,将数据块连同检验码一起进行同样的运算,所得的余数为0,表示数据传送正确,否则表示数据传送错误。该算法可以直接移植。且有较高的检错率。
波特率
并行通信:传输速率以每秒传送多少直接(B/s)来表示。
串行通信:传输速率用波特率来表示。(单位为Baud,是衡量串行数据传输快慢的重要指标。)
比特率:是测量每秒可传输数据比特位(1/0)数量的单位。(b/s)
波特率:表示每秒一个信号(从0到1从1到0)或符号(电压、频率)在通信通道中改变状态或发生变化的次数。
比特率=波特率*单个调制状态对应的二进制数 例如:如果该符号是1位二进制,波特率在数值上等于比特率。
发送/接收时钟
在发送数据时:发送器在发送时钟下降沿作用下将发送移位寄存器的数据按位串行数位输出。
在接收数据时:接收器在时钟上升沿作用下对来自通信线上串行数据采样,按位串行移入接收位移寄存器。
F=n*B F:发送接收时钟的频率 B:数据波特率 n:波特率因子(n=1,16,64)通常在异步传输时,通常采用16,发送或接收时钟的频率要比数据传送高16倍,如下图。 在同步通信时,n必须=1。
通讯协议
通讯协议:通讯双方的一种约定。包含 数据格式,同步方式,传输速度,传送步骤,纠错方式,以及字符定义。
异步串行通讯:
起止式异步通讯格式:
面向字符的同步通讯数据格式
IBM的二进制同步通讯协议(BBS)。一次传输由若干个字符组成的数据块,并规定了10个特殊的字符(通讯控制字)作为这个数据块的开头与结束标志以及整个传输过程的控制信息。
面向比特的同步通信数据格式
最具代表性的:SDLC、HDLC、ADCCP
总结1;通常使用串行数据传输 ,2异步通信协议的数据格式
串行通信接口标准
RS-232C接口
3线制连接
5线制连接
5线制加入了握手协议,RTS和CTS,在发送数据前向发送“请求“待回复后再开始数据传输。
电器特性
- 在TxD 和RxD数据上
逻辑1(MARK)=-3~-15V
逻辑0(SPACE)=+3~+15V
- 在RTS、CTS、DSR、DTR、CD等控制线上
信号有效(接通,ON状态,正电压)=+3~+15V
信号无效(断开,OFF状态,负电压)=-3~-15V
- EIA-RS-232C与TTL电平转换
TTL电平-EIA电平:MC1488 ,SN75150,MC1489,SN75154 ,MAX232
CMOS电平标准:
输出: L:小于0.1Vcc H :大于0.9Vcc
输入: L:小于0.3Vcc;H:大于0.7Vcc
TTL电平标准
输出:L:小于0.8V H:大于2.4V
输入:L:小于1.2V H:大于2V
电缆长度:在通信速率低于20kb/s时,最大的物理长度为15m。
只允许单点对单点
RS-485接口标准
RS485是一种平衡传输方式的串行接口标准,采用2条传输线以差分模拟信号传输信息,抗共模干扰能力强。
逻辑0: 差分电压信号为-2500mV~ -200mV
逻辑1:差分电压信号为+2500mV~ +200mV
高阻状态:差分电压信号为-200mV~ +200mV
RS485是一种多发送器标准,能实现多点对多点的通信,允许在电路中有多个发送器,多个接收器,RS485总线网络支持的节点数为32、64、128、256等。
没有RS485接口的芯片如果想与485总线设备通信,需外接RS485总线收发器。 MAX485芯片采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式,完成将TTL电平转换为RS-485电平的功能。
MAX485芯片:内部含有一个驱动器和接收器
RO和DI端分别为接收器的输出和驱动器的输入端,只需分别与芯片RXD和TXD相连。
/RE和DE端分别为接收和发送的使能端
当/RE为逻辑0时,器件处于接收状态;
当 DE为逻辑1时,器件处于发送状态;
AB之间一般并联一个120Ω的匹配电阻(用于通讯电缆长度过长时电压不够)。
串行通信接口的基本任务
(1)实现数据格式化
在异步通信方式下,接口自动生成起止式的帧数据格式。
在同步通信方式下,接口要在待传送的数据块前后加上特定字符。
(2)进行串←→并转换
(3)控制数据传输速率(波特率)
(4)进行错误检测
发送时接口电路对传送的字符数据自动生成奇偶校验位或其它校验码
接收时接口电路检查字符的奇偶校验位或其它校验码,以确定是否发生错误。
(5)TTL电平与232电平、485电平的转换
(6)提供符合接口标准所要求的信号线。
总线结构
总线:一组进行互连和传输信息(数据、指令、地址)的信号线。
总线标准:芯片之间、插板之间及系统之间,通过总线进行连接和传输信息时,应遵守的一些协议和规范,包括硬件和软件两方面。
1、ISA总线
ISA(Industrial Standard Architecture,工业标准体系结构)总线,也称为AT总线。
16位数据宽度,最高工作频率为8MHz,数据传输速率达到16MB/s,地址线24条,可寻址16M字节地址单元。
它是在早期62线PC总线基础上再扩展一个36线插槽形成的。分62线和36线两段,共计98线。其62线插槽的引脚排列及定义,与PC总线兼容。
2、EISA总线
在ISA的基础上于1988年推出了32位 微机“扩展工业标准结构”EISA总线。EISA总线是在ISA总线的基础上,通过增加地址线、数据线和控制线来扩充的EISA总线在结构上与ISA兼容,保护了原有投资。同时又充分发挥32位微处理器的功能。它支持32位地址,可寻址4GB地址空间,32位数据宽度,工作频率为8.3MHz,数据传输率可达33MB/s。
3、PCI总线
PCI总线特点:
1传输速率高,数据宽度32位时,最大数据传输率为133MB/s,数据宽度升到64位时,数据传输率可达266MB/s。适应高速设备数据传输的需要。
2多总线共存,采用PCI总线可在一个系统中让多种总线共存,容纳不同速度的设备在一起工作。
3独立于CPU,PCI总线不依附于某一具体处理器,即PCI总线支持多种处理器及将来发展的新处理器,在更改处理器品种时,更换相应的桥接组件即可。
4自动识别与配置外设,用户使用方便。
5并行操作能力。
4、PC-104总线
PC104是一种专门为嵌入式控制而定义的工业控制总线 。PC-104总线特点:1、使用超小尺寸的插板, 90mm×96mm。2、自堆总线结构,将各插板堆叠连接在一起,该结构组装紧凑而灵活。3、总线驱动电流小(6mA),功耗低(1~2W)。
5、通用串行总线USB
USB总线包含4根(2.0)、8根(3.0)信号线,用以传送信号和提供电流。
两根信号线的D+线上,当设备在全速传输时,要求接1.5KΩ±5%的上拉电阻,并在D+ 和D-线上分别接入串联电阻(29~44 Ω)。
USB的硬件组成
(1)USB主机:带有USB主控制器的PC机,在USB系统中只有1个主机,它是USB系统的主控者。USB主控机/根Hub(USB Host Controller/Root Hub)分别完成对传输的初始化和设备的接入。主机控制器负责产生由主机软件调度的传输,然后再传给根Hub。一般来说,每一次USB交换都是由根Hub组织的。
(2)USB Hubs:除了根Hub以外,为了接入更多的外部设备,系统还需要USB Hubs。USB Hubs可串在一起再并接到根Hub上。
-
- 中继器:负责连接的建立和断开
- 控制器:管理主机与集线器间的通信及帧定位。
(3)USB功能设备:能在总线上发送和接收数据或控制信息。它是完成某项具体功能的硬件设备,如鼠标、键盘。一种功能设备就是一种插在Hub上的外设。
(4)连接电缆:4(8)芯电缆,分上游插头和下游插头分别与集线器及外设进行连接。USB系统使用两种电缆:用于全速通信的包有防护物的双绞线和用于低速通信的不带防护物的同轴电缆。
USB软件部分:
USB设备驱动程序(USB Device Drivers)
USB驱动程序(USB Driver)
主控制器驱动程序(Host Controller Driver)
端点
USB外设本身应包含一定数量的独立的寄存器端口,并能由USB设备驱动程序直接操作,这些设备也就是USB设备的端点(Endpoint)一个设备可以由多个端点,但所有的USB设备都必须有一个零端点以用于设置,完成Control类型传送。
通过端点零(Endpoint 0),USB系统软件读取USB设备的描述寄存器,这些寄存器提供了识别设备的必要信息,定义端口的数目及用途。
管道
USB支持功能性和控制性的数据传送,这些传送发生在主机软件和USB设备的端点之间,我们把USB设备的端点和主机软件的联合称为管道(Pipe),管道是从逻辑概念上来描述信息传输的通道。
USB 系统中数据通信有两个阶段:
第一阶段为通信建立阶段
这个阶段包括了主机向设备发送描述符请求,设备向主机提供各种描述符,以方便主机对自己进行设置和识别。然后主机再对设备进行设置,包括端点和地址,这个过程叫枚举。枚举结束后,主机和设备之间的固定管道便建立起来了。包含1个设备描述符,多个设备描述符,接口描述符,端点描述符
第二阶段为数据通信阶段
经过第一个阶段,设备地址已经设定,设备地址和端点都已经为主机所知,然后主机与设备之间就可以按照枚举过程中定义的地址和端口来传递数据了,直到通信过程结束。
根据以上两个过程,不管是HOST、还是DEVICE,其软件部分的内容就是围绕这两个阶段展开的。
4类数据流传输:控制信号流,块数据流,中断数据流,实时数据流
高性能串行总线标准IEEE1394
和USB一样也支持热插拔,而且也可以提供对外的电源,也可以连接多个设备,支持同步异步的通讯,传输距离可以达到100m
性能特点
- 通用性强 一个接口可以连接63个不同的种类的设备
树形或菊花链结构,以级联方式(USB是星形的)
- 传输速率好(usb1.0 12mb/s的时代1394 400mb/s)usb3.1 10Gb/s 1394 1.6Gb/s
- 实时性好
- 对被连设备提供电源
- 系统中设备之间是平等关系:可以直接连接不需要通过PC机控制
- 连接简单实用方便: 采用设备自动配置技术(USB用Hub来分配),允许热插拔和即插即用,用户不必关机既可插入或移走设备
小型计算机系统接口SCSI
SCSI接口是一个通用接口,在SCSI母线上可以连接主机适配器和八个SCSI外设控制器。
IDE(Integrated Device Electronics)是电子集成驱动器,是把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。
SATA是Serial ATA的缩写,即串行ATA。它是一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输。这是一种完全不同于并行PATA的新型硬盘接口类型,由于采用串行方式传输数据而得名。
I²C总线
I²C(Inter-Integrated Circuit)是Philips公司开发的可连接多个主设备及具有不同速度的设备的串行总线。
I2C使用两根双向信号线来传递数据:Serial Clock Line (SCL) 和Serial Data Address (SDA)
总线速度分为标准速度100kbps,快速模式400kbps,高速模式1Mbps
特点是:半双工,仅需要两根线
电容小于410pf
使SCL为低电平就可以停止传送。
I2C总线数据传输格式
主机发送(写数据)
白色部分为主机发送从机接收,灰色为从机发送主机接收
主机接收(读数据)
SPI串行接口
SPI接口可以连接多个MCU和具有SPI接口的外围器件。