2020年 02月 02日 星期日
您的位置: 威廉希尔主页 > 单片机技术 >

嵌入式系统设计的复杂性如何来

来源:未知     作者:威廉希尔     发布时间:2020-02-01 08:42         

  系列不久前通过全新的Raspberry Pi Zero W1(2017年2月)扩充了产品线,这是一台支持无线连接的个人商、工匠和黑客而言,它的意义非同寻常。是的,我们之中很少有人真正尝试做好我们的工作,即设计真正的(电子)产品!当我最近观看Eben Upton的视频公告时,我忍不住想起早年的经历。那是80年代中期,我买不起BBC电脑,也负担不起奢侈的Ar ZX Spectrum。因此,Eben努力实现“让所有人都买得起”的目标确实让我产生了共鸣。

  一台功能强大的个人计算机塞进一块小巧的印刷电板PCB)上,确切地说是6 x 3 cm的印刷电板,达到这种小尺寸的新记录着实让我惊叹。经过进一步思考,我经常想弄清楚是否正是Spectrum的简约及其诸多促使我深入研究计算机并最终沉醉于这一奇妙领域——软件和硬件之间的边界,我们今天称之为嵌入式。

  Raspberry Pi Zero设计基于片上系统(SoC)(BCM2835),其中包括一个1 GHzARM?内核和一个图形处理单元(GPU)、一个视频接口、多个串行接口(USBUART、SPI和I2C)以及一个外部存储器接口,用于管理运行Linux?操作系统(OS)所需的大容量RAM(512 MB DDR2)和大容量存储卡(SD卡)。对于单芯片器件来说,这些都是令人印象深刻的功能,特别是与我年轻时看到的早期个人计算机相比。我们可能会,与目前在各种嵌入式控制应用中常用的最新简单型单片机相比,这并非不成比例。虽然时钟速度和处理能力都要低得多(从10 MHz到100 MHz不等),但今天所有小型单片机本身都是真正的小型片上系统奇迹。正如您对单片机期望的那样,所有RAM和闪存都位于芯片上。存在串行接口(USB、UART、SPI和I2C),但也集成了所有电源调节和电压。片上通常有五个或更多不同的(精密)振荡器,以便获得更大的灵活性并控制功耗。此外,还有几个具有大输入/输出多开关的模拟外设(ADCDAC运算放大器和模拟比较器。..。..),取代了Raspberry Pi幻想视频中的功能,一直以来反映出偏爱嵌入式超过计算的设计选择中的显著不同。

  事实上,当Raspberry Pi用户需要与现实世界连接时,对于使常用LED闪烁等最平和I/O应用以外的应用而言,由更小的单片机(实际上通常为8位单片机)通过“帽子”(小型子板)提供必要的I/O接口和所需电压转换并不意外。

  我不想在两个截然不同的世界之间将这种不公平的对比一直拖下去,但我必须指出,在支持开发人员方面,两者有一个共同关注的问题:“控制复杂性”,最终“吸引新用户”。毋庸置疑,它们的解决方案类似,但终究有所不同。

  这两个平台都是由提供免费软件工具开始,包括集成开发(IDE)、编译器、链接器、模拟器、调试器(在专业版中提供,只需少量费用)、或多或少的式中间件和(RT-)OS以及一小部分硬件(板)选项。

  两个阵营(嵌入式计算和通用计算)之间的差异比您想象的要小。两者最终都依赖于类似的(如果不相同)工具链,这些工具链大部分都基于GNU。在中间件级别,一旦您正确抽取下级(下至金属)驱动程序层,开源选项会再次变得极其相似。操作系统级别的差异最大,因为许多单片机将很愿意运行RTOS,但无法承受完整Linux内核的负担。这反映了真正的行业差异。实时是操作系统“工作说明”的一部分。

  查看文档时会发现,两者的复杂度在膨胀。我最喜欢的一个例子是基于流行8位PIC?架构的小巧而简单的单片机。PIC16F1619经常用于控制小家电,为此,它将小容量闪存(16 KB)封装在20引脚微型封装中,具有十几个数字外设接口和几乎同样多的模拟支持模块。其数据手册长达650页,之后还增加了特性数据、表和图2。

  此小型SoC上提供的一些外设(例如信号)需要长达50页的篇幅才能适当记录。这几乎是描述实际PIC内核及其整个指令集所需页数的两倍。

  在Raspberry Pi方面,如果只是按比例放大(10倍),则问题类似,因为有多个数据手册需要考虑,每个数据手册只上系统硬件组件的一部分(SoC外设、GPU和内核),内核单独占用超过750页的篇幅。

  很明显,没有人能够阅读或跟上如此庞大的信息量。特别是嵌入式开发人员,他们总是承担着极大的压力,需要在更短的时间内完成应用,以实现最快的产品上市速度。常见的解决方案是使用分层架构对应用进行分区,并使用标准化外设库来抽取硬件详细信息。这些层可以整齐地形成协议栈,其中“应用”位于硬件抽象层(HAL)的顶部。实际上,可以进一步细化此图片来完全识别HAL,HAL上方的中间件层将负责实现诸如网络、文件系统和图形UI(如果存在/需要)一类的通用服务/功能。

  注:通常通过从HAL分离驱动程序层和电板支持层来进一步细化协议栈,但是在以下考虑中,我们不需要详细到这种程度。

  此软件架构直接于“计算”领域,可以很好地对大多数通用案例进行建模。遗憾的是,由于它适用于嵌入式应用,因此有两个基本缺点:

  · 只要重点放在顶层中间件层提供的标准功能上,分层架构就可以简化文档篇幅过长的问题。在应用范围的底端,当中间件层(如果存在)非常薄时,结果大多比较模糊。开发人员必须依赖以大型应用编程接口(API)形式存在的HAL文档,这份材料的篇幅同样较长(可达数千页),但始终未真正研究器件的任何细节。出现问题时,他/她将身陷窘境或深入研究陌生领域和大量代码。

  · HAL层为支持标准中间件服务提供了巨大帮助,但由于其性质极其严格,因此最终会清除特定器件的任何独特差异化功能。否则,这些独特功能可以为特定应用提供技术优势,并且可能成为选择特定器件型号的原因。

  · 在应用范围的顶端,中间件层非常厚,例如Raspberry Pi,仅Linux OS内核就添加了数百万行代码来应对问题3。虽然可以说这是开源代码,但对于希望自己永远不必深入了解到如此程度的普通开发人员而言,它几乎无法带来安慰。

  最终,Raspberry Pi开发人员将能够依靠“计算”性能带来的巨大收益和小电板提供的大量资源。标准Linux操作系统的便利性远不止弥补API的复杂性和广泛性。

  我最关心的是全新小型SoC的开发人员:现代单片机用户。对于他们而言,使用标准化HAL的好处减少了,因为性能存在损失,而且堆叠软件架构使独特的功能变得单一。

  用于快速开发的新一代软件工具代表了摆脱这一难题的巧妙方式。这是最近出现在嵌入式控制市场中的一种新型代码生成器或配置器。尽管最初时持有明显(但通常合理)的怀疑态度,但事明,这些工具不仅有效,对于任何严格的嵌入式开发人员也必不可少。

  - 完全集成在常见的IDE中,这有助于其了解项目上下文:型号(器件编号)选择和中间件库。

  - 支持独特和复杂的外设。例如,先前示例中提到的信号测量定时器(SMT)可以在单个页面/对话框中直观地呈现给用户,其中仅包含少数滚动列表、复选框和一些直观选项。有关来自Microchip的PIC单片机的旗舰快速开发工具MPLAB?代码配置器(MCC)4的屏幕截图,请参见图2。

  图2——MPLAB代码配置器:信号测量定时器选项- 利用模板引擎,将配置选项转换为一小部分完全自定义的函数。这意味着只需通过少量待学习的函数以及一致且直观的命名约定便可生成最小API。函数定制大多数硬件抽象是在编译时(实际上在编译前)静态执行的。这有助于减少传递到每个函数所需的参数列表,从而提高性能和代码密度。有关MPLAB代码配置器的典型简约用例,请参见列表1。

  - 输出由非常短的(C语言)源文件组成,这些源文件可由用户全面检查(可将其作为一次学习机会),但也会经过专家进一步手动优化。现代化的代码生成器将其代码与用户代码灵活地混合,既可保持完整性,也允许充分利用宝贵的高级硬件功能。

  列表1——由MCC生成、用于配置SMT外设的源文件(smt1.c)部分从根本上说,代码配置器/生成器可将“计算机”执行的操作做到最好。构建HAL是硬件外设配置重复且容易出错的阶段,通常会导致在数据手册中花费大量时间进行乏味的搜索,现在,这一阶段现已然消失或显著缩短,只留下一些更加趣味横生、思维的探索与创造时间。

  事实上,用户可以从同一个用户界面了解特定的硬件外设功能,从根本上消除(或至少极大减少)对数据手册的需求。

  处理完(外设)配置后,可将注意力立即集中到应用上,这是设计中更智能的部分(在应用层上),这一部分位于“主循环”之内,而不是之前。

  最后要说的是,凭借代码生成器,即使在嵌入式领域中,经典的“Hello World”示例(总是转换为使LED闪烁)也会成为令人耳目一新的两行代码!

  列表2——为创建第一个嵌入式“Hello World”而需要输入的短短两行代码您将能够在我最近出版的书中找到(20个)更多关于同样有效利用快速开发工具的实例:“In 10 Lines of Code”5。

  在小型单片机发展成为小型SoC或者个人计算机缩小为Raspberry Pi的过程中,不仅会浪费时间和造成认知负担,还会在我们操作无法完全理解/掌握的系统时引入漏洞。

  复杂性不是技术进步的必然结果。现代化的代码配置器/生成器可以通过扩展我们的软件开发流程、实现自动化并最终恢复我们对快速增长的可用功能/选项数量的掌握来帮助我们。

  在使用TURCK的电容式传感器之前,客户也使用过其它品牌的电容式传感器,但是由于其内部电缺乏有效地....

  RFID和RTLS技术已经在许多行业的资产追踪领域得到了应用,如对一些基础设施的管理,研究实验室,制....

  计算机用于嵌入式控制设备领域的历史和计算机本身的历史一样久远。最初的用于控制机电式电话交换器的通讯设....

  EAF是Embedded Application Framework 的缩写,即嵌入式应用框架。

  ERP系统是企业资源计划的简称,是指建立在信息技术基础上,集信息技术与先进管理思想于一身,以系统化的....

  在PCB线板进行SMT贴片加工焊膏印刷的阶段,有很多的生产环节会应为工程工艺的管控措施没有落实到位....

  在贴片加工厂中,我们经常会看到很多的安全标识,比如说静电防护、用电安全、防止夹手,等等。对于一些其他....

  2019年12月19-21日,一年一度的科技大展ELEXCON深圳国际电子展将在深圳会展中心拉开帷幕....

  由于PCB的变形、定位不准、支撑不到位、设计等原因,印刷时模板与PCB焊盘之间很难形成理想的密封状态....

  目前,模板的制造方法主要有激光切割、化学蚀刻和电铸。目前主流的模板制作工艺为激光切割工艺,这主要是质....

  在印刷时,焊膏经常会沿着刮刀轻微地蠕升,导致与刮刀的接触面积比与模板的接触面积稍微大一些。当向右印刷....

  Quad和Octal SPI接口由JEDEC的扩展SPI(xSPI)标准JESD251定义,该标准提....

  电源是所有嵌入式系统的重要方面。没有电力,任何事情都无法进行。根据应用程序的类型,可以使用几种电源选....

  新型FlexChannel 输入通道可以使用范围最广泛的探头,满足测量多个不同信号的需求。

  安勤科技,为Intel物联网解决方案联盟(Intel Internet of Things Solu....

  计算机作为20世纪人类社会最伟大的发明之一,近期也逐步迈入后PC时代。后PC时代的到来也标志着嵌入式....

  工业以太网是指技术上与商用以太网兼容,但在产品设计上,在实时性、可靠性、适应性等方面满足工业现场....

  CS领导者的数字化转型意味着他们必须跨渠道,问题,流程等构建客户的单一视图。此外,当消费者跨渠道时,....

  尽管关于区块链如何适应现代监管仍存在许多悬而未决的问题,但显然,区块链为增强企业的数据治理和数据....

  系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ....

  芯片级设计技术的核心是编译/综合、库/IP、测试/验证。编译/综合技术使设计者用抽象的方式描述所需的....

  作者:DCG技术解决方案公司首席执行官BrentWhitfield 当许多人想到机器人时,他们会想象....

  对于提高SMT贴片打样的速度自然不仅仅体现在刚才提到的这些加工前的准备,在SMT贴片加工的时候作为技....

  SMT加工插件元器件的波峰焊初始阶段在整个波峰焊接的质量管控环节里最重要的部分。在波峰焊接工艺中,和....

  SMT加工插件元器件的波峰焊初始阶段在整个波峰焊接的质量管控环节里最重要的部分,初始阶段的准备细节做....

  过去几十年,中国市场已经累计消耗近20亿芯公里的光纤光缆,伴随着光纤通信技术的演进,我国光纤光缆行业....

  随着云计算、大数据、5G等新技术的融合加快,物联网也逐步进入集成创新、跨界融合、规模发展的新阶段。包....

  未来,中国机器人的应用领域会越来越多。以新兴的微纳米机器人为例,中国科学院沈阳自动化研究所研究员刘连....

  上甑,白酒酿造的一道核心工序,讲究“轻松薄准匀平”。在这道工序里面,非常重要的是“见汽压醅”,糟培要....

  物体检测是计算机视觉与模式识别领域的核心问题,一直以来受到学术界与工业界的广泛关注。当前物体检测最大....

  嵌入式系统是用来控制或者机器、装置、工厂等大规模设备的系统。嵌入式系统通常进行大量生产,所以单个....

  在近期更新的IHS《5G经济》报告中,研究人员表示,到2035年,5G将在制造业创造近4.7万亿美元....

  那是一个晴朗的午后,我坐上了开往深圳的火车,去面对我人生中的第一份正式工作。刚毕业的我和许多年轻人一样,心中充...

  嵌入式系统与通用计算机系统有着完全不同的技术要求和技术发展方向。通用计算机系统的技术要求是高速、海量....

  在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的....

  为了选择工业机器人,亚萨合莱邀请三家不同的机械臂供应商现场进行同样的操作活动,然后对其进行评估。UR....

  枣子是地中海地区重要的膳食组成部分。当地枣子品种繁多,其中一种椰枣(Madjoul),个头大,肉质多....

  随着国家信息化的推进,电子技术也得到了更广泛的发挥,嵌入式作为一种传统的电子技术,未来会因为物联网的....

  企业需了解不同的物联网数据源及其对存储的影响,以及自动化如何从物联网数据中获得更多的价值。

  赛加得传感器可在自动化过程中实现高效的过程控制和零件检测、精确的零件测量以及区域的安全防护。

  在当今竞争激烈的形势下,使富含嵌入式软件的复杂电子设备更快面市,但是同时确保其更便宜更可靠,是一种相....

  设计低能耗系统时,我们需要关注一些非传统因素,这些因素涉及范围从硅芯片生产工艺技术,到基于单片机的嵌入式平台上...

  吾人如仔细洞察嵌入式系统应用在现实生活中之型态,应该发现嵌入式系统已是人类生活不可或缺的一部分!例如,人们无法...

  不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语 言具备较强的硬件直接操作能力。...

  当前恶意汽车电子器件的事例不胜枚举,从简单的里程表,到通过移动无 线通信接口针对驾驶相关的功能进行都...

      威廉希尔