Kỹ sư cơ điện tử cần biết linux

Đã đăng vào thg 3 4, 2021 6:46 SA 6 phút đọc

Lập trình nhúng là gì mà hiện đang là một trong những ngành hot hiện này. Về chuyên môn hiện có rất ít nơi đào tạo. Vậy lập trình nhúng là gì? Làm thế nào để trở thành một kỹ sư lập trình nhúng.

Lập trình nhúng là gì?

Lập trình nhúng là một thuật ngữ chỉ một hệ thống có khả năng tự trị, chúng được nhúng trong một môi trường hay một hệ thống mẹ nào đó. Hệ thống đó tích hợp cả phần cứng và phần mềm. Mục đích của việc này dùng để giải các bài toán trong nhiều lĩnh vực công nghiệp, tự động hóa, truyền tin… với chức năng riêng biệt được thiết kế riêng.

Chương trình này được xây dựng đặc biệt cho một nhiệm vụ cụ thể và có thể được tác giả tối ưu hóa để giảm thiểu kích thước và chi phí. Hệ thống nhúng rất phong phú và đa dạng. Hệ thống nhúng gồm các thành phần cơ bản sau:

  • ROM: chứa chương trình, các dữ liệu được fix, data
  • RAM: lưu các chương trình thực thi và các biến tạm
  • MCU: Bộ xử lí tính toán trung tâm
  • Ngoài ra còn có các bộ phận khác như ngoại vi ADC, DAC, các khối giao tiếp UART…

Ứng dụng lập trình nhúng là gì?

  • Hệ thống nhúng được sử dụng rộng rãi trong các ngành máy tính, điện tử, viễn thông…
  • Hệ thống được tích hợp cả phần mềm và phần cứng, tích hợp như 1 vi xử lý
  • Hệ thống nhúng và PC và thiết bị PDA cầm tay khác nhau vì chúng được thiết kế để chuyên biệt hóa các tính năng cụ thể nhằm cải thiện chất lượng hệ thống và giảm chi phí.

Một số công cụ cho lập trình nhúng

  • Cross ToolChains [ Linux]: Là trình biên dịch của AT91SAM sẽ chạy được trên môi trường Linux
  • Keil [Windows]: Chạy trên môi trường Windows lập trình cho các dòng ARM [ví dụ STM32F4xx..]
  • Putty.exe[Windows]: Là chương trình giúp hỗ trợ lập trình truy cập Secure Shell qua qua đường Ethernet hoặc qua 2 chuẩn RS232.

Cơ hội nghề nghiệp của kỹ sư lập trình nhúng

Ngành lập trình nhúng khá đa dạng, nhưng chia theo 2 hướng chính:

Embedded software

Bạn có thể trở thành một developer thực thụ và phát triển thành một lập trình viên giỏi. Làm việc với nhóm để phát triển các sản phẩm phần mềm cho các sản phẩm nhúng. Điều này bao gồm các ứng dụng [web, máy tính để bàn hoặc ứng dụng di động], chương trình cơ sở, hệ điều hành [OS], trình điều khiển… Bạn sẽ đảm nhiệm viết code, test code, viết requirement, document cho sản phẩm.

Embedded hardware

Bạn sẽ là một nhà thiết kế bo mạch, còn được gọi là PCB Design, Test Board. Đối với công việc này, bạn cần phải rất giỏi về phần cứng và điện tử. Mỗi dự án bạn tham gia vào công ty đều có một quy trình cụ thể buộc bạn phải làm quen với nhiệm vụ trước khi nó được nhận và hoàn thành. Nhưng yên tâm, bạn chắc chắn sẽ hoàn thành công việc.

Kỹ năng cần có của một lập trình nhúng là gì?

Những kiến thức cần có:

  • Học lập trình C: bạn cần học C đến mức chuyên gia, đây là ngôn ngữ quan trọng bật nhất trong lập trình nhúng.
  • Tiếng anh: có thể đọc hiểu tài liệu chuyên ngành
  • Kiến thức về điện tử: các kiến thức về logic, vi điều khiển, vi xử lý, ADC, TIMER, INTERRUPT, vv.
  • Các loại giao tiếp [protocol]: UART, I2C, SPI, RS232, JTAG,… [nâng cao: SATA, PCIE, USB, CAN, MOST].
  • Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.
  • Cấu trúc dữ liệu và giải thuật: là chuyên gia phần cứng, bạn cũng phải code, đã code thì phải có giải thuật!
  • Memory: NOR, NAND, SRAM, DRAM, vv.
  • Hệ điều hành thời gian thực [Real time OS].

