抑制嵌入式系统设计的复杂性
Raspberry Pi系列不久前通过全新的Raspberry Pi Zero W1(2017年2月)扩充了产品线,这是一台支持无线连接的个人计算机,售价仅10美元。对于业余爱好者、制造商、工匠和黑客而言,它的意义非同寻常。是的,我们之中很少有人真正尝试做好我们的工作,即设计真正的(电子)产品!当我最近观看Eben Upton的视频公告时,我忍不住想起早年的经历。那是80年代中期,我买不起BBC电脑,也负担不起奢侈的Amiga。但我花光所有的钱购买了Sinclair ZX Spectrum。因此,Eben努力实现“让所有人都买得起”的目标确实让我产生了共鸣。
一台功能强大的个人计算机塞进一块小巧的印刷电路板(PCB)上,确切地说是6 x 3 cm的印刷电路板,达到这种小尺寸的新记录着实让我惊叹。经过进一步思考,我经常想弄清楚是否正是Spectrum的简约及其诸多限制促使我深入研究计算机并最终沉醉于这一奇妙领域——软件和硬件之间的边界,我们今天称之为嵌入式。
小型片上系统
Raspberry Pi Zero设计基于片上系统(SoC)(BCM2835),其中包括一个1 GHz ARM?内核和一个图形处理单元(GPU)、一个视频接口、多个串行接口(USB、UART、SPI和I2C)以及一个外部存储器接口,用于管理运行Linux?操作系统(OS)所需的大容量RAM(512 MB DDR2)和大容量存储卡(SD卡)。对于单芯片器件来说,这些都是令人印象深刻的功能,特别是与我年轻时看到的早期个人计算机相比。我们可能会争辩,与目前在各种嵌入式控制应用中常用的最新简单型单片机相比,这并非不成比例。虽然时钟速度和处理能力都要低得多(从10 MHz到100 MHz不等),但今天所有小型单片机本身都是真正的小型片上系统奇迹。正如您对单片机期望的那样,所有RAM和闪存都位于芯片上。存在串行接口(USB、UART、SPI和I2C),但也集成了所有电源调节和电压监控电路。片上通常有五个或更多不同的(精密)振荡器,以便获得更大的灵活性并控制功耗。此外,还有几个具有大输入/输出多路开关的模拟外设(ADC、DAC、运算放大器和模拟比较器......),取代了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(如果存在/需要)一类的通用服务/功能。
Raspberry Pi系列不久前通过全新的Raspberry Pi Zero W1(2017年2月)扩充了产品线,这是一台支持无线连接的个人计算机,售价仅10美元。对于业余爱好者、制造商、工匠和黑客而言,它的意义非同寻常。是的,我们之中很少有人真正尝试做好我们的工作,即设计真正的(电子)产品!当我最近观看Eben Upton的视频公告时,我忍不住想起早年的经历。那是80年代中期,我买不起BBC电脑,也负担不起奢侈的Amiga。但我花光所有的钱购买了Sinclair ZX Spectrum。因此,Eben努力实现“让所有人都买得起”的目标确实让我产生了共鸣。
一台功能强大的个人计算机塞进一块小巧的印刷电路板(PCB)上,确切地说是6 x 3 cm的印刷电路板,达到这种小尺寸的新记录着实让我惊叹。经过进一步思考,我经常想弄清楚是否正是Spectrum的简约及其诸多限制促使我深入研究计算机并最终沉醉于这一奇妙领域——软件和硬件之间的边界,我们今天称之为嵌入式。
小型片上系统
Raspberry Pi Zero设计基于片上系统(SoC)(BCM2835),其中包括一个1 GHz ARM?内核和一个图形处理单元(GPU)、一个视频接口、多个串行接口(USB、UART、SPI和I2C)以及一个外部存储器接口,用于管理运行Linux?操作系统(OS)所需的大容量RAM(512 MB DDR2)和大容量存储卡(SD卡)。对于单芯片器件来说,这些都是令人印象深刻的功能,特别是与我年轻时看到的早期个人计算机相比。我们可能会争辩,与目前在各种嵌入式控制应用中常用的最新简单型单片机相比,这并非不成比例。虽然时钟速度和处理能力都要低得多(从10 MHz到100 MHz不等),但今天所有小型单片机本身都是真正的小型片上系统奇迹。正如您对单片机期望的那样,所有RAM和闪存都位于芯片上。存在串行接口(USB、UART、SPI和I2C),但也集成了所有电源调节和电压监控电路。片上通常有五个或更多不同的(精密)振荡器,以便获得更大的灵活性并控制功耗。此外,还有几个具有大输入/输出多路开关的模拟外设(ADC、DAC、运算放大器和模拟比较器......),取代了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(如果存在/需要)一类的通用服务/功能。
曾云造型用心培养每一位未来的化妆师!
~
让平凡的你,拥有精彩的人生![鲜花]
【生活班】时间短 | 业余爱好 | 提升自我形象 | 爱美人士
【基础班】无需任何化妆基础 | 没有完整知识体系 | 培养专业化妆师
【研修班】知识体系完整 | 妆发基础薄弱 | 注重细节构造 | 冲破技术瓶颈
#曾云化妆造型工作室##杭州学化妆# https://t.cn/Rx1EZyS
~
让平凡的你,拥有精彩的人生![鲜花]
【生活班】时间短 | 业余爱好 | 提升自我形象 | 爱美人士
【基础班】无需任何化妆基础 | 没有完整知识体系 | 培养专业化妆师
【研修班】知识体系完整 | 妆发基础薄弱 | 注重细节构造 | 冲破技术瓶颈
#曾云化妆造型工作室##杭州学化妆# https://t.cn/Rx1EZyS
喜庆之日[喜]
恭喜我的柳大晋升总裁
一位智慧与美貌并存的知性女性
利用三年的业余时间登上了顶峰
利用三年的心血谱写自己的传奇
三年时间说长不长,说短不短
也就上学的三年,打工的三年
有的人充实度过,有的人安逸而过
选择的方式不同,结果截然不同。
与优秀的人在一起,自己也会变得更加优秀!
我选择+我坚持+我努力=希望遇见更好的自己!自身快速的提高,在本职和业余生活能够更好的发挥自己的才能!
祝贺柳大,祝贺我自己,一路向北! https://t.cn/R0HeHE1
恭喜我的柳大晋升总裁
一位智慧与美貌并存的知性女性
利用三年的业余时间登上了顶峰
利用三年的心血谱写自己的传奇
三年时间说长不长,说短不短
也就上学的三年,打工的三年
有的人充实度过,有的人安逸而过
选择的方式不同,结果截然不同。
与优秀的人在一起,自己也会变得更加优秀!
我选择+我坚持+我努力=希望遇见更好的自己!自身快速的提高,在本职和业余生活能够更好的发挥自己的才能!
祝贺柳大,祝贺我自己,一路向北! https://t.cn/R0HeHE1
✋热门推荐