- vừa được xem lúc

Giải mã AUTOSAR: Kiến trúc để đời ngành Automotive - Phần 2

0 0 13

Người đăng: Hoang Nguyen Tan Dung

Theo Viblo Asia

Updating

Trong bài viết này, ta cùng tìm hiểu kỹ hơn về lớp trên cùng của kiến trúc, chính là lớp Application Layer (ASW).

Ví dụ, ta có một bài toán thực tế như sau:

Requirement

Đọc tốc độ từ cảm biến. Nếu tốc độ vượt quá ngưỡng cho phép vì một lý do không mong muốn:

  • Lập tức ngắt đầu phun.
  • Log lại lỗi để analyze.
  • Log lại tốc độ không mong muốn vừa đạt được vào bộ nhớ NvM (Non-volatile memory).

Design

  • cần 1 ecu abstract sw-c để đọc xung từ encoder.
  • Nối ngược lên trên ASW, nối với cục sensor actuator sw-c, đổi physical value sang software value (pulse -> km/h -> compumethod).
  • nối với 1 cục SW-C (SpdCtl) để tính toán.thông tin
  • nối với 1 biến calib để chặn lại nếu vượt max của biến đó.
  • nếu vượt max, nối với CDD (mấy vụ vượt mất kiểm soát như này sẽ được CDD chặn đầu ngay vì tính nhanh gọn của nó do được bỏ qua một mớ macro của AUTOSAR), từ đó ngắt đầu phun (injector) nhanh chóng.
  • từ cục sw-c nối với DEM để log lỗi, log vào trong NvM, NvM lưu vào flash.

Bên trong file .c của một SW-C:

#include "Rte_<SWC>.h" void Runnable() { int Speed; Speed = Distance/Time; Std_ReturnType _ASCET_RteStatus; // Rte_shortname_of_port_shortname_of_interface(Speed);  Rte_Write_P_Speed_Speed(Speed); // hoặc Rte_Read_R_Speed_Speed(&Speed); // đọc thẳng vào tham chiếu của biến mà không tạo ra bản copy // vừa tiết kiệm thời gian, vừa tiết kiệm bộ nhớ Rte_Call_<RPort>_<CSOperation>();
} Std_ReturnType Rte_Call_P_shortname_of_interface(x, y, &sum) { sum(x, y, &sum); return(RTE_E_OK);
}

Gọi là SW-C như thế, nhưng thực chất, các cháu này ngồi tụ lại với nhau theo từng cụm chức năng cụ thể, chứ không phải mỗi thằng lang thang một nơi.

Ở vai vế cao nhất, được coi là ông nội của các SW-C, ta có TopLvlComposition (Top level composition). Có thể nhìn thấy như một trong các chức năng general nhất trên xe, ví dụ như Combustion Engine (CmbEng).

Tiếp theo sẽ là bố của các SW-C, ta có Subcompo (Sub composition), tương tự, vẫn bao bọc các SW-C có chức năng nhỏ hơn, cụ thể hơn.

Với các SW-C có level thấp nhất, được xếp vào hàng cháu chắt, không thể chia nhỏ hơn được nữa, sẽ được gọi là Atomic Component.

Veh (TopLvlComposition):
├──DrAs, ElSS, ThS, VehC, VehM (Atom)
├──ADAS (Subcompo):
└─────ADASHR (Atom)
└─────AdasPred (Atom)

CmbEng (TopLvlComposition):
ETS (Subcompo):
├──CoEng, EngStrt, EngM (Atom)
├──EgSys (Subcompo):
└─────LamCL (Atom)
└─────PFlt (Atom)
└─────ExhMod (Atom)

Để ý sẽ thấy, các Atomic component có thể nằm cùng level với các Sub composition, không nhất thiết Subcompo mới phải nằm cùng với Subcompo,

Vậy, bên trong một SW-C có gì ? Vậy, các SW-C trò chuyện với nhau như thế nào ?

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giải mã AUTOSAR: Kiến trúc tiêu chuẩn ngành Automotive

Giới thiệu. AUTOSAR có vẻ khá xa lạ đối với người làm về công nghệ thông tin, nhưng đối với những bạn làm về Embedded System, đặc biệt là trong lĩnh vực Automotive, thì cũng.

0 0 18

- vừa được xem lúc

Giải mã AUTOSAR: Kiến trúc tiêu chuẩn ngành Automotive

Giới thiệu. AUTOSAR có vẻ khá xa lạ đối với người làm về công nghệ thông tin, nhưng đối với những bạn làm về Embedded System, đặc biệt là trong lĩnh vực Automotive, thì cũng.

0 0 18

- vừa được xem lúc

Giải mã AUTOSAR: Kiến trúc tiêu chuẩn ngành Automotive

Giới thiệu. AUTOSAR có vẻ khá xa lạ đối với người làm về công nghệ thông tin, nhưng đối với những bạn làm về Embedded System, đặc biệt là trong lĩnh vực Automotive, thì cũng.

0 0 18

- vừa được xem lúc

Từ khoá volatile trong lập trình C

Trong lập trình nhúng chắc hẵn bạn đã từng gặp phải tình huống khi chương trình C của bạn cho ra kết quả không đúng, mặc dù mã code có vẻ đúng? Một nguyên nhân có thể gây ra vấn đề này là việc tối ưu

0 0 17

- vừa được xem lúc

Con Trỏ Hàm - C/C++

Hàm Con Trỏ (Function Pointer) là gì. . Con trỏ tới hàm (A pointer to a function): Đây là biến lưu trữ địa chỉ hàm mà sau này có thể gọi bằng con trỏ này. .

0 0 12

- vừa được xem lúc

Cơ bản về WatchDog Timer trong hệ thống nhúng (Embedded System)

Khái Niệm. Trong hệ thống nhúng, a WatchDog Timer (Bộ đếm thời gian giám sát) là một thành phần hoặc tính năng của phần cứng được thiết kế để giám sát hoạt động của hệ thống và thực hiện hành động khắ

0 0 8