1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng Hệ thống nhúng (2019): Phần 1

132 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Nhúng
Tác giả Nguyễn Ngọc Minh, Lương Công Duẩn
Trường học Học viện Công nghệ Bưu chính Viễn thông
Thể loại bài giảng
Năm xuất bản 2019
Thành phố Hà Nội
Định dạng
Số trang 132
Dung lượng 14,29 MB

Cấu trúc

  • CHƯƠNG 1 GIỚI THIỆU CHUNG VỀ HỆ THỐNG NHÚNG (10)
    • 1.1 Khái niệm Hệ thống nhúng (Embedded system) (10)
    • 1.2 Lịch sử phát triển của hệ thống nhúng (11)
    • 1.3 Các đặc điểm hệ thống nhúng (11)
      • 1.3.1 Giao diện (12)
      • 1.3.2 Kiến trúc CPU (12)
    • 1.4 Kiến trúc điển hình của hệ thống nhúng (14)
    • 1.5 Phân loại các hệ thống nhúng (18)
    • 1.6 Phạm vi ứng dụng của hệ thống nhúng (18)
    • 1.7 Các yêu cầu về kĩ năng trong thiết kế hệ thống nhúng (18)
      • 1.7.1 Quản lý, tích hợp, thiết kế hệ thống (21)
      • 1.7.2 Thiết kế, phát triển phần mềm ứng dụng (22)
      • 1.7.3 Thiết kế firmware (22)
      • 1.7.4 Thiết kế mạch, PCB (23)
      • 1.7.5 Thiết kế vi điện tử: Linh kiện, IP, IC, phụ kiện (23)
  • CHƯƠNG 2: CÁC THÀNH PHẦN HỆ THỐNG (26)
    • 2.1 Các thành phần phần cứng (26)
      • 2.1.1 Bộ xử lý nhúng (26)
      • 2.1.2 Bộ nhớ (35)
      • 2.1.3 Bảng mạch Vào/Ra (37)
      • 2.1.5 Hệ thống Bus (46)
    • 2.2 Các thành phần phần mềm của hệ thống (56)
      • 2.2.1. Trình điều khiển thiết bị (56)
      • 2.2.2. Hệ điều hành thời gian thực (58)
      • 2.2.3. Middleware (59)
      • 2.2.4 Phần mềm ứng dụng (62)
  • CHƯƠNG 3 HỆ ĐIỀU HÀNH THỜI GIAN THỰC DÙNG CHO CÁC HỆ THỐNG NHÚNG (66)
    • 3.1 Yêu cầu chung cho các hệ điều hành thời gian thực (66)
    • 3.2 Các chức năng chính của phần lõi trong hệ điều hành thời gian thực (67)
      • 3.2.1. Kernel (67)
      • 3.2.2 Tác vụ và Multi-tasking (68)
      • 3.3.3 Lập lịch thời gian thực (Real-time Scheduling) (71)
      • 3.3.4 Đồng bộ (73)
      • 3.2.5 HAL (Hardware Abstraction Layer) (75)
    • 3.3 Giới thiệu các hệ điều hành thời gian thực (76)
      • 3.3.1 FreeRTOS (76)
      • 3.3.2 Windows CE (88)
      • 3.3.3 Hệ điều hành Embedded Linux (90)
      • 3.3.4 Hệ điều hành uCLinux (91)
  • CHƯƠNG 4: THIẾT KẾ VÀ CÀI ĐẶT CÁC HỆ THỐNG NHÚNG (93)
    • 4.1 Thiết kế hệ thống (93)
      • 4.1.1 Xác định yêu cầu (93)
      • 4.1.2 Đặc tả (95)
      • 4.1.3 Phân hoạch phần cứng - phần mềm (98)
      • 4.1.4 Thiết kế hệ thống (109)
    • 4.2 Cài đặt và thử nghiệm hệ thống nhúng (129)
  • CHƯƠNG 5: PHÁT TRIỂN HỆ THỐNG NHÚNG DỰA TRÊN HỆ VI XỬ LÝ NHÚNG (0)
    • 5.1 Giới thiệu chung (0)
    • 5.2 Kiến trúc của hệ vi xử lý nhúng ARM (0)
    • 5.3 Giới thiệu về dòng vi xử lý ARM Cortex và ARM Cortex M3 (0)
    • 5.4 Thiết lập hệ điều hành nhúng trên nền ARM (0)
  • PHỤ LỤC (0)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

Bài giảng Hệ thống nhúng (2019): Phần 1 có nội dung trình bày giới thiệu chung về hệ thống nhúng (Embedded system); các đặc điểm hệ thống nhúng; một số kiến trúc phần mềm hệ thống nhúng; các thành phần phần cứng và thành phần phần mềm của hệ thống; hệ điều hành thời gian thực dùng cho các hệ thống nhúng; thiết kế và cài đặt các hệ thống nhúng;... Mời các bạn cùng tham khảo!

GIỚI THIỆU CHUNG VỀ HỆ THỐNG NHÚNG

Khái niệm Hệ thống nhúng (Embedded system)

Hệ thống nhúng (Embedded system) là một hệ thống tự trị được tích hợp vào môi trường hoặc hệ thống mẹ, bao gồm cả phần cứng và phần mềm Chúng phục vụ cho các ứng dụng chuyên dụng trong nhiều lĩnh vực công nghiệp như điện tử, viễn thông, công nghệ thông tin, tự động hoá điều khiển, và quan trắc truyền tin Các hệ thống này nổi bật với tính ổn định và khả năng tự động hoá cao.

Hệ thống nhúng được thiết kế để thực hiện các chức năng chuyên biệt, khác với máy tính đa chức năng như máy tính cá nhân Chúng chỉ thực hiện một hoặc một vài nhiệm vụ nhất định, đi kèm với yêu cầu cụ thể và sử dụng phần cứng chuyên dụng Việc tối ưu hóa cho các nhiệm vụ này giúp giảm kích thước và chi phí sản xuất, với sản phẩm thường được sản xuất hàng loạt Hệ thống nhúng rất đa dạng, từ thiết bị cầm tay nhỏ như đồng hồ kỹ thuật số và máy chơi nhạc MP3, đến các sản phẩm lớn như đèn giao thông và hệ thống kiểm soát nhà máy Độ phức tạp của chúng có thể từ rất đơn giản với một vi điều khiển đến rất phức tạp với nhiều đơn vị và thiết bị ngoại vi trong một lớp vỏ lớn.

