June 08, 2025

Embedded system knowledge system explanation

Learning embedded systems with a microcontroller (MCU) at its core involves a comprehensive understanding of both hardware and software, along with knowledge of the specific industry or application field. These systems can be applied across a broad spectrum, from the intelligent enhancement of electronic systems (like industrial controls, smart home appliances, automotive electronics, and measurement systems) to extending computer applications (such as MP3 players, mobile phones, and networking solutions). To design an MCU-based embedded system application product effectively, you’ll need a grasp of hardware, software, and industry-specific expertise. On the hardware side, this includes setting up the MCU's minimum system, configuring input/output peripherals, and creating a user-friendly interface. Software-wise, you'll be working with firmware and might also involve PC software. Industry knowledge comes from collaboration, communication, and continuous summarization. In short, mastering embedded systems with an MCU at the heart requires a solid foundation in both hardware and software, along with hands-on practice. Here are some fundamental areas to focus on: 1. **Hardware Minimum System**: Power supply, crystal oscillator, reset circuitry, and debugging interfaces. 2. **General Purpose Input/Output (GPIO)**: Handling digital inputs and outputs, including various binary value detections and controls. 3. **Analog-to-Digital Conversion (ADC)**: Acquiring and processing signals from sensors like infrared, temperature, light, ultrasonic, and more. 4. **Digital-to-Analog Conversion (DAC)**: Using analog signals for analog devices. 5. **Communication Protocols**: Serial communication interfaces like SCI, SPI, I²C, CAN, USB, Ethernet, and ZigBee. 6. **Display Technologies**: Working with LEDs, LCDs, and other display technologies. 7. **Control Systems**: Managing various devices using control techniques such as PWM. 8. **Data Processing**: Handling and interpreting graphical, image, audio, and video data. 9. **Specific Applications**: Tailoring the system for unique tasks. All these aspects must adhere to the principles and methodologies of embedded software engineering. Thus, embedded software engineering is a crucial component of the embedded system knowledge framework, though it’s typically integrated into the development process of specific projects. This knowledge system encompasses computer languages, operating systems, development environments, and more—all tools to achieve the desired goals. However, beginners sometimes confuse tool usage with the actual learning objectives. For instance, some individuals might spend considerable time transplanting embedded operating systems without ever developing practical embedded products. This can lead to frustration and abandonment of the field. It’s essential to avoid falling into such misconceptions and instead focus on the broader learning objectives. ### Common Learning Misconceptions in Embedded Systems Embedded system learning approaches can vary depending on factors like learning background, environment, objectives, and prior knowledge. Despite this variability, it’s important to identify which knowledge is foundational, which should be learned first, and which requires practical experience. Additionally, some knowledge is chip-independent, while other aspects are tied to specific chips or development environments. The diversity of microprocessors and microcontrollers, combined with misleading marketing tactics from certain companies, can cause confusion among beginners. This confusion is compounded by China’s relatively underdeveloped microcontroller manufacturing technology, leading to varied interpretations of microcontrollers. Below are some common pitfalls to avoid: #### 2.1 Confusion About Operating Systems If learning embedded systems isn’t aimed at developing application products, there’s no clear objective, making the approach irrelevant. Many beginners lack clarity on where to begin and what their learning goals are. Instead of starting with a specific project, they might jump into reading books, attending random trainings, or searching online. Those with computer experience often start with an embedded operating system, which can be akin to focusing on just one aspect of a complex animal. This doesn’t provide a holistic understanding of embedded product development. For beginners, it’s advisable to first build a strong foundation in embedded hardware and software before diving into real-time operating systems (RTOS). Remember, an RTOS is a tool to enhance certain types of embedded products, not the ultimate goal. Many embedded products don’t require an RTOS. Starting with RTOS right away goes against the principle of progressing from basic to advanced knowledge. Due to the variety of RTOS options, the choice depends largely on the work environment. Beginners should focus on understanding the basic principles of RTOS and its associated software development methods, rather than attempting to design one themselves. Spending excessive time on RTOS design or porting isn’t ideal unless it’s directly relevant to your project needs. #### 2.2混淆硬件和软件 嵌入式系统的核心技术必须通过特定的MCU体现并实践。然而,选择任何类型的MCU时,芯片相关的知识仅占整个知识体系的约20%,其余80%是通用的软硬件及相关知识。这80%的知识需要通过具体实践来获取,因此学习嵌入式技术通常会选择某一系列的MCU。 嵌入式系统的入门可以从软件或硬件开始,如何选择切入点以及如何平衡软硬件之间的关系?对于这种困惑,建议如下:要成为真正的嵌入式系统设计师,在初级阶段必须打好嵌入式系统的软硬件基础。美国学者John Catsoulis在其著作《Designing Embedded Hardware》中总结了这一点,他从事嵌入式系统设计超过20年:嵌入式系统与硬件密切相关,是软硬件的结合体。没有对硬件的理解,就无法编写嵌入式软件;同样,没有对软件的理解,也无法设计嵌入式硬件。 #### 2.3片面理解嵌入式系统 嵌入式系统产品种类繁多,应用领域广泛。在第一部分中,嵌入式系统的应用范围大致分为两类:电子系统的智能化和计算机应用的扩展。初学者可能从这两个角度理解嵌入式系统,这可能导致一些问题。因此,从智能电子系统角度理解嵌入式系统的人可能会忽视编程结构、编程规范、软件工程需求和操作系统的积累。而从计算机应用角度理解嵌入式系统的人可能会将通用计算机学习过程中的概念和方法套用到嵌入式系统实践中,忽略了两者之间的差异。 实际上,在嵌入式系统的初期学习和实践中,我们应该充分了解嵌入式系统的特性,并根据现有的知识结构制定适合自己的学习计划。目标应该是打牢嵌入式系统的软硬件基础,并通过实践逐步建立成为优秀嵌入式系统设计师的基本知识框架。在学习过程中,可以以具体的应用系统为实践载体,但不应局限于某个具体系统,应有一定的抽象和归纳。例如,初学者在开发实际控制系统时不使用实时操作系统,但这并不意味着不需要学习实时操作系统。初学者可以从一个带有实时操作系统的示例开始学习,但不要认为所有嵌入式系统都需要实时操作系统,甚至在不必要的简单系统中也加入实时操作系统。因此,片面理解嵌入式系统可能导致学习困惑。应该锻炼分析实际问题和根据项目需求解决问题的能力,这是一个长期的学习和实践过程。短期内不可能通过短期培训完成整体知识体系的构建,应注重自身实践,全面理解嵌入式系统的知识体系。 #### 2.4入门芯片选择的困惑 大多数嵌入式系统初学者需要选择一款微控制器(MCU)作为入门学习的起点。面对众多制造商生产的MCU系列,他们往往不知所措。 首先是位数的选择。目前主要有8位、16位和32位MCU。不同位数的MCU应用领域差异很大,与通用微型计算机不同。例如,做一个遥控器,不需要使用32位MCU,否则MCU芯片的价格已经超过了遥控器的成本。对于嵌入式系统的新手来说,可以根据自己的知识基础选择进入芯片的位数。建议大多数初学者选择8位MCU作为快速启动芯片,学习一些汇编语言和底层硬件知识,然后选择16位或32位芯片进行学习实践。 另一个关于芯片选择的误解是存在“主流芯片”,嵌入式系统也可以形成芯片垄断。这是一种完全的误解,是使用通用计算机系统思维的结果,忽视了嵌入式系统应用的多样性。关于学习芯片的选择还有一种误解,即误以为选择高频操作的芯片作为入门学习更为先进。事实上,高频率操作可能会给初学者带来困难。 实际的嵌入式系统设计并不是追求芯片的位数、运行频率、操作系统等因素,而是追求稳定性、可靠性、可维护性、可升级性、功耗、价格等指标。初学者选择入门芯片的原则是一个通用的嵌入式系统知识体系的基础:MCU作为蓝图。基本原则是:入门时间短,硬件成本低,知识元素丰富,学习难度低。 ### 基础阶段学习建议 基于上述讨论,以下是急于学习嵌入式系统的初学者的一些基础阶段学习建议: 1. **嵌入式系统软硬件紧密相关,必须打好硬件和软件的基础**。事实上,只要找到正确的方法并努力,任何理工科学生,甚至是非技术背景的学生,都可以学习嵌入式系统。可以看看朱有鹏的视频。 2. **选择一款芯片和硬件评估板(第一个芯片尽量简单,比如8位MCU),选择一本好书(最好是标准示例),找一位好老师(最好是有经验且热情的)。硬件评估板的价格必须低于1000元,不要太贵,最好有自己的DIY空间。花太多钱买硬件来学习嵌入式系统是不切实际的,因为这是一个非常实用的学科。一本好书可以让人们少走弯路,不被误导。在老师的指导下,学习过程会加速(人工智能学科中有一个术语叫做无师自通的学习模式和导师指导的学习模式,无师自通的学习模式比导师指导的学习模式复杂得多)。 3. 很多人害怕硬件。其实嵌入式系统硬件比电路学简单得多。只要理解:MCU硬件最小系统、I/O端口、串行通信、键盘、LED、LCD、SPI、I²C、PWM、A/D(包括一些传感器)、D/A等,并进行实践,然后通过做一个小的实用系统,就可以奠定底层硬件基础。编写个别硬件模块驱动程序是嵌入式系统的一个必要基础。在学习嵌入式系统的早期阶段,这个过程是必不可少的。 4. 至于嵌入式实时操作系统(RTOS),你不能一开始就学习,这会走很多弯路,会让你害怕嵌入式系统。当你建立了软件和硬件基础后,再学习RTOS会很容易理解。事实上,许多嵌入式应用不需要操作系统。可以根据实际项目需求学习特定的RTOS。不要被某些嵌入式实时操作系统培训课程的宣传误导,忽略实际嵌入式系统软硬件的基础知识。 5. 避免从“电子”或“计算机软件”的单一视角理解嵌入式系统。如前所述,嵌入式系统是软硬件的结合体。因此,必须从MCU的最小系统开始逐步理解硬件原理和底层硬件驱动程序编程方法。通过标准化示例理解软件工程的封装和可重用性概念。通过标准编程积累底层组件,即一个模块;但它们应该更好地封装并重用。 6. 注重实验和实践。这里提到的实验主要指通过重复验证他人工作的结果,目的是学习基础知识,这个过程必须经历。实践是指自己设计的具有特定“产品”目标的任务。如果你花费大约500元制作一个具有某些功能的小产品,并能稳定运行超过一年,可以说你接近入门了。 7. 关于入门芯片的选择。不要选择过于复杂的微控制器作为入门芯片,否则你会无法突破学习过程。不要一次学习几种芯片。可以从一种芯片开始学习,有了实践经验后,根据实际需求选择芯片开发实际产品。小心不要混淆微处理器(MPU)和微控制器(MCU)的概念,后者只是微控制器的核心。 8. 关于嵌入式操作系统的选择。等待一定的实践经验后,选择一个简单易懂的嵌入式操作系统。不要一开始就学习多种操作系统,理解基本原理,只有在实际项目中有真实需求时才去学习。人总是在不断学习。 9. 关于汇编语言和C语言的选择。鉴于MCU对C语言编译的支持,对于汇编语言只需理解一些必要的语句,直接使用C语言编程即可。但是,第一个程序必须理解芯片初始化过程、中断机制、程序存储等内容,这些与PC程序不同。此外,为了测试需求,最好掌握一种PC编程语言。 10. 明确你的学习目标,注意学习方法。有必要明确学习目的是打基础还是短期培训以满足工作需求。在学习方法上,应根据研究目的选择适当的学习途径,注意理论学习与实践、通用知识与芯片相关知识、硬件知识与软件知识之间的平衡。理解硬件组件和软件工程基本原理。基本概念如软件组件等。 当然,以上只是基础阶段的学习建议。要成为一名优秀的嵌入式系统设计师,还需要在实际项目中锻炼,并继续学习和积累经验。

Laptop Holder Portable

Portable Monitor Holder For Laptop,Adjustable Portable Laptop Holder,Adjustable Ergonomic Portable Aluminum Laptop Holder,Foldable Portable Desktop Laptop Holder,etc.

Shenzhen Chengrong Technology Co.ltd is a high-quality enterprise specializing in metal stamping and CNC production for 12 years. The company mainly aims at the R&D, production and sales of Notebook Laptop Stands and Mobile Phone Stands. From the mold design and processing to machining and product surface oxidation, spraying treatment etc ,integration can fully meet the various processing needs of customers. Have a complete and scientific quality management system, strength and product quality are recognized and trusted by the industry, to meet changing economic and social needs .

Laptop Stand Gaming

Portable Monitor Holder For Laptop,Adjustable Portable Laptop Holder,Adjustable Ergonomic Portable Aluminum Laptop Holder,Foldable Portable Desktop Laptop Holder

Shenzhen ChengRong Technology Co.,Ltd. , https://www.laptopstandsupplier.com