Đăng ký Đăng nhập
Trang chủ Nghiên cứu và đề xuất thư viện cập nhật chương trình từ xa cho các thiết bị nhún...

Tài liệu Nghiên cứu và đề xuất thư viện cập nhật chương trình từ xa cho các thiết bị nhúng kết nối internet (tt)

.PDF
26
3
105

Mô tả:

ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA  NGUYỄN HUỲNH NHẬT THƢƠNG NGHIÊN CỨU VÀ ĐỀ XUẤT THƢ VIỆN CẬP NHẬT CHƢƠNG TRÌNH TỪ XA C C R UT.L CHO CÁC THIẾT BỊ NHÚNG KẾT NỐI INTERNET D Chuyên ngành: Kỹ thuật điện tử Mã số: 8520203 TÓM TẮT LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH KỸ THUẬT ĐIỆN TỬ Đà Nẵng – Năm 2020 Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA Người hướng dẫn khoa học: TS. Võ Tuấn Minh Người hướng dẫn khoa học 2: TS. Nguyễn Duy Nhật Viễn Phản biện 1: TS. Hoàng Lê Uyên Thục Phản biện 2: TS. Trần Thế Sơn Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ ngành Kỹ thuật điện tử họp tại Trường Đại học Bách khoa vào ngày 25 tháng 10 năm 2020 C C R UT.L Có thể tìm hiểu luận văn tại: D  Trung tâm học liệu và truyền thông Trường Đại học Bách khoa  Thư viện Khoa Điện tử - Viễn thông, Trường Đại học Bách khoa – ĐHĐN 1 MỞ ĐẦU 1. Tính cấp thiết của đề tài Cùng với sự phát triển không ngừng của công nghệ, các thiết bị nhúng được sử dụng ở khắp mọi nơi trên thế giới trong rất nhiều lĩnh vực khác nhau với số lượng ngày càng gia tăng nhanh chóng. Trong đó, nhiều thiết bị được lắp đặt sử dụng tại những nơi mà con người hay đội ngũ kỹ thuật khó có thể tiếp cận được, nhiều thiết bị sau khi đưa đến tay người dùng và trong quá trình sử dụng thì phát hiện được các lỗi hay cần nâng cấp bổ sung, tối ưu các tính năng. Từ xu thế vạn vật kết nối Internet và những nhu cầu cần thiết trên, ngày càng nhiều các thiết bị nhúng được thiết kế hỗ trợ kết nối C C R UT.L vào Internet. Điều này sẽ đặt ra nhiều cơ hội cũng như các bài toán mới cho những nhà nghiên cứu và phát triển, đặc biệt là vấn đề cập D nhật chương trình từ xa đang được quan tâm phát triển như một tính năng quan trọng cho các thiết bị để có thể thay đổi chương trình chỉ trong thời gian ngắn mà không cần thao tác trực tiếp lên thiết bị. Có rất nhiều hãng thiết kế vi điều khiển dựa trên những kiến trúc vi xử lý, số lượng ngoại vi, kích cỡ và tổ chức bộ nhớ khác nhau. Đồng thời, tuỳ vào ứng dụng thực tế mà thiết bị nhúng có thiết kế ngoại vi kết nối Internet và phương thức truyền nhận dữ liệu khác nhau. Để người phát triển có thể tiếp cận và tích hợp được tính năng cập nhật chương trình từ xa vào thiết bị nhúng một cách đơn giản và hiệu quả, đề tài sẽ cung cấp các nền tảng cơ sở khoa học kỹ thuật về các yếu tố liên quan đến tính năng trên. Theo thống kê năm 2019, trong lĩnh vực hệ thống nhúng, số lượng thiết bị IoTs sử dụng lõi ARM chiếm 90% thị phần và số 2 lượng vi điều khiển trên thế giới được thiết kế trên kiến trúc lõi ARM chiếm 25% thị phần, trong đó dòng Cortex-M chiếm tỉ lệ cao nhất. Vì vậy, thư viện cập nhật chương trình từ xa được đề xuất trong đề này sẽ được thử nghiệm trên mô hình thiết bị là một bảng mạch vi điều khiển 32 bit của hãng STMicroelectronics sử dụng CPU lõi ARM Cortex – M và bộ nhớ chương trình Flash, mô hình này có khả năng kết nối vào Internet thông qua module truyền nhận dữ liệu không dây 4G. 2. Mục đích nghiên cứu - Cung cấp nền tảng cơ sở khoa học kỹ thuật về cập nhật chương trình từ xa cho các thiết bị nhúng có kết nối Internet với các yếu tố: Cấu trúc tập tin chương trình, tổ chức bộ nhớ, C C R UT.L giao thức truyền nhận dữ liệu, tính toàn vẹn dữ liệu và quy trình khởi động thiết bị nhúng. - D Đề xuất phương pháp cập chương trình từ xa, xây dựng thử nghiệm và đánh giá thư viện chương trình cập nhật từ xa trên mô hình cụ thể. 3. Đối tƣợng và phạm vi nghiên cứu 3.1. Đối tƣợng nghiên cứu - Vi xử lý ARM Cortex - M - Vi điều khiển STM32 - Mạng thông tin máy tính với các giao thức Internet HTTP, FTP - Kỹ thuật phát hiện lỗi trong truyền nhận dữ liệu. 3.2. Phạm vi nghiên cứu - Kiến trúc lõi ARM Cortex - M, tổ chức bộ nhớ và quy trình khởi động của dòng vi điều khiển STM32 3 - Giao thức truyền nhận dữ liệu giữa server và thiết bị, kỹ thuật kiểm tra lỗi - Thuật toán và thư viện cập nhật chương trình từ xa cho mô hình thiết bị. 4. Phƣơng pháp nghiên cứu Phương pháp luận của luận văn là kết hợp nghiên cứu lý thuyết kết hợp với thực tiễn để làm rõ nội dung đề tài. Cụ thể như sau: - Nghiên cứu các yếu tố kỹ thuật liên quan đến quá trình cập nhật chương trình từ xa cho các thiết bị nhúng - Xem xét các đề tài nghiên cứu liên quan, so sánh và đánh giá các ưu điểm, khuyết điểm của các phương pháp cập nhật chương trình từ xa - C C R UT.L Đề xuất phương pháp và thiết kế thư viện cập nhật chương trình từ xa dựa trên các ngôn ngữ lập trình và giao thức D truyền thông - Thiết kế, thi công mô hình phần cứng phù hợp để thử nghiệm thư viện 5. Đánh giá kết quả thực hiện. Ý nghĩa khoa học và thực tiễn của đề tài Ý nghĩa khoa học: Từ các yếu tố liên quan đến quá trình cập nhật chương trình từ xa của các thiết bị nhúng có kết nối Internet, đề tài này đề xuất phương pháp, xây dựng thư viện và thử nghiệm trực tiếp trên mô hình phần cứng. Từ các kết quả thử nghiệm, đề tài sẽ đưa ra những đánh giá kết luận có ý nghĩa khoa học trong lĩnh vực hệ thống nhúng. Ý nghĩa thực tiễn: Kết quả của đề tài có khả năng áp dụng cho các hệ thống nhúng có kết nối Internet để thực hiện việc cập nhật 4 chương trình nhằm vá lỗi, nâng cấp, tối ưu các tính năng của một hệ thống từ xa, trong một thời gian ngắn mà không cần can thiệp vào thiết bị. 6. Cấu trúc của luận văn Ngoài phần mở đầu, kết luận và tài liệu tham khảo, luận văn gồm có 4 chương Chƣơng 1: TỔNG QUAN VỀ CẬP NHẬT CHƢƠNG TRÌNH TỪ XA Trong chương này sẽ trình bày về ứng dụng của cập nhật chương trình từ xa, mô hình cập nhật chương trình từ xa gồm thiết bị nhúng, chương trình chạy trên thiết bị nhúng, máy chủ quản lý tập tin chương trình và quá trình cập nhật chương trình C C R UT.L từ xa. Chƣơng 2: NỀN TẢNG PHẦN CỨNG CẬP NHẬT D CHƢƠNG TRÌNH TỪ XA Chương này sẽ trình bày về tổng quan về phần cứng, tổ chức bộ nhớ của vi điều khiển và cấu trúc chương trình, bộ xử lý trung tâm ARM Cortex – M, quá trình khởi động của vi điều khiển và module truyền nhận dữ liệu 3G/4G. Chƣơng 3: ĐỀ XUẤT PHƢƠNG PHÁP VÀ XÂY DỰNG THƢ VIỆN CẬP NHẬT CHƢƠNG TRÌNH TỪ XA Chương này đề xuất phương pháp cập nhật chương trình từ xa, xây dựng thư viện cập nhật chương trình từ xa với các thuật toán nhận, kiểm tra lỗi tập tin chương trình, thuật toán ghi tập tin vào bộ nhớ và thuật toán khởi động lại vi điều khiển Chƣơng 4: KẾT QUẢ THỰC HIỆN VÀ ĐÁNH GIÁ HIỆU QUẢ 5 Chương này nêu lên các kết quả thực hiện được của đề tài và đánh giá hiệu quả dựa trên các tiêu chí về chiếm tài nguyên bộ nhớ khi triển khai tính năng OTA, tỉ lệ thành công khi thực hiện OTA, độ tin cậy khi thự hiện OTA và thời gian thời gian thực hiện quá trình OTA. D C C R UT.L 6 Chƣơng 1: Tổng quan về cập nhật chƣơng trình từ xa 1.1. Giới thiệu chƣơng Chương một sẽ trình bày về ứng dụng của cập nhật chương trình từ xa, mô hình cập nhật chương trình từ xa với các thành phần thiết bị nhúng, chương trình ứng dụng chạy trên thiết bị và máy chủ quản lý tập tin chương trình. Đồng thời, quá trình cập nhật chương trình từ xa cũng sẽ được trình bày tại chương này. 1.2. Ứng dụng của cập nhật chƣơng trình từ xa Vấn đề cập nhật chương trình từ xa đang được quan tâm phát triển như một tính năng quan trọng cho các thiết bị có kết nối vào Internet. Tính năng này cho phép nhà phát triển có thể thay thế C C R UT.L chương trình hiện tại đang chạy trên vi điều khiển của một hệ thống nhúng bằng một chương trình mới với những thay đổi, bổ sung các D tính năng của thiết bị, hay cập nhật những thiếu sót về bảo mật chỉ trong thời gian ngắn mà không cần thao tác trực tiếp lên thiết bị. 1.3. Mô hình cập nhật chƣơng trình từ xa 1.3.1. Thiết bị nhúng Thiết bị nhúng là những thiết bị có khả năng tự hoạt động, tích hợp cả phần cứng và phần mềm, được thiết kế để thực hiện một chức năng chuyên dụng nào đó. 1.3.2. Chương trình chạy trên thiết bị nhúng Chương trình ứng dụng sau khi biên dịch xong sẽ được nạp trực tiếp vào bộ nhớ chương trình của vi điều khiển thông qua các thiết bị nạp chương trình (programmer) hoặc nội dung của chương trình sẽ được chuyển thành tập tin ở định dạng hex hoặc bin để có thể 7 đưa lên máy chủ quản lý tập tin phục vụ cho quá trình cập nhật chương trình từ xa. 1.3.3. Máy chủ quản lý tập tin chương trình Máy chủ quản lý tập tin này có thể đặt tại công ty của đơn vị nghiên cứu và sản xuất thiết bị nhúng hoặc có thể thuê các dịch vụ máy chủ đám mây từ các nhà cung cấp trong nước hoặc các nhà cung cấp quốc tế. Nhưng đặc điểm chung là máy chủ phải được định danh trên môi trường Internet thông qua IP hoặc có thể sử dụng tên miền và dịch vụ phân giải tên miền (DNS). Giao thức thường được sử dụng để làm việc với tập tin là giao thức truyền tải tập tin FTP (File Transfer Protocol). 1.3.4. Quá trình cập nhật chương trình từ xa C C R UT.L D Hình 1.3 Quá trình cập nhật chương trình từ xa 8  Bước 1: Người phát triển tạo ra chương trình ứng dụng mới cho thiết bị nhúng.  Bước 2: Đưa tập tin chứa chương trình ứng dụng mới lên máy chủ quản lý tập tin chương trình (FTP Server)  Bước 3: Trong thiết bị nhúng, định kỳ vi điều khiển gửi các lệnh AT để Module Internet thực thi, kiểm tra phiên bản mới của chương trình ứng dụng trên máy chủ.  Bước 4: Module Internet tải tập tin chương trình mới từ FTP server về cho vi điều khiển  Bước 5: Vi điều khiển thay thế chương trình ứng dụng đang chạy bằng chương trình ứng dụng mới C C R UT.L 1.4. Kết luận chƣơng Cập nhật chương trình từ xa là một tính năng quan trọng cho các D thiết bị nhúng có kết nối vào Internet giúp giải quyết được nhiều vấn đề và gia tăng thêm giá trị của thiết bị. Chính vì vậy, việc nghiên cứu và đề xuất một thư viện cập nhật chương trình từ xa sẽ mang lại nhiều đóng góp cho các nhà nghiên cứu và phát triển thiết bị. 9 Chƣơng 2: Nền tảng phần cứng cập nhật chƣơng trình từ xa 2.1. Giới thiệu chƣơng Chương này sẽ trình bày về nền tảng phần cứng cập nhật chương trình từ xa bao gồm các nội dung về tổng quan phần cứng thử nghiệm, tổ chức bộ nhớ của vi điều khiển, cấu trúc chương trình trong bộ nhớ, vi xử lý, quá trình khởi động của vi điều khiển, và module kết nối Internet sử dụng công nghệ 4G. 2.2. Tổng quan về phần cứng Mô hình thiết bị là một bảng mạch bao gồm một vi điều khiển 32 bit của hãng STMicroelectronics sử dụng CPU lõi ARM Cortex – M, được thiết kế với 512 Kbytes bộ nhớ chương trình (Flash) và 128 C C R UT.L Kbytes bộ nhớ dữ liệu (SRAM), được tích hợp sẵn ngoại vi thời gian thực (RTC), và khối ngoại vi tính toán mã Cyclic Redundancy Check D (CRC) để kiểm tra tính toàn vẹn dữ liệu [3]. Sơ đồ khối của vi điều khiển STM32F411 được trình bày ở hình 2.1. Vi điều khiển giao tiếp với module truyền nhận dữ liệu không dây EC21 của hãng Quectel hỗ trợ công nghệ 3G/4G để có thể kết nối vào Internet [4]. Một nút nhấn cũng được thiết kế kết nối với vi điều khiển để có thể gửi yêu cầu thực hiện cập nhật chương trình từ xa ngay lập tức mỗi khi nút được nhấn. Để hiển thị các thông báo, trạng thái làm việc của thiết bị được thể hiện thông qua một màn hình LCD và các đèn LED trên bảng mạch. Bên cạnh đó, bảng mạch cũng được thiết kế hỗ trợ kết nối với máy tính để nạp các chương trình thử nghiệm và thực hiện gỡ lỗi thông qua cổng Debugger/Programmer. Khối USB-UART được thiết kế để thiết bị có thể gửi nhật ký hoạt động, trạng thái lên máy tính để lưu trữ, phục vụ cho việc đánh giá khi thực hiện thử nghiệm quá trình cập nhật chương trình nhiều lần. 10 Hình 2.1 Sơ đồ khối phần cứng thử nghiệm 2.3. Tổ chức bộ nhớ của vi điều khiển và cấu trúc chƣơng trình 2.3.1. Tổ chức bộ nhớ chương trình C C R UT.L Theo thiết kế của các vi xử lý lõi ARM Cortex M, vùng bộ nhớ chương trình có độ rộng 32 bit và bắt đầu từ địa chỉ D 0x0000_0000, tối đa đến địa chỉ 0x1FFF_FFFF, tại địa chỉ 0x0000_0000 sẽ chứa giá trị khởi tạo stack pointer, bảng vector chứa địa chỉ của các exception handler và phần lớn còn lại của vùng này sẽ chứa mã máy của chương trình . Tổng cộng, vùng code có kích thước 512 MB. Các hoạt động với bộ nhớ chương trình: Hoạt động đọc, hoạt động ghi và hoạt động xoá 2.3.2. Tổ chức bộ nhớ dữ liệu Vùng bộ nhớ dữ liệu SRAM hay có thể gọi đơn giản là vùng RAM, thường nằm ngay sau vùng bộ nhớ chương trình. Tùy thuộc vào tài nguyên phần cứng và thuật toán thiết kế, việc lưu trữ tạm thời chương trình mới vào bộ nhớ RAM có thể được phân làm ba loại sau: 11 - Lƣu trữ một phần: Mỗi khi nhận một gói dữ liệu chứa một phần chương trình ứng dụng, ghi phần dữ liệu này vào vùng nhớ chương trình của bộ nhớ Flash. - Lƣu trữ nhiều phần: Chừa một vùng nhớ RAM để lưu trữ dữ liệu mỗi khi có gói tin đến. Khi vùng này đầy thì ghi phần dữ liệu này vào vùng nhớ chương trình của bộ nhớ Flash và làm trống vùng nhớ RAM để tiếp tục nhận các gói tin khác. - Lƣu trữ toàn phần: Lưu trữ toàn bộ chương trình ứng dụng mới trong RAM và chỉ ghi nó vào bộ nhớ flash khi nó đã được tải xuống đầy đủ từ máy chủ 2.3.3. Cấu trúc tập tin chương trình C C R UT.L Chương trình ứng dụng sẽ được truyền thành từng chuỗi byte sau khi nó được chuyển thành định dạng tập tin *.hex hoặc *.bin từ D các ngôn ngữ lập trình C/C++. Chuỗi byte này có liên quan tới địa chỉ bộ nhớ của vi điều khiển. Tập tin chƣơng ở định dạng Intel HEX: là một tập tin chứa nội dung chương trình cùng các thông tin chỉ dẫn với 6 loại HEX record khác nhau theo định dạng Intel HEX. Mỗi record sẽ bao gồm nhiều ký tự ASCII biểu diễn các giá trị theo mã hexadecimal. Mỗi hàng (record) hàng sẽ thường sẽ có 6 trường (field), mỗi trường sẽ có nhiệm vụ riêng. Mỗi hàng có thể kết thúc bằng kí tự CR(0x13)/LF(0x0A)/NULL(0x00). Tập tin chƣơng trình ở định dạng Intel BIN: Tập tin chương trình ở định dạng BIN là một tập tin chứa nội dung chương trình có đuôi .bin. Đây là một dạng tệp tin phi văn bản, được lưu trữ dưới định dạng mã nhị phân gồm các giá trị 0 và 1, dữ liệu trong tập 12 tin chính là chương trình ứng dụng được lưu một cách liên tục theo địa chỉ bộ nhớ, không chia thành từng dòng, không chứa các ký tự kết thúc câu, kí tự xuống dòng, không chứa địa chỉ, các trường chỉ dẫn và không có giá trị Checksum. 2.3.4. Cấu trúc chương trình trong bộ nhớ Để có thêm thêm tính năng OTA cho thiết bị thì khối bộ nhớ chính của vi điều khiển sẽ được chia thành nhiều vùng khác nhau để lưu trữ các chương trình như Bootloader tự phát triển; Chương trình OTA, Chương trình ứng dụng và Các biến liên kết. 2.4. Bộ xử lý trung tâm ARM Cortex – M Dòng vi xử lý ARM Cortex M là một dòng vi xử lý được thiết kế tối ưu cho giá thành và năng lượng tiêu thụ của vi điều khiển, C C R UT.L được sử dụng trong rất nhiều ứng dụng nhúng khác nhau. Vi xử lý ARM Cortex-M bao gồm một lõi vi xử lý, và nhiều ngoại vi chuyên D dụng xung quanh như NVIC, System Control Block, Flash Patch Breakpoint, Memory protection, Data watchpoint and trace, Bus Matrix,… 2.5. Quá trình khởi động của vi điều khiển Mỗi khi thiết bị được cấp nguồn, hoặc khi người dùng nhấn nút khởi động lại trên thiết bị hoặc khi chương trình ứng dụng phát hiện có phiên bản cập nhật mới thì vi điều khiển sẽ thực hiện khởi động lại. Việc đầu tiên khi vi điều khiển khởi động đó là thanh ghi Program Counter (PC) sẽ được nạp giá trị 0x0000_0000. Tiếp theo vi xử lý sẽ khởi tạo Stack Pointer bằng cách đọc giá trị bộ nhớ tại địa chỉ bộ nhớ chương trình 0x0000_0000 và nạp cho thanh ghi Main Stack Pointer. Sau đó vi xử lý sẽ đọc giá trị bộ nhớ tại địa chỉ 0x0000_0004 để nạp cho thanh ghi PC. Giá trị đọc được chính là địa 13 chỉ của Reset_Handler. Lúc này PC nhảy tới Reset_Handler. Reset_Handler có chức năng thực hiện một số khởi tạo và từ Reset_Handler sẽ gọi hàm main() của chương trình. 2.6. Module truyền nhận dữ liệu 4G Ngày nay, các thiết bị 4G có mặt ở hầu hết mọi nơi và chi phí giá thành cũng không cao, tính khả dụng rộng rãi như vậy làm cho nó trở thành lựa chọn ưu tiên trong vai trò kết nối vào Internet của các thiết bị nhúng. Quectel EC21 là một loại module 4G LTE Cat1 có tốc độ dữ liệu tối đa là 10Mbps download và upload là 5Mbps, tiết kiệm năng lượng, phù hợp sử dụng cho các ứng dụng nhúng không yêu cầu kết nối tốc độ cao. Module này hỗ trợ tương thích ngược với các mạng UMTS/HSPA+ và GSM/GPRS/EDGE. Vi điều khiển giao tiếp C C R UT.L với module này sử dụng giao thức UART thông qua tập lệnh AT 2.7. Kết luận chƣơng D Vi xử lý ARM Cortex – M, vi điều khiển STM32 là một trong những vi xử lý, vi điều khiển được sử dụng phổ biến trong các ứng dụng nhúng hiện nay. Nền tảng phần cứng phục vụ cho việc nghiên cứu và thử nghiệm cập nhật chương trình từ xa trong luận văn này được thiết kế dựa trên Vi điều khiển STM32F411 sử dụng lõi ARM Cortex –M4. 14 Chƣơng 3: Đề xuất phƣơng pháp và xây dựng thƣ viện cập nhật chƣơng trình từ xa 3.1. Giới thiệu chƣơng Chương 3 sẽ đề xuất một phương pháp cập nhật chương trình từ xa đảm bảo được các tiêu chí quan trọng. Từ đó một thư viện cập nhật chương trình từ xa sẽ được xây dựng dựa trên các thuật toán nối thiết bị với máy chủ, tải tập tin, kiểm tra lỗi tập tin, ghi tập tin vào bộ nhớ, khởi động thiết bị. 3.2. Phƣơng pháp cập nhật chƣơng trình từ xa Phương pháp cập nhật chương trình từ xa được xây dựng phải đảm bảo được các tiêu chí: C C R UT.L  Đảm bảo tỉ lệ thực hiện thành công cao  Ít tốn kém tài nguyên bộ nhớ  Quá trình cập nhật chương trình từ xa diễn ra trong thời D gian ngắn  Đảm bảo thiết bị vẫn sử dụng được trong các trường hợp: o Mất nguồn trong quá trình cập nhật chương trình từ xa o Phiên bản chương trình mới tồn tại lỗi o Lỗi trong quá trình nhận tập tin chương trình mới o Mất kết nối Internet trong quá trình cập nhật chương trình từ xa Lựa chọn phƣơng pháp phân vùng bộ nhớ: Trong vi điều khiển tồn tại phân vùng cho bootloader tự phát triển, phân vùng chương trình OTA, các biến liên kết và hai phân vùng cho hai phiên 15 bản chương trình ứng dụng khác nhau nhằm luân phiên cập nhật chương trình cho các vị trí A/B để thiết bị luôn duy trì hai phiên bản chương trình mới nhất. Lựa chọn phƣơng pháp lƣu trữ dữ liệu tạm thời: Lưu trữ một phần và lưu trữ toàn phần. Mỗi khi nhận một gói dữ liệu chứa một phần chương trình ứng dụng, ghi phần dữ liệu này vào vùng nhớ chương trình của bộ nhớ Flash. Một tập tin chương trình có thể sẽ được tải một lần hoặc nhiều lần tùy thuộc vào kích cỡ của tập tin so với kích cỡ bộ nhớ đệm khai báo tại RAM. Nếu bộ đệm được khai báo nhỏ hơn so với kích cỡ của tập tin thì phương pháp lưu trữ dữ liệu tạm thời là lưu trữ một phần. Nếu bộ đệm được khai báo lớn hơn hoặc bằng so với kích cỡ tập tin chương trình ứng dụng thì phương C C R UT.L pháp lưu trữ dữ liệu tạm thời là lưu trữ toàn phần. Thư viện chương trình cập nhật từ xa sẽ được phát triển trên D ngôn ngữ lập trình C dựa trên thư viện HAL (Hardware Abstraction Layer) của hãng STM32 để làm việc với các ngoại vi của vi điều khiển, và dựa trên một thư viện Sim tự phát triển dựa trên tập lệnh AT để làm việc với module Internet EC21. Các thư viện chuẩn của C để chuẩn hóa kiểu dữ liệu (stdint.h) và xử lý chuỗi (string.h). Thư viện được thiết kế thành từng khối chức năng cụ thể, dễ dàng hiệu chỉnh, sửa chữa cho phù hợp với nhu cầu của người sử dụng. Các tập tin liên quan đến thư viện sẽ được xây dựng: Tập tin thư viện fota_stm32.h Mô tả Header của fota_stm32.c, tập tin này cho phép người dùng hiệu chỉnh các thông số của tính năng cập nhật chương trình từ xa 16 cho phù hợp với ứng dụng của họ bao gồm các thông số định danh thiết bị, thông số để làm việc với FTP Server, cấu hình của thiết bị và phân vùng bộ nhớ. Tập tin này chứa các hàm sử dụng trong quá fota_stm32.c trình cập nhật chương trình từ xa được sử dụng cho cả chương trình Bootloader, chương trình OTA và chương trình ứng dụng gồm các hàm chức năng để thực hiện việc nối thiết bị với máy chủ, tải tập tin, kiểm tra lỗi tập tin, ghi tập tin vào bộ nhớ C C R UT.L Flash, Khởi động thiết bị và hàm kiểm tra phiên bản cập nhật mới. D 3.3. Thuật toán nhận, kiểm tra lỗi tập tin chƣơng trình 3.3.1. Thuật toán kết nối thiết bị với máy chủ Chương trình ứng dụng A/B sẽ định kỳ kết nối đến máy chủ và kiểm tra phiên bản cập nhật mới dành cho thiết bị. Nếu có phiên bản cập nhật mới thì sẽ cấu hình lại các biến liên kiết để lựa chọn chương trình OTA sẽ là chương trình sẽ được thực thi để thực hiện quá trình cập nhật phiên bản mới, sau khi cấu hình xong các biến liên kết, chương trình ứng dụng sẽ thực thi hàm NVIC_SystemReset để khởi động lại thiết bị. 3.3.2. Thuật toán tải tập tin Phương án cập nhật chương trình từ xa được lựa chọn là sử dụng hai phân vùng A và B chứa hai chương trình với phiên bản gần 17 nhất và cập nhật xen kẽ nhau. Trong trường hợp cập nhật thất bại thì thiết bị sẽ quay về phiên bản gần nhất. 3.3.3. Thuật toán kiểm tra lỗi tập tin Đối với tập tin định dạng HEX: Sau khi tải một phần hoặc toàn bộ tập tin chương trình về lưu trữ tạm thời tại SRAM, từng dòng dữ liệu sẽ được kiểm tra độ toàn vẹn trước khi được lưu vào bộ nhớ Flash. Kiểm tra lỗi tập tin về bản chất là kiểm tra trường checksum của mỗi dòng trong tập tin Đối với tập tin định dạng BIN: Giá trị CRC được tính toán và thêm vào ở cuối tập tin định dạng BIN. Sau khi tập tin được tải về và ghi vào bộ nhớ chương trình, sử dụng phần cứng tính toán CRC được tích hợp sẵn của STM32 để kiểm tra lỗi. Khối phần cứng CRC được thiết kế C C R UT.L dựa trên CRC-32/MPEG-2, có giá trị POLY=0x04c11db7 và Initial_Crc=0xFFFFFFFF 3.3.4. D Thuật toán ghi tập tin vào bộ nhớ Trước khi ghi chương trình mới vào bộ nhớ Flash cần thực hiện xóa nội dung chương trình cũ đang có tại tại đây. 3.3.5. Thuật toán khởi động lại vi điều khiển ARM cung cấp hàm NVIC_SystemReset() để thực hiện khởi động lại vi xử lý. Hàm này sẽ được sử dụng tại tại chương trình ứng dụng khi phát hiện một phiên bản chương trình mới và tại chương trình OTA khi thực hiện xong quá trình OTA. 3.4. Kết luận chƣơng Chương 3 đã trình bày các thuật toán và thư viện cập nhật chương trình từ xa được xây dựng trên phương pháp đã đề xuất. Thư viện được thiết kế thành từng khối chức năng cụ thể, dễ dàng hiệu chỉnh, sửa chữa cho phù hợp với nhu cầu của người sử dụng. 18 Chƣơng 4: Kết quả thực hiện và đánh giá 4.1. Giới thiệu chƣơng Tiêu chí thứ nhất là việc chiếm tài nguyên bộ nhớ khi triển khai tính năng OTA, tiêu chí thứ hai là tỉ lệ thành công khi thực hiện OTA, độ tin cậy khi thực hiện OTA, tiêu chí thứ ba là thời gian thực hiện quá trình OTA. 4.2. Kết quả thực hiện Kết quả thực hiện đề tài đã tạo ra các sản phẩm sau:  Thiết kế phần cứng thử nghiệm với Vi điều khiển sử dụng Vi xử lý ARM Cortex M3 và ARM Cortex M4  Thiết kế và thử nghiệm thành công chương trình Bootloader, chương trình OTA cho cả tập tin định dạng C C R UT.L HEX và tập tin định dạng BIN  Thư viện các hàm hỗ quá trình cập nhật chương trình từ xa. D Bên cạnh đó một số sản phẩm phụ cũng được tạo ra để phục vụ cho đề tài như:  Phần mềm hiệu chỉnh TAPIT_FTOA_Supporting_Tool_v1.0.exe Firmware chạy trên máy tính Windows  Webserver giúp triển khai và quản lý tính năng cập nhật từ xa cho các thiết bị 4.3. Đánh giá hiệu quả 4.3.1. Về chiếm dụng tài nguyên bộ nhớ Từ các kết quả thông báo của trình biên dịch, kết hợp với tập tin Linker Map (*.map) của từng chương trình gồm chương trình
- Xem thêm -

Tài liệu liên quan