Đánh giá về thời gian cập nhật chương trình

Bên cạnh các đánh giá liên quan đến chiếm dụng tài nguyên bộ nhớ, độ tin cậy – tỉ lệ cập nhật thành công thì thời gian thực hiện cập nhật chương trình từ xa cũng là một tiêu chí quan trọng cần thử nghiệm và đánh giá trong nghiên cứu này.  Khối DWT (Data Watch and Trace) bên trong vi xử lý ARM Cortex – M được sử dụng để đếm số clock cycles của vi xử lý khi thực hiện cả quá trình cập nhật chương trình từ xa và các quá trình thành phần. Ba chương trình ứng dụng với kích cỡ lần lượt là 15KByte, 30KByte và 60KByte. Mỗi chương trình được biên dịch tạo thành 1 tập tin dạng HEX và một tập tin dạng BIN. Thử nghiệm cập nhật chương trình 100 lần với mỗi tập tin.

Hình 1. Kết quả biên dịch các chương trình ứng dụng

 

Kích cỡ tập tin định dạng HEX và định dạng BIN tương ứng với các chương trình ứng dụng như sau:

Hình 2. Kích cỡ tập tin định dạng HEX và tập tin định dạng BIN các chương trình ứng dụng

Vi xử lý được cấu hình hoạt động với tốc độ dao động 16MHz, ngoại vi UART của vi điều khiển giao tiếp với Moudle Internet EC21 với tốc độ baud là 115200bps, khung truyền sử dụng là một bit bắt đầu, 8 bit dữ liệu, không sử dụng bit parity và một bit kết thúc.

Số clock cycle máy của vi xử lý được tính toán cho cả quá trình cập nhật chương trình từ xa và các quá trình thành phần bao gồm:

  • CheckSIM: Thời gian kiểm tra kết nối của vi điều khiển và module EC21
  • RSSI: Thời gian kiểm tra cường độ tín hiệu sóng của module EC21
  • Connect Internet: Thời gian kết nối Internet trên module EC21
  • FTP Connect: Thời gian kết nối đến máy chủ quản lý tập tin
  • Dowload & Flash writing: Thời gian tải tập tin và ghi tập tinh vào Flash
  • CRC: Thời gian kiểm tra toàn vẹn dữ liệu của toàn bộ chương trình mới với tập tin định dạng BIN
  • Checksum: Thời gian kiểm tra toàn vẹn dữ liệu của toàn bộ chương trình mới với tập tin định dạng HEX
  • Disconnect: Thời gian ngắt kết nối với máy chủ và tắt Internet.
  • FOTA: Thời gian tổng quá trình thực hiện cập nhật chương trình từ xa

Kết quả đo đạt số clock cycle với tập tin có kích cỡ 15KByte định dạng HEX trong 100 lần thử nghiệm được biểu diễn lại dưới dạng biểu đồ hình 3 và hình 4:

Hình 3. Biểu đồ đường số clock cycle quá trình OTA chương trình 15KByte định dạng HEX

Hình 4. Biểu đồ tròn tỉ lệ thời gian thành phần quá trình OTA chương trình 15KByte định dạng HEX

 

Nhận xét: Đối với chương trình ứng dụng 15KByte được biên dịch dưới dạng tập tin HEX, thời gian của các lần thực hiện OTA là ổn định, không có biến động nhiều, thời gian lâu nhất là thực hiện tải nội dung tập tin và ghi vào bộ nhớ Flash với hơn 80% tổng thời gian. Các hoạt động chiếm nhiều thời gian còn lại là kết nối vào Internet và kết nối máy chủ quản lý tập tin. Tổng thời gian thực hiện OTA trung bình là 158237974cycles, tương ứng với khoảng 9.9 giây.

 

Kết quả đo đạt với tập tin có kích cỡ 15KByte định dạng BIN trong 100 lần thử nghiệm được biểu diễn lại dưới dạng biểu đồ hình 5 và hình 6:

Hình 5. Biểu đồ đường số clock cycle quá trình OTA chương trình 15KByte định dạng BIN

Hình 6. Biểu đồ tròn tỉ lệ thời gian thành phần quá trình OTA chương trình 15KByte định dạng BIN

 

Nhận xét: Đối với chương trình ứng dụng 15KByte được biên dịch dưới dạng tập tin BIN, thời gian của các lần thực hiện OTA là ổn định, không có biến động nhiều, thời gian lâu nhất là thực hiện tải nội dung tập tin và ghi vào bộ nhớ Flash với hơn 65% tổng thời gian. Các hoạt động chiếm nhiều thời gian còn lại là kết nối vào Internet và kết nối máy chủ quản lý tập tin. Tổng thời gian thực hiện OTA trung bình là 85840094 cycles, tương ứng với khoảng 5.4 giây.

 

Kết quả đo đạt với tập tin có kích cỡ 30KByte định dạng HEX trong 100 lần thử nghiệm được biểu diễn lại dưới dạng biểu đồ hình 7 và hình 8:

Hình 7. Biểu đồ đường số clock cycle quá trình OTA chương trình 30KByte định dạng HEX

Hình 8. Biểu đồ tròn tỉ lệ thời gian thành phần quá trình OTA chương trình 30KByte định dạng HEX

Nhận xét: Đối với chương trình ứng dụng 30KByte được biên dịch dưới dạng tập tin HEX, thời gian của các lần thực hiện OTA là ổn định, không có biến động nhiều, thời gian lâu nhất là thực hiện tải nội dung tập tin và ghi vào bộ nhớ Flash với hơn 85% tổng thời gian. Các hoạt động chiếm nhiều thời gian còn lại là kết nối vào Internet và kết nối máy chủ quản lý tập tin. Tổng thời gian thực hiện OTA trung bình là 264065064 cycles, tương ứng với khoảng 16.5 giây

Kết quả đo đạt với tập tin có kích cỡ 30KByte định dạng BIN trong 100 lần thử nghiệm được biểu diễn lại dưới dạng biểu đồ hình 9 và hình 10:

Hình 9. Biểu đồ đường số clock cycle quá trình OTA chương trình 30KByte định dạng BIN

Hình 10. Biểu đồ tròn tỉ lệ thời gian thành phần quá trình OTA chương trình 30KByte định dạng BIN

Nhận xét: Đối với chương trình ứng dụng 30KByte được biên dịch dưới dạng tập tin BIN, thời gian của các lần thực hiện OTA là ổn định, không có biến động nhiều, thời gian lâu nhất là thực hiện tải nội dung tập tin và ghi vào bộ nhớ Flash với hơn 65% tổng thời gian. Các hoạt động chiếm nhiều thời gian còn lại là kết nối vào Internet và kết nối máy chủ quản lý tập tin. Tổng thời gian thực hiện OTA trung bình là 119395522 cycles (tương ứng với 7.5 giây)

Kết quả đo đạt với tập tin có kích cỡ 60KByte định dạng HEX trong 100 lần thử nghiệm được biểu diễn lại dưới dạng biểu đồ hình 11 và hình 12:

Hình 11. Biểu đồ đường số clock cycle quá trình OTA chương trình 60KByte định dạng HEX

Hình 12. Biểu đồ tròn tỉ lệ thời gian thành phần quá trình OTA chương trình 60KByte định dạng HEX

Nhận xét: Đối với chương trình ứng dụng 60KByte được biên dịch dưới dạng tập tin HEX, thời gian của các lần thực hiện OTA là ổn định, không có biến động nhiều, thời gian lâu nhất là thực hiện tải nội dung tập tin và ghi vào bộ nhớ Flash với hơn 90% tổng thời gian. Các hoạt động chiếm nhiều thời gian còn lại là kết nối vào Internet và kết nối máy chủ quản lý tập tin. Tổng thời gian thực hiện OTA trung bình là 499840662 cycles (tương ứng với 31.2 giây)

 Kết quả đo đạt với tập tin có kích cỡ 60KByte định dạng BIN trong 100 lần thử nghiệm được biểu diễn lại dưới dạng biểu đồ hình 13 và hình 14:

Hình 13. Biểu đồ đường số clock cycle quá trình OTA chương trình 60KByte định dạng BIN

 

Hình 14 Biểu đồ tròn tỉ lệ thời gian thành phần quá trình OTA chương trình 60KByte định dạng BIN

 Nhận xét: Đối với chương trình ứng dụng 60KByte được biên dịch dưới dạng tập tin BIN, thời gian của các lần thực hiện OTA là ổn định, không có biến động nhiều, thời gian lâu nhất là thực hiện tải nội dung tập tin và ghi vào bộ nhớ Flash với hơn 80% tổng thời gian. Các hoạt động chiếm nhiều thời gian còn lại là kết nối vào Internet và kết nối máy chủ quản lý tập tin. Tổng thời gian thực hiện OTA trung bình là 184158711 cycles (tương ứng với 11.5 giây)

Từ các kết quả thử nghiệm với từng tập tin, có thể thấy được thời gian thực hiện FOTA phụ thuộc nhiều vào thời gian tải tập tin chương trình. Với cùng một chương trình thì tập tin định dạng BIN chỉ chứa nội dung chương trình nên kích thước nhỏ thời gian tải nhanh, tập tin định dạng HEX có chứa thêm các chỉ dẫn nên kích thước lớn thời gian tải lâu.

Bảng 1. Kết quả thời gian thực hiện OTA với tập tin định dạng HEX và định dạng BIN

Nhóm nghiên cứu đã được những kết quả cụ thể về phần cứng và phần mềm, các thử nghiệm đã được thực hiện để đánh giá chương trình thử nghiệm cho thấy được chương trình bootloader và chương trình OTA chiếm ít tài nguyên bộ nhớ, tỉ lệ thành công khi thực hiện cập nhật chương trình từ xa là rất cao, lên đến 100% trong 600 lần thử nghiệm, các nội dung này đã được nhóm trình bày trong bài chia sẻ trước. Trong bài chia sẻ này, thời gian thực hiện quá trình cập nhật được đánh giá dựa trên đơn vị số cycles thực hiện của vi xử lý cũng chỉ ra được tỉ lệ chiếm thời gian của các hoạt động thành phần trong quá trình OTA.

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