Tôi đã tự hỏi làm thế nào để tạo một giao thức truyền thông UART / USB an toàn. Tôi cần nó để liên lạc giữa vi điều khiển và PC. Tôi có ~ 10 lệnh và nghĩ rằng tôi sẽ sử dụng 10 lệnh xác nhận riêng biệt cho mỗi lệnh.
Việc trao đổi sẽ diễn ra như thế này:
- PC gửi lệnh đánh thức qua UART
- PhaC nhận ra rằng PC được kết nối và gửi lệnh của mình tới PC, vd.
0x01
- PC thực hiện những gì nó được yêu cầu (một số nội dung phần cứng) và trả lời
~0x01
khi hoàn thành (tôi phủ định số để tạo "khoảng cách" lớn hơn giữa hai số) - Tổ ong biết rằng nó đã gửi
0x01
và đang mong đợi~0x01
từ PC. Nếu có thứ gì đó không~0x01
quay trở lại, thìCraftC sẽ biết rằng đã xảy ra lỗi và sẽ gửi yêu cầu mới hoặc thông báo lỗi
Trường hợp mà LOCC gửi 0x01
, PC hiểu 0x02
và gửi ~0x02
lại, nhưng LOCC đọc ~0x01
do một số tiếng ồn sẽ khá tệ.
Làm thế nào an toàn là về mặt truyền tải, hoặc làm thế nào tôi có thể làm cho điều này an toàn hơn?