Kiến thức chuyên ngành bắt buộc:

  • Embedded software:
  • Lập trình ứng dụng [application]: C++, Java.
  • Lập trình device driver [dùng ngôn ngữ C].
  • Lập trình Android, lập trình web [basic].
  • Scrip: Perl, Python, đặt biệt là Shell script trên linux.
  • Cấu trúc dữ liệu và giải thuật cực tốt.
  • Xây dựng môi trường [build environments]: Makefile, Cmake.
  • Embedded hardware
  • Thiết kế PCB: Allegro hay Antium.
  • Design schematic: bạn cần có kiến thức điện tử thật tốt để làm việc này.
  • Test board: sau khi đã thiết kế xong, bạn cần phải biết test board.
  • Review, đánh giá và lựa chọn linh kiện cho dự án sao cho tối ưu.
  • Sử dụng các loại dụng cụ máy đo.
  • Kĩ năng hàn mạch, sửa mạch [nếu bạn là Freelancer].

Trên đây là bài viết chi tiết về lập trình nhúng là gì? Hy vọng qua bài viết này bạn có thêm nhiều thông tin cũng như định hướng cho công việc trong tương lai của mình.

Tìm hiểu thêm công việc yêu thích về lập trình nhúng tại đây

All rights reserved

Bạn cần phải làm gì để trở thành kĩ sư lập trình nhúng?

Bạn đã từng nghe cụm từ lập trình nhúng hay là phần mềm nhúng, nhưng bạn chưa biết hoặc đang lơ mơ về nó, Bài viết này sẽ giúp bạn hiểu nó là gì, cần gì để trở thành kỹ sư lập trình nhúng

Hiện nay, thuật ngữ hệ thống nhúng đã trở nên phổ biến. Thực tế, các sản phẩm như thiết bị viễn thông, máy vi tính, điện tử công nghiệp, điện tử dân dụng...  phát triển rất nhanh chóng trong đó cốt lõi của sự phát triển này là các hệ thống nhúng điện tử và vi điện tử.

Thị trường hệ thống nhúng theo các nhà thống kê trên thế giới lớn gấp khoảng 100 lần thị trường PC, trong đó có tới 99% số chip xử lý trong các hện thống nhúng được sử dụng. Rất nhiều doanh nghiệp, tập đoàn lớn trên thế giới và trong nước đang tập trung phát triển vào lĩnh vực này và từ đó kéo theo một nhu cầu nhân lực khổng lồ với mức lương hấp dẫn. Chính điều đó đã mở ra một hướng đi mới cho những ai đi theo con đường học lập trình nhúng.

Bạn đang đứng trước ngưỡng cửa của sự nghiệp. Bạn cảm thấy khó khăn trong việc lựa chọn nghề nghiệp cho mình. Bạn muốn theo đuổi nghề lập trình nhúng nhưng chưa biết bắt đầu từ đâu?


Ngành lập trình nhúng rất rộng và cũng dễ tìm hiểu, Lập trình nhúng được chia thành 2 hướng như sau:

1. Embedded software: Nếu theo hướng này thì các bạn chủ yếu làm việc về phần mềm, nghĩa là bạn sẽ code. Với hướng đi này, bạn có thể không biết về phần cứng cũng được nhưng cũng nên biết một ít.

2. Embedded hardware: Đây là một ngành trong nhóm ngành điện tử truyền thông. Bạn sẽ là chuyên gia thiết kế PCB [printed circuit board ] làm việc trên phần cứng.

Cần học gì để trở thành kĩ sư lập trình nhúng?

Khi mới bắt đầu với con đường lập trình nhúng thì những thứ bạn phải học ban đầu là vô cùng khó khăn, vô cùng gian nan, khi bạn đạt được rồi, tương lai bạn sẽ dễ dàng hơn.

Bạn cần học những gì:

1. Học lập trình C: bạn cần học C đến mức chuyên gia, đây là ngôn ngữ quan trọng bật nhất trong lập trình nhúng.

