1. Tổng Quan Kiến Trúc Phân Lớp AUTOSAR.

Kiến trúc phân lớp (Layered Architecture) của AUTOSAR cung cấp toàn bộ cơ chế cần thiết để đạt được sự độc lập giữa phần mềm và phần cứng. Toàn bộ phần mềm chạy trên vi điều khiển (microcontroller) được chia thành ba lớp chính:

  • ASW – Application Software Layer.
  • RTE – Runtime Environment.
  • BSW – Basic Software.

Ý tưởng cốt lõi của kiến trúc này là tách biệt hoàn toàn phần mềm ứng dụng (không phụ thuộc phần cứng) với phần mềm nền tảng (phụ thuộc phần cứng) thông qua tầng trung gian RTE.

2. Vai Trò Của RTE – “Bức Tường Ngăn Cách” Quan Trọng

RTE đóng vai trò như một lớp trừu tượng hóa rõ ràng:

  • Phía trên RTE: hoàn toàn độc lập với phần cứng. Nhờ đó, các nhà phát triển có thể xây dựng phần mềm ứng dụng cạnh tranh mà không cần lo về loại chip hay board mạch sử dụng.
  • Phía dưới RTE: cho phép chuẩn hóa và phát triển BSW độc lập với ứng dụng. Các lập trình viên BSW chỉ cần tập trung vào các đặc thù của phần cứng.
  • Lợi ích thực tế: Một nhà sản xuất ô tô có thể tái sử dụng cùng một phần mềm ứng dụng (ví dụ: hệ thống hỗ trợ đỗ xe – Parking Assist) trên nhiều biến thể xe khác nhau với phần cứng ECU khác nhau. Chi phí phát triển chỉ bỏ ra một lần, nhưng lại được sử dụng trên nhiều dòng xe và nhiều biến thể.

3. Cấu Trúc Chi Tiết Của Basic Software (BSW).

BSW được phân chia thành ba lớp con chính và một thành phần đặc biệt:

  • Services Layer (Lớp dịch vụ).
  • ECU Abstraction Layer (Lớp trừu tượng hóa ECU).
  • MCAL – Microcontroller Abstraction Layer.
  • Complex Device Drivers (CDD)

BSW là nhóm component đã được chuẩn hóa, cung cấp các dịch vụ cho các software component phía trên. Nó không thực hiện chức năng nghiệp vụ nào của xe, mà chỉ phục vụ nền tảng. Nó chứa cả các component đã chuẩn hóa (Memory, Communication Services…) lẫn các component đặc thù ECU (OS, MCAL, Complex Device Drivers).

3.1. MCAL – Microcontroller Abstraction Layer.

MCAL là lớp thấp nhất của BSW, tiếp xúc trực tiếp với phần cứng vi điều khiển. Đây là lớp đặc thù phần cứng duy nhất, đảm bảo cung cấp các interface (API) chuẩn cho các lớp BSW bên trên.

Chức năng của MCAL:

  • Quản lý các ngoại vi của vi điều khiển.
  • Cung cấp các giá trị độc lập với vi điều khiển cho các component BSW bên trên.
  • Thực hiện các cơ chế thông báo (notification) để phân phối lệnh, phản hồi và thông tin xử lý.

MCAL được chia thành bốn nhóm driver:\

  • IO Drivers – Các driver cho ngoại vi I/O:
    • ADC (Analog to Digital Converter).
    • PWM (Pulse Width Modulation), ICU (Input Capture).
    • Digital IO.
  • Communication Drivers – Giao tiếp nội bộ và xe:
    • Giao tiếp nội bộ ECU: SPI, I2C, UART,…
    • Giao giữa các ECU trong xe: CAN, LIN, Flexray, Ethernet…
  • Memory Drivers – Bộ nhớ:
    • Flash nội (Internal Flash), EEPROM nội.
    • Bộ nhớ ngoài (External Flash, External EEPROM).
  • Microcontroller Drivers – Ngoại vi nội bộ:
    • Watchdog, MCUvà các chức năng truy cập trực tiếp vi điều khiển.

