通信总线二:IIS、CAN

I2S
I²S(Inter-IC Sound),是一种用于将数字音频设备连接在一起的电气串行总线接口标准。 它用于在电子设备中的集成电路之间传送PCM音频数据。 I²S总线将时钟和串行数据信号分开,从而使接收器比需要从数据流中恢复时钟的异步通信系统所需的接收器更简单。

总线至少包括三条线路:

1 位时钟线
官方命名“连续串行时钟(SCK)”。通常写成“位时钟(BCLK)”。
2 字时钟线
官方命名“字选(WS)”。通常称为“左右时钟(LRCLK)”或“帧同步(FS)”。
0 =左声道,1 =右声道
3 至少一条多路复用数据线
官方命名“串行数据(SD)”,通常称为SDATA,SDIN,SDOUT,DACDAT,ADCDAT等。
它还可能包括以下几行:
1 主时钟(通常为256 x LRCLK)
这不是I2S标准的一部分,但通常用于同步模拟/数字转换器的内部操作。
2 用于上载的多路复用数据线
数据线上每个离散数据对应一个位脉冲。位时钟频率是采样率,是每个通道的位数和通道数的乘积。因此,例如,采样频率为44.1 kHz,16位精度和两个通道(立体声)的CD Audio的位时钟频率为:
44.1 kHz×16×2 = 1.4112 MHz
字选择时钟使设备知道当前是否正在发送通道1或通道2,因为I²S允许在同一数据线上发送两个通道。它是一个50%占空比信号,其频率与采样频率相同。对于立体声素材,I²S规范规定左音频在字选择时钟的低周期传输,右通道在高周期传输。它通常与串行时钟的下降沿同步,因为数据在上升沿被锁存。

数据编码为MSB(最高有效位)的二进制补码。这允许每帧的比特数是任意的,发送器和接收器之间不需要协商。

1个典型的I2S信号时序如图1所示

图1 I2S总线典型时序图

CAN

简介:
CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986年率先提出。CAN协议有两个标准:针对通信速率为125Kbps~1Mbps的ISO11898高速通信标准,针对通信速率为125Kbps以下的ISO11519-2低速通信标准。CAN总线广泛应用于:汽车电子、工业自动化、船舶、医疗设备、工业设备等方面。

特点:

  1. 多主控制。
  2. 当总线空闲时,连接到总线上的所有单元都可以启动发送信息,这就是所谓的多主控制的概念。先占有总线的设备获得在总线上进行发送信息的资格。这就是所谓的CSMA/CR(Carrier Sense MultipleAccess/Collosion Avoidance)方法。 如果多个设备同时开始发送信息,那么发送最高优先级ID消息的设备获得发送资格。
  3. 系统柔软性。连接总线的单元,没有类似“地址”的信息,因此,在总线上添加单元时,已连接的其他单元的软硬件和应用层都不需要做改变。
  4. 速度快,距离远。最高1Mbps(距离<40M),最远可达10KM(速率<5Kbps)。
  5. 具有错误检测、错误通知和错误恢复功能。 所有单元均可以检测出错误(错误检测功能)。 检测到错误的单元立刻同时通知其它所有的单元(错误通知功能)。如果一个单元发送信息时检测到一个错误,它会强制终止信息传输,并通知其它所有设备发生了错误,然后它会重传直到信息正常传输出去(错误恢复功能)。
  6. 故障隔离。 在CAN总线上有两种类型的错误:暂时性的错误(总线上的数据由于受到噪声的影响而暂时出错);持续性的错误(由于设备内部出错(如驱动器坏了、连接有问题等)而导致的)。CAN能够区别这两种类型,一方面降低常出错单元的通讯优先级以阻止对其它正常设备的影响,另一方面,如果是一种持续性的错误,将这个设备从总线上隔离开。
  7. 连接节点多。 CAN总线允许多个设备同时连接到总线上且在逻辑上没有数目上的限制。然而由于延迟和负载能力的限制,实际可连接得设备还是有限制的,可以通过降低通讯速度来增加连接的设备个数。相反,如果连接的设备少,通讯的速度可以增加。

物理特征:

这里写图片描述

  1. CAN-H和CAN-L的电位差确定总线电平:显性电平0(压差2V)和隐性电平1(压差0V)。
  2. 显性优先,只要一个单元输出显性电平,总线上即为显性电平;
    隐性包容,只有所有单元输出隐性电平,总线上即为隐性电平。
  3. 如果超过一个单元在同一时刻发送信息,优先级竞争,具有最高优先级ID的单元获得发送的资格,其他单元执行接收操作。
  4. 在CAN总线的起止端都有一个120Ω的终端电阻,来做阻抗匹配,以减少回波反射。

数据帧:发送单元通过此帧向接收单元发送信息。
遥控帧:接收单元通过此帧向相同ID的发送单元请求数据。
数据帧和遥控帧标准格式有11bit的ID,扩展格式有29bit的ID。

数据帧:由发送单元使用,用来发送信息给接收单元
(1)帧开始(SOF):这个域表示数据帧的开始 1bit显性电平
(2)仲裁域(ID+RTR):这个域表示一个帧的优先级
(3)控制域:这个域表示保留位和数据字节数
(4)数据域:0~8个字节的数据内容
(5)CRC 域:这个域用于检查帧的传输错误
(6)ACK 域:是对帧已经被正常接收的一个证实
(7)帧结束(EOF):指示数据帧结束

遥控帧:是接收单元请求发送单元发送一个信息
(1)帧开始:这个域表示数据帧的开始 1bit显性电平
(2)竞争域:这个域表示数据的优先级,具有同样ID的数据帧被请求
(3)控制域:这个域表示保留位和数据字节数
(4)CRC 域:这个域用于检查帧的传输错误
(5)ACK 域:是对帧已经被正常接收的一个证实
(6)帧结束:指示遥控帧的结束

11位基本ID禁止高7位为隐性,即不能ID=1111111XXXX,所以理论上基本ID模式CAN总线上最多可以挂载2048-16=2032个节点
相同ID的数据帧和遥控帧竞争时,仲裁段最后一位RTR为显性电平的数据帧具有优先权

总线仲裁
1.总线空闲时,最先发送的单元获得发送优先权,一但发送,其他单元无法抢占
2.如果有多个单元同时发送,则连续输出显性电平多的单元具有较高的优先级
3.从ID开始比较,如果ID相同,比较RTR

参考:
https://en.wikipedia.org/wiki/I²S
https://blog.csdn.net/windows260/article/details/51136513

你可能感兴趣的:(通信总线)