Deep Dive into AUTOSAR (01) - Giới thiệu chung về AUTOSAR
Lời mở đầu
- Chào mừng độc giả đến với chuỗi series đặc biệt về kiến trúc "để đời" của ngành Automotive – AUTOSAR!
- Trong chuỗi series này, chúng ta sẽ cùng khám phá từ những kiến thức nền tảng nhất như định nghĩa AUTOSAR, kiến trúc phân lớp của AUTOSAR, quy trình phát triển phần mềm ECU dựa trên kiến trúc này… đến những chủ đề chuyên sâu hơn như AUTOSAR classic/adaptive platform, ứng dụng thực tế và nhiều điều thú vị khác nữa.
- Chuỗi bài viết được xây dựng dành cho tất cả mọi người: từ các bạn học sinh, sinh viên đang tò mò tìm hiểu về cách vận hành phần mềm bên trong chiếc ô tô, đến những kỹ sư đang trực tiếp làm việc và ứng dụng AUTOSAR trong công việc hàng ngày, hay đơn giản là những ai yêu thích và muốn mở rộng hiểu biết về phần mềm nhúng trong ngành ô tô. Đừng lo nếu bạn chưa từng có nền tảng về hệ thống nhúng hay lập trình — mình sẽ cố gắng giải thích mọi khái niệm một cách đơn giản, dễ hiểu nhất có thể! Vì chuỗi blog này hướng đến nhiều đối tượng với trình độ và kiến thức khác nhau, nên nếu bạn đã có sẵn kiến thức nền tảng, hãy thoải mái bỏ qua những phần cơ bản và đi thẳng đến những chủ đề mà bạn cảm thấy hứng thú nhất!
- Người ta có câu: "A journey of a thousand miles begins with a single step" - tạm dịch: "Một hành trình ngàn dặm cũng chỉ bắt đầu bằng một bước chân". Và việc bạn mở đầu với bài blog này chính là bước chân đầu tiên trên con đường khám phá kiến trúc AUTOSAR, phát triển phần mềm nhúng ô tô, và hơn thế nữa.
- Kiến thức trong chuỗi bài viết được tổng hợp từ kinh nghiệm làm việc thực tế cùng nhiều nguồn tham khảo khác nhau trên mạng, nên không tránh khỏi những sai sót. Vì vậy, mình rất mong nhận được sự đánh giá và đóng góp ý kiến từ các độc giả tại phần bình luận cuối mỗi bài viết.
Mục lục
- Dưới đây là danh sách các mục chúng ta sẽ cùng nhau đi qua trong chuỗi series này:
- I. Giới thiệu chung về AUTOSAR
- II. Quy trình phát triển phần mềm ECU theo chuẩn AUTOSAR (AUTOSAR Methodology)
- III. Kiến trúc phân lớp của AUTOSAR Classic Platform (overview)
- IV. Application Layer trong AUTOSAR
- V. Runtime Environment (RTE) trong Autosar
- VI. Basic Software (BSW) trong Autosar
-
- Service Layer
-
- ECU Abstraction Layer (ECUAL)
-
- Microcontroller Abstraction Layer (MCAL)
-
- Complex Drivers (CDD)
-
- VII. AUTOSAR Stacks
-
- Communication Stack (COM Stack)
-
- Diagnostic Communication Stack (Diag Stack)
-
- Network Management Stack (NM Stack)
-
- Time Synchronization Stack
-
- Cybersecurity stack
-
- Ethernet AUTOSAR Stack
-
- VIII. AUTOSAR OS
- IX. AUTOSAR Adaptive Platform
- X. Case Study: Phân tích một dự án phát triển ECU dựa trên AUTOSAR thực tế
- Trong điều kiện lý tưởng, mỗi bài viết sẽ tương ứng 1 mục và sẽ được up vào 2 tuần 1 lần vào 20:00 thứ 6. Mình sẽ update link của từng bài viết trong mục này. Mong nhận được sự đón nhận của mọi người ^^ .
I. Giới thiệu chung về AUTOSAR
-
Giờ chúng ta hãy cùng nhau đi đến chương đầu tiên "Giới thiệu chung về AUTOSAR". Qua chương này chúng ta sẽ hiểu:
- AUTOSAR là gì?
- Sự tất yếu của AUTOSAR trong việc phát triển phần mềm nhúng cho ô tô.
- Tổng quan về mục tiêu, ý tưởng của AUTOSAR.
-
Trong những chương đầu đối tượng mà ta học và phân tích sẽ là Classic platform, nên ngoại trừ "Chương IX. AUTOSAR Adaptive Platform" thì hãy ngầm hiểu rằng chúng ta đang học về Classic Platform.
1. Khái niệm, lịch sử và bối cảnh ra đời
a. Bối cảnh ra đời
-
Trong những năm gần đây, các dòng ô tô hiện đại — đặc biệt là xe hạng sang — ngày càng được tích hợp nhiều tính năng tiên tiến như hệ thống giải trí thông minh, dịch vụ trực tuyến, hỗ trợ lái xe tự động, giữ làn đường, thậm chí những tiện ích tưởng chừng như đơn giản như hệ thống làm mát/sưởi ấm trong xe cũng phải thu thập và tính toán dữ liệu từ vài chục cảm biến khác nhau v.v. Điều này kéo theo sự gia tăng nhanh chóng về độ phức tạp trong kiến trúc tổng thể của phương tiện.
-
Không chỉ vậy, trong quá trình phát triển xe cũng thường tồn các yêu cầu mâu thuẫn với nhau — chẳng hạn như vừa phải hỗ trợ các hệ thống ADAS tiên tiến, vừa phải đảm bảo hiệu suất nhiên liệu và đáp ứng tiêu chuẩn môi trường khắt khe từ từng quốc gia.
-
Trong bối cảnh này,một phương pháp tiếp cận mới trong việc thiết kế và phát triển phần mềm ECU là điều tất yếu. Nếu không có một kiến trúc phần mềm tiêu chuẩn, việc đáp ứng đồng thời tất cả những yêu cầu ngày càng đa dạng và phức tạp đó gần như là không thể.
b. Lịch sử
- Chính từ nhu cầu cấp thiết đó, AUTOSAR (AUTomotive Open System ARchitecture) đã ra đời. Năm 2003, các hãng sản xuất ô tô (OEMs) và các nhà cung cấp linh kiện, phần mềm trong ngành công nghiệp ô tô đã cùng nhau thành lập một liên minh để phát triển một kiến trúc phần mềm tiêu chuẩn – đó chính là AUTOSAR.
- Năm 2005, phiên bản đầu tiên AUTOSAR R1.0 chính thức được phát hành.
- Tuy nhiên, phải đến phiên bản R3.0, AUTOSAR mới được áp dụng vào các sản phẩm ECUs thực tế trong ngành.
- Tính đến nay, phiên bản mới nhất là AUTOSAR R24-11, được phát hành vào tháng 12 năm 2024.
c. Khái niệm
- Vậy AUTOSAR là gì? Khi nhắc đến AUTOSAR, nhiều người thường liên tưởng ngay đến kiến trúc phần mềm phân lớp của các ECU. Tuy nhiên, AUTOSAR còn là một khái niệm rộng hơn thế. AUTOSAR là một liên minh phát triển phần mềm ô tô toàn cầu bao gồm các hãng sản xuất ô tô (OEMs), nhà cung cấp linh kiện, công ty phần mềm, bán dẫn và các doanh nghiệp hoạt động trong lĩnh vực điện tử ô tô.
- Với khẩu hiệu:
"Cooperate on Standards, Compete on Implementation" (Hợp tác trên tiêu chuẩn – Cạnh tranh trên cách thực thi)
- Các mục tiêu chính của AUTOSAR bao gồm:
- Chuẩn hóa các tương tác (interfaces) giữa các hàm chức năng của phần mềm ứng dụng (application software) và các hàm chức năng cơ bản (basic functions).
- Định nghĩa một kiến trúc tham chiếu thống nhất cho phần mềm ECU.
- Chuẩn hóa định dạng trao đổi thông tin giữa các bên trong quá trình phát triển phân tán (Distributed Development Process).
- Những lợi ích mà AUTOSAR mang lại:
- Tối ưu hóa mạng lưới ECU thông qua khả năng linh hoạt trong việc tích hợp, tái phân bố và mở rộng chức năng phần mềm.
- Quản lý hiệu quả độ phức tạp ngày càng tăng của hệ thống và quy trình phát triển sản phẩm.
- Cải thiện khả năng bảo trì phần mềm xuyên suốt vòng đời của sản phẩm.
2. Ý tưởng
-
Để có thể đạt được những mục tiêu nêu trên, về cơ bản AUTOSAR sẽ bao gồm:
- Software Components - SWCs
- Runtime Enviroment - RTE
- Basic Software - BSW
-
Các thành phần, đồng thời các tương tác (interfaces) giữa chúng được định nghĩa một cách chính thức từ đó tạo nên một tập các thành phần của kiến trúc AUTOSAR.
-
Trong đó, BSW cung cấp các dịch vụ tiêu chuẩn cơ bản như giao tiếp trên bus, quản lý bộ nhớ, truy cập ngoại vi (IO), quản lý hệ thông và các dịch vụ chuẩn đoán (diagnostic). SWCs là nơi chứa các xử lý logic, tiếp nhận dữ liệu, xử lý và đưa ra các lệnh điều khiển, bằng cách sử dụng các interfaces mà BSW cung cấp. Và nằm giữa chúng là RTE, với chức năng điều khiển sự liên kết giữa các SWCs với nhau và giữa các SWCs với BSW.
- Ngoài ra, AUTOSAR còn quy định Virtual Functional Bus (VFB) - một khái niệm trừu tượng biểu diễn cho giao tiếp giữa các SWCs và việc sử dụng các dịch vụ do BSW cung cấp. Chính nhờ việc coi toàn bộ giao tiếp của SWCs nằm trên VFB, nên các SWCs độc lập hoàn toàn với phần cứng của ECU. Qua đó đạt được các lợi ích như việc sử dụng lại các SWCs giữa các dự án và nền tảng. VFB được ứng dụng cho từng phương tiện cụ thể bằng cách cấu hình RTE kết hợp với BSW phù hợp cho mỗi ECU.
- Về cơ bản, VFB là một ý tưởng trừu tượng hóa truyền thông, giúp các SWCs không phụ thuộc vào các layer phía dưới. Bản chất nó là các tương tác cứng (concrete interfaces) được tạo ra trong quá trình config RTE và BSW.
- Những khái niệm trên sẽ ngày càng rõ hơn khi chung ta đi sâu vào nội dung ở các chương sau với các ví dụ minh họa, ứng dụng thực tế của chúng, nên hãy đừng cảm thấy lo sợ khi cảm thấy không hiểu rõ ràng về các khái niệm được nhắc tới.
Tổng kết & Takeaways
- AUTOSAR không chỉ đơn giản là kiến trúc mà là sự chuẩn hóa về:
- Kiến trúc phần mềm ECU.
- Các tương tác giữa các thành phần
- Định dạng trao đổi thông tin (các file mô tả dùng cho quá trình phát triển phân tán).
- Để đạt được sự chuẩn hóa trên, AUTOSAR gồm các lớp cơ bản như SWCs, RTE, BSW.
- Việc giao tiếp giữa SWCs và sử dụng dịch vụ do BSW cung cấp được trừu tượng hóa bởi khái niệm VFB.
Cảm ơn bạn đọc đã đọc hết bài viết, nếu thấy hay và bổ ích nhớ follow và upvotes. Mọi sự ủng hộ đều có ý nghĩa to lớn với tác giả. Đồng thời, Mọi vấn đề cần thảo luận xin hãy comment vào dưới bài viết.
Hẹn gặp lại và bài viết sau!
Buy me a cup of coffee: TPBank - 0868842948 - Dang Anh Quan
All rights reserved