毕业论文
您现在的位置: 版本控制 >> 版本控制发展 >> 正文 >> 正文

嵌入式开发2种嵌入式硬件版本控制技术

来源:版本控制 时间:2024/12/18

  当谈到嵌入式系统版本控制时,我们经常会立即跳到软件上。嵌入式开发人员经常更改软件并仔细管理这些更改至关重要,但对硬件进行版本控制也是如此。一个小的硬件更改可能会使每个版本的软件都过时,直到该硬件更改为止。在今天的文章中,我们将研究两种技术来对软件可读的硬件进行版本化,以便软件可以确保它与兼容的硬件版本配对。

  

  技巧#1–使用GPIO对PCB版本进行硬编码

  第一个技术是如何使用微控制器上的GPIO线来提供可读的PCB版本号。几乎每一个PCB都会在PCB丝印上标注硬件版本号,但系统软件无法像人类那样读取丝印。硬件在版本之间可能会有很大变化,确保某个软件版本在特定硬件上运行至关重要。为此,软件需要能够直接从PCB读取硬件版本号,以确保它在兼容的硬件上运行。

  对硬件进行版本控制的常用方法是使用一些备用GPIO线作为专用硬件版本号。每条GPIO线可以拉到VCC(代表1)或接地(代表0)。如果使用二进制表示,两个GPIO将提供最多四个版本,而三个GPIO将提供八个版本,如下所示:

  

  软件启动时,可以初始化GPIO线,然后读取PCB版本号,判断软件是否支持硬件。如果一切正常,则该软件将运行该应用程序。

  不过,使用GPIO线有一些问题。首先,微控制器上必须有空闲的GPIO线。如果设计密集或使用低引脚数微控制器,则可能没有两个或三个GPIO线可用于版本控制。其次,我们需要确保用于将GPIO线拉高或拉低的电阻器的尺寸大致相同,这样我们最终不会产生大的泄漏电流。第三,在制造板子时,嵌入式开发人员需要验证版本号是否已正确更新,以免由于制造错误而导致板子版本号错误。

  技巧#2——使用模数转换器到硬代码版本

  并非所有系统都有两个或三个可用的空闲GPIO线。对PCB进行版本控制的另一种解决方案是利用免费的模数(ADC)通道。ADC通道的电压范围通常为0至3.3伏(尽管有些可能为0–1.7或0–5.0),我们可以将其分解为不同的电压范围以表示不同的电路板版本。例如,一个标准的12位ADC通道的范围为0–,我们可以将其分成八个不同的版本,如下所示:

  

  目标是创建一个电阻梯形电路,其中梯形的中点连接到ADC引脚。应选择电阻器的值,使其落在我们范围的中点范围内。例如,版本一应选择产生约0.电压的电阻器,对应于约个计数。当电路板的第2版准备就绪时,梯形电阻器会更新以产生约0.的电压,对应于约个计数。当系统启动时,软件会读取模拟电压,然后确定PCB的版本以及软件是否与该硬件版本兼容。

  现在在使用ADC版本控制方案时有几点需要考虑。首先,你可以通过简单地调整范围轻松地将这个系统扩展到八个以上的版本。这比必须添加额外的GPIO引脚才能达到更高的版本号要好。第二,就像GPIO技术一样,需要适当选择电阻值,以最大限度地降低漏电流。最小化此电流的一种方法是让GPIO线为VCC供电,以便在不需要时可以关闭版本电路。虽然这确实需要使用一个额外的引脚,但对于低功耗系统可以节省宝贵的泄漏电流。第三,你需要选择精度高的元件,1%或更好,并且在产品的生命周期内不会出现太大的降额。这将防止第1版硬件在5年或10年内突然变成第2版或第3版。

  结论

  正如我们在文章中看到的那样,嵌入式开发开发人员可以通过几种不同的方式对硬件进行版本控制,以便软件可以验证它们是否在已知的硬件版本上运行,这可以防止硬件/软件不匹配,并确保系统本身可以验证其配置是否正确。

转载请注明:http://www.0431gb208.com/sjszyzl/8327.html