DEV Community

Nguyễn Viết Phong
Nguyễn Viết Phong

Posted on

ABC

Embedded Systems Engineering Roadmap

Lộ trình này được thiết kế để hỗ trợ những người mới bắt đầu mong muốn xây dựng sự nghiệp với tư cách là Kỹ sư / Nhà phát triển nhúng. Để cung cấp hướng dẫn toàn diện, các chủ đề đã được lựa chọn cẩn thận dựa trên yêu cầu công việc hiện tại và được sắp xếp theo kinh nghiệm cá nhân của tôi.

Trở thành một kỹ sư nhúng đòi hỏi sự hiểu biết rộng rãi về cả phần mềm và phần cứng. Nếu bạn đang bắt đầu cuộc hành trình này, bạn phải có động lực và đam mê cao để theo đuổi con đường này. Lĩnh vực hệ thống nhúng đòi hỏi sự hiểu biết vững chắc về chức năng phần cứng. Tuy nhiên, như câu nói nổi tiếng, "Phần cứng rất khó!". Vì vậy, sự kiên nhẫn và niềm đam mê là những phẩm chất cần thiết sẽ giúp bạn vượt qua những thử thách khác nhau gặp phải trong hành trình này.

Hệ thống nhúng là gì?

ISO/IEC/IEEE 24765 Standard:

hệ thống máy tínhmột phần của hệ thống lớn hơnthực hiện một số yêu cầu của hệ thống đó. Ví dụ, một hệ thống máy tính được sử dụng trong máy bay hoặc hệ thống vận chuyển nhanh.

Phần cứng và phần mềm của hệ thống nhúng thường được giảm thiểutối ưu hóa cho các chức năng cụ thể. Hệ thống nhúng bao gồm ít nhất một bộ vi điều khiển, bộ vi xử lý hoặc bộ xử lý tín hiệu số. Hệ thống nhúng được thiết kế để tối ưu hóa độ tin cậy, chi phí, kích thước và tiết kiệm năng lượng cho các ứng dụng.

"Making Embedded Systems" Book:

Hệ thống nhúng là hệ thống được vi tính hóa được xây dựng nhằm mục đích cho ứng dụng của nó.

"Computer Organization and Embedded Systems" Book:

Hệ thống vật lý sử dụng điều khiển máy tính cho mục đích cụ thể, thay vì tính toán cho mục đích chung, được gọi là hệ thống nhúng.

Analog Devices Glossary:

Hệ thống nhúng là một hệ thống trong đó máy tính (thường là bộ vi điều khiển hoặc bộ vi xử lý) được bao gồm như một phần không thể thiếu của hệ thống.

Thông thường, máy tính tương đối vô hình đối với người dùng, không có ứng dụng, tệp hoặc hệ điều hành rõ ràng. Ví dụ về các sản phẩm có hệ thống nhúng vô hình là bộ điều khiển chạy lò vi sóng hoặc hệ thống điều khiển động cơ của ô tô hiện đại.

Embedded Systems Glossary:

Sự kết hợp của phần cứng và phần mềm máy tính và có lẽ các bộ phận cơ khí hoặc bộ phận khác bổ sung, được thiết kế để thực hiện chức năng chuyên dụng.

ITrong một số trường hợp, hệ thống nhúng là một phần của hệ thống lớn hơn hoặc sản phẩm, như trong trường hợp hệ thống chống bó cứng phanh trên ô tô.

Roadmap

Lộ trình được chia thành ba phần chính: PHẦN MỀM, PHẦN CỨNGKỸ NĂNG PHẦN MỀM.

Các phần phần cứng và phần mềm chồng chéo lên nhau trong nhiều vai trò công việc được nhúng. Các chức danh công việc khác nhau, chẳng hạn như "Kỹ sư / Nhà phát triển phần mềm nhúng", "Kỹ sư / nhà phát triển phần mềm cơ sở" và "Kỹ sư / nhà phát triển phần mềm Linux nhúng" có xu hướng tập trung nhiều hơn vào phần mềm. Mặt khác, các vai trò công việc như "Kỹ sư phần cứng nhúng" và "Kỹ sư thiết kế phần cứng" chủ yếu tập trung vào phần cứng. Ngoài ra, có những vị trí như "Kỹ sư hệ thống nhúng" yêu cầu hiểu biết tốt về cả phần cứng và phần mềm. Điều quan trọng là phải hiểu rằng mỗi công ty trong ngành nhúng có thể có những yêu cầu cụ thể cho một vai trò công việc, bất kể chức danh của nó là gì.

