ARM cung cấp hàm NVIC_SystemReset() để thực hiện khởi động lại vi xử lý. Trong ứng dụng cập nhật chương trình từ xa, hàm này sẽ được gọ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. Sau khi hàm NVIC_SystemReset() được thực thi thì vi xử lý sẽ khởi động lại và thực hiện chương trình Bootloader. Trong bài viết này, mình sẽ trình bày cho các bạn về thiết kế Bootloader cho vi điều khiển STM32 trong ứng dụng cập nhật chương trình từ xa theo thiết kế thực tế mà mình đã thực hiện.Continue Reading

Các tính năng bootloader hay cập nhật chương trình từ xa (FOTA) cần áp dụng “in-application programming”. Khi đó, firmware của thiết bị không được nạp trực tiếp qua các chuẩn nạp chương trình như JTAG/SWD. Firmware có thể được truyền trực tiếp từ phần mềm máy tính hoặc qua môi trường internet xuống thiết bị, các chuẩn giao tiếp phổ biến được sử dụng ở vi điều khiển nhận dữ liệu tập tin firmware là UART hoặc USB,… Việc không sử dụng một chuẩn nạp chương trình chính thống được tích hợp sẵn và tập tin firmware có thể đi qua nhiều quá trình/ môi trường khác nhau như qua phần mềm máy tính, qua Internet…vv…có thể làm xuất hiện lỗi. Vì vậy để đảm bảo độ tin cậy cho firmware trước khi ghi vào bộ nhớ Flash của vi điều khiển và thực thi nó như một chương trình chính thì việc kiểm tra lỗi tập tin là một công đoạn quan trọng cần thực hiện. Continue Reading

Trong số các dịch vụ IoT mà AWS cung cấp, dịch vụ đóng vai trò trung tâm và cốt lõi nhất là dịch vụ AWS IoT Core với nhiệm vụ cung cấp cách thức (địa chỉ broker, giao thức, phương thức bảo mật) để các thiết bị trong hệ thống IoT có thể kết nối đến AWS, ngoài ra AWS IoT Core cũng là điểm đầu cuối để các dịch vụ đám mây khác có thể dễ dàng tương tác với dữ liệu hệ thống.Continue Reading

Việc ra quyết định lựa chọn sử dụng dịch vụ nào trên nền tảng đám mây để hệ thống đạt hiệu quả thực tế tốt nhất sẽ phụ thuộc vào yêu cầu cụ thể và thiết kế ban đầu của hệ thống. Nhóm nghiên cứu đề xuất thiết kế luồng dữ liệu cho 3 loại gói tin chính trong tổng số 6 loại gói tin đã phân loại để thực hiện so sánh đánh giá là: dữ liệu cảm biến, dữ liệu điều khiển và dữ liệu trạng thái.Continue Reading

Bộ nhớ chương trình của một thiết bị IoT khi tích hợp tính năng cập nhật chương trình từ xa (FOTA) cần được thiết kế một các hợp lý để lưu trữ cá thành phần như Bootloader, Chương trình OTA, Chương trình ứng dụng và các biến liên kết. Bài viết này sẽ trình bày cơ bản về một số cấu trúc phân bố chương trình trong bộ nhớ, phân tích ưu nhược điểm của các cấu trúc để các bạn có thể lựa chọn phù hợp cho ứng dụng của các bạn. Continue Reading