.7 Chu kì thực thi 10s

Một phần của tài liệu Thiết kế bộ giám sát hành trình cho ô tô (Trang 46 - 50)

Lưu dữ liu trong b nh

Trong quá trình thiết bị di chuyển, có những thời điểm thiết bị không kết nối được với server (do thiết bị đi vào vùng mất sóng, hoặc do module GSM bị treo, hoặc vì 1 nguyên nhân nào khác), lúc này thiết bị cần phải lưu lại các dữ liệu trong bộ nhớ để khi kết nối lại được với server, thiết bị sẽ gửi lại các dữ liệu chưa gửi được tới server.

Ngoài dữ liệu khi mất sóng, thiết bị cũng cần lưu lại các dữ liệu định kì để phục vụ cho cơng tác kiểm tra, bảo hành thiết bị.

Để giảm giá thành và tăng tính ổn định cũng như tính bảo mật của hệ thống, tác giả quyết định sử dụng bộ nhớ flash có sẵn của MCU để lưu dữ liệu, nhà sản xuất cho phép khóa bộ nhớ flash, chống đọc ngược dữ liệu, do vậy hồn tồn có thể bảo mật dữ liệu.

Chu kì 10s

Thực hiện quá

trình login vào server

Kiểm tra kết nối tới server

Gửi dữ liệu lộ

trình lên server

Kết nối ok

47

Bộ nhớ flash trong MCU được lưu theo từng block, mỗi block là 32 bit, trong khi đó dữ liệu lộ trình được chia nhỏ thành 8 bit, do vậy mỗi lần đọc/ghi dữ liệu cần tách/ghép các dữ liệu 8 bit thành dữ liệu 32bit cho phù hợp.

Ngoài ra, bộ nhớ flash của MCU chỉ hỗ trợ tính năng xóa cả trang (page) mà khơng hỗ trợ tính năng xóa từng byte dữ liệu, do vậy nếu cần chỉnh sửa, dữ liệu, cần đọc lại dữ liệu vào bộ nhớ tạm, sau đó chỉnh sửa dữ liệu rồi ghi lại vào flash.

Commented [q3]: ?? 12 hay 32

Commented [PK4]: 32 ạ, em đã sửa lại.

Commented [q5]: Có tính đến trường hợp đang ghi thì mất điện

cung cấp (hỏng ác quy) khi đó data có bị mất ? Có thể khắc phục đc k ? Nếu đc thì đưa giải pháp

Commented [PK6]: Trường họp đang ghi dữ liệu mà mất điện

thì các dữ liệu đã ghi rồi sẽ khơng bị mất ạ, đồng thời thiết bị cũng không thể ghi dữ liệu cho tới khi có điện trở lại ạ.

48

3. Thiết kế giao thứctruyền nhận giữa thiết bị và server

Để tăng tính bảo mật, cũng như tạo sự thống nhất trong quá trình truyền, nhận dữ liệu, các dữ liệu truyền lên hoặc nhận về từ server đều được chia thành các packet, mỗi packet đều phải tuân theo 1 giao thức đã định sẵn.

3.1 Định dạng bản tin

Phần này quy định giao thức chung cho tất cả các bản tin truyền nhận giữa server. Trường Header Loại bản tin Thời gian Mã bảo mật Độ dài nội dung Nội

dung CheckSum Footer

Độ dài (Byte) 5 ($DATA) 1 6 (YYMMDD HHMMSS) 8 2 1 (#) Bảng 3.1 – Định dạng bản tin

Header : Đánh dấu bắt đầu bản tin, mặc định là $DATA, có độ dài là 5 byte. Loại bản tin : Mô tả bản tin gửi lên server là bản tin nào, có các loại bản tin sau :

Loi bn tin Mô t

Bản tin login 0 Các bản tin trong quá trình login của thiết bị

Bản tin định kì 1 Bản tin chứa các thông số của thiết bị như tọa

độ, vận tốc, nhiên liệu

Bản tin update firmware 2 Bản tin yêu cầu update firmware từ server.

Thời gian : Thời gian gửi của bản tin.

Mã bảo mật : Được sinh ra từ trường Thời gian kết hợp với key và phương thức

sinh mã bảo mật đã được biết trước.

49

Nội dung : Nội dung của bản tin

Checksum : Nhằm xác thực tất cả các trường trong bản tin đều đã được

truyền/nhận đúng. Checksum được tính bằng cách cộng tất cả các byte của các

trường trong bản tin từ $DATA tới byte cuối cùng trong trường Nội dung. Footer : Byte đánh dấu kết thúc bản tin, độ dài 1 byte, mặc định là dấu ‘#’

3.2 Bản tin login

Để tăng tính bảo mật cho việc truyền nhận với server, trước khi thực hiện quá trình gửi dữ liệu lên server, thiết bị phải thực hiện quá trình login vào server, quá trình này sẽ được trải qua các bước để xác thực giữa thiết bị và server nhờ các key trong bản tin login.

Quá trình login

Gửi bản tin

login lên server.

Nhận được xác thực login từ server

Kiểm tra key trong bản tin xác thực

Sai

Đúng

Sai

Đúng Nhận key mới, thực hiện

50

Một phần của tài liệu Thiết kế bộ giám sát hành trình cho ô tô (Trang 46 - 50)

Tải bản đầy đủ (PDF)

(59 trang)