您的位置:通用技术>>可编程逻辑>>嵌入式操作系统>>设计应用>>正文

嵌入式系统顺利开发的硬件独立性设计方案

推荐给好友
打印
加入收藏
更新于2008-07-24 11:42:07

  所有嵌入式系统最终都要连接到外部传感器与执行器或内部功能模块与外设等硬件,以实现输入输出、数据存储及通信功能。每种设计方案中的每个硬件都有其自己的特性,需要设计人员认真对待。

  设计方案中使用的硬件如果发生任何变化,即便是仅仅添加或去除一个输入或输出端口,也会影响到嵌入式软件,有时甚至会造成非常严重的影响。如果在设计过程后期才做出上述变动,那么就可能导致产品不能及时上市。解决这一问题的办法,就是在系统设计过程中确保完全的硬件独立性。

  硬件独立性设计(design-out the hardware)就是指将所有控制和算法软件与硬件接口软件相分离。我们应有效地设计与硬件有关的逻辑封装器和接口,这样不管什么时候用逻辑部件来替换正在使用中的特定硬件,也不会影响控制和算法软件。

  通过便于理解的逻辑接口(函数、宏、符号)将硬件提取出来,这不仅有助于提高设计的可移植性,而且还能使开发人员集中精力解决实际的应用问题,甚至在明确采用什么硬件之前就能开始设计工作。这听起来似乎比较简单,您可能认为现在您或您的工作团队正是这么做的。

  不过,我们不妨来认真研究一下当前的设计项目(或者曾经喜欢的项目),看看要是更换其中的微控制器,会出现什么情况。如果改用不同的微控制器,尤其是不同厂商的微控制器的话,要是会对项目造成严重影响,那么您在设计过程中就没有实现硬件独立性。

  为了成功实现硬件独立性设计,我们必须在设计过程中保持清醒的头脑。我们不必等硬件完全设计好了再开始开发嵌入式软件,也不必等到明确所有要求后最终确定硬件选择,而是可以将设计方案中的硬件选择与设计方案相分离,这样在市场崭露头角的时候我们就可以开始设计工作,从而有助于赢得关键客户。说到底,有哪些设计项目中硬件是真的一成不变的呢?最后总是会出现硬件变动的情况。

  用这种方法开始设计工作有助于提高整体灵活性,这既是由于硬件几乎随时“能够”替换,同时也是由于我们不用担心硬件的替换问题了。此外,由于硬件特定的功能位于封装器与接口中,因此这有助于简化调试工作,也增加了不同项目之间 IP 的重复利用率。

  “硬件独立性设计” 是什么意思?

  最简单地说,嵌入式系统的硬件独立性设计就是在逻辑上把嵌入式应用软件与所有硬件直接相连的软件相分离。所谓“所有”硬件就是指物理设计或选定微控制器发生变化时可能发生的任何变化因素。

  显然这包括选定微控制器中支持硬件的所有器件,如模数转换器(ADC)和通信接口(UART、SPI、I2C、USB、CAN 等)。不过如果物理系统设计还包括传感器与执行器,那么它们的变动也会影响软件,因此必须确保其 为硬件独立性设计。

  此外,不要忘了输入/输出端口与嵌入式存储器等常见元件。如果它们发生变动,也会影响应用(比方说用于记录数据日志或存储配置选择的非易失性存储器,或提供内部上拉或内置驱动电路的输入端口)。总之,所有硬件都要做到独立系统设计。

  有的读者可能会想,硬件独立性设计方案到底有什么新颖之处?几千年以前,睿智的所罗门国王曾经说过:“太阳下面没有什么东西是新的。”嵌入式系统硬件独立性设计背后的理念实际并不是什么新东西。自从现代嵌入式系统设计出现以来(我认为大约是在 1980 年吧),工程师一直在围绕硬件构建封装器与接口。

  本文要说明的是,我们应当把这种方法发挥到逻辑极致,否则我们的项目就仍然会受限于硬件,就不能在需要时灵活地更改硬件。我希望您通过本文能够充分认识到硬件选择对嵌入式设计的影响,并能够了解到在今后设计中消除硬件变化影响的一些小窍门。

  从何做起?
文章出处:赛普拉斯半导体公司产品市场营销总监JonPears:EDNChin