您的位置 首页 测评

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

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

  一切嵌入式体系终究都要衔接到外部传感器与执行器或内部功用模块与外设等硬件,以完结输入输出、数据存储及通讯功用。每种规划方案中的每个硬件都有其自己的特性,需求规划人员仔细对待。

  规划方案中运用的硬件假如产生任何改动,即使是只是增加或去除一个输入或输出端口,也会影响到嵌入式软件,有时甚至会形成十分严峻的影响。假如在规划进程后期才做出上述改动,那么就或许导致产品不能及时上市。处理这一问题的办法,就是在体系规划进程中保证彻底的硬件独立性

  硬件独立性规划(design-out the hardware)就是指将一切操控和算法软件与硬件接口软件相别离。咱们应有用地规划与硬件有关的逻辑封装器和接口,这样不论什么时分用逻辑部件来替换正在运用中的特定硬件,也不会影响操控和算法软件。

  经过便于了解的逻辑接口(函数、宏、符号)将硬件提取出来,这不仅有助于进步规划的可移植性,并且还能使开发人员会集精力处理实践的运用问题,甚至在明晰选用什么硬件之前就能开端规划作业。这听起来好像比较简略,您或许认为现在您或您的作业团队正是这么做的。

  不过,咱们无妨来仔细研究一下当时的规划项目(或许从前喜爱的项目),看看要是替换其间的微操控器,会呈现什么状况。假如改用不同的微操控器,尤其是不同厂商的微操控器的话,要是会对项目形成严峻影响,那么您在规划进程中就没有完结硬件独立性

  为了成功完结硬件独立性规划,咱们有必要在规划进程中坚持清醒的脑筋。咱们不必等硬件彻底规划好了再开端开发嵌入式软件,也不必比及明晰一切要求后终究确认硬件挑选,而是能够将规划方案中的硬件挑选与规划方案相别离,这样在商场锋芒毕露的时分咱们就能够开端规划作业,然后有助于赢得要害客户。说究竟,有哪些规划项目中硬件是真的原封不动的呢?终究总是会呈现硬件改动的状况。

  用这种办法开端规划作业有助于进步全体灵敏性,这既是因为硬件简直随时“能够”替换,一起也是因为咱们不必忧虑硬件的替换问题了。此外,因为硬件特定的功用坐落封装器与接口中,因而这有助于简化调试作业,也增加了不同项目之间 IP 的重复运用率。

  “硬件独立性规划” 是什么意思?

  最简略地说,嵌入式体系的硬件独立性规划就是在逻辑上把嵌入式运用软件与一切硬件直接相连的软件相别离。所谓“一切”硬件就是指物理规划或选定微操控器产生改动时或许产生的任何改动要素。

  明显这包含选定微操控器中支撑硬件的一切器材,如模数转化器(ADC)和通讯接口(UART、SPI、I2C、USB、CAN 等)。不过假如物理体系规划还包含传感器与执行器,那么它们的改动也会影响软件,因而有必要保证其 为硬件独立性规划。

  此外,不要忘了输入/输出端口与嵌入式存储器等常见元件。假如它们产生改动,也会影响运用(比方说用于记载数据日志或存储装备挑选的非易失性存储器,或供应内部上拉或内置驱动电路的输入端口)。总归,一切硬件都要做到独立体系规划。

  有的读者或许会想,硬件独立性规划方案究竟有什么新颖之处?几千年从前,睿智的所罗门国王从前说过:“太阳下面没有什么东西是新的。”嵌入式体系硬件独立性规划背面的理念实践并不是什么新东西。自从现代嵌入式体系规划呈现以来(我认为大约是在 1980 年吧),工程师一直在环绕硬件构建封装器与接口。

  本文要阐明的是,咱们应当把这种办法发挥到逻辑极致,不然咱们的项目就依然会受限于硬件,就不能在需求时灵敏地更改硬件。我期望您经过本文能够充沛认识到硬件挑选对嵌入式规划的影响,并能够了解到在往后规划中消除硬件改动影响的一些小窍门。

  从何做起?

  开端项目规划时,您至少要有一些根本的主意或要求。咱们应着手规划一种独立于硬件的体系。体系应当完结什么功用?终究目标是什么?需求哪些驱动、监控功用?假如参加硬件的话,就要把整个信号链中的各个部分组成一个有机的全体。

  您会发现,一切互相相互衔接的硬件实践上都是替换硬件状况下潜在的问题来历。咱们要用封装器或接口将一切硬件阻隔起来。就马达操控规划而言,咱们无妨来看看它的算法,看看要用哪些数据来确认驱动指令。

  为了操控算法,不论选用什么硬件,不论是几安培的负载电流,仍是每分钟多少转的转速,仍是百分比驱动指令,都有必要保证逻辑性。

  经过硬件和算法相结合,负载电流转化为电压,ADC 对其采样后转化成数字计数,再经过数学函数转化为毫安;上面每个进程都需求进行“包装”,防止底层硬件改动时影响软件运用。

  假如在规划进程中彻底遵从上述进程,那么终究咱们就能完结两个意图。首要,咱们能明晰硬件与终究体系的联系,并了解到相似但不同的新项目怎么从现有的规划方案获益。其次,假如需求规划全新的项目,选用彻底不同的运用类型,那么仍能参阅现有的项目,只需对其加以调整,就能满意新项意图要求,只需依据新式运用替换或删去有关层即可。

  从前,微操控器的高档大型电路板支撑套件需求专业作业组或电脑天才来做特别处理,而他们又总是因为作业太忙而难以作出必要的调整,现在,咱们能够支撑逻辑解构,逐渐满意各相关功用需求,保证满意全体需求。

  记住上大学时,即使考试答题时没有得出正确的答案,但假如演算进程逻辑明晰、头头是道、体系而有安排,并加以恰当注解,那么仍能在考试中取得必定的分数。这个道理与硬件独立性规划方案的道理是相同的。

  咱们不需求做到特别严厉的有安排性,只需将封装器与接口在逻辑上进行会集,就能方便地代替实践硬件。举例来说,假如咱们把一切与微操控器直接相关的封装器与接口会集在一个当地,而不是将其涣散在不同的文件中,那么就能在终究关头轻松替换微操控器。

  经过实例阐明作业原理

  咱们无妨经过一个运用实例来阐明上述道理。在这个运用中,咱们依据温度来操控电扇转速,一步步完结相关规划作业,保证硬件独立性规划。在开端项目规划之前,咱们已知:1) 咱们需求取得温度读数。 2) 咱们需求依据温度核算出所需的电扇转速。 3) 咱们需求读取当时电扇转速。 4)咱们需求依据当时电扇指令以及实践电扇转速与抱负转速之间的差错核算出新的电扇指令。5)咱们需求向电扇输出新的指令。

  图1给出了该体系的逻辑方框图。矩形块表明依赖于硬件,而椭圆形则表明独立于硬件。依据该图所示的逻辑联系,操控工程师能够运用 MatLab 等模仿套件开端体系开发作业,而规划成果则能直接输入终究规划方案(尤其是用 C 言语等简直一切微操控器都支撑的高档言语编写的状况,更是如此)。

  跟着项目开发的发展,咱们决议选用热敏电阻作为温度传感器(因为热敏电阻本钱低且能满意特别特点需求)。

  咱们从下图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 器材,然后调整存储容量、引脚数量、本钱等。只显现具有运用必需资源的器材,并且能在不影响操控算法的状况下从头生成硬件提取层。

  或许在未来的什么时分,一切项目开发作业都能够拟定出合理的方案,商场营销作业能够提早布置,明晰客户究竟需求什么产品,并且方案不会产生改动,具有预期特性的运用软件正好与选定的微操控器的存储空间相符。

  不过在这一天到来之前,咱们就应经过封装器和硬件层将一切硬件与操控软件相阻隔,这样就能在很大程度上简化嵌入式体系的规划作业。

  放眼窗外,深呼吸,仰视漫空,雄鹰展翅,随时预备进犯捕获猎物。时不我与,咱们有必要会集精力,竭尽全力满意急迫的商场需求,坚决打赢终究关头调整硬件挑选这一仗,满意最严苛的客户需求。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/192640.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部