绵羊汽车生活记录 sheep汽车资讯 ECU中的定点与缩放

ECU中的定点与缩放

小数在计算机中通常有两种表示方法,一种是约定所有数据的小数点隐含在某一个固定的位置上,称为定点数,另一种是小数点位置可以浮动的称为浮点数。一般来说,定

小数在计算机中通常有两种表示方法,一种是约定所有数据的小数点隐含在某一个固定的位置上,称为定点数,另一种是小数点位置可以浮动的称为浮点数。一般来说,定点格式可表示的数值的范围有限,对处理硬件的要求比较简单。而浮点格式可表示的数值的范围很大,但对处理硬件的要求也更高。

式中 M 称为 N 的尾数(mantissa),是一个纯小数。E 为 N 的阶码(exponent),是一个整数, J 称为比例因子 J^(E) 的底数。这种表示方法相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法,C语言中的以float和double就属于这种类型。

定点数是小数点固定的数,在计算机中没有专门表示小数点的位,所以小数点的位置是约定默认的。一般固定在机器数的最低位之后,或者固定在符号位后。前者称为称为定点整数(下图Q0),后者称为定点纯小数(下图Q15)。

其中一位 X0用来表示数的符号位,其余位数代表它的量值。为了对所有 n 位进行统一处理,符号位 X0通常放在最左位置,并用数值0和1分别代表正号和负号。对于任意定点数,如果 x 表示的是纯小数,那么小数点位于 X0和 X1之间,数的表示范围为:

定点数表示法的缺点在于其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大或特别小的数,最终绝大多数现代的计算机系统采纳了浮点数表达方式。但在汽车ECU中却是定点整数运算占了上风,这是因为在ECU中:

对于汽车控制器ECU而言,其内部拥有大量的数值计算,里面包括着大量数学模型,相比于浮点运算,定点运算的速度要快上一个数量级。而且随着计算量增多,定点的优势会越发明显。

通常执行定点计算需要更少的内存和更少的处理器时间。对于底盘以及传动系统中的ECU对于计算的实时性要求很高,包含着许多1ms,5ms,10ms,20ms的周期process,这就意味着需要着需要在更少的时间内,完成更多的计算任务。

相比于浮点MCU而言,定点MCU的结构更为简单,功耗更低,造价更为低廉。在汽车零配件这种对成本锱铢必较的行业,这对于各个Tier1的诱惑就更不必多说了。

既然ECU中依靠的是定点整型计算,那其中的小数已经是如何实现的?Scaling(缩放)。就好比,在ADC的10位采样中,5V就使用0x3FF 来表示,即1个hex代表了4.886mV(5000mV/1023),也可以说这个物理量的精度为4.886mV。

我们举个例子,下面这个图是一个简单的计算车辆加速度的数学模型,包括驱动力F,阻力f,车身质量m,以及最后期望得到的加速度a。我们用PHY()表示该变量的物理值,HEx()来表示该变量在MCU内存中的数值。

使用Simulink等自动代码生成工具,还会基于此进行进一步优化,比如使用底层库函数来进行算符运算,或者把(÷2)改成右移(>>1)等等。

汽车测试网-创办于2008年,报道汽车测试技术与产品、趋势、动态等 联系邮箱 marketing#auto-testing.net (把#改成@)

本文来自网络,不代表绵羊汽车生活记录立场,转载请注明出处:http://www.sheepcar.cn/21615.html

作者: sheep

BAIC使用LMS的测试软件来提高D60的燃油经济性

仿真测试!揭秘零愿景下的自动驾驶测试新趋势

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

13426325341

在线咨询: QQ交谈

邮箱: 2363400792@qq.com

工作时间:7*24小时全年无休
返回顶部