Với suy nghĩ này, lộ trình được thiết kế để bao gồm các chủ đề cần thiết cho vai trò "Kỹ sư hệ thống nhúng". Nếu bạn đang hướng tới vị trí phần mềm nhúng, bạn nên tập trung nhiều hơn vào các kỹ năng phần mềm trong lộ trình. Ngược lại, nếu bạn quan tâm đến công việc phần cứng nhúng thì nên ưu tiên các kỹ năng về phần cứng.

Trong ngành công nghiệp nhúng, tất cả các vai trò công việc đều yêu cầu một số kỹ năng mềm không thể có được chỉ bằng cách đọc hoặc xem video. Kỹ năng mềm được phát triển thông qua giao tiếp với người khác và đối mặt với nhiều thách thức công việc khác nhau. Cải thiện kỹ năng mềm không phải là cách tiếp cận chung cho tất cả. Nó thay đổi tùy thuộc vào đặc điểm cá nhân của bạn và liên quan đến việc nhận thức được điểm mạnh và điểm yếu của chính bạn. Việc nâng cao những kỹ năng này cần có thời gian và công sức.

Hãy nhớ rằng việc nhấn mạnh vào kỹ năng phần mềm hoặc phần cứng có thể khác nhau tùy thuộc vào yêu cầu cụ thể của công ty hoặc vị trí công việc.

Embedded Systems Engineering Roadmap

Tài nguyên học tập

⭐️ Tài liệu nổi bật

🔎 Tìm kiếm là siêu năng lực của bạn!

🎥 Các khóa học và nội dung YouTube

🛠️ IDEs

👨‍💻 VS Code Extensions

PlatformIO

PlatformIO là một công cụ chuyên nghiệp, đa nền tảng, đa kiến trúc, đa nền tảng dành cho các kỹ sư hệ thống nhúng và dành cho các nhà phát triển phần mềm viết ứng dụng cho các sản phẩm nhúng.

PlatformIO chưa được áp dụng rộng rãi trong các dự án công nghiệp và quy mô lớn, tuy nhiên, đây là sự lựa chọn tuyệt vời cho các cá nhân làm việc trong các dự án nhỏ hơn. Điều này là do nó làm giảm đáng kể nhu cầu cài đặt framework cũng như thiết lập các công cụ xây dựng và gỡ lỗi, cho phép bạn tập trung vào lập trình.

👨‍🏫 Trang web giáo dục

⚒️ Dự án

Tham gia vào các dự án thực hành là cách tiếp cận học tập hiệu quả nhất. Thay vì chỉ dựa vào kiến thức lý thuyết từ sách hoặc bài báo, việc thực hiện các dự án mang lại trải nghiệm học tập thực tế. Ngay cả một dự án tưởng chừng như cơ bản cũng có khả năng dạy bạn nhiều điều hơn là việc đọc không có mục đích. Bạn có thể tham khảo sách và bài báo khi gặp khó khăn trong việc hiểu các vấn đề trong một dự án trong thế giới thực.

🗺️ Lộ trình hữu ích khác

❓ Câu hỏi


⚠️ Lưu ý: Không cần thiết phải đọc hoặc xem hết các tài liệu sau, nhưng điều quan trọng là phải học đủ để có hiểu biết cơ bản về các chủ đề được yêu cầu. Tất nhiên, càng học tập và thực hành nhiều thì kiến thức của bạn sẽ càng phong phú hơn. Quá trình học tập liên tục này sẽ dần dần cải thiện kỹ năng của bạn và giúp bạn trở thành một kỹ sư giỏi hơn.

Một số tài nguyên được đề cập ở đây sẽ chỉ được sử dụng làm tài liệu tham khảo. Chỉ tham khảo chúng khi bạn cần chúng.

Hướng dẫn ký hiệu:

👶 Newbie

💎 Đầy đủ


1. 👣Soft Skills


d

2. 👣Electronics

Basic Math & Calculus

Principles of Electric Circuits

