AUTOSAR – Base Software Overview

AUTOSAR - Base Software Overview
Hình 1: AUTOSAR – Base Software Overview

Các lớp kiến trúc Autosar gồm có:

1. ASW (Application Software)

  • Functional Modules (application software) that communicate with RTE

2. RTE (Run Time Environment)

  • Middleware which realizes the communication between the software components and basic software

3. BSW (Base Software)

  • Standardized software modules that are necessary for the functioning of the higher software layers

Thông tin ch tiết

  • Phía trên RTE chính là Hardware independent, lớp abstraction layer này cho phép customer phát triển ứng dụng cụ thể mà không phụ thuộc vào hardware bên dưới.

Đặc điểm của phần mềm theo kiến trúc autosar là khả năng mở rộng phần mềm cho ECU software cho nhiều dòng xe và các variant khác nhau.

Ví dụ: Nếu nhà sản xuất xe hơi có nhiều variant khác nhau thì có thể sử dụng lại phần mềm một cách linh hoạt cho ECU bởi vì độc lập với hardware. Điều đó có nghĩa là một nhà sản xuất xe hơi có thể phát triển ứng dụng cho hệ thống parking system và sử dụng chính phần mềm đó cho nhiều hardware khác nhau.

Autosar cũng cho phép chia ra các functions khác nhau trên ECU (Ví dụ: trong hệ thống Engine Control unit của Internal Combustion Engine, Lớp ASW có thể chia ra các component về điều khiển đánh lửa, phun xăng, … và các component này độc lập với nhau. Chính vì vậy khi cần nâng cấp module điều khiển đánh lửa thì sẽ không làm ảnh hưởng đến các components khác –> Giảm thời gian phát triển phần mềm, tái sử dụng phần mềm, dễ bảo trì checking khi có lỗi xảy ra).

Trong Autosar, Layer phía dưới RTE cho phép tiêu chuẩn hóa và sự độc lập của customer với basic software. Những nhà phát triển lớp BSW chỉ tập trung vào phát triển Hardware Specification mà không cần quan tâm đến Application software.

Base Software Overview
Hình 2: Base Software Overview

Lớp Basic software được chia ra các lớp nhỏ hơn(Service Layer, ECU Abstraction Layer, MCAL và Complex Device Driver )

Sự chia tách của lớp Application và lớp Basic Software bởi lớp RTE bao gồm sự điều khiển trao đổi data giữa các layers này.

Lớp Complex Device Driver là một lớp đặc biệt của Autosar trong trường hợp lớp application muốn truy cập lớp hardware một cách nhanh hơn.

Summary:

  • Lớp Application Software hầu như độc lập với hardware.
  • Sự giao tiếp giữa lớp Application Software và Basic Software phải thông qua lớp RTE.
  • Lớp BSW được chia ra 3 lớp nhỏ hơn và Complex Device Driver. 3 lớp chính này bao gồm: Service Layer, ECU Abstraction Layer và Microcontroller Abstraction Layer.

– BSW được tiêu chuẩn hóa, cung cấp các services đến các software component.

– BSW không thực hiện bất kỳ functional job nào cả và nằm dưới lớp RTE.

– BSW bao gồm các component được tiêu chuẩn hóa và các component cụ thể của ECU.

– Các component mà giao tiếp trực tiếp với microcontroller được gọi là ECU specific components, đó là operating system, microcontroller abstraction layer và complex device driver.

– Các module khác của BSW như memory, communication service, … được tiêu chuẩn hóa.

– MCAL là lớp thấp nhất của BSW, nó chứa các driver truy cập trực tiếp đến microcontroller, ngoại vi và memory. Truy cập trực tiếp vào các thanh ghi của microcontroller thông qua microcontroller abstraction layer.

– MCAL là lớp hardware specification đảm bảo rằng các interface được tiêu chuẩn hóa của BSW.

– MCAL quản lý các ngoại vi của microcontroller.

– MCAL thực hiện các thông báo để hỗ trợ chia ra các lệnh phản hồi và thông tin để xử lý.

MCAL được chia ra 4 phần:

  1. IO drivers bao gồm các driver cho ADC, PWM, Digital IO, …
  2. Communication driver như SPI, I2C và các giao tiếp khác trên ô tô như CAN và LIN.
  3. Memory driver cho on-chip memory devices ví dụ như internal flash, internal EEPROM và external memory devices như External Flash.
  4. Micro controller driver cho Internal peripheral như Watchdog và các function truy cập trực tiếp và microcontroller.