2. Tiếng anh: ít nhất bạn phải đọc được tài liệu chuyên ngành kĩ thuật, nhất là datasheet.

3. Kiến thức về điện tử: các kiến thức về logic, vi điều khiển, vi xử lý, ADC, TIMER, INTERRUPT, vv.

4. Các loại giao tiếp [protocol]: UART, I2C, SPI, RS232, JTAG,… [nâng cao: SATA, PCIE, USB, CAN, MOST].

5. Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.

6. Cấu trúc dữ liệu và giải thuật: là chuyên gia phần cứng, bạn cũng phải code, đã code thì phải có giải thuật!

7. Memory: NOR, NAND, SRAM, DRAM, vv.

8. Hệ điều hành thời gian thực [Real time OS].

Trên đây là những kiến thức chung bắt buộc một kĩ sự lập trình nhúng phải có. Chúng ta sẽ đi sâu hơn về các kiến thức phải có của Embedded software và Embedded hardware.


Embedded software

Ngoài những kiến thức trên, bạn cần phải có:

1. Lập trình ứng dụng [application]: C++, Java.

2. Lập trình device driver [dùng ngôn ngữ C].

3. Lập trình Android, lập trình web [basic].

4. Scrip: Perl, Python, đặt biệt là Shell script trên linux.

5. Cấu trúc dữ liệu và giải thuật cực tốt.

6. Xây dựng môi trường [build environments]: Makefile, Cmake.

Embedded hardware

1. Thiết kế PCB: Allegro hay Antium.

2. Design schematic: bạn cần có kiến thức điện tử thật tốt để làm việc này.

3. Test board: sau khi đã thiết kế xong, bạn cần phải biết test board.

4. Review, đánh giá và lựa chọn linh kiện cho dự án sao cho tối ưu.

5. Sử dụng các loại dụng cụ máy đo.

6. Kĩ năng hàn mạch, sửa mạch [nếu bạn là Freelancer].

Internet of thing [IoT] và bảo mật trên các thiết bị IoT

Hiện nay IoT là xu hướng phát triển cực mạnh và nhanh, bạn không thể lạc hậu được, vì vậy bạn phải trang bị cho mình những kiến thức sau:

1. Networking: đây là kiến thức bạn bắt buộc phải biết khi làm IoT như: IP, TCP/IP protocol, Wifi, Bluetooth, Cellurla, Zigbee, RF, vv.

2. Webserver: bạn cần phải biết cách thức hoạt động của Webserver và cách “ra lệnh” cho phần cứng là việc từ internet [CGI, Java, Javascript, vv], và bạn cần biết lập trình web và andoid ở mức cơ bản.

3. Cloud: 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: HTTP, CoAP, Lighweight M2M, …

4. Bảo mật trên các thiết bị IoT: hiện tại các thiết bị IoT đang bị tấn công rất nhiều, vì vậy là một kĩ sư IoT, bạn phải có trách nhiệm làm cho thiết bị của bạn được bảo mật hơn. Phần này có thể do IT đảm nhận.

Hiện nay, với sức mạnh của vi điều khiển thì chúng ta không thể đáp ứng được nhu cầu trong các hệ thống nhúng. Embedded linux là một giải pháp, đây có thể gọi là một máy tính nhúng, sức mạnh sẽ vượt trội hơn rất nhiều so với các vi điều khiển. Được sử dụng trong các hệ thống nhúng lớn hơn.

Quá trình học Embedded linux như sau:

1. Học về hệ điều hành linux: nói cách khác là cài thêm một hệ điều hành linux mà bạn thích rồi vọc.

2. Học command line và shell script trên linux.

3. Học về cách boot hệ thống, load firmware, cách debug sửa và vá lỗi.

4. Bạn cần phải biết cách build một hệ thống nhúng, cách tốt nhất là thực hành build hệ điều hành thường xuyên trên một board ví dụ như Raspberry Pi.

5. Viết device driver để giao tiếp với các ngoại vi.

6. Phát triển ứng dụng [application].

Sau khi đọc tới đây, bạn đã hình dung được những gì mình cần phải học và phải làm trong tương lai chưa?

-----

STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ

Hotline: 0963723936 - 024. 6275 2212

Website: //stanford.com.vn

Tags: học lập trình, học lập trình nhúng

Bài Viết Liên Quan

Chủ Đề