Các thiết bị PDA và máy tính cầm tay có những đặc điểm giống hệ thống nhúng, như hệ điều hành và vi xử lý điều khiển Tuy nhiên, chúng không phải là hệ thống nhúng thực thụ vì là thiết bị đa năng, cho phép sử dụng nhiều ứng dụng và kết nối với nhiều thiết bị ngoại vi.

Hệ thống nhúng được định nghĩa là một hệ thống thực hiện các chức năng đặc biệt thông qua việc sử dụng vi xử lý Đáng chú ý, không tồn tại hệ thống nhúng nào chỉ bao gồm phần mềm mà không có phần cứng đi kèm.

Lịch sử phát triển của hệ thống nhúng

Hệ thống nhúng đầu tiên, Apollo Guidance Computer, được phát triển bởi Charles Stark Draper tại MIT Năm 1961, máy hướng dẫn Autonetics D-17 trở thành hệ thống nhúng sản xuất hàng loạt đầu tiên cho tên lửa quân sự, sử dụng bóng bán dẫn và đĩa cứng để lưu trữ Đến năm 1996, máy tính này được thay thế bởi một hệ thống mới sử dụng mạch tích hợp cho tên lửa Minuteman II Điểm nổi bật của máy tính Minuteman là khả năng lập trình lại thuật toán, giúp tăng độ chính xác của tên lửa và giảm trọng lượng cáp điện cùng đầu nối.

Từ những năm 1960, hệ thống nhúng đã có những bước tiến đáng kể về giá cả và khả năng xử lý Intel 4004, bộ vi xử lý đầu tiên dành cho người tiêu dùng, được phát minh để phục vụ cho máy tính điện tử và các hệ thống nhỏ Tuy nhiên, nó vẫn cần đến các chip nhớ ngoài và các hỗ trợ khác để hoạt động hiệu quả.

1970, những bộ xử lý 8 bit đã được sản xuất, nhưng nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài

Vào giữa thập niên 80, sự phát triển của kỹ thuật mạch tích hợp đã cho phép nhiều thành phần được tích hợp vào một chip xử lý, dẫn đến sự ra đời của các bộ vi điều khiển Với chi phí thấp, các vi điều khiển trở nên hấp dẫn cho việc xây dựng hệ thống chuyên dụng, tạo ra một sự bùng nổ trong số lượng hệ thống nhúng trên thị trường và thu hút nhiều nhà đầu tư vào lĩnh vực này.

Nhiều chip xử lý đặc biệt hiện nay đã xuất hiện với đa dạng giao diện lập trình, thay thế cho phương pháp song song truyền thống trong việc kết nối vi xử lý Từ cuối những năm 80, hệ thống nhúng đã trở nên phổ biến trong hầu hết các thiết bị điện tử, và xu hướng này vẫn tiếp tục phát triển cho đến ngày nay.

Các đặc điểm hệ thống nhúng

Hệ thống nhúng thường có một số đặc điểm chung như sau:

Các hệ thống nhúng được phát triển nhằm thực hiện các nhiệm vụ chuyên dụng, không giống như các hệ thống máy tính đa chức năng Một số hệ thống cần đảm bảo hoạt động thời gian thực để tăng cường độ an toàn và tính ứng dụng, trong khi những hệ thống khác không yêu cầu ràng buộc chặt chẽ, cho phép tối giản hóa phần cứng nhằm giảm chi phí sản xuất.

• Một hệ thống nhúng thường không phải là một khối riêng biệt mà là một hệ thống phức tạp nằm trong thiết bị mà nó điều khiển

Phần mềm cho hệ thống nhúng, được gọi là firmware, được lưu trữ trong chip bộ nhớ chỉ đọc hoặc bộ nhớ flash, thay vì trên ổ đĩa Loại phần mềm này thường hoạt động với tài nguyên phần cứng hạn chế, không có hoặc chỉ có thiết bị đầu vào như bàn phím và màn hình nhỏ, cùng với bộ nhớ có dung lượng thấp Bài viết sẽ đi sâu vào các đặc điểm cụ thể của các thành phần trong hệ thống nhúng.

Các hệ thống nhúng có thể hoạt động mà không cần giao diện hoặc có giao diện giao tiếp phong phú giống như các hệ điều hành trên máy tính để bàn Đối với những thiết bị đơn giản, chúng thường sử dụng nút bấm, đèn LED và màn hình hiển thị chữ hoặc số nhỏ, đi kèm với một hệ thống menu đơn giản.

Trong các hệ thống phức tạp, màn hình đồ họa có cảm ứng hoặc nút bấm cho phép thực hiện các thao tác phức tạp mà không tốn nhiều không gian Ý nghĩa của các nút bấm có thể thay đổi tùy theo màn hình và lựa chọn Các hệ thống nhúng thường sử dụng màn hình với nút bấm dạng joystick Sự phát triển của mạng toàn cầu đã mở ra cơ hội cho các nhà thiết kế hệ nhúng sử dụng giao diện web qua kết nối mạng, giúp tiết kiệm chi phí cho màn hình phức tạp trong khi vẫn đảm bảo khả năng hiển thị và nhập liệu khi cần thiết thông qua máy tính khác Điều này rất hữu ích cho các thiết bị điều khiển từ xa, như router, cho phép cài đặt vĩnh viễn.

Các bộ xử lý trong hệ thống nhúng được chia thành hai loại chính: vi xử lý và vi điều khiển, với vi điều khiển thường tích hợp các thiết bị ngoại vi trên chip để giảm kích thước hệ thống Nhiều kiến trúc CPU như ARM, MIPS, và x86 được sử dụng trong thiết kế hệ nhúng, trái ngược với máy tính để bàn thường bị giới hạn bởi một số kiến trúc nhất định Hệ thống nhúng nhỏ gọn thường chọn nền tảng PC/104 và PC/104++, sử dụng các hệ điều hành như DOS, Linux, hoặc các hệ điều hành nhúng thời gian thực như QNX và VxWorks Đối với các hệ thống nhúng lớn, cấu hình phổ biến là hệ thống on chip (SoC) hoặc mạch tích hợp ứng dụng cụ thể (ASIC), trong khi FPGA cũng được sử dụng để lập trình với các thành phần thiết kế bao gồm CPU.

Hệ thống nhúng giao tiếp với bên ngoài thông qua các thiết bị ngoại vi, ví dụ như:

• Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485

• Synchronous Serial Communication Interface: I2C, JTAG, SPI, SSC và ESSI

