🌱 AUTOSAR 01. Autosar là gì?

🌱 AUTOSAR 01. Autosar là gì?

AUTOSAR

    Bài này là bài viết mở đầu cho chuỗi bài giới thiệu về kiến trúc Autosar, một kiến trúc quen thuộc trong các lĩnh vực Automotive. Để hiểu và học tập chuỗi bài này, các bạn cần có kiến thức chung về Embedded, lập trình C, kiến trúc phân lớp, một số kiến thức chung về vi điều khiển như UART, CAN, I2C, ... Với chuỗi bài viết này, mình sẽ thống nhất sử dụng các thuật ngữ chung bằng tiếng anh, một vài thuật ngữ được giới thiệu ở bài viết AUTOSAR Notes.

Nội dung bài viết

    👉 AUTOSAR là gì?

    AUTOSAR - viết tắt của AUTomotive Open System ARchitecture, là một kiến trúc phân lớp, với các thông số kỹ thuật tiêu chuẩn được quy định bởi một nhóm các công ty: BMW Group, BOSCH, Continental, Daimler, Ford, General Motors, PSA Group, Toyota, VOLKSWAGEN.

    Trên đây là những thành viên chính (Core Members) của mối quan hệ đối tác AUTOSAR, những công ty/tập đoàn đã sáng lập ra chuẩn AUTOSAR. Trên thực tế có nhiều thể loại thành viên khác nhau đóng góp cho sự phát triển của AUTOSAR: Core Members, Premium Members, Development Members.

    Ngoài các Core Members, có nhiều Premium Members cũng đang tham gia phát triển các công cụ phát triển (tool development), service providers, ... nhằm tiêu chuẩn hóa việc phát triển phần mềm cho ECU sử dụng trong các ứng dụng Automotive.

    AUTOSAR được triển khai theo mô hình phân lớp, giống như mô hình OSI. Các lớp trong mô hình này dùng để xử lý và trừu tượng hóa các hoạt động khác nhau của code. AUTOSAR được sử dụng cho các vi điều khiển với mục đích sử dụng cho các ứng dụng automotive - CAN, FlexRay, Ethernet, ...

Autosar layer architecture
Autosar layer architecture

    Hình trên là một kiến trúc phân lớp đơn giản nhất theo Autosar,

  • Application Layer: Tầng này chứa code ứng dụng ở tầng cao nhất. Nó có thể bao gồm các khối ứng dụng khác nhau gọi là SWCs - Software Components cho từng tính năng mà ECU cần hỗ trợ tùy theo từng ứng dụng. Ví dụ, các chức năng như power window hay temperature measurement chính là các SWC riêng biệt.
  • AUTOSAR RTE: Đây là một trong những layer quan trọng nhất của AUTOSAR, nó cung cấp khả năng giao tiếp giữa các SWC khác nhau và cả giữa các ECU khác nhau. Application layer sử dụng layer này trong khi giao tiếp với các layer bên dưới bằng các ports.
  • Services Layer: Tầng nay cung cấp các dịch vụ khác nhau cho các application sử dụng. Các dịch vụ như: System Services, Memory Services, Crypto Services, Off board communication Services, Communication Services.
  • ECU Abstraction Layer: Tầng này cung cấp các tính năng liên quan đến abstraction (Trừu tượng hóa). Nó bao gồm các tầng abstraction như: I/O Hardware Abstraction layer, On board device abstraction, Memory hardware Abstraction, Crypto hardware abstraction, ... Mục đích của tầng này nhằm độc lập phần mềm ứng dụng với phần cứng - Tức là code của tầng ứng dụng sẽ không cần thay đổi khi thay đổi phần cứng.
  • MCAL: viết tắt của Micro Controller Abstraction Layer, bao gồm các drivers giúp cho các lớp trên có thể giao tiếp với phần cứng (Các ngoại vi của Vi điều khiển).

    Các Layer trên cũng được phân hóa về mặt phần mềm để cho các công ty / nhà sản xuất khác nhau có thể dễ dàng tham gia vào quá trình phát triển phần mềm trên xe. Một số thuật ngữ cơ bản về các nhà cung cấp phần cứng / phần mềm:

