• 通信带宽对比


    通信总线传输速率计算

    1. uart 、can 、SPI通信速率比较
      baud 1/baud(s/bit) 传输1byte数据 10bit 传输时间 数量级 吞吐量
      115200 0.00868ms 10bit 0.09ms 0.1ms 115k
      9600 0.10417ms 10bit 1.04ms 1ms 9.6k
      500k 0.002ms 0.02ms 0.02ms 500k
      1M 0.001ms 0.008ms(8bit) 0.01ms 1M
      数量级为方便计算会取整。

    uart传输1byte数据需要: 数据8bit+停止位2bit=10bit

    1M的SPI 传输速度,大约是115200的uart的10倍
    500k的can 传输速度,大约是115200的uart的5倍
    500k的can 传输速度,大约是9600的uart的50倍
    115200的uart传输速度,是9600的uart的12倍
    协议举例一
    假如协议头占2个字节,协议尾(校验)占1个字节。传输一个字节的数据,实际要有4个字节传输。(uart)加上停止位,共4*10bits需要传输。此时(按10bit一个字节来算,为方便与uart对比):

    115200 uart 传输时间:0.4ms
    9600 uart 传输时间:4ms
    500k can 传输时间: 0.08ms
    1M SPI 传输时间: 0.04ms
    协议举例二
    假如协议头占2个字节,数据长度占2个字节,数据最小1个字节,最大1024字节,协议位(校验位)占一个字节。
    传输一个字节的数据,实际要有6个字节传输。uart加上停止位,共610bits需要传输。spi方式共68bits传输。此时:

    115200 uart 传输时间:0.6ms
    9600 uart传输时间:6ms
    500k can传输时间:0.12ms
    1M SPI传输时间:0.06ms
    在传输1个字节数据的基础上,数据每多一个字节,传输时间增加对应一个数量级。

    该协议,传输时间用时1ms的数据包,包含的数据字节数大约为:

    115200 uart:5个
    9600 uart:6ms才传1个包含一个字节数据的数据包
    500k can:45个byte数据
    1M SPI:95个byte数据
    衡量系统的实时性用响应时间、吞吐量、生存时间三个指标。

    1. USB 带宽和速度
      理论值:USB2.0的带宽是480MB/S, 大约每秒中可以传输60MB的数据
      USB2.0接口的实际极限写入速度在25M/S左右,读速度在35M/S左右。而一般的U盘写入在10M左右,读在20M左右。
      不同USB规范的理论速度
      USB1.1:

    低速模式(low speed):1.5Mbps
    全速模式(full speed): 12Mbps
    USB2.0:向下兼容。增加了高速模式,最大速率480Mbps。
    高速模式(high speed): 25~480Mbps
    USB3.2:向下兼容。
    super speed :理论上最高达4.8Gbps,实际中,也就是high speed 的10倍左右。
    3. I2C总线
    半双工,只有2根线。数据线和时钟线。

    标准速度:100kbps
    快速模式:400kbps
    高速模式:3.4Mbps

  • 相关阅读:
    最优化问题及线性规划问题
    EFK(elasticsearch+filebeat+kibana)日志分析平台搭建
    首次公开,GitHub点击破百万的分布式高可用算法小册被我扒下来了
    Codeforces Round 895 (Div. 3) (A~G)
    Python基础:错误和异常
    基于ISO14229协议的单帧以及多帧Can发送代码
    [2022 强网杯] house_of_cat 战战兢兢的复现
    使用DeepSpeed加速大型模型训练(二)
    Java:join方法详解
    【计算机视觉】OpenCV算法解析
  • 原文地址:https://blog.csdn.net/linan101/article/details/127425261