• Networks: Controller Area Network, LonWorks

• Bộ định thời: PLL(s), Capture/Compare và Time Processing Units

• Discrete IO: General Purpose Input/Output (GPIO)

Phần mềm hệ thống nhúng, giống như các sản phẩm phần mềm khác, được phát triển thông qua các trình biên dịch, chương trình dịch hợp ngữ và công cụ gỡ rối Ngoài ra, các nhà thiết kế hệ thống nhúng còn có thể sử dụng một số công cụ chuyên dụng để tối ưu hóa quy trình phát triển.

• Bộ gỡ rối mạch hoặc các chương trình mô phỏng (emulator)

• Tiện ích để thêm các giá trị checksum hoặc CRC vào chương trình, giúp hệ thống nhúng có thể kiểm tra tính hợp lệ của chương trình đó

Trong các hệ thống xử lý tín hiệu số, các nhà phát triển có thể tận dụng phần mềm workbench như MathCad hoặc Mathematica để thực hiện mô phỏng các phép toán một cách hiệu quả.

• Các trình biên dịch và trình liên kết (linker) chuyên dụng được sử dụng để tối ưu hóa một thiết bị phần cứng

Hệ thống nhúng có thể phát triển ngôn ngữ lập trình và công cụ thiết kế riêng biệt hoặc cải tiến từ ngôn ngữ lập trình hiện có.

Các công cụ phần mềm có thể được phát triển bởi các công ty chuyên về hệ thống nhúng hoặc chuyển đổi từ các công cụ phát triển phần mềm GNU Ngoài ra, các công cụ phát triển cho máy tính cá nhân cũng có thể được sử dụng nếu bộ xử lý của hệ thống nhúng tương tự như bộ xử lý của máy PC thông dụng Độ tin cậy của các công cụ này là một yếu tố quan trọng cần được xem xét.

Các hệ thống nhúng thường được thiết kế để hoạt động liên tục trong nhiều năm mà không gặp lỗi, hoặc có khả năng khôi phục khi xảy ra sự cố Do đó, phần mềm cho hệ thống nhúng được phát triển và kiểm thử một cách cẩn thận hơn so với phần mềm cho máy tính cá nhân Hơn nữa, việc sử dụng các thiết bị không đáng tin cậy như ổ đĩa, công tắc hay nút bấm thường bị hạn chế Để khôi phục hệ thống khi gặp lỗi, các kỹ thuật như watchdog timer được áp dụng; nếu phần mềm không nhận được tín hiệu từ watchdog định kỳ, hệ thống sẽ tự động khởi động lại.

Một số vấn đề cụ thể về độ tin cậy như:

Trong những hệ thống không thể tạm dừng để sửa chữa an toàn như hệ thống không gian, cáp dưới đáy biển hay đèn hiệu dẫn đường, giải pháp hiệu quả là chuyển sang sử dụng các hệ thống con dự trữ hoặc phần mềm cung cấp chức năng thay thế.

Hệ thống cần hoạt động liên tục để đảm bảo an toàn, đặc biệt là trong các thiết bị dẫn đường máy bay và thiết bị kiểm soát an toàn tại các nhà máy hóa chất Giải pháp hiệu quả là lựa chọn hệ thống backup để duy trì tính ổn định và an toàn.

Nếu hệ thống ngừng hoạt động, sẽ gây ra tổn thất lớn về tài chính, đặc biệt trong các dịch vụ buôn bán tự động, hệ thống chuyển tiền và hệ thống kiểm soát tại các nhà máy.

Kiến trúc điển hình của hệ thống nhúng

Kiến trúc hệ thống nhúng là một hình thức trừu tượng hóa, cho phép tổng quát hóa các thành phần của hệ thống mà không cần đi vào chi tiết cụ thể như mã nguồn hay thiết kế phần cứng.

Trong một hệ thống nhúng, các thành phần phần cứng và phần mềm được biểu diễn qua các phần tử tương tác lẫn nhau, với thông tin tập trung vào mối quan hệ và hoạt động của chúng Những phần tử này có thể được tích hợp bên trong thiết bị hoặc tồn tại bên ngoài và tương tác với các phần tử nội bộ Tóm lại, kiến trúc của hệ thống nhúng bao gồm các phần tử của chính hệ thống, các phần tử tương tác với nó, các đặc tính riêng biệt của từng phần tử, cùng với mối quan hệ tương tác giữa các thành phần.

Thông tin ở mức kiến trúc được thể hiện dưới dạng cấu trúc, bao gồm các phần tử, tính chất và thông tin về mối quan hệ giữa chúng Vì vậy, cấu trúc phản ánh hình ảnh của phần cứng và phần mềm trong hệ thống tại thời điểm thiết kế hoặc khi hệ thống đang hoạt động.

Hệ thống thường có cấu trúc phức tạp, với kiến trúc là sự kết hợp của nhiều cấu trúc khác nhau Tất cả các cấu trúc trong kiến trúc này đều có mối quan hệ thừa kế qua lại Một số kiểu cấu trúc tiêu biểu bao gồm:

Cấu trúc theo dạng module trong hệ thống nhúng bao gồm các thành phần chức năng khác nhau, như phần cứng và phần mềm cơ bản, cần thiết cho hoạt động của thiết bị Cấu trúc này thường được tổ chức theo dạng lớp (layers) và các phần mềm dịch vụ cho nhân (kernel services), giúp tối ưu hóa hiệu suất và khả năng mở rộng của hệ thống.

Cấu trúc thành phần và kết nối bao gồm sự kết hợp giữa các thành phần như phần cứng, phần mềm và CPU, cùng với các kết nối như bus phần cứng, bản tin phần mềm và các quy trình trong hệ thống.

Mô hình hệ thống nhúng

Trên thực tế, có nhiều cấu trúc kiến trúc được áp dụng trong hệ thống nhúng Tuy nhiên, ở mức cơ bản nhất, mô hình của hệ thống nhúng thường được minh họa như hình dưới đây.

Hình 1 1: Mô hình chung hệ thống nhúng

Tất cả hệ thống nhúng đều có cấu trúc tương tự nhau với ba lớp chính: phần cứng, phần mềm hệ thống và phần mềm ứng dụng Lớp phần cứng bao gồm các thành phần vật lý trên bo mạch nhúng, trong khi lớp phần mềm hệ thống và phần mềm ứng dụng chứa các phần mềm hoạt động trên hệ thống nhúng.

Một số kiến trúc phần mềm hệ thống nhúng

