
Nếu bạn muốn biết thêm thông tin về khoá học. Hãy liên hệ với chúng tôi.
📧 EMAIL : Hala.daotao@gmail.com
☎ SỐ ĐIỆN THOẠI : 0972 595 711
TỔNG QUAN KHÓA HỌC
- Khóa học AUTOSAR CLASSIC ECU DEVELOPMENT được thiết kế dành cho những người muốn làm chủ lập trình hệ thống nhúng trong ngành công nghiệp ô tô. Học viên sẽ được đào tạo bài bản từ lập trình bare-metal trên vi điều khiển STM32, đến thiết kế phần mềm điều khiển ECU theo kiến trúc AUTOSAR Classic. Khóa học bao gồm các chủ đề then chốt như quản lý bộ nhớ, giao tiếp ngoại vi (SPI, I2C, UART, CAN, LIN), viết bootloader, cập nhật firmware OTA và xây dựng mô-đun phần mềm SWC theo chuẩn AUTOSAR.
MỤC TIÊU KHÓA HỌC
- Hiểu rõ kiến trúc ARM Cortex-M và lập trình bare-metal.
- Làm chủ cấu trúc phân tầng AUTOSAR Classic (MCAL, BSW, RTE, SWC).
- Xây dựng phần mềm ECU mô-đun, tái sử dụng được trên nền tảng STM32.
- Thiết kế driver giao tiếp ngoại vi (SPI, I2C, UART, CAN, LIN) chuẩn công nghiệp.
- Viết bootloader và thực hiện cập nhật firmware OTA.
- Mô phỏng luồng dữ liệu giữa các SWC qua RTE bằng tay (manual mapping).
- Hoàn thành một hệ thống ECU điều khiển động cơ theo chuẩn AUTOSAR.
TẠI SAO BẠN NÊN THAM GIA KHÓA HỌC NÀY?
- Đối Tượng Lý Tưởng: Phù hợp với sinh viên, kỹ sư nhúng đã có nền tảng C/C++ và muốn nâng cao kỹ năng trong lĩnh vực điện tử ô tô (Automotive Embedded Systems).
- Chuẩn Kỹ Nghệ Thực Chiến: Khóa học đi từ thực hành thanh ghi đến kiến trúc phần mềm chuẩn AUTOSAR – giúp bạn sẵn sàng tham gia vào các dự án ECU thực tế tại doanh nghiệp.
- Ký Giấy Thực Tập Doanh Nghiệp: Sau khi hoàn thành khóa học, học viên sẽ được cấp chứng chỉ và hỗ trợ ký giấy thực tập theo yêu cầu nhà trường.
- Khóa Luận & Dự Án Thực Tế: Bài tập lớn cuối khóa có thể sử dụng làm đồ án tốt nghiệp hoặc bổ sung vào portfolio cá nhân trong ngành ô tô.
HỌC PHÍ VÀ PHƯƠNG THỨC THANH TOÁN
Học phí cho khóa học AUTOSAR CLASSIC ECU DEVELOPMENT được chia làm nhiều đợt linh hoạt như sau:
- Tổng học phí: 10,000,000 VND
- 3 buổi học thử miễn phí: Trải nghiệm nội dung thực tế và phong cách đào tạo trước khi quyết định đăng ký chính thức.
- Đợt 1: 2,000,000 VND (Thanh toán sau buổi học thử)
- Đợt 2: 2,000,000 VND (Thanh toán vào tháng thứ hai)
- Đợt 3: 3,000,000 VND (Thanh toán vào tháng thứ ba)
- Đợt 4: 3,000,000 VND (Thanh toán vào tháng thứ tư)

