摘要:基于TI公司提供的IQmath库实现在定点DSP芯片TMS320F28xx上进行精确的浮点运算,方便开发人员采用C/C++编写浮点运算程序,可以节省设计和调试时间。IQmath库主要应用于高速度和高精度的实时计算,与直接采用ANSI C语言相比效率更高,这对设计实时性要求很高的控制系统尤其重要。
关键词:IQmath库;TMS320F28xx;浮点运算;实时性
引言
DSP数字信号处理器分为定点和浮点两种基本类型,它们之间最大差异在于浮点DSP比定点DSP具有更强大的计算能力和更大范围的动态精度。浮点DSP内部设有专门支持浮点运算的硬件单元,对浮点格式的数据可以直接通过代码加入硬件运算中,因此运算速度很高。而定点DSP没有定点运算单元,它对浮点格式的实数必须通过软件才能实现,这样就增加了指令代码,间接地使得定点DSP运算速度低于浮点DSP,典型的浮点处理器,如TI公司的C6000系列,几乎所有的嵌入式微控制器都为定点处理器,如TI公司的C2000系列。因为浮点DSP的价格更加昂贵,因此定点DSP仍然有其巨大的优势。但是任何算法都需要进行浮点运算,因此如何提高在定点DSP上进行的浮点运算的速度和精度,就成为了用户开发时必须要考虑的关键问题。TI公司专门为定点处理器TMS320C2000系列提供的IQmath库为解决上述问题提供了良好的实现方法。
1 数的定标:Q格式
定点DSP不能直接处理小数,编程时处理小数有3种方法:
①把变量定义成float类型。该方法编程量最小,但编译出来的代码最大。
②把整数变量放大来表示小数。这是许多开发定点DSP的程序员经常使用的方法,但程序不具有可移植性。
③采用整数定标的方法来确定小数,即采用Q格式来表示小数。对于定点处理器而言,不管定义哪种类型的数据最终都采用整型数据进行具体的运算。
整数定标的实质就是通过确定小数点位于哪一位,从而确定小数的精度,通常用Q格式表示。一个32位有符号定点数的Q格式如下:
联系客服