基于stm32 SPI + DMA的单线归零码计算和网络速率变换

​​​​​​首先需要理解网络传输速率的一些基本单位:
1.kbps和kBps的区别
        (1)kbps:千比特每秒kilobits per second),表示每秒可以传输1000比特的数据。
        (2)kBps:千字节每秒(kilobytes per second),表示每秒可以传输1000字节的数据。
2.比特和字节的关系
        (1)1字节(Byte)=8比特(bit)
        (2)所以1字节的数据大小是1比特的数据大小的8倍。
3.周期时间计算公式
        周期时间=数据单位大小/速率
4.数据单位的大小
        (1)对于kbps,数据单位是1比特,大小是1位。
        (2)对于kBps,数据单位是1字节,大小是8位。
5.例子
        (1)800kbps的周期时间=1比特/800kbps=0.00000125秒=1.25微秒/比特

                800kbps的周期时间=1比特/800kbps
                =1/800,000比特每秒
                =0.00000125秒
                =1.25微秒
        (2)800kBps的周期时间=1字节/800kBps=0.00125秒=1.25微秒/字节

                1.800kBps表示每秒传输800,000字节(800千字节的数据
                2.周期时间计算公式周期时间=数据单位大小/速率
                3.对于kBps,数据单位是"字节”大小为8位
                4.将数据单位大小和速率代入公式河得:
                周期时间=1字节/800,000字节每秒
                =1/800,000
                =0.00000125秒
                =1.25微秒

               1.800kBps表示每秒传输800,000字节等于6400,000比特
                2.周期时间计算公式周期时间=数据单位大小/速率     
                3.将数据单位大小和速率代入公式河得:
                周期时间=1比特/6400,000比特每秒
                =1/6400,000
                =0.00000015625秒
                =0.15625微秒/比特

6.常用速率单位转换:
        1kbps 1000 bit/s
        1kBps 8000 bit/s (1Byte 8 bit)
        1Mbps 1000kbps
        1MBps 1000kBps

7.总结
        (1)kbps以比特为数据单位,kBps以字节为数据单位。
        (2)1字节是1比特的8倍,所以相同数字的kbps和kBps,周期时间相差8倍。
        (3)计算周期时间时必须预注意数据单位的区别,才能得到正确的结果。

当数据速率以kbps(千位每秒)为单位增加时,周期时间会减小。这是因为周期时间与速度成反比关系。具体来说,如果kbps的数值增加,表示每秒传输的位数更多,因此一个周期内经历的时间更短。


理解了这些网络传输速率的基本知识我们来看关于SPI控制单线归零码驱动的分析:


最近在一个项目中需要通过STM32控制WS2812 B RGB LED灯带。WS2812B的控制信号1250ns周期的脉冲信号,逻辑1是800ns高电平+450ns低电平,逻辑0是400ns高电平+850ns低电平。为了通过SPI产生这种控制信号我对信号特征进行了分析:


1.SP1一次传输8位数据若将前6位设为1、后2位设为0,即数据0xFC,可以产生一个脉冲信号。
2.该脉冲周期为1250ns,则每个位的时间为1250/8=156.25n5.
3.因此,SPI的时钟频率需设为1/156.25ns=6.4MHz.
4.在6.4MHz时钟下,0xFC产生的信号为(6/8)*1250=937ns高电平和(2/8)*1250=312ns低电平。
5.同理,0xC0可以产生312ns高电平和937ns低电平。
6.这与WS2812B的逻辑电平定义基本匹配.

下面是cubemx spi +DMA的配置

系统时钟配置:

SPI配置:

SPI NVIC配置

SPI DMA配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值