你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CAN数据域的数据格式该如何定义?以什么标准定义?

[复制链接]
Tobey_YF 提问时间:2016-10-2 16:39 /

    最近需要实现上位机与下位机的CAN通讯,现在双方苦于不知该如何定义数据格式,尤其是传输浮点数据~~
起初经过讨论直接根据个人主观意愿定义了双方的数据协议,,,其后,boss要求采用标准进行定义,,,无标准则视本程序无效!于是乎,查阅了IEEE 754标准,其浮点数标准格式分为三个部分:数符,
阶码(含阶符),尾数;考虑到程序中所需传输的数据并不大,因此决定使用短实数:符号位S(1位),
阶码(8位),尾数(23位),总位数(32位);   

   CAN的数据域为64位,8个字节,按8位进行划分,分为data[0]…data[7],若按上述分析,则各对应关系应为:
符号位S --》data[0],阶码--》data[1],尾数--》data[2],data[3],data[4],即总共占用了5个字节。  

   显然,采用上述标准浪费了8位~~  

   实际系统所需传输的浮点数范围为0~400,因此,实际传输数据为无符号浮点数,两个字节可表示的无符号
整型范围为0~65535,那么,大可以将获取到的浮点数乘以100,即范围扩大为0~40000,此时并没有超过
两个字节所能表示的范围,即:可以仅使用两个字节完成浮点数的传输,

  那么,问题来了,是否有相关的标准可以参照呢?无标准则无话语权,项目数据传输这块将无法进行~~  

  有做过CAN的各位前辈提供几个标准给小弟参考参考吧!  
收藏 1 评论0 发布时间:2016-10-2 16:39

举报

0个回答

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版