Autosar Layer supplier

Cấu trúc phân cấp phần cứng và phần mềm trong ngành công nghiệp ô tô

     OEM - Original Equipment Manufacturer: thường là các hãng sản xuất xe như Volkswagen, BWM, Toyota, ... chịu trách nhiệm tích hợp toàn bộ hệ thống của xe. OEM đảm nhận việc tích hợp và tối ưu toàn bộ hệ thống trong xe, còn các linh kiện, thiết bị trong xe, họ sẽ thường đi mua từ những nhà cung cấp khác (Supplier) chuyên về các mảng đó. Ví dụ như cảm biến, ECU, hộp số, động cơ, ...

    Tier 1: là nhà cung cấp trực tiếp các sản phẩm cho OEM. Đối với phần Nhúng / Autosar, sản phẩm Tier 1 cung cấp cho các hãng xe chính là các ECU - Electronics Control Unit. Trước đây thì phần mềm ECU do OEM sử dụng nằm trên các platform khác nhau. Không có kiến ​​trúc phần mềm chuẩn nào được các Tier 1 và các OEM sử dụng để thiết kế phần mềm ECU. Vì vậy, bất cứ khi nào bất kỳ OEM nào muốn chuyển sang các Tier 1 mới hoặc ngược lại, quá trình chuyển đổi đều rất khó khăn

    ⟹ Đó cũng là lý do Autosar ra đời!

    Một số tên tuổi lớn trong lĩnh vực này bao gồm:

  • Bosch - là một trong những đối tác sáng lập AUTOSAR, cung cấp các giải pháp toàn diện cho các ECU phức tạp. Lĩnh vực: Hệ thống phanh ABS, kiểm soát động cơ, cảm biến, hệ thống trợ lực lái.
  • Continental - Phát triển các giải pháp cho cả giao tiếp xe và kết nối với hạ tầng. Lĩnh vực: Hệ thống an toàn (airbag, ESP), truyền động, hệ thống giải trí (Infotainment).
  • ZF Friedrichshafen - Tập trung vào các giải pháp truyền động và hệ thống chassis. Lĩnh vực: Hộp số tự động, hệ thống trợ lực lái, hệ thống treo.
  • Denso - Là nhà cung cấp hàng đầu tại châu Á, cung cấp các giải pháp tối ưu hóa hiệu suất xe. Lĩnh vực: Hệ thống quản lý động cơ, điều hòa không khí, điện tử nội thất.
  • Valeo - Tập trung mạnh vào các hệ thống ADAS (Advanced Driver Assistance Systems). Lĩnh vực: Hệ thống chiếu sáng, camera quan sát, hỗ trợ đỗ xe.
  • Aptiv (trước đây là Delphi) - Đi đầu trong công nghệ kết nối và giải pháp điện tử xe. Lĩnh vực: Kết nối mạng xe, ECU Gateway, Infotainment.
  • Magna International - Đa dạng hóa sản phẩm, tích hợp các hệ thống phần mềm theo chuẩn AUTOSAR. Lĩnh vực: Hệ thống điện, ghế ngồi, giải pháp truyền động.

    Tier 2: là nhà cung cấp trực tiếp các sản phẩm cho Tier 1. Ở đây, khi phát triển các ECU, thành phần chính sẽ là các MCU (Microcontroller). Các Tier 1 không tự sản xuất chip sẽ tìm đến các nhà cung cấp vi điều khiển, các đối tác phát triển phần mềm (Chủ yếu tầng MCAL) hoặc một số phần cứng hỗ trợ khác (Wireless, Crypto).

    Một số nhà cung cấp nổi bật:

  • NXP Semiconductors - Cung cấp MCU như dòng S32 hỗ trợ AUTOSAR. Lĩnh vực: Vi điều khiển cho Automotive, hệ thống mạng xe (CAN, LIN, FlexRay, Ethernet).
  • Infineon Technologies - MCU TriCore AURIX, tích hợp cao với bảo mật và an toàn. Lĩnh vực: Vi điều khiển, cảm biến, hệ thống nguồn.
  • Renesas Electronics - Dòng RH850 và R-Car hỗ trợ AUTOSAR. Lĩnh vực: Vi điều khiển cho hệ thống truyền động, an toàn, và điện tử nội thất.
  • Texas Instruments (TI) - MCU dòng C2000 và TMS570 tối ưu cho các ứng dụng an toàn. Lĩnh vực: Vi điều khiển, bộ chuyển đổi tín hiệu (ADC/DAC), CAN/LIN transceiver.
  • STMicroelectronics - Dòng STM32 hỗ trợ tích hợp phần mềm AUTOSAR. Lĩnh vực: Vi điều khiển, bộ chuyển đổi công suất, cảm biến.
  • Microchip Technology - MCU dòng dsPIC và AVR. Lĩnh vực: MCU, EEPROM, Flash, giải pháp bảo mật.
  • NVIDIA - Kiến trúc Drive AGX phục vụ xử lý hình ảnh và tính toán phức tạp. Lĩnh vực: Nền tảng xử lý hiệu năng cao, giải pháp cho xe tự lái.
  • Qualcomm - Bộ xử lý Snapdragon Automotive tích hợp với các module AUTOSAR. Lĩnh vực: Xử lý thông tin giải trí, kết nối không dây (5G, V2X).