Một số loại kiến trúc phần mềm thông dụng trong các hệ thống nhúng như sau:

Vòng lặp kiểm soát đơn giản

Theo thiết kế này, phần mềm được cấu trúc thành một vòng lặp đơn giản, trong đó vòng lặp này sẽ gọi đến các chương trình con Mỗi chương trình con sẽ đảm nhận việc quản lý một phần cụ thể của hệ thống phần cứng hoặc phần mềm.

Hệ thống ngắt điều khiển

Các hệ thống nhúng thường được điều khiển thông qua các ngắt, cho phép kích hoạt các tác vụ dựa trên các sự kiện khác nhau Chẳng hạn, một ngắt có thể được tạo ra bởi bộ định thời sau một chu kỳ nhất định hoặc khi cổng nối tiếp nhận được một byte dữ liệu.

Kiến trúc này thường được áp dụng trong các hệ thống có bộ quản lý sự kiện đơn giản, yêu cầu độ trễ thấp Hệ thống thực hiện các tác vụ đơn giản trong một vòng lặp chính, nhưng có thể xử lý các tác vụ phức tạp hơn thông qua cấu trúc hàng đợi trong bộ quản lý ngắt Điều này khiến hệ thống gần giống với kiểu nhân đa nhiệm, cho phép xử lý các tiến trình rời rạc một cách hiệu quả.

Hệ thống đa nhiệm không ưu tiên tương tự như kỹ thuật vòng lặp kiểm soát đơn giản, nhưng được ẩn giấu qua giao diện lập trình API Các lập trình viên định nghĩa nhiều nhiệm vụ, mỗi nhiệm vụ hoạt động trong môi trường riêng và tạm dừng khi không cần thiết Ưu và nhược điểm của kiến trúc này giống với vòng lặp kiểm soát đơn giản, nhưng việc thêm phần mềm mới dễ dàng hơn Ngược lại, trong hệ thống đa nhiệm ưu tiên, có mã cấp thấp thực hiện chuyển đổi giữa các tác vụ thông qua bộ định thời, thường liên quan đến phức tạp của việc quản lý đa nhiệm trong hệ điều hành.

Để đảm bảo an toàn cho dữ liệu, các tác vụ có khả năng phá hủy dữ liệu của nhau cần được tách biệt một cách chính xác Việc quản lý truy cập vào dữ liệu chia sẻ có thể được thực hiện thông qua các kỹ thuật đồng bộ hóa như hàng đợi thông điệp và semaphores Do tính phức tạp của vấn đề này, giải pháp thường được khuyến nghị là sử dụng hệ điều hành thời gian thực Điều này giúp các lập trình viên tập trung vào việc phát triển chức năng thiết bị mà không phải lo lắng về các dịch vụ của hệ điều hành.

Vi nhân (Microkernel) và nhân ngoại (Exokernel)

Khái niệm vi nhân (microkernel) là một phương pháp tiếp cận gần gũi với hệ điều hành thời gian thực, trong đó nhân hệ điều hành đảm nhiệm việc cấp phát bộ nhớ và phân phối CPU cho các luồng thực thi Các tiến trình người dùng chủ yếu sử dụng các chức năng cơ bản như hệ thống file và giao diện mạng Kiến trúc vi nhân thường được áp dụng trong các hệ thống yêu cầu tốc độ chuyển đổi và giao tiếp giữa các tác vụ nhanh chóng.

Nhân ngoại (exokernel) tối ưu hóa giao tiếp hiệu quả thông qua các lời gọi chương trình con thông thường Hệ thống phần cứng và phần mềm luôn sẵn sàng đáp ứng và có khả năng mở rộng theo nhu cầu của các ứng dụng.

Phân loại các hệ thống nhúng

Hiện nay có nhiều cách phân loại hệ thống nhúng khác nhau Tùy theo cách phân chia có thể phân loại các hệ thống nhúng như sau:

• Hệ thống phân phối và hệ thống không phân phối:

Các hệ thống không phân phối hoạt động độc lập, trong khi hệ thống phân phối kết nối các thiết bị như vi điều khiển nhúng, thiết bị mạng, máy tính nhúng và hệ thống cảm biến không dây Sự kết hợp này thường thấy trong các thiết bị điều khiển ô tô, hàng không, giám sát môi trường và quản lý dây chuyền sản xuất tự động.

• Hệ thống dữ liệu và hệ thống điều khiển:

Các hệ thống dữ liệu được sử dụng để xử lý và cung cấp thông tin cần thiết theo yêu cầu Trong khi đó, các hệ thống điều khiển có nhiệm vụ quản lý và điều phối các quy trình sản xuất cũng như vận hành các thiết bị.

Phạm vi ứng dụng của hệ thống nhúng

Ngày nay, hệ thống nhúng được ứng dụng rộng rãi ở khắp mọi nơi Hầu hết những thiết bị điện tử đều là các hệ thống nhúng

Một số ví dụ như sau:

• Các hệ thống điều khiển ô tô, tàu, máy bay

• Các hệ thống quân sự

• Các hệ thống giám sát, cảnh báo

• Các hệ thống cảm ứng

• Các thiết bị điện tử dân dụng

Theo ước tính, mỗi năm lượng phần mềm nhúng phát triển gấp năm lần so với phần mềm thông thường Đối với phần cứng, hầu hết các CPU sản xuất ra đều phục vụ cho thị trường nhúng, trong khi chỉ một phần nhỏ CPU được sử dụng trong các hệ thống máy tính.

Các yêu cầu về kĩ năng trong thiết kế hệ thống nhúng

Tổng quan về thiết kế các hệ nhúng

Thiết kế các hệ thống nhúng là thiết kế phần cứng và phần mềm phối hợp bao gồm những bước sau:

- Mô hình hoá hệ thống: Mô tả các khối chức năng với các đặc tính và thuật toán xử lý

- Chi tiết hoá các khối chức năng

- Phân bố chức năng cho phần cứng và mềm (HW-SW)

- Đồng bộ hoạt động của hệ thống

- Cài đặt các chức năng thiết kế vào phần cứng (hardware) và phần mềm (software) hoặc phần nhão (firm-ware)

