hi mọi người, mình không phải là 1 người pro về hệ thống nhúng và cũng không có ý định tương lai sẽ theo lĩnh vực này. Tuy nhiên, đối với các bạn mới vào khoa chưa hiểu rõ như thế nào là hệ thống nhúng thì mình hy vọng đây sẽ là topic sẽ khơi mào cho các bạn hiểu biết về hệ thống nhúng thảo luận nhằm giúp các bạn đó. Tránh việc theo đuổi mù quáng
)
Mình viết theo suy nghĩ + kiến thức củ chuối của mình chứ không có quy tắc nào cả nên mọi người thông cảm.
1. Hệ thống nhúng làm gì?
Ngày nay người ta cần nhiều chức năng tiên ích của máy móc để phục vụ bản thân, ví dụ như việc quan sát nhà từ xa bằng hệ thống camera. Nếu bình thường ta có thể dùng computer của chúng ta để thực hiện việc này rất tốt, tuy nhiên, chỉ có vấn đề về lãng phí tài nguyên vì giá thành hoặc công suất tiêu thụ của PC không được tối ưu cho lắm.
Vì vậy người ta cần tới xây dựng tới một hệ thống "chuyên trách" công việc này, đó là một hệ thống chỉ cần tới vi xử lý vừa đủ, bộ nhớ vừa đủ, các giao tiếp vừa đủ và một thứ thuộc software "nhúng" vào hệ thống đó để điều khiển theo mục đích của người sử dụng. Và tạo nên thuật ngữ hệ thống nhúng.
Ngày nay, với sự phát triển của nhiều loại vi xử lý nhỏ gọn, tiêu thụ năng lượng thấp và tốc độ nhanh như ARM thì người ta hoàn toàn có thể thực thi được một hệ điều hành (Operating System), trong đó, những chương trình được viết sẽ được quản lý gần giống như là các hệ điều hành trên PC. Tuy nhiên các hệ điều hành nhúng này có điểm đặc biệt là rất nhỏ gọn, một số phải tuân thủ tính thời gian thực,.... do bị giới hạn tài nguyên và loại công việc.
VD về hệ thống nhúng nhỏ gọn mà được sử dụng nhiều nhất hiện nay chắc chắn là phone rồi
2. Cần học gì ?
Như đã nói ở trên thì có 2 công việc chính:
+ Build phần cứng của hệ thống nhúng
+ Build phần mềm nhúng
;;;;;;;;;
Đối với sinh viên KTMT thì các kiến thức về kiến trúc máy tính và hệ điều hành sẽ được quan tâm rất nhiều. Làm phần cứng thì có vẻ là của dân điện tử quá ! Có thể khi các bạn học môn "vi xử lý vi điều khiển" các bạn phải làm hẳn cả mạch in rồi làm ứng dụng nhỏ nhỏ. Khi học môn lập trình nhúng thì khoa mình thì làm trên FPGA thôi. Tức là build phần cứng bằng phần mềm rồi đưa vào FPGA để có một hệ thống. Cụ thể là build vi xử lý NIOS II trên cycloneII của kit DE2.
FPGA là một dạng phần cứng có thể cấu hình được. Khi bạn có một đoạn mã "miêu tả phần cứng", bạn nhúng vào FPGA thì lập tức FPGA sẽ biến thành mạch mà bạn đã miêu tả.
Nếu ai đó lỡ "yêu" "thích" làm mạch thật rồi thì cũng có thể làm một mạch thật luôn. Nhưng phải cày bừa cho tốt
). Trang dientuvietnam.net sẽ rất hữu ích cho các bạn nào "lầm lỡ".
;;;;;;;;;;;;;;;
Phần mềm nhúng thì tùy theo ứng dụng của mình là gì sẽ có liên quan tới một số phần cứng nhất định. VD như camera thì liên quan tới usb, audio thì liên quan tới audio card,... và người lập trình nhúng phải biết handle (tạm hiểu là nắm giữ để xử lý) - hiểu rõ bản chất giao tiếp của nó để điều khiển. Ngặt cái thông thường tất cả đều dựa vào ngôn ngữ C or C++ cả nên sẽ là bất tiện. Một số hệ điều hành có API thì rõ ràng dễ dàng hơn nhiều rồi.
Đối với hệ thống nhúng thì làm trên linux dễ dàng hơn so với các hệ điều hành nhúng của Microsoft vì bản thân linux là hệ điều hành mở có một cộng đồng rất lớn.
Vì thế tương ứng với hệ thống, hệ điều hành mà công việc lập trình nhúng có chia ra về level: lập trình dựa trên API như lập trình trên các điều hành của điện thoại như android, window mobile (đang hot), có thể lập trình ở mức thấp hơn là C/C++ cho các ứng dụng của hệ thống nhúng nhỏ hoặc có thể là lập trình driver cho các thiết bị vi mạch, .....
Kết bài
Mình viết hướng cho người mới nghe nên chắc không dễ đọc đối với những người đã biết.
Nếu có sai xót xin các bạn cứ thẳng thắn chia sẻ, tránh sự hiểu nhầm đáng tiếc
Hẹn hôm nào rảnh sưu tập lại các topic của các anh khóa 1 về thiết kế vi mạch cho các bạn biết luôn

