เทคนิคการตรวจสอบความถูกตองของ
ขอมูล
กลาวนํา
การรับสงขอมูลสิ่งที่เปนหัวใจในการดําเนินการคือ ความถูกตองตรงกัน ของขอมูล ซึ่งในวิธีการรับสงไมวาจะเปนแบบแอนะล็อกหรือแบบดิจิตอล ตาง ก็ใหความสําคัญตอสิ่งนี้เชนเดียวกัน แตในการรับสงขอมูลแบบดิจิตอลจะมี ขอดีในเรื่องของการตรวจสอบความถูกตองของขอมูล
วิธีที่ใชในการตรวจสอบความถูกตอง
Parity Error Detection
Data Correction Using LRC/VRC Cyclic Redundancy Check (CRC) Checksum Error Detection
Parity Error Detection
เปนกระบวนการตรวจสอบความถูกตองที่ใชในวิธีการสงแบบไมเขา จังหวะ(Asynchronous) โดยวิธีการทํางานคือจะมีบิตขอมูลเพิ่มขึ้นมาอีก 1 บิต ซึ่งจะเรียกวา พาริตี้บิต(Parity Bit) เปนตัวตรวจสอบ โดยจําเปนตองมีการตก ลองกันกอนจะทําการใหจํานวนของลอจิก 1 เมื่อรวมกันกับพาริตี้บิตแลวจะให จํานวนลอจิก 1 เปนจํานวนคู(Even) หรือจํานวนคี่(Odd)รูปแบบการทํางานของ
Even Parity Error Detection
1 0 0 1 1 0 1 0
1 0 0 1 1 0 1 0
LSB MSB Even Odd0
Parity Bitรูปแบบการทํางานของ
Odd Parity Error Detection
1 0 0 1 1 0 1 0
1 0 0 1 1 0 1 0
LSB MSB Even Odd1
Parity Bitแบบฝกหัดประกอบความเขาใจ
ใหนักศึกษาทําการคํานวณหาคาพาริตี้บิตแบบลอจิก 0 แบบจํานวนคู (Even Parity Error Detection) พรอมแสดงวิธีทํา
1. 0100 0011 2. 1100 1111 3. 0101 0101 4. 0110 1100 5. 0000 0000
คําถามชวนคิด
เมื่อมีการสงขอมูลออกไปคือ 0010 1100 แตเมื่อผูรับไดรับขอมูล 1000 1100 และมีกระบวนการตรวจสอบโดยใชวิธี Even Parity Error Detection
นักศึกษาคิดวาผลลัพธที่ไดจะเปนอยางไร ระบบการตรวจสอบจะสามารถทําได ถูกตองหรือไม เพราะเหตุใดพรอมใหเหตุผลประกอบ
Data Correction Using LRC/VRC
เปนเทคนิคที่ใชรูปแบบผสมผสานแบบ 2 มิติ โดยนํากระบวนการ Even Parity Check Detection ในการหาคา Vertical Redundancy Check(VRC) เพื่อ หาคาความถูกตองของแตกลุมขอมูล จากนั้นนําขอมูลทั้งหมดมาทําการหาคา ความถูกตองดวยเทคนิค XOR เพื่อใหไดคา Longitudinal Redundancy
Check(LRC) เมื่อไดคาทั้งสองก็นําไป LRC ทําการ XOR กับคาที่ทําการสงออก ไปถาไดคําตอบเปน 0 ก็แสดงวาขอมูลที่ไดรับถูกตอง
ตารางความจริงของลอจิก
Excusive-OR (XOR)
INPUT A
INPUT B
Result
0
0
0
0
1
1
1
0
1
รูปแบบการทํางานของ
LRC/VRC
ตัวอยาง ใหทําการคํานวณหาคา LRC/VCR พรอมทั้งตรวจสอบความถูกตองของ คําตอบ เมื่อทําการสงขอมูล Help! ออกไป โดยขอมูลตัวอักษรจะตรงกับคาใน ตารางแอสกี(ASCII Table)
Solution(1)
แปลงขอมูลที่ไดแลวทําการหาคา VRC ดวยวิธี Even Parity Check
ASCII
Code
VRC MSB
LSB
H
0
1
0
0
1
0
0
0
e
0
1
1
0
0
1
0
1
l
0
1
1
0
1
1
0
0
p
1
1
1
1
0
0
0
0
!
0
0
1
0
0
0
0
1
Solution(2)
ใชเทคนิค XOR กับกลุมขอมูลทั้งหมดรวมทั้ง VRC บิตดวย **เทคนิค ถาจํานวนลอจิก 1 ไดเปนจํานวนคี่ ผลลัพธที่ไดคือ 1 **
ASCII
Code
VRC MSB
LSB
H
0
1
0
0
1
0
0
0
e
0
1
1
0
0
1
0
1
l
0
1
1
0
1
1
0
0
p
1
1
1
1
0
0
0
0
!
0
0
1
0
0
0
0
1
LRC
1
0
0
1
0
0
0
0
วิธีการตรวจคําตอบ
ผลลัพธที่นําขอมูลที่ทําการสงทั้งหมด มาทําการ XOR กับคา LRC ผลลัพธที่ไดจะตองไดลอจิก 0 ทั้งหมด
ASCII
Code
VRC MSB
LSB
H
0
1
0
0
1
0
0
0
e
0
1
1
0
0
1
0
1
l
0
1
1
0
1
1
0
0
p
1
1
1
1
0
0
0
0
!
0
0
1
0
0
0
0
1
LRC
1
0
0
1
0
0
0
0
Result 0 0 0 0 0 0 0 0แบบฝกหัดประกอบความเขาใจ
ใหทําการคํานวณหาคา LRC/VRC พรอมทั้งตรวจสอบความถูกตองของ คําตอบ เมื่อทําการสงขอมูลดังตอไปนี้ 1. Hello 2. Net 3. Work 4. Map 5. Popคา ASCII Code : H = 0x48 M = 0x4D N = 0x4E P = 0x50 W = 0x57 a = 0x41 e = 0x65 k = 0x6B l = 0x6C o = 0x6F p = 0x70 t = 0x74
CRC
วิธีการ Cyclic Redundancy Check(CRC) เปนวิธีการตรวจสอบที่ไดรับ ความนิยมในการใชงานสําหรับการรับสงขอมูลแบบเขาจังหวะ(Synchronous) ซึ่งไดรับการพัฒนาโดย IBM ขั้นตอนการทํางานคือ จะทําการสรางตัวหาร
(divisor)ขึ้นมาตามจํานวนบิตที่ตองการ ตัวอยางเชน CRC-16 จะใชจํานวนบิตที่ เปนตัวหารจํานวน 17 บิต สวน CRC-4 จะใชจํานวนบิตที่เปนตัวหารจํานวน 5 บิต และใชกระบวนการ XOR ในการหาผลลัพธของคําตอบ
ขั้นตอนการทํางานของ
CRC
กําหนดคาตัวหาร(divisor) ตามรูปแบบ CRC ที่ใชในการตรวจสอบโดยตองมี จํานวนบิตเพิ่มขึ้นมาอีก 1 บิต ทําการเพิ่มลอจิก 0 ทายของลําดับขอมูลตามจํานวนบิตที่ตกลงตามรูปแบบ CRC นําคาขอมูลที่เพิ่มลอจิก ทําการ XOR กับคาตัวหาร(divisor) ผลลัพธที่ไดเราจะ เรียกวา คา CRC character นําคา CRC character ที่ไดแทนคาลอจิก 0 ที่ใสในตอนแรก เมื่อนําคาขอมูลที่เพิ่มคา CRC character แลวกับการ XOR กับคาตัวหาร ถา ผลลัพธที่ไดเปนศูนยแสดงวาขอมูลที่สงมีความถูกตองรูปแบบการทํางานของ
CRC
ตัวอยาง ใหทําการคํานวณคา CRC โดยใชกระบวนการ CRC-4 โดยมีคาตัวหาร (divisor) เทากับ 10011 และมีคาขอมูลคือ 1100 0110 1011 01 จงแสดงวิธีการ คํานวณ พรอมทั้งตรวจสอบผลลัพธที่ได วิธีการคํานวณ ทําการเพิ่มลอจิก 0 ตามจํานวนบิตตามรูปแบบการตรวจสอบ(ในที่นี้คือ CRC-4) คาตั้งตนของขอมูล 1100 0110 1011 01 0000นําคาขอมูลที่เพิ่มลอจิก 0 มาทําการ XOR กับ คาตัวหาร 10011 | 11000 11010 11010 000 10011 1011 1 1001 1 10 010 10 011 11011 10011
เมื่อตามวิธีการขั้นตน จนกระทั่งเสร็จสิ้นจะได CRC Character = 1001 ดังนั้นขอมูลที่ทําการสงจากเดิม 1100 0110 1011 01 0000 ขอมูลใหม 1100 0110 1011 01 1001 คาตัวหาร(divisor) จะเทากับ 10011
แบบฝกหัดประกอบความเขาใจ
ใหทําการคํานวณหาคา CRC-4 และมีคาตัวหาร(divisor) 10011 พรอมทั้ง ตรวจสอบความถูกตองของคําตอบ เมื่อทําการสงขอมูลดังตอไปนี้ 1. 1100 0100 2. 0011 1100 3. 1100 1100 4. 0110 0011 5. 1010 1010คําถามชวนคิด
ทําไมคาตัวหาร(divisor) ตองใชจํานวนบิตเพิ่มขึ้น 1 บิต เมื่อกําหนดคา CRC ที่ กําหนด ตัวอยางเชน CRC-4 ทําไมถึงใชตัวหาร(divisor)จํานวน 5 บิต
Checksum Error Detection
เปนวิธีการตรวจสอบขอผิดพลาด ที่นิยมเพื่อตรวจสอบความตรงกันของ ขอมูล 2 ชุด ซึ่งมีขอดีในเรื่องความเร็วในการตรวจสอบแตวิธีนี้ก็ไมสามารถ รับประกันความถูกตองตรงกันได 100 เปอรเซ็นต โดยมีวิธีการตรวจสอบได 2 แบบคือ 1.นําคาขอมูลทั้งหมดมาบวกกันแลวทําการตัดบิตทด(Carry-Flag) ออกแลวนํา ผลลัพธที่ไดมาทําการทดสอบ 2.นําคาขอมูลทั้งหมดมาทําการ XOR กันเพื่อหาผลลัพธตารางสรุปการใชงานรูปแบบการตรวจจับขอผิดพลาด
Error Method Summary
Error Method Data Type Detection Corrections
Number of Errors Detectable
Parity Asynchronous Detection One per Character LRC/VRC Asynchronous Correction One per Message
CRC Either Detection Unlimited
ขนาดขอมูลเพิ่มเติม
(Overhead)
ของแตละวิธี
Error Method Overhead
Parity One bit per Character
LRC/VCR One bit per Character plus LRC Character
CRC CRC Bytes at end of Message