Autosar Ecosystem Supplier

Lí do cần có AUTOSAR?

    Thực tế thì làm gì cũng cần có tiêu chuẩn rõ ràng. Đối với việc viết phần mềm cho ECU, các developer có thể đối mặt với nhiều vấn đề khác nhau:

  • Hệ thống nhúng là một lĩnh vực rất lớn và có rất nhiều nhà sản xuất chất bản dẫn khác nhau. Nền tảng phần cứng và phần mềm có thể được lựa chọn tùy thuộc vào từng yêu cầu ứng dụng khác nhau. Chính việc này có thể dẫn đến khó khăn trong việc phát triển cũng như tính di động của phần mềm. Chẳng hạn như việc phần cứng thay đổi, gần như toàn bộ phần mềm sẽ phải thay đổi theo, làm tăng chi phí và thời gian phát triển phần mềm.
  • Automotive là một hệ thống phức tạp bao gồm nhiều hệ thống nhỏ hơn gọi là ECUs - Electronic Control Unit, nên việc bảo trì và phát triển phần mềm cho từng ECU là việc không dễ. Độ phức tạp càng tăng thêm khi các ECU khác nhau sử dụng các MCU khác nhau để đáp ứng các yêu cầu về mặt ứng dụng và chi phí. Vì vậy, có thể chúng ta sẽ cần phát triển rất nhiều phần mềm khác nhau cho các MCU này.
  • Với cách viết phần mềm thông thường, để giao tiếp giữa nhiều ECU khác nhau, nhà phát triển sẽ cần tạo ra các giao thức, tiêu chuẩn giao tiếp, gọi là Custom standard. Việc này rất tốt, nhưng lần sau làm việc với chiếc xe khác, các ECU khác thì lại rất khó để maintain và tốn nhiều chi phí hơn.
  • Một chiếc ô tô có nhiều bộ phận được sản xuất bởi các công ty khác nhau được gọi là công ty tier 1, cung cấp phụ tùng cho các OEM như BMW, Volkswagen, ... Ngày nay, hầu hết các bộ phận cơ khí đều trở nên thông minh hơn bằng cách thêm các ECU vào. Vì vậy cũng cần có các tiêu chuẩn để giao tiếp với cả những ECU của OEM khác nhau này.

    ⏩ Với những lý do nêu trên, cần có một số tiêu chuẩn thiết kế phần mềm để có thể thống nhất việc phát triển và giao tiếp giữa các ECU khác nhau, của các OEM khác nhau. Và AUTOSAR sinh ra từ đây để giải quyết những vấn đề trên.

    AUTOSAR được thiết kế theo kiến trúc phân lớp, và tầng ứng dụng sẽ được viết độc lập với phần cứng, để cùng một code ứng dụng có thể chạy trên các nền tảng phần cứng khác nhau. AUTOSAR cung cấp một layer riêng để giao tiếp với phần cứng gọi là MCAL (Micro Controller Abstraction Layer). AUTOSAR còn cung cấp tiêu chuẩn để giao tiếp giữa các ECU của các nhà phát triển khác nhau (Cả OEM và Tier 1), từ đó giảm chi phí khi maintain custom standard.

    Các ECU sử dụng AUTOSAR có thể giao tiếp với nhau bất kể sự khác biệt về phần cứng. Hầu hết các nhà sản xuất chip đều cung cấp tầng MCAL của AUTOSAR, nhưng nếu họ không cung cấp thì developer cần phải viết tầng MCAL này hoặc thuê các công ty dịch vụ viết.

