IIC、SPI、CAN、485、USB总线速率

IIC

    S(标准模式)测量与控制场合,100kb/s

    F(快速模式),速率为 400kb/s

    Hs(高速模式),速率为 3.4Mb/s。  

    具体看器件要求,单片机一般是400k或以下常用。IIC协议是有规定的,其总线的容性负载要求,目前最高的1M左右。普通的芯片只有 低速 100K 与 高速 400K 两种规格。

    如果通信距离较远,导线的分布电容较大,而上拉电阻又取得太时,信号上升时间不够,接收方就可能会读不到高电平。我们知道IIC是靠上拉出来的高电平,信号上升所需的时间正比于上拉电阻值和该点对地电容的乘积。


SPI

SPI是一种高速的,全双工,同步的通信总线,由Motorola开发,并没有一个官方标准。已知的有的器件SPI已达到50Mbps。具体到产品中SPI的速率主要看主从器件SPI控制器的性能限制。

对于STM32器件,如果用的固件库,那就是更改SPI_InitStructure.SPI_BaudRatePrescaler参数,赋值在stm32f10x_spi.h中有定义,是APB2或者APB1总线频率的1/2~1/256.


CAN

理论上,CAN总线在速率小于5K时,距离可达10000m;速率接近1M时,距离小于40m。现实中常用的高速CAN总线速率有500k或250k,低速CAN总线有125k和62.5k,传输距离在几米到几十米间。速率和传输距离的选择还有考虑硬件的要求。

理论上,一条CAN总线上可以连接无数个CAN设备,但实际上受到其他条件限制,数量总是有限的。例如,使用了更上层的CANOPEN协议,则一条总线上只能有128个设备。

http://www.eepw.com.cn/article/201706/353287.htm

https://wenku.baidu.com/view/bfc09f2acfc789eb172dc8c5.html


485

RS-485/422采用平衡发送和差分接收方式实现通信:发送端将串行口的TTL电平信号转换成差分信号 A,B两路输出,经过线缆传输之后在接收端将差分信号还原成TTL电平信号。由于传输线通常使用双绞线,又是差分传输,所以又极强的抗共模干扰的能力,总线收发器灵敏度很高,可以检测到低至200mV电压。故传输信号在千米之外都是可以恢复。RS-485/422最大的通信距离约为1219M,最大传输速率为10Mb/S,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。

RS-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求:
     1.接收器的输入电阻RIN≥12kΩ
     2.驱动器能输出±7V的共模电压
     3.输入端的电容≤50pF
     4.在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所       用双绞线的参数有关)
     5.接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号“0”;(V+)-(V-)≤-0.2V,表示信      号“1”)

  因为RS-485的远距离、多节点(32个)以及传输线成本低的特性,使得EIA RS-485成为工业应用中数据传输的首选标准。


USB

USB1.1:
-------低速模式(low speed):1.5Mbps
-------全速模式(full speed): 12Mbps

USB2.0:向下兼容。增加了高速模式,最大速率480Mbps。
-------高速模式(high speed): 25~480Mbps 

USB3.0:向下兼容。

-------super speed :理论上最高达4.8Gbps,实际中,也就是high speed 的10倍左右。



http://www.360doc.com/content/13/0131/10/6767938_263364793.shtml

### 嵌入式系统中的通信协议概述 #### IIC (Inter-Integrated Circuit) 协议 IIC 是一种同步、半双工的两线制总线协议,通常由一根时钟线(SCL)一根数据线(SDA)组成。它支持多主机多从机架构,适合短距离低速率的数据传输场景。由于其硬件开销较小,常用于连接传感器、EEPROM 其他外设到微控制器上[^1]。 以下是 IIC 的主要特性: - **速度范围**:标准模式下为 100 kbps,快速模式可达 400 kbps,高速模式可达到 3.4 Mbps。 - **优点**:仅需两条信号线即可实现多设备互联;占用较少的 GPIO 资源。 - **缺点**:不适合高带宽需求的应用场合,且随着挂载设备数量增加可能影响性能。 #### SPI (Serial Peripheral Interface) 协议 SPI 利用四条线路完成全双工通讯功能——分别是 MOSI(Master Out Slave In)、MISO(Master In Slave Out)、SCLK(Serial Clock)以及 SS/CS(Slave Select)。相比起 IIC 来说更加高效灵活,在某些情况下甚至可以省去部分控制信号来简化电路结构[^2]。 关于 SPI 的具体属性如下所示: - **工作频率**:理论上能够支持更高的比特率,实际应用中常见几十兆赫兹级别以上的操作。 - **优势所在**:提供更快的数据吞吐能力,并允许更复杂的帧格式定义满足特定用途的需求。 - **局限之处**:不具备自动寻址机制,因此当存在多个外围组件时需要额外管理片选信号(SS),这会消耗较多端口资源并使布板变得复杂起来。 #### CAN(Controller Area Network) 总线技术 CAN 属于一个多主节点仲裁型串行通信网络体系,广泛应用于汽车工业领域以及其他分布式控制系统之中。通过差分驱动方式提高抗干扰水平的同时还能保障较长物理链路下的稳定运行效果。 下面列举了一些有关 CAN 的重要参数及其优劣势分析: - **波特率区间**:经典版本最高至 1Mbps 左右,而新一代 FD 扩展版则进一步提升了最大理论极限值。 - **突出亮点**:具备错误检测纠正机能,即使在网络负载较重的情况下也能维持较高的可靠性指标;另外还拥有优先级判断逻辑以便紧急消息得以及时传达出去。 - **潜在不足**:相对而言成本较高一些,而且对于非常简单的点对点联系来说可能会显得有些大材小用了。 ```python # 示例代码展示如何初始化不同类型的通信接口(伪代码) def init_iic(): configure_sda_and_scl_pins() set_up_iic_clock_frequency() def init_spi(): setup_mosi_miso_sclk_ss_lines() define_spi_mode_and_baudrate() def init_can(): initialize_can_transceiver() specify_bit_timing_parameters() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值