ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA
----- -----
C
C
R
L
T.
NGUYỄN HUỲNH NHẬT THƢƠNG
U
D
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
LUẬN VĂN THẠC SĨ
CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN 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
CHO CÁC THIẾT BỊ NHÚNG KẾT NỐI INTERNET
C
C
R
L
T.
Chuyên ngành : Kỹ thuật điện tử
Mã số: 8520203
U
D
LUẬN VĂN THẠC SĨ
NGƢỜI HƢỚNG DẪN KHOA HỌC:
TS. Võ Tuấn Minh
TS. Nguyễn Duy Nhật Viễn
Đà Nẵng – Năm 2020
C
C
DU
R
L
T.
ii
MỤC LỤC
Lời cam đoan ......................................................................................................................... i
MỤC LỤC ...........................................................................................................................ii
MỞ ĐẦU .............................................................................................................................. 1
1.
Tính cấp thiết của đề tài .......................................................................................... 1
2.
Mục đích nghiên cứu............................................................................................... 1
3.
Đối tượng và phạm vi nghiên cứu .......................................................................... 2
4.
Phương pháp nghiên cứu ........................................................................................ 2
5.
Ý nghĩa khoa học và thực tiễn của đề tài ................................................................ 2
6.
Cấu trúc của luận văn .............................................................................................. 3
Chương 1: Tổng quan về cập nhật chương trình từ xa ......................................................... 4
C
C
1.1. Giới thiệu chương ................................................................................................... 4
R
L
T.
1.2. Ứng dụng của cập nhật chương trình từ xa ............................................................. 4
1.3. Mô hình cập nhật chương trình từ xa ...................................................................... 5
U
D
1.3.1.
Thiết bị nhúng ............................................................................................... 5
1.3.2.
Chương trình chạy trên thiết bị nhúng .......................................................... 6
1.3.3.
Máy chủ quản lý tập tin chương trình........................................................... 6
1.3.4.
Quá trình cập nhật chương trình từ xa .......................................................... 7
1.4. Kết luận chương ...................................................................................................... 8
Chương 2: Nền tảng phần cứng cập nhật chương trình từ xa............................................... 9
2.1. Giới thiệu chương ................................................................................................... 9
2.2. Tổng quan về phần cứng ......................................................................................... 9
2.3. Tổ chức bộ nhớ của vi điều khiển và cấu trúc chương trình ................................ 11
2.3.1.
Tổ chức bộ nhớ chương trình ..................................................................... 12
2.3.2.
Tổ chức bộ nhớ dữ liệu ............................................................................... 14
2.3.3.
Cấu trúc tập tin chương trình ...................................................................... 15
2.3.4.
Cấu trúc chương trình trong bộ nhớ ........................................................... 18
2.4. Bộ xử lý trung tâm ARM Cortex – M................................................................... 22
2.5. Quá trình khởi động của vi điều khiển.................................................................. 23
2.6. Module truyền nhận dữ liệu 4G ............................................................................ 24
2.7. Kết luận chương .................................................................................................... 25
iii
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 ...... 27
3.1. Giới thiệu chương ................................................................................................. 27
3.2. Phương pháp cập nhật chương trình từ xa ............................................................ 27
3.3. Thuật toán nhận, kiểm tra lỗi tập tin chương trình ............................................... 29
3.3.1.
Thuật toán kết nối thiết bị với máy chủ ...................................................... 29
3.3.2.
Thuật toán tải tập tin ................................................................................... 33
3.3.3.
Thuật toán kiểm tra lỗi tập tin..................................................................... 37
3.3.4.
Thuật toán ghi tập tin vào bộ nhớ ............................................................... 41
3.3.5.
Thuật toán khởi động lại vi điều khiển ....................................................... 42
3.4. Kết luận chương .................................................................................................... 50
Chương 4: Kết quả thực hiện và đánh giá .......................................................................... 51
C
C
4.1. Giới thiệu chương ................................................................................................. 51
R
L
T.
4.2. Kết quả thực hiện .................................................................................................. 51
4.3. Đánh giá hiệu quả ................................................................................................. 54
U
D
4.3.1 Về chiếm dụng tài nguyên bộ nhớ ..................................................................... 54
4.3.2
Về độ tin cậy, tỉ lệ cập nhật thành công ......................................................... 55
4.3.3.
Thời gian cập nhật chương trình ................................................................. 56
4.4. Kết luận chương .................................................................................................... 67
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
TÀI LIỆU THAM KHẢO
PHỤ LỤC
iv
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
Học viên: Nguyễn Huỳnh Nhật Thương
Chuyên ngành: Kỹ thuật điện tử
Mã số:8520203
Khóa: K38.KĐT
Trường Đại học Bách khoa – ĐHĐN
Tóm tắt – Cùng với sự phát triển không ngừng của công nghệ và đặc biệt là xu thế vạn vận kết
nối Internet, ngày càng nhiều thiết bị nhúng kết nối vào Internet được sử dụng khắp nơi trên thế
giới trong rất nhiều lĩnh vực khác nhau. Dưới áp lực của sự phát triển, các thiết bị sau khi đưa vào
sử dụng thì mới phát hiện các lỗi hay cần nâng cấp thêm để bổ sung, tối ưu các tính nă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, điều nay dẫn đến những khó khăn trong quá trình thay đổi chương trình chạy
trên thiết bị. Trong đề tài này nghiên cứu các yếu tố kỹ thuật liên quan đến quá trình cập nhật từ
xa cho thiết bị nhúng. Từ đó, đề xuất phương pháp cập nhật 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ể.
Thư viện và phương pháp đề xuất có độ tin cậy cao, ít chiếm dụng bộ nhớ và thời gian thực hiện
cập nhật chương trình nhanh. Cấu trúc thư viện được thiết kế cho phép dễ dàng kế thừa, áp dụng
cho nhiều hệ thống nhúng có kết nối Internet được thiết kế dựa trên nền tảng vi xử lý ARM
Cortex –M để thực hiện việc cập nhật 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 trực tiếp vào thiết bị.
C
C
R
L
T.
Từ khóa – cập nhật chương trình từ xa; thiết bị nhúng; vạn vật kết nối Internet; vi xử lý ARM
Cortex - M; vi điều khiển STM32.
U
D
A STUDY AND PROPOSAL OF OVER-THE-AIR FIRMWARE UPDATE LIBRARY
FOR INTERNET-CONNECTED EMBEDDED DEVICES
Abstract - With the continuous development of technologies and especially the trend of Internet
of Things, more and more Internet-connected embedded devices are being used all over the world
in many different use cases. Development teams are always under pressure to deliver faster,
however, after being put into use, devices are found to have errors or need to be upgraded to add
and optimize features. In fact, many embedded systems are deployed in places that are difficult
for human operators or technical staff to access, which leads to difficulties in the process of
changing programs running on the device. In this thesis, technical factors related to the remote
update process for embedded devices are studied. From there, proposing the method of updating
the program remotely, checking and evaluating the remote update program on specific model.
The proposed library and method are highly reliable, consume less memory usage, and have fast
program update execution times. Designed library structure allows easy inheritance, applicable to
many Internet-connected embedded systems designed on ARM Cortex –M platform in order to
update the program remotely to patch, upgrade and optimize the features in a short time without
intervention directly to the device.
Keywords – Firmware over the air; Embedded device; Internet of things; ARM Cortex –M
Processor; STM32 Microcontroller.
v
Danh mục các kí hiệu các chữ viết tắt
OTA
Over The Air
FOTA
Firmware Over The Air
DNS
Domain Name System
FTP
File Transfer Protocol
TCP/IP
Transmission Control Protocol
RSSI
Received Signal Strength Indicator
CPU
Central Processing Unit
RTC
Real time clock
LCD
Liquid Crystal Display
USB
Universal Serial Bus
UART
Universal Asynchronous Receiver Transmitter
ADC
Analog-to-digital Converter
SRAM
Static Ramdom-Access Memory
RAM
Ramdom-Access Memory
NVIC
Nested Vector Interrupt Control
CRC
Cyclic Redundancy Check
SP
Stack Pointer
PSP
Processor Stack Pointer
MSP
Main Stack Pointer
PC
Program Counter
VTOR
Vector Table Offset Register
UMTS
Universal Mobile Telecommunication System
HSPA
High Speed Packet Access
C
C
R
L
T.
U
D
vi
USB
Universal Serial Bus
LED
Light Emitting Diode
GSM
Symbol Stock Images
GPRS
General Packet Radio Service
PCIe
Peripheral Component Interconnect Express
HAL
Hardware Abstraction Layer
C
C
U
D
R
L
T.
vii
Danh mục các bảng
Bảng 3.1
Mô tả tập tin thư viện
Bảng 3.2
Danh sách các hàm trong thư viện cập nhập chương trình từ xa
Bảng 4.1
Các phân vùng trong bộ nhớ Flash
Bảng 4.2
Tỉ lệ thử nghiệm cập nhập chương trình từ xa thành công
Bảng 4.3
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
Bảng 4.4
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
C
C
U
D
R
L
T.
viii
Danh mục các hình
Hình 1.1
Sơ đồ khối tổng quát của thiết bị nhúng có kết nối Internet
Hình 1.2
Quá trình tạo tập tin chương trình ứng dụng
Hình 1.3
Quá trình cập nhập chương trình từ xa
Hình 2.1
Sơ đồ khối phần cứng thử nghiệm
Hình 2.2
Sơ đồ khối vi điều khiển STM32F411
Hình 2.3
Sơ đồ khối nguyên lý LCD, USB-UART, LEDs và Buttons
Hình 2.4
Bản đồ bộ nhớ của Vi xử lý ARM Cortex M4
Hình 2.5
Vùng bộ nhớ chương trình
Hình 2.6
Tổng quan về tổ chức bộ nhớ chương trình
Hình 2.7
Tổ chức bộ nhớ dữ liệu
Hình 2.8
Ví dụ về nội dung và cấu trúc tập tin HEX
Hình 2.9
Ví dụ về nội dung và cấu trúc tập tin BIN
Hình 2.10
Cấu trúc chương trình trong bộ nhớ
Hình 2.11
Cấu trúc chương trình trong bộ nhớ khi thêm tính năng OTA – C1A
Hình 2.12
Cấu trúc chương trình trong bộ nhớ khi thêm tính năng OTA – C1B
Hình 2.13
Cấu trúc chương trình trong bộ nhớ khi thêm tính năng OTA – C2A
Hình 2.14
Quá trình hoạt động tương ứng với bố trí bộ nhớ C2A
Hình 2.15
Cấu trúc chương trình trong bộ nhớ khi thêm tính năng OTA – C2B
Hình 2.16
Các thanh ghi của Vi xử lý ARM Cortex - M4
Hình 2.17
Cấu trúc một chương trình trong bộ nhớ vi điều khiển
Hình 2.18
Quectel EC21 vad Quectel EC21 PCIe Mini card
Hình 2.19
Sơ đồ nguyên lý của Module Quectel EC21
Hình 3.1
Phương pháp phân vùng bộ nhớ và quá trình hoạt động được chọn
Hình 3.2
Giản đồ quy trình kiểm tra hoạt động module Internet
Hình 3.3
Giản đồ quy trình cấu hình thông số và kết nối Internet
Hình 3.4
Giản đồ quy trình cấu hình thông số của giao thức FTP
C
C
R
L
T.
U
D
ix
Hình 3.5
Giản đồ quy trình kết nối FTP server
Hình 3.6
Giản đồ quy trình cấu hình đường dẫn chứa tập tin chương trình
Hình 3.7
Giản đồ quy trình chọn tập tin tải về
Hình 3.8
Giản đồ quy trình xác định kích thước tập tin tải về
Hình 3.9
Giản đồ quy trình tải tập tin định dạng BIN
Hình 3.10
Giản đồ quy trình tải tập tin định dạng HEX
Hình 3.11
Giản đồ quy trình kiểm tra checksum
Hình 3.12
Khối tính toán CRC trong vi điều khiển STM32
Hình 3.13
Giản đồ quy trình kiểm tra CRC
Hình 3.14
Giản đồ quy trình tải và ghi chương trình vào bộ nhớ FLASH
Hình 3.15
Sơ đồ trạng thái các chương trình trong vi điều khiển
Hình 3.16
Giản đồ quy trình kiểm tra và làm việc với biến fwfailtime
Hình 3.17
Giản đồ quy trình lựa chọn chương trình cần thực thi
Hình 3.18
Giản đồ quy trình nhảy đến một chương trình khác từ bootloader
Hình 4.1
Giao diện phần mềm FOTA Supporting Tool
Hình 4.2
Giao diện webserver quản lý thiết bị
Hình 4.3
Sản phẩm thực tế sử dụng thư viện OTA của đề tài
Hình 4.4
Kết quả biên dịch các chương trình ứng dụng
Hình 4.5
Biểu đồ đường số clock cycle quá trình OTA chương trình 15KByte
định dạng HEX
Hình 4.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 HEX
Hình 4.7
Biểu đồ đường số clock cycle quá trình OTA chương trình 15KByte
định dạng BIN
Hình 4.8
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
Hình 4.9
Biểu đồ đường số clock cycle quá trình OTA chương trình 30KByte
định dạng HEX
C
C
R
L
T.
U
D
x
Hình 4.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 HEX
Hình 4.11
Biểu đồ đường số clock cycle quá trình OTA chương trình 30KByte
định dạng BIN
Hình 4.12
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
Hình 4.13
Biểu đồ đường số clock cycle quá trình OTA chương trình 60KByte
định dạng HEX
Hình 4.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 HEX
Hình 4.15
Biểu đồ đường số clock cycle quá trình OTA chương trình 60KByte
định dạng BIN
Hình 4.16
R
L
T.
C
C
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
U
D
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 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 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
C
R
L
T.
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.
U
D
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ố 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 [2], 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ớ, 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.
Đề 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ể.
2
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
- 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
C
C
R
L
T.
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:
-
U
D
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
Đề 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 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
Đánh giá kết quả thực hiện.
5. Ý 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 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ị.
3
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 từ xa.
Chƣơng 2: NỀN TẢNG PHẦN CỨNG CẬP NHẬT 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.
C
C
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
R
L
T.
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
U
D
Chƣơng 4: KẾT QUẢ THỰC HIỆN VÀ ĐÁNH GIÁ HIỆU QUẢ
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.
4
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
Cập nhật chương trình từ xa cho các thiết bị nhúng có kết nối Internet là tính năng
mang lại nhiều lợi ích thiết thực và được quan tâm nhiều hiện nay. Để thiết kế được
tính năng cập nhật nhật chương trình từ xa thì cần có sự tham gia của nhiều thành
phần kèm với một quá trình cụ thể. 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
C
C
Cùng với sự phát triển không ngừng của công nghệ và xu thế vạn vật kết nối
Internet trong cuộc CMCN 4.0, 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. Ngày càng nhiều các thiết bị nhúng được thiết kế hỗ trợ kết nối vào Internet
mở ra hàng loạt các cơ hội và thách thức mới cho người tiêu dùng, các công ty và cả
chính phủ. Điều này cũng đặt ra các bài toán mới cho những nhà nghiên cứu và phát
triển:
Yêu cầu thay đổi và bổ sung tính của các thiết bị nhúng có kết nối Internet
nhiều hơn so với những yêu cầu của các thiết bị truyền thống.
Thị trường mới và thay đổi nhanh chóng, thiết bị dựa trên những công nghệ
mới nên các mối đe dọa bảo mật và vi phạm quyền riêng tư là một trong những
yếu tố lớn cần quan tâm để bảo vệ, chống lại các cuộc tấn công qua môi trường
Internet.
Thời gian thiết kế và cung cấp thiết bị ra thị trường là rất ngắn. Phần cứng của
thiết bị cần được thiết kế dự phòng để đáp ứng được yêu cầu thị trường trong
một khoảng thời gian dài hơn. Phần mềm có thể được triển khai theo từng giai
đoạn.
Để giải quyết được những bài toán trên thì 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ế 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 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ị.
U
D
R
L
T.
5
1.3. Mô hình cập nhật chƣơng trình từ xa
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, chương trình ứng dụng, máy chủ quản lý tập tin
chương trình.
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 đó. 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.
C
C
R
L
T.
U
D
Hình 1.1 Sơ đồ khối tổng quát của thiết bị nhúng có kết nối Internet
6
1.3.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 1.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.
C
C
R
L
T.
U
D
1.3.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 [1].
7
1.3.4. 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:
C
C
R
L
T.
U
D
Hình 1.3 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
8
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 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ị. Yêu
cầu đặt ra là nghiên cứu và đề xuất phải dựa trên một nền tảng phần cứng vi xử lý, vi
điều khiển, công nghệ truyền thông được sử dụng phổ biến hiện nay và mô hình đề
xuất phải mang tính tổng quát, áp dụng được cho nhiều dòng thiết bị khác nhau.
C
C
U
D
R
L
T.
- Xem thêm -