Lớp này cung cấp các interface đến các giá trị của bất kỳ ECU nào để phân tách lớp SW cao hơn hadware.

ECU abstraction layer được chia ra IO hardware abstraction, communication abstraction, memory abstraction và on board device abstraction.

IO Hardware Abstraction là một nhóm các modules. Nhiệm vụ của nhóm này là đại diện cho các IO signals mà chúng connect đến ECU hardware. Ví dụ như Curent, Voltage, Frequency.

Tham khảo: Specification of I/O Hardware Abstraction

Communication Hardware Abstraction là một nhóm các modules. Đối với tất cả các hệ thống giao tiếp , lớp này là bắt buộc. Ví dụ như LIN, CAN, Flexray … Nhiệm vụ chính của nhóm này là cung cấp truy cập vào các Bus bất kể nó đến từ đâu, on-chip hay on-board.

Tham khảo:

Memory Hardware Abstraction là một nhóm các modules tóm tắt từ peripheral memory devices, hoặc là on board hay on chip. Ví dụ: EEPROM on chip và external EEPROM devices nên được truy xuất một cơ chế ngang bằng. Memory drivers được truy cập thông qua các interface cụ thể được gọi là EEPROM interface. Nhiệm vụ của nhóm này là cung cấp cơ chế truy cập bộ nhớ internal hay external.

Tham khảo:

On board device abstraction chứa các drivers cho eCU mà không được nhìn thấy của sensor hay actuator như system basic chip, external watchdog, … Nhiệm vụ của nhóm này là trừu tượng hóa các ECU specific trên các board devices.

Tham khảo:

Lớp service layer được chia ra làm 3 phần khác nhau: OS services, Memory service, Com Service.

Communication Services là một nhóm các modules cho hệ thống giao tiếp trên ô tô như CAN, LIN, Flexray và MOST. Lớp này giao tiếp với communication driver thông qua Communication Hardware Abstraction.

Nhiệm vụ của nhóm các module này là

  • Cung cấp các interface chuẩn cho mạng giao tiếp trên ô tô với nhiều ứng dụng khác nhau.
  • Cung cấp các service chuẩn cho Network Management.
  • Cung cấp các interface chuẩn cho Diagnostic Communication.
  • Che dấu các giao thức, thuộc tính của massage từ Application.

Memory Services là một nhóm các modules chịu trách nhiệm cho việc quản lý đọc/ ghi các nonvolatile memory từ các memory drivers khác nhau.

NVRAM manager cung cấp “RAM mirror” như là một data interface để cho application đọc dữ liệu nhanh chóng.

Nhiệm vụ của nhóm các module này là cung cấp các nonvolatile data với application một cách tiêu chuẩn, để trừu tượng các memory locations và thuộc tính để cung cấp cơ chế cho việc quản lý nonvolatile data như saving, loading, check sum protection, và verification, reliable storage …

Memory Services là một nhóm các modules và functions mà có thể được sử dụng bởi các modules của tất cả các layers.

Ví dụ: RTOS, error management và library functions như CRC, interpolation, …

Một số các services phụ thuộc vào microcontroller như operating system.

ECU hardware are application dependent, như ECU state management, diagnostic communication.

Nhiệm vụ của nhóm các module này là cung cấp các services cơ bản cho application và các basic software modules.

Thực hiện complex sensor và actuator control với truy xuất trực tiếp đến microcontroller bằng việc sử dụng các interrupts cụ thể và truy xuất đến complex microcontroller peripherals.

Nhiệm vụ của nhóm các module này là thỏa mãn được các chức năng đặc biệt và yêu cầu thời gian cho việc handling complex sensor và actuator như injection control, electrical valve control, …

Xa hơn, Complex Device Driver sẽ được dùng để thực hiện implement driver cho các hardwares mà không được support bởi Autosar.

Ví dụ, một hệ thống giao tiếp mới sẽ được giới thiệu nhưng mà không có Autosar driver tại thời điểm đó. Để cho phép việc giao tiếp này diễn ra thì driver sẽ được triển khai bên trong Complex Device Driver.

Leave a Reply