![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp cổng COM và LPT RS232, RS485 và LPT là những giao tiếp cơ bản và kinh điển khi mới học về vi điều khiển... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 | |
Trưởng lão PIC bang
|
Trích:
Giải thuật đơn giản nhất cho việc sửa sai là tự động lặp lại thông điệp: - Đầu thu tính toán CRC của thông điệp và so sánh với CRC đã nhận được - Nếu kết quả không khớp thì đầu thu sẽ không xác nhận dữ liệu hợp lệ - Đầu phát sẽ tự động truyền lại thông điệp đó nếu không nhận được xác nhận dữ liệu hợp lệ Vì bạn cho biết hệ thống có xác suất lỗi khá thấp, tôi cho rằng giải thuật trên khá phù hợp với trường hợp của bạn. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#2 |
Đệ tử 4 túi
|
Mình cũng đang nghiên cứu truyền số liệu trong môi trường rất nhiễu và đường truyền dài. Nếu như phát hiện lỗi mà truyền lại cả gói thì những ứng dụng cần realtime sẽ không thực sự hiệu quả. Mình có tìm hiểu một số cách, có cách rất hay đó là truyền mỗi gói 9 byte, gồm 8 byte dữ liệu (mỗi byte dữ liệu có bit thứ 9 kiểm tra chẵn lẽ), và thêm một byte thứ 9 để kiểm tra các bit hàng dọc trong 8 byte đó (cứ tưởng tượng sắp xếp các bit trong gói đó như một ma trận 9x9). Như vậy có thể sửa lỗi cho gói dữ liệu rất tốt và không phải gửi lại toàn bộ nếu như mất một số thông tin trong gói đó.
Theo mình nghĩ cách đó code cũng không khó và hiệu quả đúng không ?! thay đổi nội dung bởi: thientaisodo, 18-02-2009 lúc 10:06 AM. |
![]() |
![]() |
![]() |
|
|