Thiết Kế và Thi Công Hệ Thống Cập Nhật Firmware Không Dây (FOTA) Trong Lĩnh Vực Ô Tô

Chuyên khảo phân tích Thiết kế và thi công hệ thống cập nhật firmware không dây fota trong lĩnh vực ô tô, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2024

102
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

TÓM TẮT

1. CHƯƠNG 1: GIỚI THIỆU

1.1. GIỚI THIỆU

1.2. MỤC TIÊU ĐỀ TÀI

1.3. PHẠM VI GIỚI HẠN ĐỀ TÀI

1.4. PHƯƠNG PHÁP NGHIÊN CỨU

1.5. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

1.6. BỐ CỤC QUYỂN BÁO CÁO

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. FIRMWARE OVER THE AIR

2.2. Bootloader của ATMEGA328P

2.3. Bootloader của STM32

2.4. GIAO THỨC CAN

2.4.1. Tổng quan về CAN

2.4.2. Các loại CAN message

2.5. Tổng quan về Firebase

2.5.1. Firebase Realtime Database

2.5.2. Firebase Cloud Storage

2.6. CẤU TRÚC FILE HEX

2.7. ĐA LUỒNG VÀ ĐA TIẾN TRÌNH

2.8. GIAO TIẾP GIỮA CÁC TIẾN TRÌNH

3. CHƯƠNG 3: THIẾT KẾ HỆ THỐNG

3.1. YÊU CẦU HỆ THỐNG

3.2. THIẾT KẾ HỆ THỐNG

3.3. THIẾT KẾ PHẦN CỨNG

3.3.1. Thiết kế từng khối

3.4. THIẾT KẾ PHẦN MỀM

3.4.1. Thiết kế ứng dụng Android

4. CHƯƠNG 4: KẾT QUẢ

4.1. KẾT QUẢ HỆ THỐNG THI CÔNG

4.2. KẾT QUẢ HOẠT ĐỘNG CỦA HỆ THỐNG

4.2.1. Kết quả chức năng cập nhật từng ECU

4.2.2. Kết quả chức năng cập nhật nhiều ECU

4.2.3. Chức năng xử lý lỗi cập nhật

4.2.4. Chức năng Rollback

4.2.5. Chức năng quay trở lại firmware mặc định

4.2.6. Đánh giá kết quả

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. KẾT LUẬN

5.2. HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về Hệ Thống Cập Nhật Firmware Không Dây FOTA Trong Ô Tô

Hệ thống cập nhật firmware không dây (FOTA) đang trở thành một phần quan trọng trong ngành công nghiệp ô tô hiện đại. Công nghệ này cho phép các nhà sản xuất ô tô cập nhật phần mềm cho các thiết bị điện tử trong xe mà không cần phải đưa xe đến trung tâm bảo trì. Điều này không chỉ tiết kiệm thời gian mà còn giảm thiểu chi phí cho cả nhà sản xuất và người tiêu dùng. FOTA giúp cải thiện hiệu suất và bảo mật cho các hệ thống điện tử, đồng thời cung cấp các tính năng mới cho người dùng.

1.1. Định nghĩa và Nguyên lý Hoạt động của FOTA

FOTA, viết tắt của Firmware Over-The-Air, là công nghệ cho phép cập nhật firmware từ xa thông qua mạng không dây. Nguyên lý hoạt động của FOTA bao gồm việc tải xuống bản cập nhật từ máy chủ, lưu trữ và cài đặt trên thiết bị mà không cần kết nối vật lý.

1.2. Lợi ích của Hệ Thống Cập Nhật Firmware Không Dây

Hệ thống FOTA mang lại nhiều lợi ích như tiết kiệm thời gian, giảm chi phí bảo trì, và cải thiện hiệu suất của các thiết bị điện tử trong ô tô. Ngoài ra, FOTA còn giúp bảo mật thông tin và nâng cao trải nghiệm người dùng.

II. Thách Thức Trong Việc Triển Khai Hệ Thống FOTA Trong Ô Tô

Mặc dù FOTA mang lại nhiều lợi ích, nhưng việc triển khai hệ thống này cũng gặp phải nhiều thách thức. Các vấn đề như độ tin cậy của kết nối mạng, khả năng tương thích giữa các phiên bản firmware và phần cứng, cũng như rủi ro trong quá trình cập nhật cần được xem xét kỹ lưỡng.

