蓝牙 MSB LSB

看蓝牙协议时总是会看到用LSB MSB来画表格,标识bit位次序。

存储字节序(字可以理解为1bytes,bytes order)

目前看到启发比较好的是这篇《关于大小端的个人理解》(https://blog.csdn.net/fuhang95/article/details/111570800)
以32位机器为例
unsigned int a = 0x12345678;
我们知道计算机在内存中存储的是二进制代码,大小端存储分别如下图所示:
在这里插入图片描述
这其中,大端存储方式和我们的阅读习惯相同,可以直接读作12345678,
而小端,则与我们的逻辑习惯相同,高地址上存更加重要的数据。

ps:这个表格就太传神了

大小端是操作系统关心的。
计算机读取内存数据从低地址向高地址读取?这个就不太清楚了!
这里又涉及到存储时是从低地址向高地址存,还是从高地址往低地址的顺序存?

为什么会有大小端模式之分?
因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(根据编译器的位数,通过sizeof(long)获取),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节。那么就必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。
例如一个16bit的short型X,在存储中的地址为0x0010,X的值为0x1234,那么0x12为高字节,0x34位低字节。对于大端模式,就将0x12存储在低地址中,即0x0010中,0x22存储在高地址中,即0x0011中。小端模式刚好相反。
原文链接:https://blog.csdn.net/u012377333/article/details/65631760

大小端目前的使用情况?
目前Intel的80x86系列芯片是唯一在坚持使用小端的芯片,ARM芯片默认采用小端,但是可以切换为大端;而MIPS等芯片要么采用全部大端的大端存储,那么提供选项支持大端–可以在大小端之间切换。另外,对于大小端的处理也和编译器的实现由关,在C语言中,默认是小端(但在对于一些单片机的实现中确实基于大端,比如Keil 51C),Java是平台无关的,默认是大端的。在网络上传输数据普遍也是大端模式。

#include <stdio.h>
 
// typedef unsigned char byte;
 
void main()
{
	int a = 0x12345678;
	// 取低地址的值
	char *p = (char *)(&a);
	// 判断低地址的值和低字节的值是否相等
	if (*p == 0x78)
	{
		// 低地址存储低字节的值就是小端模式
		printf("little!\n");
	}
	else if (*p == 0x12) // 判断低地址的值和高字节的值是否相等
	{
		// 低地址的值存储高字节的值就是大端模式
		printf("big!\n");
	}
	else
	{
		printf("other!\n");
	}
 
	getchar();
}

操作系统在存储数据时的最小操作单元是字节(即1bytes)。
MSB:Most Significant Bit
LSB: Last(Least) Significant Bit
大端模式就是说操作系统在存数据时把数据的重要比特存到低地址,不重要的存到高地址; —低地址放重要字节,地址和字节重要程度相反

小端模式:重要比特存到高地址,不重要的存到低字节; —重要字节放高地址,地址和字节重要程度相同

大小端是操作系统的存储数据模式,和操作系统有关。
参考《深入了解MSB和LSB》(https://blog.csdn.net/ustc_dylan/article/details/5412906)

Bit order

以及还有比特序 (bit order) ,大小端模式中每个字节的比特序是怎样的?
这其实是不用关心的,反正操作系统从某个地址取出一字节的内容,无论怎么存,取得的数值都是一样的。

网络字节传输顺序

还有注意互联网中传输数据时,一般使用大端模式。

蓝牙射频发射

通过蓝牙射频发射数据时的比特序遵从小端模式

如下图,X = 0b011,
发送时先发送LSB即1,最后发送0。

不管怎么样,接收端先收到的坑定是低地址的字节数据,之后收到的是更高字节的数据。
蓝牙射频发送
还有就是发送的时候是逐比特发送还是怎么发送,还有和编码方式有啥关系?
蓝牙的传输速率是怎么受到影响的?

参考HCI,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字,字长

数电中会有说明,逻辑电路存储器的原理。
字长
存储容量的计算
地址

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值