PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp cổng COM và LPT

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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
Prev Previous Post   Next Post Next
Old 20-01-2007, 01:26 AM   #4
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Trích:
Nguyên văn bởi odi View Post
Bạn có thể nói rõ hơn một chút về cách tính CRC trong VB cho tớ được không? Thanks.
Chào bạn.

Rất cảm ơn sự quan tâm của bạn đến chủ đề này. Việc lập trình truyền nhận theo một giao thức nhất định rất có ích cho các dự án về Mạng truyền thông công nghiệp hay tự động hoá toà nhà,...

Tuy nhiên, mình chưa lập trình xử lý kiểm soát lỗi CRC trong VB. Mình sẽ xem xét help MSDN rùi trao đổi với các bạn sau. Bạn nào nghiên cứu trong VB rùi xin post lên để cho mọi người cùng tham khảo học tập.

Mình xin đưa ra một vài thông tin về mã kiểm lỗi CRC:

Đầu tiên các bạn chọn một đa thức phát G được qui ước dưới dạng nhị phân tức các hệ số của nó chỉ có giá tri 1 hoặc 0 tương ứng với các chữ số trong một dãy bit.

Ví dụ:
Dạng đa thức: G = x^7 + x^6 + x^5 + (0x^4 + 0*x^3) + x^2 + (0*x^1) + 1
Dạng nhị phân: G = 1 1 1 0 0 1 0 1

Nguyên tắc cơ bản của phương pháp mã hoá CRC:
Trích:
  • Giả sử đa thức G có bậc n, ví dụ x^3 + x + 1 tương ứng với dãy bit {1011}. Dãy bit mang thông tin nguồn I được thêm vào n bit 0 và coi như một đa thức nhị phân P. Ví dụ thông tin nguồn là {110101} tgù sau khi thêm 3 bit 0, ta có dãy bit {110101000} tương ứng với đa thức P = x^8 + x^7 + x^5 + x^3.
  • Đa thức P được chia cho đa thức G dựa vào các qui tắc đơn giản của phép trừ không có nhớ (chính là phép XOR từng bit) (trừ 2 số bằng nhau kết quả = 0, trừ 2 số khác nhau kết quả = 1).
  • Không cần quan tâm tới kết quả của phép chia, phần dư R của phép chia được thay thế vào chỗ của n chữ số 0 bổ sung trong P, tức là ta có D = P + R. Theo tính chất của phép chia đa thức nhị phân, nếu D-R chi hết cho G thì D = P + R cũng vậy. D chính là dãy bit được gửi đi thay cho I.
  • Giả sử dãy bit nhận được là D' không chia hết cho G thì tức là D khác với D', ta có thể khẳng định được bức điện chắc chắn bị lỗi. Ngược lại, nếu D' chi hết cho G thì xác xuất rất cao là bức điện nhận được không có lỗi. Ta nói "xác suất cao", bởi mỗi bit trong thông tin nguồn tham gia nhiều vòng (cyclic) vào tính toán thông tin bổ trợ nên khả năng "dữ kiện" sai mà kết quả đúng" là rất it.
(Trích Pgs. Ts. Hoàng Minh Sơn - "Mạng truyền thông công nghiệp" NXB KHKT 2006)

Dựa trên nguyên tắc này các bạn có thể tạo ra ý tưởng cho việc lập trình của mình đó.

Chúc các bạn thành công.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Tags
forms!nhap!vao = x


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Giao tiếp RS232 trên PC ngohaibac Giao tiếp cổng COM và LPT 193 18-02-2025 09:11 AM
Cho hỏi về giao tiếp RS232 của PIC16F877A enti Giao tiếp cổng COM và LPT 31 25-03-2016 10:14 PM
Giao tiếp RS232 trên PC qua Matlab ngohaibac Giao tiếp cổng COM và LPT 47 18-11-2015 03:51 PM
cần mua bộ thu GPS có giao tiếp RS232 kienvq Tìm mua sản phẩm 15 17-03-2011 11:25 PM
Help! Dùng C để giao tiếp RS232 dandiennang Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 6 15-03-2009 06:41 PM


Múi giờ GMT. Hiện tại là 05:46 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam