Mô hình và quá trình cập nhật chương trình từ xa cho thiết bị nhúng, IoT

Trong một mô hình cập nhật chương trình từ xa cho thiết bị sẽ có sự tham gia của các thành phần sau: Thiết bị nhúng/ thiết bị IoT, chương trình ứng dụng (Firmware) và máy chủ quản lý tập tin chương trình. Tiếp nối bài viết phân tích về sự quan trọng của tính năng cập nhật chương trình từ xa, bài viết này sẽ giúp chúng ta cùng tìm hiểu rõ hơn về từng thành phần của mô hình cập nhật chương trình từ xa và quá trình thực hiện điều này.

A/Các thành phần của mô hình cập nhật chương trình từ xa

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 đó. Thiết bị nhúng hiện nay được sử dụng trong nhiều lĩnh vực khác nhau như công nghiệp, tự động hoá, điều khiển, quan trắc, truyền tin… Thiết bị nhúng rất đa dạng, phong phú về chủng loại và mức độ phức tạp khác nhau tùy vào thiết bị. Có thiết bị nhúng rất đơn giản với một vi điều khiển hoặc có thể rất phức tạp với nhiều vi điều khiển, nhiều thiết bị ngoại vi và khả năng kết nối Internet được thiết kế trong một thiết bị.

Thông thường, trong một thiết bị nhúng, vi điều khiển là nơi chạy các chương trình, nó là một máy tính nhỏ với giới hạn về bộ nhớ và tốc độ xử lý. Một vi điều khiển thường bao gồm một vi xử lý đi kèm với bộ nhớ và các khối chức năng thường được gọi là ngoại vi, tất cả được liên kết với nhau thông qua hệ thống bus.

Để thiết bị nhúng có thể kết nối được với Internet thì cần có một module với chức năng thực hiện các kết nối Wifi, Ethernet hoặc 3G,4G,…. Vi điều khiển sẽ kết nối và giao tiếp với module đó thông qua ngoại vi. Vậy nếu quan tâm thiết bị nhúng với góc độ tính năng cập nhật chương trình từ xa thì thiết bị sẽ được mô tả dưới với ba thành phần cơ bản là vi điều khiển, Internet module và các khối chức năng khác như hình bên dưới.

Hình 1. Sơ đồ khối tổng quát của thiết bị nhúng có kết nối Internet

[HỌC ONLINE TẠI TAPIT: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]

2. Chương trình chạy trên thiết bị nhúng

Thông qua các giai đoạn của quá trình biên dịch, chương trình ứng dụng được người dùng phát triển trên ngôn ngữ bậc cao như C/C++ sẽ được chuyển thành ngôn ngữ máy để thiết bị nhúng có thể hiểu và thực thi được.

Hình 2. Quá trình tạo tập tin chương trình ứng dụ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ể đư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. Một cách tổng quát thì các tập tin này là một chuỗi các byte dữ liệu theo địa chỉ bộ nhớ của vi điều khiển.

3. Máy chủ quản lý tập tin chương trình

Quá trình cập nhập chương trình từ xa sẽ thay thế chương trình ứng dụng hiện tại trên thiết bị bằng một chương trình ứng dụng mới. Mà chương trình ứng dụng này thường phải được tải về từ một máy chủ quản lý tập tin.

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).

Để thiết bị có thể kết nối với máy chủ và thực hiện tải tập tin về được thì trên máy chủ phải cài sẵn ứng dụng quản lý tập tin và phải cấu hình mở cổng (port) kết nối liên quan đến dịch vụ tập tin.

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), đây là một giao thức thuộc lớp ứng dụng của tập giao thức mạng TCP/IP được sử dụng rộng rãi hiện nay trên máy chủ và cũng được hỗ trợ trên các module chức năng internet thường được sử dụng cho thiết bị nhúng [*].

 

B/Quá trình cập nhật chương trình từ xa

Một cách tổng quát, quá trình cập nhật chương trình từ xa thường trải qua các bước sau:

Hình 3. Quá trình cập nhật chương trình từ xa

Quá trình cập nhật chương trình từ xa

  • 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ập nhật chương trình từ xa là một tính năng quan trọng cho các 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, chuỗi bài viết nghiên cứu, thí nghiệm và hướng dẫ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ị. Chúc các bạn thành công! 

Thuong Nguyen

Fanpage Cộng đồng Kỹ thuật TAPIT: TAPIT – Learning, Research and Sharing Community