Thiết kế cổ điển phân chia rõ ràng giữa phần mềm (SW) và phần cứng (HW), với các chức năng được xác định trước và thiết kế chi tiết thực hiện độc lập Hiện nay, nhiều hệ thống tự động hóa thiết kế (CAD) chủ yếu tập trung vào phần cứng Tuy nhiên, các hệ thống nhúng ngày càng sử dụng đa dạng công nghệ như vi xử lý, DSP và các chuẩn giao tiếp, dẫn đến nhu cầu thiết kế linh hoạt hơn cho cả HW và SW Để đạt được thiết kế tối ưu, quá trình thiết kế phần mềm và phần cứng cần phải phối hợp chặt chẽ và có khả năng điều chỉnh sau mỗi lần thử nghiệm chức năng.

Thiết kế hệ nhúng yêu cầu kiến thức đa ngành về điện tử, xử lý tín hiệu, vi xử lý, thuật điều khiển và lập trình thời gian thực Mục tiêu của các chương trình đào tạo là phát triển bộ kỹ năng cần thiết cho người học, đảm bảo họ đạt được những kỹ năng đã đề ra sau khi hoàn thành khóa học Bộ kỹ năng này được xây dựng dựa trên đặc điểm và nội dung của chương trình đào tạo.

Trong thiết kế hệ thống nhúng, đào tạo tập trung vào việc phát triển các hệ thống nhúng và thiết bị điện tử thông minh, được điều khiển bởi các linh kiện bán dẫn khả trình như bộ vi xử lý, bộ vi điều khiển, FPGA và CPLD Để đảm bảo tính đồng nhất, chúng ta sẽ sử dụng thuật ngữ "hệ thống nhúng" để chỉ chung cho tất cả các thiết bị điện tử và hệ thống này.

Hình 1 2: Cấu trúc của thiết bị điện tử

Cấu trúc của một hệ thống nhúng về cơ bản được mô tả như trong hình 1, nó gồm các thành phần:

Phần mềm ứng dụng là những chương trình được phát triển để thực hiện các tác vụ cụ thể, sử dụng tài nguyên từ nền tảng phần cứng Ví dụ điển hình bao gồm phần mềm nghe nhạc trên máy MP3, ứng dụng game trên máy PS2, và bộ công cụ Microsoft Office trên máy tính cá nhân.

Phần mềm hệ thống bao gồm các hệ điều hành như Windows, Linux, và Unix, cùng với các chương trình hỗ trợ như trình biên dịch, loader, linker và debugger Những phần mềm này đóng vai trò quan trọng trong việc quản lý tài nguyên phần cứng ở mức thấp, cho phép các thành phần trong hệ thống tương tác hiệu quả và cấp phát tài nguyên cho các phần mềm ứng dụng.

Phần cứng là các thành phần vật lý của hệ thống, bao gồm những linh kiện vật lý thiết yếu Ví dụ, trong một máy tính PC, phần cứng bao gồm bo mạch chủ, RAM, ổ cứng và nguồn điện Các bo mạch chủ được cấu tạo từ các linh kiện bán dẫn cùng với các linh kiện thụ động như điện trở, tụ điện và cuộn cảm.

Từ cấu trúc trên của hệ thống nhúng, có thể phân chia việc thiết kế một hệ thống thành các mảng công việc như trong hình 2:

Hình 1 3: Các mảng công việc trong thiết kế hệ thống nhúng

Nó gồm các mảng khác nhau đó là:

- Quản lý, tích hợp và thiết kế hệ thống

- Thiết kế, phát triển phần mềm ứng dụng

- Thiết kế firmware (Device Driver, OS, Middleware)

- Thiết kế vi điện tử: linh kiện, IC, IP, Phụ kiện Đối với từng mảng công việc, đòi hỏi người thực hiện cần có các kĩ năng tương ứng

1.7.1 Quản lý, tích hợp, thiết kế hệ thống: Đây là một trong những mặt có vai trò quan trọng đối với sự thành công của một dự án thiết kết một hệ thống nhúng Nó bao gồm các công việc:

- Hoạch định các yêu cầu của hệ thống, từ đó xây dựng kết cấu chung của hệ thống

- Xác định các tài nguyên có sẵn bao gồm nhân lực và vật lực

- Lên kế hoạch các bước thực hiện

- Giám sát quá trình thực hiện Để đảm nhiệm được công việc này, yêu cầu các kĩ năng sinh viên cần có:

Có kiến thức vững vàng về quản lý dự án thiết kế và kiến trúc hệ thống, bao gồm các mô hình phân tích hệ thống và triển khai dự án thiết kế Hiểu biết về kiến trúc hệ thống nhúng giúp nắm bắt tổng quan các khía cạnh của hệ thống, từ phần mềm đến phần cứng.

- Có kĩ năng quản lý nhóm, đây là một yêu cầu quan trọng có tính chất quyết định

- Có khả năng sáng tạo, ứng dụng các phương thức quản lý tiên tiến nhằm đạt hiệu năng cao trong thiết kế hệ thống

Kỹ năng phân tách, tích hợp và kiểm tra hệ thống là rất quan trọng để đảm bảo hệ thống hoạt động ổn định Những kỹ năng này giúp đáp ứng các yêu cầu về hiệu năng, giá thành và tuổi thọ của hệ thống.

1.7.2 Thiết kế, phát triển phần mềm ứng dụng Đối với các hệ thống nhúng, điều quan trọng là ứng dụng thực tiễn của nó trong đời sống, quan trọng hơn, chức năng được quyết định bởi phần mềm ứng dụng được cài đặt trên hệ thống Vì vậy, các kĩ năng trong thiết kế, phát triển phần mềm ứng dụng là không thể thiếu đối với thiết kế hệ thống nhúng hiện nay Các kĩ năng yêu cầu gồm:

Để trở thành một lập trình viên giỏi, bạn cần có kiến thức vững chắc về khoa học lập trình, bao gồm xây dựng cấu trúc dữ liệu và giải thuật, quản lý cơ sở dữ liệu, cũng như các phương thức lập trình như lập trình hướng cấu trúc và lập trình hướng đối tượng Ngoài ra, kiến thức về đồ họa, đa phương tiện và xử lý tín hiệu cũng rất quan trọng trong lĩnh vực này.

Kỹ năng thực thi ứng dụng trên các ngôn ngữ lập trình là rất quan trọng, bao gồm các ngôn ngữ như C/C++, VC++, Python, Java, VB, Delphi, ASP và PHP Việc nắm vững những ngôn ngữ này sẽ giúp lập trình viên phát triển và triển khai ứng dụng hiệu quả hơn.

- Có kiến thức lập trình trên các nền tảng khác nhau: PC, smartphone,

