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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版