硬件知识-通信协议与接口

一、基础概念

1.1、串行通信与并行通信

串行:数据逐位传输,传输线少,长距离传输时成本低,但数据的传输控制较复杂。按照实现数据同步的方式,可以分为同步串行和异步串行两种。

并行:多位数据同时传输,传输控制简单,传输速度块,但在长距离传输时硬件成本较高。

1.2、单工、半双工、全双工

单工:数据传输仅能沿一个方向,不能实现反向传输,只有一条通信链路。

半双工:数据传输可以沿两个方向,但需要分时进行也只有一条链路。

全双工:数据可以同时进行双向传输,具有两条通信线路。典型实例:UART。

1.3、同步与异步

同步通信:双方使用频率一致的时钟,在时钟信号的作用下进行发送与接收。

异步通信:收发双方可以有各自的时钟。收发双方要规定数据位、停止位、校验位、波特率等。

1.4、差分

两根信号线上的信号振幅相同、相位相反,那么它们的电势差就构成了差分信号。

1.5、比特率、波特率、传输速率

比特率:又称传信率、信息传输速率(简称信息速率)

每秒能传输的二进制位数或每秒钟传输的比特数。其单位为比特/秒(bit/s或b/s,缩略语为bps)。1字节(Byte)等于8比特(bit)。

一位二进制数所携带的信息量即为1bit(比特)。比特率越高,表示单位时间内传输的数据量越大。

波特率:又称传码率、码元传输速率(简称码元速率)、信号传输速率(简称信号速率)。

每秒传输的码元个数;或者单位时间内载波调制状态变化的次数。单位为波特(Bd或Baud)。

波特率(码元速率)并没有限定是何种进制的码元,码元可能是二进制的,也可能是多进制的。所以给出波特率时必须说明这个码元的进制。

在二进制系统中。信息速率(比特率)=  信号速率(波特率)。

比特率=波特率X单个调制状态对应的二进制位数。

1Baud=log2M(bit/s)其中M是信号的编码级。

R bit=R baud X log2M (Rbit:比特率;Rbaud:波特率)

举例:1、0、1、0......,传多少个数字就要用多少个码元,每个码元的信息量是1bit。

10、10、11......,两个二进制数为一个码元,这种方式称四进制码元。每个码元的信息量为2bit。

101、011、000、110、111、010......,这种被称为八进制码元,每个码元为3bit。

n个二进制数一组,就能构成M进制码元。

例如:波特率为600Bd,则在二进制时,比特率也为600bps;在四进制时,由于bit=baud2,所以比特率为1200bit/s。可见,在一个码元中可以传送多个比特。

数据传输率:又称数据传输速率、数据传送率。它是一个广义的概念。其定义为:通信线路(或系统)单位时间(每秒)内传输的字符个数;或者单位时间(每秒)内传输的码组(字块)数或比特数。其单位为字符/秒;或者码组/秒、比特/秒(可见,当数据传输率用“bit/s”作单位时,即等于比特率)。

举例:数据传输率为960字符/s,每个字符包括1个起始位、8个数据位、1个停止位,则对应的比特率为10*960位/秒=9600位/秒=9600bit/s;因为是二进制编码,所以对应的波特率也为9600Bd。

二、常见问题

1、UART传输为什么需要起始位?

因为UART没有控制线,要让接收方知道什么时候开始接收数据,需要一些手段,UART数据的传输中,只有一根线,所以在发送数据之前,先发一位逻辑“0”作为数据发送的起始标志,接收方在空闲时,当检测到有一个低电平,则开始逐位接收数据。

2、I2C上拉电阻的作用

由于I2C通信是开漏输出的(只能输出低电平不能输出高电平),因此需要加上上拉电阻,使其可以输出高电平。

I2C由两条总线SDA和SCL组成。连接到总线的器件的输出必须是开漏输出,都通过上拉电阻连接到电源,这样才能实现“线与”功能。当总线空闲时,这两条线路都是高电平。阻值过大会使输出信号的上升时间变慢。组织过小,灌入端口的电流将较大,功耗会越大。

其次保证IIC总线上的信号处于稳定状态,避免信号干扰和误判。

3、为什么IIC需要漏极开路

        1.防短路:如果不设为开漏,而设为推挽,几个设备连在同一条总线上,这是某一设备的某个IO输出高电平,而另一台设备的某一个IO输出低电平,这时就会发现发生了短路。

        2.利用“线与”判断总线占用状态。可以将多个开漏输出的Pin脚连接到一条线上,形成“与逻辑”关系,即“线与”功能,任意一个变低后,开漏线上的逻辑就为0了。

4、什么是“线与”逻辑,要实现它,在硬件特性上由什么具体要求?

线与逻辑是两个或多个输出信号相连可以实现与的功能,在硬件上,要用OC门来实现(漏极或者集电极开路),为了防止因灌电流过大而烧坏OC门,应在OC门输出端接一上拉电阻。

三、OC门、OD门、开漏、推挽、图腾柱

3.1、OC门

OC门电路:集电极开路(open collector)
OC门电路的工作原理:
1)当INPUT输入高电平,Ube>0.7V,左侧三极管导通,右侧三极管的b点电位为0,截止,OUTPUT输出高阻态;
2)当INPUT输入低电平,Ube<0.7V,左侧三极管截止,右侧三极管的b点电位为高,导通,OUTPUT输出低电平;

3.2、OD门

OD门电路:漏极开路(open drain)
OD门电路的工作原理:
1)当INPUT输入高电平,左侧三极管导通,右侧三极管的b点电位为0,截止,OUTPUT输出高阻态;
2)当INPUT输入低电平,左侧三极管截止,右侧三极管的b点电位为高,导通,OUTPUT输出低电平;

 OC门input为高电平时,output实际输出不是0V,因为三极管存在饱和压降,一般小功率三极管大概在0.2~0.3V,所以output其实是0.3V左右。OD门input为高电平的时候,output几乎为0V,因为MOS管的导通阻抗很低。

OC门OD门电路不具备输出高电平的能力,是需要外接上拉电阻的。1K~10K都是没问题的。上拉电阻过大,会影响信号切换速度,上拉电阻过小,回路电流就越大,会增加功耗,甚至烧毁OC/OD门。

3.3、推挽输出

推挽输出的结构是由两个三极管或者MOS管受到互补信号的控制,两个管子始终保持一个处于截止,另一个处于导通的状态。电路工作时,两只对称的开关管每次只有一个导通,所以导通损耗小、效率高、既提高电路的负载能力,又提高开关速度。

 推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力。

3.4、总结

开漏形式的电路有以下几个特点:

1、利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。

2、一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。比如加上上拉电阻就可以提供TTL/CMOS电平输出等。(上拉电阻的阻值决定了逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。)

3、OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

4、可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。
补充:什么是“线与”?:
在一个结点(线)上, 连接一个上拉电阻到电源 VCC 或 VDD 和 n 个 NPN 或 NMOS 晶体管的集电极 C 或漏极 D, 这些晶体管的发射极 E 或源极 S 都接到地线上, 只要有一个晶体管饱和, 这个结点(线)就被拉到地线电平上。 因为这些晶体管的基极注入电流(NPN)或栅极加上高电平(NMOS),晶体管就会饱和, 所以这些基极或栅极对这个结点(线)的关系是或非 NOR 逻辑。 如果这个结点后面加一个反相器, 就是或 OR 逻辑。

其实可以简单的理解为:在所有引脚连在一起时,外接一上拉电阻,如果有一个引脚输出为逻辑0,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值