AUTOSAR Classic ECU Development
10.000.000 VNĐ
Tổng thời gian học: 4 tháng
Hình thức: Online
AUTOSAR Classic ECU Development
LỘ TRÌNH KHÓA HỌC
Bài 01: Chuẩn bị môi trường phát triển
Lý thuyết
- Giới thiệu VSCode, extension C/C++ và Cortex-Debug.
- GNU Arm Embedded Toolchain: arm-none-eabi-gcc, gdb.
- Nạp và debug với OpenOCD.
API & Cấu trúc dự án
- Thư mục chuẩn: src/, include/, config/, build/.
- Các file: main.c, startup.s, stm32f103.ld.
- Build script: Makefile.
Bài 02 : Boot Process & Startup Code
Lý thuyết
- Vector Table: .isr_vector, Reset_Handler, Default_Handler.
- Cấu hình SystemInit(): HSI/HSE, PLL, VTOR relocation.
- Khởi tạo .data, .bss.
API & Cấu trúc dự án
- startup.s: thiết lập SP, copy section, gọi SystemInit → main.
- stm32f103.ld: định nghĩa FLASH/RAM, symbols _sidata, _sdata, _edata, _sbss, _ebss.
Bài 03 : Tổng quan AUTOSAR Classic
Lý thuyết
- Kiến trúc phân tầng:
- MCAL → ECU Abstraction → BSW Services → RTE → SWC
- MCAL: Driver truy cập trực tiếp phần cứng vi điều khiển (ADC, CAN, SPI…).
- ECU Abstraction: Chuẩn hóa truy cập thiết bị ngoại vi (EEPROM, IO…).
- BSW Services: Cung cấp các dịch vụ như DEM, NVRAM, Communication Stack.
- RTE (Runtime Environment): Kết nối SWC và BSW, tự sinh code từ mô hình.
- SWC (Software Component): Mô-đun phần mềm độc lập, tái sử dụng được.
Bài 04: I/O Drivers (MCAL)
Lý thuyết
- DIO Driver: Dio_Init(), Dio_ReadChannel(), Dio_WriteChannel().
- ADC Driver: Adc_Init(), Adc_StartGroupConversion(), Adc_ReadGroup().
- PWM Driver: Pwm_Init(), Pwm_SetDutyCycle().
- Port Driver: Port_Init(), Port_SetPinMode(), Port_RefreshPortDirection().
Thực hành
- Triển khai module MCAL DIO, ADC, PWM, Port theo SWS.
- Demo đọc ADC tính duty và điều chỉnh LED qua PWM.
Bài 05 : I/O Hardware Abstraction (IoHwAb)
Lý thuyết
- Mục tiêu: chuẩn hóa API MCAL cho BSW Services.
- Các module: DioHwAb, AdcHwAb, SpiHwAb, I2cHwAb.
Thực hành
- DioHwAb_WriteChannel() gọi Dio_WriteChannel(), báo lỗi qua DET.
- SpiHwAb_Transmit() wrapper cho SPI MCAL.
Bài 06 : Communication Drivers (MCAL)
Lý thuyết
- CAN Driver: Can_Init(), Can_Write(), filter masks, interrupt.
- LIN Driver: Lin_Init(), Lin_SendFrame(), Lin_ReadFrame(), schedule table.
- SPI Driver: Spi_Init(), Spi_SyncTransmit(), Spi_SyncReceive().
- I2C Driver: I2c_Init(), I2c_MasterTransmit(), I2c_MasterReceive().
- TTCAN Driver: Hỗ trợ truyền thông có định thời (time‐triggered).
Thực hành
- CAN gửi data giữa 2 board.
- LIN gửi data demo.
- SPI+I2C logging: đọc sensor, lưu Flash.
Bài 07 :Communication Hardware Abstraction
Lý thuyết
- CanIf: mapping PDU↔HOH, TxConfirmation, RxIndication.
- LinIf: frame buffering, schedule management.
Thực hành
- Xây CanIf với DET report cho PDU invalid.
- LinIf multi-sequence frame handling.
Bài 08 : Communication Services (BSW Services)
Lý thuyết
- COM Module: Com_Init(), Com_SendSignal(), Com_ReceiveSignal(), signal packing/unpacking.
- PduR: PduR_Init(), PduR_Transmit(), route PDU giữa COM↔CanIf/LinIf.
- ComM: ComM_Init(), ComM_RequestComMode(), quản lý mode: NoCom, SilentCom, FullCom.
- NM & BSWM: Network Management, state transitions.
Thực hành
- Tích hợp COM+PduR trên CAN network.
- Demo ComM auto-switch modes.
Bài 09 : Crypto Drivers (MCAL)
Lý thuyết
- AES, SHA, TRNG hardware accelerator API.
- MCAL functions: Crypto_Init(), Crypto_Encrypt(), Crypto_Decrypt(), Crypto_GenerateRandom().
- Key management primitives.
Thực hành
- Sử dụng AES-CBC để mã hóa buffer.
- Sinh random key qua TRNG.
Bài 10 : Crypto Hardware Abstraction
Lý thuyết
- CryptoAb: chuẩn hóa interface cho Crypto MCAL.
- Modules: CryptoIf, CryptoTrcv.
- Error handling qua DET/DEM.
Thực hành
- Thiết kế CryptoAb cho SHA-256 và HMAC.
- Đánh giá latency giữa calls.
Bài 11 : Crypto Services (BSW Services)
Lý thuyết
- Crypto Service SW-C API: Cs_Init(), Cs_Encrypt(), Cs_Decrypt(), Cs_GenerateAuthTag().
- Key management service, secure storage concept.
- Service integration với RTE.
Thực hành
- Tích hợp CryptoService vào project: mã hóa dữ liệu CAN trước khi gửi.
- Test verify và key rollover mechanism.
Bài 12 : Memory Drivers (MCAL)
Lý thuyết
- Flash Driver: erase page, program half-word/word.
- EEPROM Emulation Driver (Fee): wear-leveling, sector swap.
- MCAL API: MemIf_Init(), MemIf_Read(), MemIf_Write(), MemIf_Erase().
Thực hành
- Xóa sector Flash, ghi và đọc dữ liệu mẫu.
- Emulate EEPROM trên Flash.
Bài 13 : Memory Hardware Abstraction
Lý thuyết
- MemIf layer: chung hóa Flash/Eeprom → MemAb API.
- Cấu hình block size, device mapping.
Thực hành
- Thiết kế MemIf cho hai thiết bị lưu trữ riêng biệt.
- Kết hợp NvM và MemIf để lưu cấu hình.
Bài 14 : Memory Services (BSW Services)
Lý thuyết
- NvM Service: quản lý block, RAM mirror, job queue.
- API: NvM_Init(), NvM_ReadBlock(), NvM_WriteBlock(), NvM_InvalidateBlock().
- State machine và job result handling.
Thực hành
- Cấu hình block ID, block length.
- Thực hiện read/write block cấu hình
- Demo lưu và phục hồi tham số hệ thống.
Bài 15 : Communication Manager (ComM)
Lý thuyết
- Giới thiệu ComM và relationship với CAN, LIN, Nm
- Chế độ COMM_NO_COMMUNICATION / COMM_FULL_COMMUNICATION
- Thiết kế các API: ComM_RequestComMode, ComM_GetCurrentComMode
- Mapping SWC ↔ ComM ↔ CAN (mock)
Thực hành
- SWC gửi frame → ComM kiểm soát quyền truy cập → gọi hàm mock CAN
Bài 16 : Time Service + Synchronized Time-Base Manager
Lý thuyết
- Phân biệt Time Service và Time Synchronization
- Hiểu cấu trúc TimeService_ConfigType
- Implement TimeService_Init, TimeService_GetCurrentTime, TimeService_SetRelativeAlarm
- Sử dụng Timer của STM32F103 làm base time
- Áp dụng Time Sync cho các hệ thống phân tán (khái niệm)
Thực hành
- Hiển thị thời gian thực tế và thực hiện task định kỳ theo timebase
Bài 17 : Function Inhibition Manager (FiM)
Lý thuyết
- Mục đích FiM: ngăn SWC thực hiện chức năng nếu không đủ điều kiện
- Cấu hình FiM với rule → condition (CAN OK, Sensor OK, …)
- Viết API: FiM_Init, FiM_GetFunctionPermission
- Kết nối với Dem (giả lập) hoặc tình trạng thiết bị (ví dụ nhiệt độ cao)
Thực hành
- Chặn tính năng SWC “Bật động cơ” nếu sensor hoặc điện áp lỗi
Bài 18 : PROJECT AUTOSAR-BASED MOTOR CONTROL ECU
Yêu cầu
- Thiết kế và hiện thực một phần mềm điều khiển động cơ điện (Motor ECU) theo kiến trúc AUTOSAR Classic, sử dụng ngôn ngữ C và nền tảng STM32 (F103/F407).
- Tuân thủ mô hình phân lớp: Application – RTE – BSW – MCAL.
- Tích hợp đầy đủ chức năng đọc cảm biến, xử lý tín hiệu, điều khiển động cơ và chẩn đoán lỗi.
Nội dung triển khai
- Giai đoạn 1: Phân tích yêu cầu
- Xác định các chức năng chính: đọc cảm biến (RPM, nhiệt độ, dòng, áp), điều khiển PWM, xử lý lỗi, truyền dữ liệu CAN.
- Định nghĩa yêu cầu thời gian thực, độ an toàn, ổn định, phần cứng ECU (MCU, Sensor, Actuator, CAN…).
- Giai đoạn 2–3: Thiết kế kiến trúc AUTOSAR
- Thiết kế sơ đồ phân lớp AUTOSAR.
- Tạo 4 SWC:(Cty công cấp các SWC mẫu)
Sensor_SWC
: đọc dữ liệu cảm biến.EngineControl_SWC
: xử lý và tính toán điều khiển.Actuator_SWC
: xuất PWM điều khiển động cơ.Diagnostic_SWC
: ghi nhận và gửi lỗi qua CAN.- Định nghĩa các Runnable và Interfaces (S-R, C-S).
- Thiết kế Data Flow Diagram (DFD) giữa các SWC.
- Giai đoạn 4: Thiết kế hệ thống OS & Scheduling (Cty cung cấp OS)
- Phân tích các Task: Sensor, Control, Actuator, Diagnostic.
- Xây dựng bảng lập lịch: chu kỳ 10ms, các Event kích hoạt.
- Thiết kế Sequence Diagram cho flow xử lý dữ liệu & lỗi.
- Giai đoạn 5: State Machine
- Mô hình hóa các trạng thái hoạt động của ECU: INIT → NORMAL → ERROR_HANDLING → EMERGENCY_STOP → SHUTDOWN.
- Triển khai bằng state machine logic trong mã C.
- Giai đoạn 6: Deployment
- Ánh xạ các layer AUTOSAR xuống phần cứng STM32.
- Hiện thực kết nối giữa SWC ↔ RTE ↔ BSW ↔ MCAL ↔ Peripheral.
Đầu ra kỳ vọng
- Bộ mã nguồn C đầy đủ cho từng BSW và RTE (giả lập).
- Chạy thử và kiểm thử trên STM32 hoặc môi trường mô phỏng.
- Có thể:
- Đọc và xử lý tín hiệu từ các cảm biến.
- Xuất PWM điều khiển động cơ theo thuật toán đơn giản.
- Phát hiện lỗi (overheat, overcurrent…) và xử lý an toàn.
- Gửi trạng thái lỗi lên CAN.
- Tài liệu nộp bao gồm:
- File
.c/.h
,Makefile
- Sơ đồ kiến trúc AUTOSAR + sơ đồ trạng thái + DFD.
- Báo cáo kỹ thuật ngắn gọn (~5 trang PDF) mô tả cách tiếp cận và kết quả.
- File