ทดลองใช้งานเทคโนโลยีสื่อสารไร้สายแบบพื้นฐานก่อนที่จะไปใช้เทคโนโลยีระดับสูงกันดีกว่า !!!
การเริ่มพัฒนาเทคโนโลยีไร้สาย
ปัจจุบัน การสื่อสารเกือบทุกชนิดที่เราได้สัมผัส เป็นการสื่อสารแบบไร้สายก็ว่าได้ ไม่ว่าจะเป็น เทคโนโลยีบลูทูซ WIFI อื่นๆ อีกมากมาย ถ้าพูดถึงงานทางด้านเทคนิคและการพัฒนาอุปกรณ์ต่างๆ เหล่านี้แล้ว ค่อนข้างหาคนที่สามารถพัฒนาได้น้อยมาก เมื่อเทียบกับผู้ใช้งานเทคโนโลยี แต่ถ้าท่านเป็นผู้หนึ่งที่กำลังมีความสนใจเกี่ยวกับงานด้านนี้ หรือกำลังเริ่มที่จะศึกษาเทคโนโลยีไร้สาย เพื่อนำไปใช้ในงานต่างๆ ที่ท่านสนใจ เช่น การเปิด,ปิดอุปกรณ์ไฟฟ้า การสั่งงานเครื่องจักร เครื่องที่อำนวยความสะดวกให้มนุษย์ หรือแม้กระทั้งระบบรักษาความปลอดภัย
วิธีการที่จะสร้างชิ้นงานที่เกี่ยวข้องกับเทคโนโลยีไร้สายก็มีหลายวิธี
ซึ่ง ปัจจุบันสามารถหาซื้อได้ตามร้านอิเล็กทรอนิกส์ทั่วๆ ไป ไม่ว่าจะเป็น บลูทูซ ก็มีเป็นโมดูลมาขายให้ทดลองเล่นกันแล้ว ราคาก็ไม่แพงจนเกินไป เมื่อเทียบกับเทคโนโลยีที่ซื้อมา แต่บางครั้งงานที่ต้องการนำเทคโนโลยีไร้สายเข้าไปช่วย ก็ไม่ได้ต้องการเทคโนโลยีที่สูงมากนัก ไม่ว่าจะเป็นทางด้านความเร็ว โปโตคอลที่ทันสมัย แต่กับต้องการระยะทางที่ไกลมากขึ้น โดยมีข้อมูลที่ส่งเพียงไม่กี่บิต ถ้าจะไปเอาโมดูลที่กล่าวมาแล้วมาใช้งาน ก็คงต้องซื้อแบบที่มีกำลังส่งสูงๆ มา ซึ่งราคาก็จะสูงตามไปด้วย ยิ่งถ้าหากระยะทางในการส่งข้อมูลไกลมากขึ้น ก็คงเป็นการลงทุนที่ไม่คุ้มกันแน่ ผมเองกลับคิดว่าถ้าเราหาเทคโนโลยีหรืออุปกรณ์ที่มีอยู่แล้วในท้องตลาดบ้าน เรา ที่ราคาไม่แพงมากนัก สามารถนำมาประยุกต์ใช้งานได้ก็น่าที่จะเป็นเรื่องดี ผมเองจึงได้คิดโมดูล รับ-ส่ง หรือจะพูดว่าเป็นโมเด็มเอนกประสงค์ก็คงไม่ผิด ซึ่งมีความเร็วที่ไม่มากนัก เหมาะสำหรับงานที่ต้องการระยะทางควบคุมไกลๆ ข้อมูลที่ส่งไม่เร็วมากนัก เช่น สัญญาณควบคุมต่างๆ หรือแม้กระทั้งการนำไปประยุกต์ใช้กับโครงงานที่ต้องการควบคุมระยะทางไกลๆ (หุ่นยนต์สำรวจ) ได้ จึงได้ทดลองและสร้างโมเด็มเอนกประสงค์ขึ้น มีรายละเอียดและการทำงานดังนี้
คุณสมบัติ
มาถึงตรง นี้ท่านที่มีความรู้เกี่ยวกับอิเล็กทรอนิกส์เป็นอย่างดีก็คงจะสนใจวงจร โมเด็มเอนกประสงค์นี้แล้วใช้ไหมครับ แต่สำหรับท่านที่ไม่มีพื้นความรู้ทางนี้มาก ก็คงที่จะยัง งง… อยู่ใช้ไหมครับ ผมจะขออธิบายต่อละกันครับ สำหรับหลักการที่จะนำวงจรนี้ไปประยุกต์ใช้งาน
]]>
การทดลองครั้งนี้ผมจะนำไมโครคอนโทรเลอร์ตระกูล MCS51
มาทดลองการส่งและรับข้อมูลโดยให้วงจรสามารถแก้ไขที่ผิดพลาดได้ 1 จุด หมายความว่าการส่งข้อมูล 8 บิต หากมีข้อมูลบิตใดบิตหนึ่งผิดพลาดไป ภาครับจะยังสามารถแก้ไขที่ผิดได้ให้ข้อมูลกลับมาถูกต้อง โดยจะขอนำหลักการที่มีใช้อยู่ในปัจจุบัน จะเริ่มจากหลักการง่ายๆ ก่อนที่จะใช้หลักการที่ซับซ้อนต่อไป
เริ่มจาก สมมุติว่าเราต้องการจะส่งข้อมูล 10011010 เข้าไปในช่องสัญญาณที่เป็นคลื่นวิทยุ (ใช้วงจรสื่อสารไร้สายเพื่อการพัฒนา) และสมมุติว่าเกิดสัญญาณลบกวนขึ้นเนื่องจากมีฟ้าผ่าในช่วงสั่นๆทำให้ข้อมูลที่รับได้จากเดิม 10011010 กลายเป็น 11011010 แทน ทำให้ภาครับรับสัญญาณ ที่เป็น MSB ผิดพลาดไป หากไม่มีการแก้ไขก็จะทำให้ภาครับตีความหมายข่าวสารผิดไปค่อนข่างมาก จากตัวอย่างที่ยกมาให้ดูเราจะทำการเพิ่มเติมขั้นตอนการเข้ารหัสก่อนที่จะส่งข้อมูลออกไป และจะเพิ่มขั้นตอนวิธีการเมื่อภาครับรับสัญญาณได้ก่อนที่จะนำข้อมูลไปใช้
วิธีการ คือ เราจะทำการเพิ่มบิตของข้อมูลที่เป็นรหัสเพื่อใช้ในการตรวจสอบเข้าไป สามารถหาปริมาณบิตที่ต้องการเพิ่มได้จากการคำนวณดังนี้ สมมุติว่าต้องการให้แก้ที่ผิดได้ 1 ที่ ในข้อมูล 8 บิต จะได้ว่า 2 สัญลักษณ์ โดย (จำนวนบิตทั้งหมด + 1) x 2บิตข้อมูล ≤ 2จำนวนบิตทั้งหมดจะได้ว่า 2 ≤ 212 แสดงว่า เราจะต้องใช้จำนวนบิตทั้งหมดที่ต้องส่งเป็น 12 บิต เพื่อให้สามารถตรวจสอบและแก้ไขข้อมูลจำนวน 8 บิตได้ เมื่อได้จำนวนบิตทั้งหมดแล้วเราจะนำมาเพิ่มบิตข้อมูลเข้าไปครับ วิธีการเพิ่มดูได้จากตาราง
|
* |
1 |
* |
2 |
3 |
4 |
* |
5 |
6 |
7 |
8 |
ตำแหน่งข้อมูลแต่ละบิต |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
ตำแหน่งข้อมูล LSB – MSB |
* คือ ตำแหน่งที่ใส่บิตตรวจสอบ
จากนั้นนำข้อมูลที่จะส่งมาจัดลงตามตำแหน่งจะได้ดังนี้
จากข้อมูล 10011010
* |
* |
1 |
* |
0 |
0 |
1 |
* |
1 |
0 |
1 |
0 |
ตำแหน่งข้อมูลแต่ละบิต |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
ตำแหน่งข้อมูล LSB – MSB |
เมื่อนำข้อมูลมาใส่แล้วก็ต้องเพิ่มบิตตรวจสอบที่เหลือลงไปพิจารณาจากตำแหน่งของบิตที่เป็น LOGIC 1 ในที่นี้คือตำแหน่งที่ 3,7,9,11 จากนั้นค่าของแต่ละตำแหน่งมา XOR กัน
ตารางค่าประจำตำแหน่ง
หลัก |
ค่าข้อมูล |
1 |
1000 |
2 |
0100 |
3 |
1100 |
4 |
0010 |
5 |
1010 |
6 |
0110 |
7 |
1110 |
8 |
0001 |
9 |
1001 |
10 |
0101 |
11 |
1101 |
12 |
0011 |
13 |
1011 |
14 |
0111 |
15 |
1111 |
นำค่าของหลักที่เป็น LOGIC 1 มาตั้งแล้วทำการ XOR ได้ดังนี้
1100 |
3 |
1110 |
7 |
1001 |
9 |
1101 |
11 |
0110 |
ผลที่ได้ |
นำค่าที่ได้มาใส่ในช่องที่ว่างไว้ * โดยเรียงลำดับกันไปจะได้
0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | ตำแหน่งข้อมูลแต่ละบิต |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ตำแหน่งข้อมูล LSB – MSB |
ข้อมูล 001100101010 จะเป็นข้อมูลที่เราจะส่งไปในช่องสัญญาณ
เมื่อข้อมูลเดินทางมาถึงภาครับ จากข้อมูล 10011010 นำมาเข้ารหัสได้ข้อมูลเป็น 011100101010 เพิ่มจากเดิม 8 บิตเป็น 12 บิต เมื่อข้อมูล 011100101010 เดินทางมาถึงภาครับและช่องสัญญาณมีสัญญาณลบกวนทำให้ข้อมูลผิดพลาดไป 1 บิต กลายเป็นข้อมูล 111100101010บิตแรกมีการผิดพลาดไป หากไม่มีการแก้ไขจะทำให้ภาครับตีความหมายผิดไปจากเดิมมาก แต่หากภาครับมีการตรวจสอบแก้ไขแล้ว จะสามารถแก้ไขข้อมูลกลับมาได้โดยมีวิธีการดังนี้
วิธีการคือ นำข้อมูลที่ได้มาตรวจสอบดังนี้
1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | แทนค่าตำแหน่งข้อมูลแต่ละบิต |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ตำแหน่งข้อมูล LSB – MSB |
นำค่าของตำแหน่ง LOGIC ทีเป็น 1 มา XOR กัน ได้ดังนี้ ตำแหน่งที่ 1,2,3,4,7,9,11
1000 |
1 |
0100 |
2 |
1100 |
3 |
0010 |
4 |
1110 |
7 |
1001 |
9 |
1101 |
11 |
1000 |
รวม |
ถ้าผลที่ได้ของการ XOR ที่ภาครับไม่เป็น 0000 แสดงว่ามีที่ผิด จากตัวอย่างได้ผลเป็น 1000 แสดงว่าหลักที่ 1 ของข้อมูลผิดพลาด วงจรก็จะทำการกลับบิตที่ผิดตำแหน่งที่ 1 กลายเป็น 011100101010 เหมือนข้อมูลที่ภาคส่งส่งมาและทำการแยกข้อมูลออกจากรหัส โดยการดึงตำแหน่งที่ต้องการออกมา คือ
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
แทนค่าตำแหน่งข้อมูลแต่ละบิต |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
ตำแหน่งข้อมูล LSB – MSB |
ได้ 10011010 ออกมาเหมือนเดิม จากตัวอย่างนี้ทดลองใส่ข้อมูลผิดพลาดเข้าไปที่ตำแหน่งใดก็ได้ วงจรก็จะยังสามารถระบุที่ผิดและทำการแก้ไขให้โดยการกลับบิตที่เป็นผลลัพธ์เท่านั้น
จากตัวอย่างที่ยกมาจะเห็นได้ว่าเมื่อเราเพิ่มบิตตรวจสอบเข้าไปกับข้อมูล เราก็จะสามารถระบุตำแหน่งที่ข้อมูลผิด และแก้ไขได้ เมื่อทราบวิธีการตรวจสอบและแก้ไขแล้วทีนี้ผมก็จะนำเสนอวงจรที่สร้างด้วย MCS51 ให้สามารถส่งข้อมูลแบบมีการเข้ารหัสข่าวสาร เพื่อให้สามารถแก้ไขที่ผิดได้ ส่งผลให้ข้อมูลที่เราทำการส่งออกไปไม่ว่าจะเป็นสัญญาณควบคุมระบบอะไรสักอย่างก็ตามที่ในช่องสัญญาณมีการรบกวนค่อนข่างสูง ข้อมูลที่ภาครับรับได้ก็จะยังสามารถรับได้อย่างถูกต้อง ถึงแม้ว่าวิธีการนี้จะสามารถแก้ไขได้เพียง 1 จุดเท่านั้น และต้องแรกกับปริมาณข้อมูลที่เพิ่มขึ้น 4 บิต ก็ตาม แต่ก็ยังถือว่าคุ่มค้ากับข้อมูลที่ถูกต้องที่ภาครับสามารถรับได้ครับ
บทความโดย กิติภูมิ
]]>