Channel Access Protocal——EPICS Base-3.16版CA协议 - 字节序与数据类型

本文详细解析了EPICS的CA协议所采用的bigendian字节序及其在网络传输中的作用,并对比了bigendian与littleendian的区别。同时,介绍了CA协议定义的数据类型,为理解EPICS系统数据传输提供了关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文献:

1. 官方CA协议说明: https://epics.anl.gov/base/R3-16/1-docs/CAproto/index.html#_data_types

2. 优快云博主lspbeyond的博文《关于Big Endian 和 Little Endian》: https://blog.youkuaiyun.com/sunshine1314/article/details/2309655

 

字节序——big endian 和 little endian

endian指的是当物理存储的最小单元比数据逻辑的最小单元小时,数据逻辑到物理存储的单元排布关系。咱们接触到的物理存储单元最小都是“字节byte”,在通信领域中,这里往往是“位bit”,不过原理也是类似的。

不同CPU、不同程序语言的存储数据的方式可能不同,一个存储块,低地址存的是数据的低字节还是高字节?对这一问题的两个处理方式就产生了big endian和little endian两种存储方式。其中,big endian方式在低地址存储数据的高字节little endian方式在低地址存储数据的低字节

例如,对于十六进制数据0x1234ABCD,两种存储情况如图1所示。

big endian 和 little endian 对十六进制数据0x1234ABCD的存储结果
图1. big endian 和 little endian 对十六进制数据0x1234ABCD的存储结果

可以看出,big endian更符合我们的阅读习惯。所有网络协议都是采用big endian的方式来传输数据的,所以有时我们也会把big endian方式称之为网络字节序。

需要注意的是,不同字节序的主机之间进行通信、不同字节序的程序语言之间进行调用时,有必要关注一下字节序的问题。

那么我想说的是,EPICS的CA协议采用big endian字节序传输数据

 

CA协议定义的数据类型

CA协议定义的数据类型
图2. CA协议定义的数据类型

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值