1.7.3 Thiết kế firmware Điều quan trọng của các ứng dụng hệ thống nhúng đó là tận dụng được các tài nguyên của hệ thống: CPU, memory, các ngoại vi, các giao diện Hầu hết quá trình xử lý bên trong của hệ thống là sự giao tiếp giữa các thành phần phần cứng bên trong Vì vậy đòi hỏi xây dựng firmware để quản lý các tài nguyên này một cách hữu hiệu, cung cấp các giao diện truy cập các tài nguyên này cho lớp cao hơn (lớp ứng dụng)

Nó gồm các lĩnh vực về thiết kế trình điều khiển thiết bị - Device Driver, thiết kế

OS – hệ điều hành, thiết kế phần mềm Middleware Để thực hiện được, yêu cầu các kĩ năng sinh viên cần có:

Hệ điều hành (Operating System - OS) là phần mềm quản lý phần cứng và phần mềm của máy tính, đóng vai trò trung gian giữa người dùng và phần cứng Hệ điều hành thời gian thực (Real-Time Operating System - RTOS) được thiết kế để xử lý các tác vụ trong thời gian nhất định, đảm bảo tính kịp thời và chính xác Các thành phần chính của hệ điều hành bao gồm kernel, trình quản lý bộ nhớ, và trình quản lý tệp Các khái niệm quan trọng như scheduling (lập lịch), process (tiến trình), thread (luồng), và inter-process communication (giao tiếp giữa các tiến trình) là những yếu tố thiết yếu giúp tối ưu hóa hiệu suất và khả năng tương tác của hệ thống.

- Kiến thức về kiến trúc máy tính, các kĩ thuật ứng dụng trong kiến trúc máy tính như pipeline, DMA, caching, buffering

- Kĩ năng lập trình hệ thống, hệ thống nhúng, lập trình vi xử lý, bảo mật, mạng

- Thành thạo các ngôn ngữ lập trình hệ thống như assembly, C/C++; các ngôn ngữ mô tả phần cứng như VHDL, Verilog

- Sử dụng thành thạo các công cụ phần mềm hỗ trợ lập trình firmware trình biên dịch, IDE,

Với xu hướng hiện nay, kiến thức về phần mềm mã nguồn mở và hệ điều hành mã nguồn mở mang lại lợi ích lớn trong phát triển phần mềm hệ thống nhúng Ngoài yếu tố giá thành, sinh viên sẽ nhận được sự hỗ trợ đáng kể từ cộng đồng mã nguồn mở và các kỹ thuật lập trình tiên tiến Do đó, đây là một kỹ năng quan trọng mà sinh viên nên chú ý phát triển.

CÁC THÀNH PHẦN HỆ THỐNG

Các thành phần phần cứng

Bộ xử lý là thành phần chính trong hệ thống nhúng, chịu trách nhiệm xử lý lệnh và dữ liệu Mỗi thiết bị điện tử đều có ít nhất một bộ xử lý chủ (Master Processor) và có thể tích hợp thêm các bộ xử lý tớ (Slave Processors) hoạt động dưới sự điều khiển của bộ xử lý chủ Các bộ xử lý tớ có thể tham gia vào các chỉ lệnh của bộ xử lý chủ hoặc thực hiện quản lý bộ nhớ, bus và thiết bị vào ra Ví dụ, trong sơ đồ khối của board X86, Atlas STPC đóng vai trò là bộ xử lý chủ, trong khi bộ điều khiển I/O và bộ điều khiển ethernet hoạt động như các bộ xử lý tớ.

Hình 2 1: Bảng mạch Encore 400 của Ampro

Hệ thống nhúng được xây dựng xung quanh bộ xử lý chủ, trong đó bộ xử lý phức tạp có thể được phân loại là vi xử lý hoặc vi điều khiển Vi xử lý thường có ít bộ nhớ tích hợp và thành phần vào ra (I/O), trong khi vi điều khiển thường tích hợp nhiều bộ nhớ hệ thống và các thành phần I/O trên chip Tuy nhiên, các định nghĩa truyền thống này có thể không còn chính xác với các thiết kế bộ xử lý hiện đại, khi mà các bộ xử lý ngày nay ngày càng được tích hợp nhiều hơn.

Các bộ xử lý nhúng được phân loại theo kiến trúc, với sự khác biệt chủ yếu nằm ở tập hợp các chỉ lệnh mà chúng có thể thực thi Những bộ xử lý có khả năng thực thi cùng một tập lệnh được xem là có kiến trúc tương tự Dưới đây là bảng ví dụ về một số bộ xử lý thực tế và kiến trúc tương ứng của chúng.

Bảng 2 1: Các bộ xử lý và kiến trúc thực tế

2.1.1.1 Các mô hình kiến trúc tập lệnh (ISA architecture models)

ISA (kiến trúc tập lệnh) xác định các thao tác, toán hạng, lưu trữ, kiểu định địa chỉ và xử lý ngắt mà lập trình viên có thể sử dụng để phát triển chương trình Các tính năng này ảnh hưởng trực tiếp đến hiệu suất, thời gian thiết kế, chức năng và chi phí của hệ thống nhúng Việc thực thi ISA là yếu tố quyết định đặc điểm của hệ thống, do đó cần được mô tả chi tiết để hiểu rõ hơn về vai trò của nó trong phát triển công nghệ.

Các thao tác được thực hiện thông qua một hoặc nhiều chỉ lệnh Các bộ xử lý khác nhau có khả năng thực thi các thao tác tương tự nhờ vào việc sử dụng các chỉ lệnh với số lượng và kiểu dáng đa dạng.

Các thao tác trên dữ liệu bao gồm các chức năng như phép toán số học, chuyển dữ liệu giữa bộ nhớ và thanh ghi, thực hiện các rẽ nhánh có điều kiện hoặc không, cùng với các hoạt động truyền nhận và chuyển đổi phép toán.

Bộ vi xử lý 8051 có hơn 100 chỉ lệnh bao gồm toán học, truyền dữ liệu, phép toán logic, thao tác bit, rẽ nhánh và điều khiển Trong khi đó, MPC-823 sở hữu tập chỉ lệnh lớn hơn 8051, với nhiều kiểu hoạt động tương tự, bổ sung thêm các phép toán số nguyên, dấu chấm động, thao tác nạp, lưu trữ, và điều khiển bộ xử lý, cùng với đồng bộ bộ nhớ Các thao tác phổ biến trong một ISA được minh họa qua hình ảnh (Hình 2-2).

Hình 2 2: Các thao tác ISA đơn giản