❓ Đây có phải là một hạn chế của AUTOSAR

    Trên thực tế đây không phải là một hạn chế, trong thế giới thay đổi nhanh chóng hiện nay, việc đáp ứng hoàn thành các dự án đúng deadline ngày càng nghiêm ngặt. Nên khi có AUTOSAR, việc đáp ứng nhu cầu phát triển phần mềm sẽ dễ dàng hơn. Mặc dùng AUTOSAR triển khai theo kiến trúc phân lớp và mọi thứ trông có vẻ có sẵn, nhưng chúng ta vẫn cần phải triển khai viết code cho các chức năng của SWC trong một Runnable của SWC.

❓ Nếu muốn sử dụng các thiết bị ngoài không hỗ AUTOSAR thì sao?

    Nếu sử dụng các thiết bị không được AUTOSAR hỗ trợ, chúng ta có thể sử dụng tầng CDD - Complex Device Drivers. Tầng này cho phép truy cập trực tiếp vào lớp MCAL từ tầng Application và chúng ta có thể giao tiếp trực tiếp giữa thiết bị ngoài với ECU. Chúng ta có thể tự phát triển phần mềm cho các thiết bị này, tuy nhiên nó phụ thuộc vào phần cứng, nên không có khả năng tái sử dụng như SWC.

    👉 Các phiên bản AUTOSAR

    Có 2 loại kiến trúc AUTOSAR là: ClassicAdaptive. Bản Classic có tất cả các module cơ bản cần có cho các ứng dụng, trong khi bản Adaptive có thể config được và điều chỉnh theo các ứng dụng bằng cách loại bỏ các module không cần thiết.

Autosar Classic and Adaptive

    Bản Classic hiện tại đang là 4.7.0, còn bản Adaptive hiện tại là 21.11 Phiên bản này chỉ đúng tại thời điểm viết bài và có thể không còn đúng vào thời điểm hiện tại.

Autosar Version
Autosar Version

    Tham khảo

    ➤ Autosar.org

>>>>>> Follow ngay <<<<<<

Để nhận được những bài học miễn phí mới nhất nhé 😊

Chúc các bạn học tập tốt 😊

Nguyễn Văn Nghĩa

Mình là một người thích học hỏi và chia sẻ các kiến thức về Nhúng IOT.

4 Nhận xét

  1. Hay quá Nghĩa ơi, đúng cái anh đang tìm, mong em ra nhiều bài hơn

    Trả lờiXóa
    Trả lời
    1. Vâng, có thời gian em sẽ hoàn thành series này sớm ạ

      Xóa
  2. Khám phá những lợi ích khi sử dụng ứng dụng theo dõi điện thoại để quản lý và theo dõi các hoạt động trên điện thoại. Công cụ này cung cấp các báo cáo và cảnh báo chi tiết, giúp bạn luôn cập nhật về việc sử dụng thiết bị.

    Trả lờiXóa
Mới hơn Cũ hơn