CE数据采集器设计和开发实例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1 软硬件可以互换的功能

软件与硬件可以互换的功能,指的是在设计产品时,产品的某些功能既可以用硬件来实现又可以用软件来实现的功能,这些功能主要体现在时序和逻辑上。

3.1.1 浮点数计算

浮点运算就是实数运算,因为计算机只能存储整数,所以实数都是约数,这样浮点运算是很慢的而且会有误差。现在大多数机器都是32位的,也就是说32位都用来表示整数的话,那么对于无符号整数就是0~231,对于有符号的话就是-231~230

机器有两种办法来表示浮点数,一种是定点,就是小数点位置是固定的,一种是浮点,就是小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多。

在计算机中,针对浮点数运算主要有两种解决办法,一种是通过软件来解决,在许多语言中都包含已经比较完善的浮点数计算库如C\\C++,也可以自己编写浮点数计算如汇编;还有就是可以通过硬件解决,许多CPU都带有的FPU(Floating Point Unit),浮点运算部件就是专门对浮点数计算进行优化的硬件,通过该部件可以对浮点数计算进行优化。

在32位嵌入式数据采集器设计中,水位数据采用浮点数表示,因此在设计中必须包括浮点计算功能,该功能实现既可以通过软件来解决,也可以选择一个支持浮点数计算的硬件来实现,考虑在浮点数计算所占用的资源和效率,在成本不高的情况下尽量采用支持浮点数的硬件来解决,一般选择带有FPU的CPU来作为整个系统的核心。

3.1.2 串口通信

串口通信从本质上讲是符合一定时序的比特流,这个时序的产生既可以通过CPU上带的硬件来实现,也可以通过软件操作普通IO管脚模拟比特流时序来实现,目前大部分公司生产的CPU都带有支持串口通信的硬件资源,只有在CPU提供的硬件资源不够且对数据传输速度不太高的情况下使用软件模拟,比较常用的用软件模拟的串口通信有UART、I2C、SPI和one-wire等。

3.1.3 数学计算

数学计算功能,在实际项目中,有些数学计算如加法、乘法等的功能既可以通过软件计算来获得结果,也可以通过专门的加法器、乘法器电路来对输入的电路信号进行计算,通过其输出信号来获得最终结果,不同的方式效率不同。

3.1.4 逻辑判断

在实际项目中,逻辑判断一般使用的最多,包括比较、异或等,目前市面上的CPU许多厂家把比较电路作为一种最常用的电路整合到CPU,这个功能既可以通过软件里的逻辑判断语句来实现也可以通过比较电路来实现,对于不同的CPU实现的效率可能不同。