2.1. Rủi Ro Trong Quá Trình Cập Nhật Firmware

Trong quá trình cập nhật firmware, có thể xảy ra các lỗi như thiết bị không hoạt động (brick) hoặc mất dữ liệu. Điều này đòi hỏi các biện pháp bảo vệ và kiểm tra tính toàn vẹn của bản cập nhật.

2.2. Phụ Thuộc Vào Kết Nối Mạng

FOTA yêu cầu kết nối internet ổn định để tải và cài đặt các bản cập nhật. Nếu kết nối không ổn định, việc cập nhật có thể gặp khó khăn, ảnh hưởng đến trải nghiệm người dùng.

III. Phương Pháp Thiết Kế Hệ Thống Cập Nhật Firmware Không Dây FOTA

Thiết kế hệ thống FOTA bao gồm nhiều thành phần quan trọng như bộ điều khiển trung tâm, module truyền thông không dây và phần mềm quản lý cập nhật. Các phương pháp thiết kế này cần đảm bảo tính hiệu quả và an toàn trong quá trình cập nhật.

3.1. Thiết Kế Bộ Điều Khiển Trung Tâm

Bộ điều khiển trung tâm đóng vai trò quan trọng trong việc quản lý và điều phối các cập nhật firmware. Nó cần được thiết kế để xử lý nhiều loại tín hiệu và đảm bảo tính tương thích với các thiết bị khác.

3.2. Phát Triển Phần Mềm Quản Lý Cập Nhật

Phần mềm quản lý cập nhật cần được phát triển để tự động hóa quá trình tải xuống và cài đặt firmware. Điều này bao gồm việc kiểm tra tính toàn vẹn và đảm bảo rằng các bản cập nhật tương thích với phần cứng hiện có.

IV. Ứng Dụng Thực Tiễn Của Hệ Thống FOTA Trong Ngành Ô Tô

Hệ thống FOTA đã được áp dụng rộng rãi trong ngành ô tô, giúp các nhà sản xuất nâng cao hiệu quả bảo trì và phát triển các tính năng mới cho xe. Các ứng dụng thực tiễn này không chỉ cải thiện trải nghiệm người dùng mà còn giảm thiểu chi phí cho các nhà sản xuất.

4.1. Cập Nhật Bảo Mật và Sửa Lỗi

FOTA cho phép các nhà sản xuất nhanh chóng phát hành các bản vá bảo mật và sửa lỗi cho các hệ thống điện tử trong xe, đảm bảo an toàn cho người dùng.

4.2. Nâng Cấp Tính Năng Mới

Hệ thống FOTA giúp các nhà sản xuất dễ dàng cập nhật và nâng cấp các tính năng mới cho xe, mang lại trải nghiệm tốt hơn cho người dùng mà không cần phải đến trung tâm bảo trì.

V. Kết Luận và Hướng Phát Triển Tương Lai Của Hệ Thống FOTA

Hệ thống cập nhật firmware không dây (FOTA) đang trở thành một phần không thể thiếu trong ngành công nghiệp ô tô. Với những lợi ích mà nó mang lại, việc phát triển và tối ưu hóa hệ thống này sẽ tiếp tục là một xu hướng quan trọng trong tương lai.

5.1. Tương Lai Của Công Nghệ FOTA

Công nghệ FOTA sẽ tiếp tục phát triển với sự cải tiến về bảo mật và hiệu suất. Các nhà sản xuất ô tô cần đầu tư vào nghiên cứu và phát triển để tối ưu hóa hệ thống này.

5.2. Khả Năng Tích Hợp Với Các Công Nghệ Mới

FOTA có thể được tích hợp với các công nghệ mới như trí tuệ nhân tạo và Internet of Things (IoT) để nâng cao khả năng quản lý và cập nhật firmware, mang lại nhiều lợi ích hơn cho người dùng.

10/07/2025
Thiết kế và thi công hệ thống cập nhật firmware không dây fota trong lĩnh vực ô tô

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu Giới thiệu tổng quan về đề tài, lý do chọn đề tài, các vấn đề sẽ được giải quyết trong đề tài, các phương pháp và kết quả đạt được sau khi hoàn tất đề tài. - Chương 2: Cơ sở lý thuyết Trình bày các lý thuyết liên quan đến các chuẩn giao tiếp, kỹ thuật, các linh kiện, phần cứng sử dụng để thực hiện đề tài. - Chương 3: Thiết kế hệ thống Giới thiệu chi tiết về hệ thống, lựa chọn và tính toán giải pháp thiết kế, thiết kế nguyên lý phần cứng và thiết kế phần mềm. - Chương 4: Kết quả Trình bày về những kết quả mà nhóm đã đạt được sau khi thực hiện đề tài, về hệ thống mà nhóm thực hiện.