3.2. ECU Abstraction Layer.

Lớp này nằm trên MCAL, cung cấp giao diện phần mềm đến các giá trị điện học của một ECU cụ thể, giúp tách biệt các lớp phần mềm cấp cao hơn khỏi tất cả các phụ thuộc phần cứng bên dưới.

ECU Abstraction Layer gồm 4 nhóm:

  • IO Hardware Abstraction:
    • Trừu tượng hóa vị trí của các thiết bị ngoại vi I/O (on-chip hay on-board) và layout phần cứng ECU (kết nối pin vi điều khiển, mức tín hiệu…).
    • Nhiệm vụ: biểu diễn tín hiệu I/O theo dạng điện (dòng, áp, tần số) và ẩn đi các thuộc tính layout phần cứng.
  • Communication Hardware Abstraction:
    • Trừu tượng hóa vị trí của các controller giao tiếp. Yêu cầu có một abstraction riêng cho mỗi hệ thống giao tiếp (LIN, CAN, FlexRay…).
    • Nhiệm vụ: cung cấp cơ chế truy cập BUS channel đồng nhất bất kể controller nằm on-chip hay on-board.
  • Memory Hardware Abstraction.
    • Trừu tượng hóa vị trí các thiết bị bộ nhớ ngoại vi. Ví dụ: EEPROM on-chip và EEPROM ngoài đều được truy cập qua cùng một cơ chế (qua EEPROM Interface).
  • On-Board Device Abstraction.
    • Chứa các driver cho các thiết bị on-board của ECU không thuộc dạng cảm biến/cơ cấu chấp hành như external watchdogs… Truy cập các thiết bị này thông qua MCAL.

3.3. Services Layer.

Đây là lớp cao nhất trong BSW, nằm ngay dưới RTE. Gồm ba nhóm dịch vụ chính:

  • Communication Services.
    • Tập hợp các module phục vụ giao tiếp mạng xe: CAN, LIN, FlexRay, Ethernet…
    • Nhiệm vụ:
      • Cung cấp Interface thống nhất đến mạng xe cho giao tiếp giữa các ứng dụng.
      • Cung cấp dịch vụ quản lý mạng (Network Management) đồng nhất.
      • Cung cấp Interface thống nhất cho giao tiếp chẩn đoán (Diagnostic Communication).
      • Ẩn đi các thuộc tính giao thức và message khỏi ứng dụng.
  • Memory Services.
    • Quản lý việc đọc/ghi dữ liệu nonvolatile từ các memory driver khác nhau. NVRAM Manager cung cấp một RAM mirror làm giao diện dữ liệu cho ứng dụng để đọc nhanh.
    • Nhiệm vụ: cung cấp dữ liệu nonvolatile đồng nhất, trừu tượng hóa vị trí và thuộc tính bộ nhớ, cùng các cơ chế quản lý (lưu, tải, checksum, lưu trữ đáng tin cậy…).
  • System Services.
    • Nhóm các module và hàm có thể dùng bởi tất cả các lớp trong BSW. Bao gồm: Real-time OS, Error Management, thư viện hàm (CRC, Interpolation…), ECU State Manager, Diagnostic Communication Manager…

3.4. Complex Device Drivers (CDD).

CDD là thành phần đặc biệt được AUTOSAR cung cấp cho các tình huống mà ứng dụng cần truy cập phần cứng theo cách nhanh hơn – thường gặp với các tính năng yêu cầu thời gian thực (time-critical).

Lý do tồn tại của CDD:

  • Việc truyền dữ liệu qua nhiều lớp BSW sẽ mất thêm thời gian – không phù hợp với các hệ thống cần phản hồi tức thì.
  • Dùng để triển khai driver cho phần cứng chưa được AUTOSAR hỗ trợ.