浅谈数字系统通信协议的字节序和位有效性

通信网络

650人已加入

描述

  在计算中,最小的数字单位通常是字节(8位)。从技术上来说,最小的单位是位(1或0,真或假),但就表示我们通常所说的数字而言,字节是最小的构件。更大的数字是通过使用多个字节创建的,通信协议通常使用字节作为数据传输的最小单位。

  比特重要性

  如果我们考虑一个二进制数,例如“10000001”,那么二进制序列两端的位都有特殊的名称——最右边的位称为最低有效位(LSB),最左边的位称为最高有效位(MSB)。

串行通信

  最右边的位具有十进制值1,最左边的位具有十进制值128(给出该字节的总值为129)——左边的位具有最大(最多)值,右边的位具有最小(最少)值。

  利用串行通信协议,数据可以以LSB优先或MSB优先的方式传输。UART和USB协议首先传输数据LSB而I2C和CAN协议以MSB优先的方式传输数据。SPI可以设置为使用任一选项,但通常使用MSB优先。

串行通信

  I2C通信示例MSB优先

    字节序

  当多个字节在内存中组合起来表示更大的数字(16位、32位、64位等)时,就有了如何在内存中排列这些多个字节的选择。

串行通信

  4个字节用来表示一个32位的数。

  Little-Endian是目前最常用的选项。使用此选项,当用于表示数字的字节数增加时,内存中的字节值位置保持不变。

  

串行通信

  审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分