2.1.1.2 Ứng dụng cụ thể của mô hình ISA Ứng dụng cụ thể của mô hình ISA xác định các bộ xử lý dành cho các ứng dụng nhúng cụ thể, ví dụ các bộ xử lý cho TV Một số ứng dụng cụ thể của mô hình ISA được thực hiện bởi các bộ xử lý nhúng, các mô hình phổ biến nhất là:

Mô hình điều khiển – Controller model

Các bộ điều khiển ISA được triển khai trong các bộ xử lý mà không cần thực hiện các thao tác dữ liệu phức tạp Chẳng hạn, các bộ xử lý âm thanh và video thường được sử dụng như các bộ xử lý phụ trong bảng mạch TV.

Hình 2 3: Ví dụ bảng mạch TV tương tự với sự thi hành bộ điều khiển ISA

Mô hình đường dữ liệu – Datapath model

Mô hình datapath được áp dụng trong các bộ xử lý nhằm thực hiện nhiều phép toán cố định trên các tập dữ liệu khác nhau Một ví dụ tiêu biểu cho mô hình này là bộ xử lý tín hiệu số (DSP), như được minh họa trong Hình 2-4.

Hình 2 4: Board ví dụ với điện thoại di động thực hiện kỹ thuật số ISA đường dữ liệu

Finite State Machine with Datapath (FSMD) Model

FSDM ISA kết hợp giữa Datapath ISA và Controller ISA dành cho các bộ xử lý, giúp loại bỏ yêu cầu thực hiện các thao tác dữ liệu phức tạp và giảm thiểu việc lặp lại tính toán các phép toán cố định trên nhiều bộ dữ liệu khác nhau.

Ví dụ của FSMD thực hiện các ứng dụng cụ thể:

Mạch tích hợp ASICs thể hiện trên hình 2-5, các thiết bị logic khả trình (PLD), FPGA

Hình 2 5: Board ví dụ với máy quay kỹ thuật số FSMD ISA

Mô hình máy ảo Java (Java Virtual Machine: JVM)

ISA JVM được xây dựng dựa trên tiêu chuẩn Java Virtual Machine, cho phép thực hiện trong các hệ thống nhúng thông qua phần cứng.

Hình 2 6: Ví dụ thực hiện JVM ISA

2.1.1.3 Các mô hình ISA đa năng (General-Purpose ISA models)

Các mô hình ISA đa năng thường được triển khai trong các bộ xử lý nhằm phục vụ cho nhiều hệ thống khác nhau, không chỉ giới hạn trong các hệ thống nhúng Một số dạng phổ biến của các mô hình ISA đa năng trong bộ xử lý nhúng bao gồm:

Mô hình tính toán với tập lệnh phức tạp (Complex Instruction Set

CISC ISA, hay kiến trúc tập lệnh phức tạp, được thiết kế để thực hiện nhiều hoạt động phức tạp thông qua nhiều lệnh khác nhau Một số ví dụ tiêu biểu cho kiến trúc CISC ISA bao gồm các dòng bộ xử lý Intel x86 và Motorola/Freescale 68000.

Hình 2 7: Ví dụ thực hiện CISC ISA

Mô hình tính toán với tập lệnh rút gọn (Reduced Instruction Set Computing: RISC)

Hình 2 8: Ví dụ thực hiện RISC ISA

Trái ngược với CISC, RISC ISA thường định nghĩa:

- Một kiến trúc đơn giản và/hoặc hoạt động ít hơn gồm ít lệnh hơn

- Một kiến trúc giảm số chu kì hoạt động

- Các bộ xử lý RISC chỉ có một chu kì hoạt động trong khi CISC thường có nhiều chu kì

- ARM, PowerPC, SPARC, MIPS là một vài ví dụ về kiến trúc RISC cơ bản

Trong lĩnh vực tính toán đa năng, nhiều mẫu thiết kế bộ vi xử lý hiện nay thuộc loại chip CISC hoặc RISC chủ yếu do tính kế thừa Các bộ xử lý RISC ngày càng phức tạp hơn, trong khi các bộ xử lý CISC ngày càng hiệu quả hơn để cạnh tranh với chip RISC Điều này làm mờ đi ranh giới giữa các định nghĩa của kiến trúc RISC và CISC, dẫn đến việc những bộ xử lý này mang cả hai thuộc tính, bất chấp các định nghĩa truyền thống.

2.1.1.4 Các mô hình ISA song song mức lệnh (Instruction-Level Parallelism ISA Models)

Các thành phần phần mềm của hệ thống

2.2.1 Trình điều khiển thiết bị

Các ví dụ về bộ điều khiển cổng I/O

Hệ thống con I/O yêu cầu quản lý phần mềm thông qua các thành phần tích hợp trong bộ xử lý chủ, như bộ điều khiển thụ động I/O Các bộ điều khiển I/O bao gồm bộ trạng thái và các thanh ghi điều khiển, giúp điều khiển bộ xử lý và duy trì trạng thái của nó Tùy thuộc vào hệ thống con I/O, một số hoặc tất cả trong 10 đặc trưng chức năng của bộ điều khiển thiết bị sẽ được thực thi trong bộ điều khiển I/O.

• I/O Startup, là phần khởi động của nguồn cấp cho I/O hoặc khởi động lại

• I/O Shutdown, thiết lập I/O trở về trạng thái tắt nguồn của nó

• I/O Disable, cấp phát chương trình khác để ngăn chặn hoạt động của I/O

• I/O Enable, cấp phát chương trình khác để kích hoạt hoạt động của I/O

• I/O Acquire, cấp phát chương trình khác để khuếch đại truy cập đơn lẻ (chốt) tới I/O

• I/O Release, cấp phát chương trình khác để nghỉ (mở chốt) I/O

• I/O Read, cấp phát chương trình khác để đọc dữ liệu từ I/O

• I/O Write, cấp phát chương trình khác để viết dữ liệu lên I/O

• I/O Install, cấp phát chương trình khác để cài đặt hoạt động mới của I/O

• I/O Unistall, cấp phát chương trình khác để gỡ bỏ hoạt động của I/O đã được cài đặt

Các chương trình khởi động Ethernet và RS232 I/O cho PowerPC và ARM được minh họa qua ví dụ về hệ thống thiết bị khởi động I/O Những ví dụ này cho thấy cách thực hiện I/O trong các cấu trúc như PowerPC và ARM, đồng thời cung cấp hướng dẫn để phát triển hệ thống I/O trên các bộ xử lý phức tạp hoặc đơn giản hơn.

Ví dụ khởi tạo Driver RS-232:

Chuỗi giao thức I/O không đồng bộ RS-232, hay còn gọi là EIA-232, được xây dựng dựa trên tiêu chuẩn của hội công nghiệp điện tử Các tiêu chuẩn này xác định các thành phần chính trong bất kỳ hệ thống RS-232 nào được triển khai trong phần cứng.

Firmware yêu cầu kích hoạt ánh xạ đặc trưng tới phiên thấp hơn của lớp liên kết dữ liệu vật lý Mặc dù các bộ phận phần cứng có thể được ánh xạ hoàn toàn tới lớp vật lý của mô hình OSI, nhưng nội dung này sẽ không được đề cập trong bài viết này.

Bộ phận RS-232 được tích hợp sẵn trong bộ xử lý chủ được gọi là giao diện RS-

Giao thức RS-232 có khả năng lập trình truyền dẫn đồng bộ và không đồng bộ Trong trường hợp truyền không đồng bộ, firmware được thực thi trong bộ phận UART sẽ đảm nhận việc truyền dữ liệu theo thứ tự.

Dữ liệu truyền qua RS-232 theo phương thức không đồng bộ được tổ chức thành chuỗi bit với tốc độ cố định Khung truy cập của UART được mô tả trong hình 2-36.

Hình 2 46: Sơ đồ khung RS-232

2.2.2 Hệ điều hành thời gian thực

Hệ điều hành thời gian thực là một hệ điều hành hỗ trợ cấu trúc của hệ thống thời gian thực

Trạng thái định thời của hệ điều hành (OS) cần được dự đoán trước để đảm bảo ràng buộc thời gian thực cho từng dịch vụ Có nhiều mức độ dự đoán khác nhau; ví dụ, các lệnh gọi đơn giản như "đưa cho tôi thời gian trong ngày" có thể có sự thay đổi thời gian thực hiện không đáng kể Ngược lại, các lệnh gọi phức tạp hơn như "đưa cho tôi 4MB bộ nhớ độc lập" có thể có sự thay đổi lớn Đặc biệt, danh sách các ràng buộc thời gian thực (RTOS) cần được xác định rõ ràng, trong khi tiêu chuẩn Java không quy định thứ tự thực thi cho các luồng Thêm vào đó, trong Java, đã có nhiều nỗ lực nhằm cải thiện việc thu gom dữ liệu rác.

Trong thời gian lệnh ngắt, có thể không gây trở ngại cho việc thực hiện các nhiệm vụ, đảm bảo loại trừ lẫn nhau trên hệ thống bộ vi xử lý đơn Để tránh sự chậm trễ không mong muốn trong việc xử lý các sự kiện quan trọng, các ngắt bị vô hiệu hóa nên được giữ ở mức tối thiểu Đối với hệ điều hành thời gian thực (RTOS) thực hiện hệ thống tập tin, việc lưu trữ các tập tin kề nhau trên đĩa là cần thiết để giảm thiểu sự di chuyển không dự đoán của đầu đĩa.

OS cần phải được quản lí thời gian và lịch trình các nhiệm vụ

Lịch trình là quá trình ánh xạ giữa các nhiệm vụ và thời gian thực hiện, trong đó việc xác định thời điểm bắt đầu được coi là một trường hợp đặc biệt.

Hệ điều hành (OS) cần nhận biết nhiệm vụ đúng thời hạn để áp dụng lịch trình kỹ thuật phù hợp, trong đó lịch trình thực hiện gián tiếp và OS chỉ cung cấp dịch vụ khởi động nhiệm vụ vào thời điểm cụ thể hoặc theo mức độ ưu tiên Để đảm bảo hiệu quả, OS phải cung cấp dịch vụ thời gian chính xác với độ chính xác cao, giúp phân biệt giữa bản gốc và các lỗi con Điều này cũng có thể hỗ trợ trong việc xác định năng lượng của máy, từ đó chịu trách nhiệm cho việc mất nguồn.

Ngoài khả năng dự đoán, hệ điều hành thời gian thực (RTOS) cần hỗ trợ các ứng dụng với thời hạn trên tỉ lệ giây Mỗi RTOS bao gồm một hệ thống điều hành chính, là bộ phận quản lý cốt lõi trong mỗi hệ thống, bao gồm bộ xử lý, bộ nhớ và hệ thống giờ Bộ phận này bảo vệ các thiết bị máy, không yêu cầu sự hiện diện của các yếu tố an toàn hay bảo mật.

Bộ phận chính của hệ thống đảm nhận các chức năng quan trọng như quản lý nhiệm vụ, đồng bộ hóa nhiệm vụ và truyền dữ liệu, quản lý thời gian, cùng với quản lý bộ nhớ.

Một số hệ điều hành thời gian thực (RTOS) được phát triển cho các ứng dụng chung, trong khi những hệ thống khác lại chuyên biệt cho một lĩnh vực nhất định Chẳng hạn, OSEK/VDX OS được thiết kế đặc biệt cho điều khiển tự động, nhờ đó nó có kích thước nhỏ gọn.

Nhiều RTOS cung cấp API chuẩn, nhưng cũng có những API độc quyền với các đặc điểm riêng Ví dụ, một số RTOS tương thích với POSIX RT mở rộng cho UNIX, OSEK/VDX OS hoặc ITRON, một hệ điều hành phổ biến tại Nhật Bản Mỗi loại RTOS thường có API riêng, và ITRON là một RTOS hoàn chỉnh sử dụng liên kết cấu hình.

Middleware là phần mềm hệ thống quan trọng, không chỉ là một phần của hệ điều hành hay các bộ điều khiển thiết bị, mà còn có thể được tích hợp vào các bộ thực thi của hệ điều hành Trong các hệ thống nhúng, middleware thường được đặt bên trong bộ điều khiển thiết bị hoặc ở lớp trên cùng của hệ điều hành, và đôi khi được hợp nhất với hệ điều hành.

HỆ ĐIỀU HÀNH THỜI GIAN THỰC DÙNG CHO CÁC HỆ THỐNG NHÚNG

THIẾT KẾ VÀ CÀI ĐẶT CÁC HỆ THỐNG NHÚNG

PHÁT TRIỂN HỆ THỐNG NHÚNG DỰA TRÊN HỆ VI XỬ LÝ NHÚNG

Ngày đăng: 02/03/2022, 08:42

TỪ KHÓA LIÊN QUAN

w