- Chương 5: Kết luận và hướng phát triển Trình bày về những kết quả mà nhóm đã đạt được sau khi thực hiện đề tài, những hạn chế, từ đó rút ra kết luận và hướng phát triển để giải quyết các vấn đề còn tồn đọng để đồ án hoàn thiện hơn. 5 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2. FIRMWARE OVER THE AIR Firmware over the air (FOTA) là một phương pháp cho phép cập nhật và nâng cấp firmware trên thiết bị từ xa thông qua kết nối mạng không dây như Wi-Fi, 4G/5G, Bluetooth hoặc Zigbee mà không cần phải kết nối vật lý trực tiếp. Trong lĩnh vực ô tô, FOTA cho phép các nhà sản xuất và nhà phát triển ô tô cập nhật và nâng cấp phần mềm, cung cấp các bản vá bảo mật, sửa lỗi hệ thống và cập nhật các tính năng mới của các hệ thống điện tử trên xe một cách không dây, thông qua kết nối mạng.

Từ đó làm cho chiếc xe hoạt động an toàn và nhiều tính năng hơn (Hình 2. 1: FOTA trong lĩnh vực ô tô Ưu điểm: - Cải thiện hiệu suất thiết bị: FOTA cho phép cải thiện hiệu suất của thiết bị mà không cần nâng cấp phần cứng đắt đỏ. Người dùng có thể trải nghiệm tốc độ xử lý nhanh hơn, giao diện người dùng mượt mà và truy cập vào các tính năng mới thông qua các bản cập nhật này. - Bảo mật: FOTA giúp khắc phục lỗ hổng bảo mật trong firmware và bảo vệ thiết bị khỏi các mối đe dọa bảo mật.

6 - Tiết kiệm thời gian và công sức: Không cần thực hiện cập nhật thủ công, FOTA tự động cài đặt các bản cập nhật mà không cần sự can thiệp của người dùng. Nhược điểm: - Rủi ro trong quá trình cập nhật: Một số lỗi có thể xảy ra trong quá trình cập nhật FOTA, gây ra tình trạng “brick” (thiết bị không thể hoạt động) hoặc mất dữ liệu. - Phụ thuộc vào kết nối mạng: FOTA yêu cầu kết nối internet để tải và cài đặt các bản cập nhật. Nếu kết nối mạng không ổn định, việc cập nhật có thể gặp khó khăn.

- Khả năng tương thích: Cần đảm bảo rằng các bản cập nhật FOTA tương thích với các phiên bản phần cứng và phần mềm hiện có trên thiết bị. 2: Quá trình cập nhật FOTA [2] Quá trình cập nhật FOTA tổng thể có thể được chia thành nhiều giai đoạn như hình 2. Quá trình cập nhật FOTA bao gồm các bước sau [2]: - Update: Tải xuống bản cập nhật firmware mới từ máy chủ FOTA. - Download: Lưu trữ bản cập nhật firmware tại một vị trí an toàn trên thiết bị.

- Installation: Cài đặt bản cập nhật firmware vào bộ nhớ flash của ECU. 7 - Verification: Kiểm tra tính toàn vẹn của bản cập nhật firmware. - Activation: Kích hoạt bản cập nhật firmware. - Rollback: Trong trường hợp có sự cố, quá trình cập nhật có thể được hoàn tác để trở lại phiên bản firmware trước đó.

BOOTLOADER Bootloader là một chương trình có mục đích chính là cho phép phần mềm hệ thống được cập nhật mà không cần sử dụng phần cứng chuyên dụng như ST-Link, JTAG. Trong một số trường hợp, nó cũng có thể là điểm sớm nhất mà tính toàn vẹn của hệ thống nhúng có thể được kiểm tra. Chúng có thể lấy dữ liệu firmware thông qua nhiều giao thức khác nhau như UART, CAN, I2C, Ethernet, USB và còn rất nhiều giao thức khác nữa. Bootloader ở đây là một phần mềm đặc biệt được nạp vào bộ nhớ của máy tính trước khi khởi động.

Bootloader của ATMEGA328P 2. Tổ chức bộ nhớ flash trong ATMEGA328P Bộ nhớ flash được tổ chức thành hai phần chính, phần ứng dụng và phần bộ nạp khởi động. Kích thước của các phần khác nhau này được cấu hình bởi BOOTSZ [3]. 3: Tổ chức bộ nhớ flash trong ATMEGA328P [3] 8 2.

Cấu hình chương trình Bootloader trên ATMEGA328P Việc vào bộ nạp khởi động (bootloader) được thực hiện thông qua một lệnh nhảy (jump) hoặc gọi (call) từ chương trình ứng dụng. Ngoài ra, việc cấu hình boot reset fuse (BOOTRST) có thể được lập trình sao cho vector reset sẽ trỏ đến địa chỉ bắt đầu của vùng flash của Bootloader hay vùng flash của Application sau khi reset. Dưới đây là bảng giá trị của Boot reset fuse. 1: Bảng Boot reset fuse của ATMEGA328P [3] BOOTRST Reset Address 1 1 Reset vector = application reset (address 0x0000) 0 0 Reset vector = boot loader reset Ngoài ra, để cấu hình size của vùng flash của Bootloader thì ta cần cấu hình các giá trị của bit BOOTSZ1 và BOOTSZ0.2 dưới đây mô tả chi tiết hơn về đặc điểm của từng cầu hình BOOTSZ1 và BOOTSZ0 đối với Bootloader.

2: Bảng cấu hình Boot Size của ATMEGA328P [3] Boot Reset Address BOOT BOOT Application Boot Loader End App Boot Size Pages (Start SZ1 SZ0 Flash Section Flash Section Section Boot Loader Section) 1 1 256 words 4 0x0000 - 0x3EFF 0x3F00 - 0x3FFF 0x3EFF 0x3F00 1 0 512 words 8 0x0000 - 0x3DFF 0x3E00 - 0x3FFF 0x3DFF 0x3E00 0 1 1024 words 16 0x0000 - 0x3BFF 0x3C00 - 0x3FFF 0x3BFF 0x3C00 0 0 2048 words 32 0x0000 - 0x37FF 0x3800 - 0x3FFF 0x37FF 0x3800 Việc cấu hình các bit đã nói bên trên được quản lý thông qua các Fuse Bits. ATMEGA328P có ba loại Fuse Bits: Extended Fuse Byte, Fuse High Byte và Fuse Low Byte được thể hiện ở các bảng dữ liệu 2. 3: Bảng Extended Fuse Byte của ATMEGA328P [3] Extended Fuse Byte Bit No Description Default Value - 7 - 1 - 6 - 1 - 5 - 1 - 4 - 1 - 3 - 1 - 2 - 1 - 1 - 1 SELFPRGEN 0 Self programming enable 1 (unprogrammed) Bảng 2. 4: Bảng High Fuse Byte của ATMEGA328P [3] High Fuse Byte Bit No.

Description Default Value RSTDISBL 7 External reset disable 1 DWEN 6 debugWIRE enable 1 Enable serial program and data SPIEN 5 0 downloading WDTON 4 Watchdog timer always On 1 EEPROM memory is preserved EESAVE 3 1 through the chip erase BOOTSZ1 2 Select boot size 0 BOOTSZ0 1 Select boot size 0 BOOTRST 0 Select reset vector 1 Bảng 2. 5: Bảng Low Fuse Byte của ATMEGA328P [3] Low Fuse Byte Bit No. Description Default Value CKDIV8 7 Divide clock by 8 0 (programmed) CKOUT 6 Clock output 1 (unprogrammed) SUT1 5 Select start-up time 1 (unprogrammed) SUT0 4 Select start-up time 0 (programmed) CKSEL3 3 Select clock source 0 (programmed) CKSEL2 2 Select clock source 0 (programmed) CKSEL1 1 Select clock source 1 (unprogrammed) CKSEL0 0 Select clock source 0 (programmed) 10 2. Bootloader của STM32 2.

Tổ chức bộ nhớ flash trong STM32 STM32 có bộ nhớ flash được tổ chức như bảng 2. 6: Tổ chức bộ nhớ flash của STM32 [3] Block Name Base addresses Size (bytes) Page 0 0x0800 0000 - 0x0800 03FF 1K Page 1 0x0800 0400 - 0x0800 07FF 1K Page 2 0x0800 0800 - 0x0800 0BFF 1K Page 3 0x0800 0C00 - 0x0800 0FFF 1K Main memory Page 4 0x0800 1000 - 0x0800 13FF 1K. Page 127 0x0801 FC00 - 0x0801 FFFF 1K Information System memory 0x1FFF F000 - 0x1FFF F7FF 2K block Option bytes 0x1FFF F800 - 0x1FFF F80F 16 FLASH_ACR 0x4002 2000 - 0x4002 2003 4 FLASH_KEYR 0x4002 2004 - 0x4002 2007 4 FLASH_OPTKEYR 0x4002 2008 - 0x4002 200B 4 Flash memory FLASH_SR 0x4002 200C - 0x4002 200F 4 interface FLASH_CR 0x4002 2010 - 0x4002 2013 4 registers FLASH_AR 0x4002 2014 - 0x4002 2017 4 Reserved 0x4002 2018 - 0x4002 201B 4 FLASH_OBR 0x4002 201C - 0x4002 201F 4 FLASH_WRPR 0x4002 2020 - 0x4002 2023 4 Trong vi điều khiển STM32, mặc dù địa chỉ bộ nhớ Flash bắt đầu từ 0x0000.0000, nhưng vùng nhớ dành cho mã lệnh (code) thực tế được lưu từ địa chỉ 0x0800. Khi chúng ta nạp chương trình xuống vi điều khiển, hệ thống sẽ tự động nạp chương trình vào từ địa chỉ này.

Tại địa chỉ 0x0800.0000, giá trị của MSP (Main Stack Pointer) được lưu trữ, và bảng vector ngắt bắt đầu từ địa chỉ 0x0800.0004, nơi chứa địa chỉ của hàm Reset_Handler [4]. Tác động của Bootloader trong Reset Sequence của STM32 Chúng ta đều biết, địa chỉ khởi đầu của bộ nhớ đối với vi điều khiển STM32, cụ thể là bộ nhớ FLASH, là 0x0000. Phần đầu tiên của bộ nhớ này chứa "Vector Table", nơi lưu trữ các vector ngắt, nổi bật nhất là Vector Reset. Sau khi thực hiện thao tác reset, vi điều khiển sẽ trải qua các bước sau được biểu diễn ở hình 2.

4: Reset Sequence của STM32 CPU sẽ kiểm tra bảng Vector Table của chương trình trong bộ nhớ bằng cách đọc thanh ghi SCB_VTOR. Ở trạng thái reset, SCB_VTOR có giá trị 0, do đó CPU sẽ tìm đến địa chỉ 0x0000. - Bộ xử lý sẽ nạp giá trị tại ô nhớ đầu tiên của Vector Table (0x0000.0000) vào thanh ghi MSP - Main Stack Pointer (ở trạng thái reset MSP). Ví dụ, trong hình minh họa, MSP = 0x2000.

- Tiếp theo, bộ xử lý sẽ lấy địa chỉ của Reset Handler, được lưu tại ô nhớ thứ hai của Vector Table (địa chỉ 0x0000.0004), và nạp vào thanh ghi PC để thực thi hàm Reset Handler. Trong hình minh họa, PC = 0x2000.1000 (giá trị tại ô nhớ 0x0000. Vector Reset cũng là một dạng Exception của hệ thống, đảm nhận nhiệm vụ thiết lập hệ thống ban đầu trước khi gọi đến hàm main [5]. - Sau khi chuyển tới Reset Handler, bộ xử lý sẽ bắt đầu thực thi các lệnh trong Reset Handler.

Reset Handler thường được viết bằng ngôn ngữ Assembly hoặc C, và thực hiện các nhiệm vụ khởi tạo ban đầu của hệ thống. Một số công việc có thể được thực hiện trong Reset Handler bao gồm khởi tạo lại vùng nhớ Stack hoặc cấu hình xung clock cho hệ thống, tùy thuộc vào lập trình viên [5]. 12 - Bước cuối cùng của Reset Handler là gọi đến hàm main(), sau đó thực hiện các tác vụ được định nghĩa trong hàm main() [5]. Từ đó xây dựng được quy trình cơ bản của Bootloader: - Lấy địa chỉ của Firmware cần nhảy đến.

- Disable các ngắt của hệ thống và xóa các Ngắt đang chờ xử lý, nhằm tránh làm chương trình Boot bị gián đoạn. - Set MSP - Main Stack Pointer và thanh ghi SCB_VTOR với tác dụng đã nói ở trên.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