嵌入式系统顺利开发的硬件独立性设计方案
时间:06-06
来源:互联网
点击:
我们从下图2可以看出,“获取温度”这个矩形块又扩展为依赖于硬件且与热敏电阻设计相关的不同功能块,其中包括热敏电阻的硬件特性及其接口电路等。
温度在热敏电阻中以电阻表示;在信号调节电路中,电阻则表示为电压,通过 ADC 转换,电压则转换为 0 至 4095 之间的数值;在软件中,该数值则转换为机器可存储和显示的温度值(比方说定点值温度,间隔为0.1℃)。
我们将温度放入数据存储系统中,让数据值更新同步于控制算法,这样温度就能与控制算法一样保持最新,从而确保将软硬件更好地隔离开来。
随后,我们在设计方案中发现,使用热敏电阻的话微控制器将不能满足温度热点的要求,一直在热敏电阻与微控制器引脚之间运行模拟线路的话,就会造成太多噪声并导致信号损耗。
因此,我们决定在温度区采用集成电路 LM75 I2C 作为温度传感器,将温度进行本地转化,并向I2C 总线提供数字值作为从设备。
现在,为了获得温度值,如下图 3所示,我们必须在微控制器中启用 I2C 主通信硬件,读取 LM75 中的一组寄存器,并将温度的原生表达法(最低有效位为 0.125℃)转化为此前选定的温度表达法(定点值温度,间隔为 0.1℃)。
由于我们实现了控制软件隔离,即便采用新的温度读取方法,控制应用软件也不会因为硬件改变而受到影响。
有关LM75的特性可以集中在上图3所示的蓝色矩形框中,我们可在不影响控制软件的前提下对其加以检查和验证。
举例来说,一些设备会在 I2C 主机每次读取温度值/寄存器时启动新的转换,如果读取速度过快或者过于频繁,那么LM75 就难以完成转换。控制算法则不用担心这些问题。
微控制器的抽取
我们在上面的实例中有意识地改变了微控制器外部的硬件,说明外部硬件转变不会影响控制软件。同样,即便微控制器内部硬件发生变化,也不会造成影响。
如果我们如图 2 所示先设计热敏电阻,随后再改动我们的微控制器,那么配置和读取 ADC 的命令就会变化,对输入进行多路复用和采样的寄存器序列也会变化,进而计数到温度的转换也会发生改变。
然而我并没有谈到改用不同厂商的微控制器时可用什么嵌入式设计工具来进行相关调整的问题。事实上,许多厂商都提供了硬件初始化的设置向导,选择同一厂商推出的新产品相对而言简化了硬件更换过程。
就简化硬件独立性设计方案而言,微控制器厂商在自身的软件开发工具中采用硬件提取技术,从而进一步简化了这一工作。用户可从目录项中根据应用需求选择微控制器的外设功能,并可根据设计方案需求的变化进行添加与删减。
利用 PWM1 或 ADC 等通用实例名,用户可改变硬件的具体功能细节,并让工具来管理第一层提取或封装器。举例来说,在图 2 中,如果我们需要增量型(积分型)ADC,而不是采用 SAR(逐次逼近)ADC的话,那么工具就能自动改变中间浅蓝色的矩形。
我们还能在更高级层面上进行提取。举例来说,利用面向 PSoC 混合信号阵列产品的 PSoC Designer 与 PSoC Express 可视化嵌入式设计工具,软件默认采用硬件提取方法,并自动生成所有层(请见上图2与图3中的蓝色部分)。
如欲修改热敏电阻,用户可在 PSoC Express 的目录中选择“热敏电阻”,并定义“计算所需速度”的控制算法,开发工具就会给出哪些 PSoC 器件可以为该应用提供必需的资源。
选择某个器件时,工具会以定点格式在一定的数据结构中生成必要的固件来读取、转换并存储热敏电阻的温度,并提供给“计算所需速度”算法。
如果热敏电阻的规范发生变化,那么用户可选择其他的 PSoC 器件,从而调整存储容量、引脚数量、成本等。只显示具有应用必需资源的器件,而且能在不影响控制算法的情况下重新生成硬件提取层。
或许在未来的什么时候,所有项目开发工作都可以制定出合理的计划,市场营销工作可以提前部署,明确客户到底需要什么产品,而且计划不会发生变化,具有预期特性的应用软件正好与选定的微控制器的存储空间相符。
不过在这一天到来之前,我们就应通过封装器和硬件层将所有硬件与控制软件相隔离,这样就能在很大程度上简化嵌入式系统的设计工作。
放眼窗外,深呼吸,仰望长空,雄鹰展翅,随时准备攻击捕获猎物。时不我待,我们必须集中精力,全力以赴满足紧迫的市场需求,坚决打赢最后关头调整硬件选择这一仗,满足最苛刻的客户需求。
- 支持网络传感器的嵌入式操作系统设计(11-10)
- 一种基于DSP的张力、深度、速度测量系统(04-15)
- 基于TMS320F2812的DSP控制器设计及应用(04-15)
- 基于DSP的数字式MEMS加速度传感器的设计与应用(04-17)
- 基于ADSP-BF533的家庭安全系统设计(03-26)
- 基于MSP430单片机的电子汽车限速器的研究(08-20)