Những kiến thức nào cần có để học Embedded System?

embedded

(Doanh Văn Lương) #21

anh ơi, anh làm 1 bài chi tiết về vấn đề này đi ạ. đọc thấy hấp dẫn quá. :smiley:


(Nguyen Van Nam) #22

Sau một thời gian ngâm cứu với lĩnh vực Embedded. Mình xin chia sẽ một số features như sau:

Một kỹ sư, hay một ai muốn theo ngành này thì mình sẽ chia ra thành các mảng để mọi người dễ hình dung:

  1. Platform
  2. Conectivity
  3. Cloud
  4. Security

I. Platform
1.1. Hardware
VD:
MCU: PIC, AVR, ARM, 8051, …
Board: Raspberry pi, Arduino, mbed, …
=> Nếu mình cần lập trình cho con nào thì phải tìm hiểu qua datasheet của chúng

1.2. Software
1.2.1. Driver Stack:
Hay còn gọi là Device Driver: như TCP/IP, I2C, SPI, USB, CAN, …
=> Driver Stack sẽ được chia thành 2 tầng chính

  • Tầng HAL: tầng này sẽ lập trình theo từng dòng vi điều khiển, tần này gần với phần cứng nhất
  • Tầng API: Tâng này là tầng common sẽ dùng để gọi tầng HAL phía dưới

1.2.2. OS (Hệ điều hành)
Hệ thống nhúng có thể ko cần phải dùng tới hệ điều hành. Nhưng đa số các ứng dụng ngày nay cần phải xữ lý nhiều chức năng, cũng như cần có sự tin cậy và độ ổn định cao,đáp ứng thời gian thực thì cần phải có hệ điều hành (OS)

  • Trong các hệ thống lớn hay người ta thường dùng linux OS
  • Ngày nay OS rất đa dạng, mà đặc biệt là các OS thời gian thực và tương lai sẽ hướng tới OS thời gian thực có tính nhỏ gọn để ướng dụng trong IoT
    VD: VxWord, RTX, Free RTOS, micro kernel, Tkernel, contiky, …

II. Conectivity
Các thiết bị cần phải liên lạc với nhau: wire and wireless

  • Wire: Dùng mạng lan (TCP/IP protocol)
  • Wireless: rất đa dạng
    VD: Wifi, Bluetooth, Cellurla, Zigbee, RF, …
    Mỗi loại có một giao thức riêng:
    VD:
  • Wifi: TCP/IP (IPv4 and IPv6), 6loWPAN
  • Bluetooth: GAP, GATT.

III. Cloud
Embedded ngày nay, Cloud rất quan trọng trong trong việc quản lý, điều khiển thiết bị từ xa.
Một số giao thức có thể thấy là: HTTP, CoAP, Lighweight M2M, …

IV. Security
Bảo mật thông tin là một phần không thể thiếu trong thời đại thông tin ngày nay: Một hề thống có tín bảo mật cao sẽ đem lại sự an toàn cho người dùng.
Khái niệm bảo mật được biết đến trước đây trong embedded là TLS (Transport Layer Security), và trong IoT là DTLS (đang phát triển)

Trên đây là một số khái niệm tổng quan về Embedded mà mình biết. Vì chưa có kinh nghiệm nhiều trong lĩnh vực này nên vẫn còn nhiều thiếu sót. Mình cũng đang học hỏi thêm

Ai có nhiều kinh nghiệm trong lĩnh vực này có thể chia sẽ cho mọi người được học hỏi thêm nhé!


(Tin) #25

Anh cho em hỏi theo về lập trình nhúng thì ở Hà Nội có thể vào những công ty nào ạ? Hiện tại em chỉ biết mỗi FPT và Viettel


(Bé tập Code) #26

Phần Software của bạn đề cập chỉ là 2 phần nhỏ trong Embedded Software System :slight_smile: Thực tế Embedded Software nó sẽ được làm thành kiến trúc sao cho hầu như không phải phụ thuộc phần cứng, cùng một Software nhưng thay đổi phần cứng nào cũng được.
Nó thường chia thành tầng từ trên xuống dưới như:
Tầng: Application
Tầng: Runtime / Virtual Function Bus
Tầng: uC Abstraction + OS + Driver + Service


(Lê Trần Đạt) #27

Anh không rành về các công ty lập trình nhúng ở HN. Anh chưa làm việc ở HN bao giờ.


(Beo Sen) #28

Em cũng đang tìm hiểu về nhúng trên linux nhưng liệu chỉ học mỗi C++ có khả thi không anh?
Em học C++ cũng được một thời gian rồi(theo 77 bài trên youtube của anh + làm bài trên hacker rank + viết vài ứng dụng vui vui) và e có tự đặt ra cho mình mục tiêu 10000 giờ code để tránh sao lãng/hứng lên học ngôn ngữ khác -> mất thời gian nên về cơ bản e muốn follow theo rules của mình và chưa muốn học thêm ngôn ngữ khác
Hiện tại thì em đang học song song C++/ASM :smiley: (em học assembly trước C++,xong rồi bỏ assembly một thời gian qua học C++ và giờ thì học song song cả 2) nên e muốn hỏi liệu ko học C có được ko?
Em đang là sinh viên năm nhất… :stuck_out_tongue: Và anh có thể chia sẻ kinh nghiệm cho dân nhúng để ra trường có thể tìm được việc ko ạ?


(Phương Mộc) #29

mình cx học c++ và muốn theo nhúng. bạn có kinh nghiệm gì chưa. chia sẻ mình vs :smile:


(cnl36) #30

trong Sài Gòn lĩnh vực liên quan đến nhúng ,c/c++ có nhiều không anh ?anh giới thiệu một số tham khảo được không ạ , Em đang có ý định vào nam


(Nguyễn Đức Hoàng) #31

Nhúng thì C là quan trọng nhất sử dụng nhiều nhất. C++ và ASM rất ít dùng.


(Tự động Hóa) #32

em có vài câu hỏi ạ
1.embeded hardware có nhiều nơi tuyển không ạ
2.em học tự động hoá ra trường muốn làm embeded software thì cần phải học thêm những kiến thức gì ạ vì chương trình đào tạo của trường em chủ yếu là học về e-hardware


(Lập) #33

Mọi người cho em hỏi, em làm việc với VĐK khá yếu, vậy có thể học embeddeb linux được không ạ, mục tiêu của em là viết divece driver.


(Trọng Dũng) #34

bạn tham gia group “Cùng nhau học linux kernel” trên facebook nhé


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?