Electronics Fundamentals

Digital Circuits & Logic Design

Computer Architecture


3. 👣Using Test Equipment

Multimeter

Logic / Protocol Analyzer

Oscilloscope


4. 👣Prototyping Skills

Breadboarding

Hardware Design Basics

PCB Design

Soldering


5. 👁️FPGA Design


6. ❌Software Development Life Cycle (SDLC) Models

Agile / SCRUM

V-Model (V-cycle)


7. 👣Programming Fundamentals

Algorithms & Data Structures

Design Patterns

State Machines / UML

Memory Management


8. ❌Programming Languages

C

C++

Assembly

Python

Python for Microcontrollers

Rust

Zig


9. 👣Build Tools

GCC & Make

CMake

Bash Scripting

Docker

10. 👣Version Control

Git

SVN (Subversion)


11. ❌Microcontrollers

GPIO

ADC

DAC

Timers

PWM

Interrupts

Watchdog

Clock Management

DMA

Bootloader

Power Management

GUI Design

Functional Safety


12. 👣Simulation / Emulation Tools

QEMU

Renode


13. ❌Interfaces, Protocols & Communication Technologies

‌Basic Protocols

UART
I2C
SPI
SDIO
I3C
1-Wire

Audio Protocols

I2S

Image & Video Protocols

CSI-2
HDMI

Wireless Protocols

Bluetooth / BLE
Wi-Fi
LoRa / LoRaWAN
Zigbee
Thread
Matter

Industrial Protocols

Modbus
RS485
CoAP & MQTT

High-Speed Protocols

Ethernet
USB
PCIe

Automotive Protocols

CAN

Network Protocols

Cellular Communication

GSM / LTE
LTE-M & NB-IoT

14. ❌Memories

NOR / NAND Flash

eMMC

SD Card

EEPROM

SRAM / DRAM


15. 👣Sensors & Actuators

Sensors

Actuators


16. ❌Operating Systems

Operating System Fundamentals

Embedded Linux

Linux Kernel
Linux Device Drivers
U-Boot
Buildroot
Yocto
Multithreading & Parallel Processing
Inter Process Communication (IPC)
Qt Framework

Real-Time OS

RTOS Basics
FreeRTOS
Zephyr
μC/OS / Micriμm OS
NuttX
RT-Thread
Mbed OS
QNX
VxWorks
Azure RTOS (ThreadX)

17. 👁️Digital Signal Processing

DSP Fundamentals & Filter Design

Discrete Fourier Transform / FFT

Controls Systems / PID Control

MATLAB / Simulink


18. 👁️Debugging

JTAG / SWD

GDB

OpenOCD


19. 👣Testing

Unit Testing

Integration Testing

CI/CD Pipelines

SIL / HIL Testing

Industry Standards & Certifications


20. 👁️Embedded AI

AI & ML Basics

TensorFlow Lite

tinyML

21. 👁️Embedded Security

Hardware Hacking

Cryptography

Secure Boot & Secure Firmware Update

History

The idea of creating this roadmap came from vazeri / Embedded-Engineering-RoadMap-2018 which was well designed but had some flaws and not updated for years.
I took that idea, changed the structure of the roadmap and tried to improve it. The initial results can be accessed in m3y54m / Embedded-Engineering-Roadmap-Archived which is now archived. Early versions of the roadmap were created using Balsamiq Wireframes which is not suitable for these types of diagrams. So I decided to use Microsoft Visio instead and redrew the whole diagram.

Copyright

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License which means that you are free to share or adapt this work under the following terms:

Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.

ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.

Acknowledgement

Special thanks to my friends in the community of Iranian Embedded Engineers in Twitter and r/embedded subreddit for their suggestions that helped in improving this roadmap.

Contribution

If you think that this roadmap can be improved in anyway or you know about some good learning resources that can be added here, please start an issue or a pull request. I’ll be maintaining and updating this repository frequently.

The source file is created using Microsoft Visio in .vsdx format and included in this repository for your contributions. If you do not have Microsoft Visio or you want to use free software, you can use draw.io which can import and export .vsdx files.

Shop link kiện điện tử

https://shopee.vn/meltsee.vn?categoryId=100644&itemId=3605142304&page=3&sortBy=pop&upstream=search

Top comments (0)