Mình viết theo suy nghĩ + kiến thức củ chuối của mình chứ không có quy tắc nào cả nên mọi người thông cảm.
1. Hệ thống nhúng làm gì?
Ngày nay người ta cần nhiều chức năng tiên ích của máy móc để phục vụ bản thân, ví dụ như việc quan sát nhà từ xa bằng hệ thống camera. Nếu bình thường ta có thể dùng computer của chúng ta để thực hiện việc này rất tốt, tuy nhiên, chỉ có vấn đề về lãng phí tài nguyên vì giá thành hoặc công suất tiêu thụ của PC không được tối ưu cho lắm.
Vì vậy người ta cần tới xây dựng tới một hệ thống "chuyên trách" công việc này, đó là một hệ thống chỉ cần tới vi xử lý vừa đủ, bộ nhớ vừa đủ, các giao tiếp vừa đủ và một thứ thuộc software "nhúng" vào hệ thống đó để điều khiển theo mục đích của người sử dụng. Và tạo nên thuật ngữ hệ thống nhúng.

Ngày nay, với sự phát triển của nhiều loại vi xử lý nhỏ gọn, tiêu thụ năng lượng thấp và tốc độ nhanh như ARM thì người ta hoàn toàn có thể thực thi được một hệ điều hành (Operating System), trong đó, những chương trình được viết sẽ được quản lý gần giống như là các hệ điều hành trên PC. Tuy nhiên các hệ điều hành nhúng này có điểm đặc biệt là rất nhỏ gọn, một số phải tuân thủ tính thời gian thực,.... do bị giới hạn tài nguyên và loại công việc.
VD về hệ thống nhúng nhỏ gọn mà được sử dụng nhiều nhất hiện nay chắc chắn là phone rồi

2. Cần học gì ?
Như đã nói ở trên thì có 2 công việc chính:
+ Build phần cứng của hệ thống nhúng
+ Build phần mềm nhúng
;;;;;;;;;
Đối với sinh viên KTMT thì các kiến thức về kiến trúc máy tính và hệ điều hành sẽ được quan tâm rất nhiều. Làm phần cứng thì có vẻ là của dân điện tử quá ! Có thể khi các bạn học môn "vi xử lý vi điều khiển" các bạn phải làm hẳn cả mạch in rồi làm ứng dụng nhỏ nhỏ. Khi học môn lập trình nhúng thì khoa mình thì làm trên FPGA thôi. Tức là build phần cứng bằng phần mềm rồi đưa vào FPGA để có một hệ thống. Cụ thể là build vi xử lý NIOS II trên cycloneII của kit DE2.
FPGA là một dạng phần cứng có thể cấu hình được. Khi bạn có một đoạn mã "miêu tả phần cứng", bạn nhúng vào FPGA thì lập tức FPGA sẽ biến thành mạch mà bạn đã miêu tả.
Nếu ai đó lỡ "yêu" "thích" làm mạch thật rồi thì cũng có thể làm một mạch thật luôn. Nhưng phải cày bừa cho tốt

;;;;;;;;;;;;;;;
Phần mềm nhúng thì tùy theo ứng dụng của mình là gì sẽ có liên quan tới một số phần cứng nhất định. VD như camera thì liên quan tới usb, audio thì liên quan tới audio card,... và người lập trình nhúng phải biết handle (tạm hiểu là nắm giữ để xử lý) - hiểu rõ bản chất giao tiếp của nó để điều khiển. Ngặt cái thông thường tất cả đều dựa vào ngôn ngữ C or C++ cả nên sẽ là bất tiện. Một số hệ điều hành có API thì rõ ràng dễ dàng hơn nhiều rồi.
Đối với hệ thống nhúng thì làm trên linux dễ dàng hơn so với các hệ điều hành nhúng của Microsoft vì bản thân linux là hệ điều hành mở có một cộng đồng rất lớn.
Vì thế tương ứng với hệ thống, hệ điều hành mà công việc lập trình nhúng có chia ra về level: lập trình dựa trên API như lập trình trên các điều hành của điện thoại như android, window mobile (đang hot), có thể lập trình ở mức thấp hơn là C/C++ cho các ứng dụng của hệ thống nhúng nhỏ hoặc có thể là lập trình driver cho các thiết bị vi mạch, .....
Kết bài
Mình viết hướng cho người mới nghe nên chắc không dễ đọc đối với những người đã biết.
Nếu có sai xót xin các bạn cứ thẳng thắn chia sẻ, tránh sự hiểu nhầm đáng tiếc

Hẹn hôm nào rảnh sưu tập lại các topic của các anh khóa 1 về thiết kế vi mạch cho các bạn biết luôn

Comment