Warning: call_user_func_array() expects parameter 1 to be a valid callback, class '' not found in /home/thaiamp/public_html/wp-includes/class-wp-hook.php on line 308

Warning: Cannot modify header information - headers already sent by (output started at /home/thaiamp/public_html/wp-includes/class-wp-hook.php:308) in /home/thaiamp/public_html/wp-includes/feed-rss2.php on line 8
การเข้ารหัสข่าวสาร – "เราทำสิ่งที่แตกต่างเพื่อให้ตรงตามความต้องการของคุณ" https://thaiamp.com research and develope embedded system electronics Tue, 05 Nov 2013 21:40:52 +0000 th hourly 1 https://wordpress.org/?v=6.2.6 การเริ่มพัฒนาการควบคุมแบบไร้สาย https://thaiamp.com/archives/321 Sun, 09 Jun 2013 15:09:23 +0000 http://www.thaiamp.com/?p=321

ทดลองใช้งานเทคโนโลยีสื่อสารไร้สายแบบพื้นฐานก่อนที่จะไปใช้เทคโนโลยีระดับสูงกันดีกว่า !!!

การเริ่มพัฒนาเทคโนโลยีไร้สาย

ปัจจุบัน การสื่อสารเกือบทุกชนิดที่เราได้สัมผัส เป็นการสื่อสารแบบไร้สายก็ว่าได้ ไม่ว่าจะเป็น เทคโนโลยีบลูทูซ WIFI อื่นๆ อีกมากมาย ถ้าพูดถึงงานทางด้านเทคนิคและการพัฒนาอุปกรณ์ต่างๆ เหล่านี้แล้ว ค่อนข้างหาคนที่สามารถพัฒนาได้น้อยมาก เมื่อเทียบกับผู้ใช้งานเทคโนโลยี แต่ถ้าท่านเป็นผู้หนึ่งที่กำลังมีความสนใจเกี่ยวกับงานด้านนี้ หรือกำลังเริ่มที่จะศึกษาเทคโนโลยีไร้สาย เพื่อนำไปใช้ในงานต่างๆ ที่ท่านสนใจ เช่น การเปิด,ปิดอุปกรณ์ไฟฟ้า การสั่งงานเครื่องจักร เครื่องที่อำนวยความสะดวกให้มนุษย์ หรือแม้กระทั้งระบบรักษาความปลอดภัย
วิธีการที่จะสร้างชิ้นงานที่เกี่ยวข้องกับเทคโนโลยีไร้สายก็มีหลายวิธี

ซึ่ง ปัจจุบันสามารถหาซื้อได้ตามร้านอิเล็กทรอนิกส์ทั่วๆ ไป ไม่ว่าจะเป็น บลูทูซ ก็มีเป็นโมดูลมาขายให้ทดลองเล่นกันแล้ว ราคาก็ไม่แพงจนเกินไป เมื่อเทียบกับเทคโนโลยีที่ซื้อมา แต่บางครั้งงานที่ต้องการนำเทคโนโลยีไร้สายเข้าไปช่วย ก็ไม่ได้ต้องการเทคโนโลยีที่สูงมากนัก ไม่ว่าจะเป็นทางด้านความเร็ว โปโตคอลที่ทันสมัย แต่กับต้องการระยะทางที่ไกลมากขึ้น โดยมีข้อมูลที่ส่งเพียงไม่กี่บิต ถ้าจะไปเอาโมดูลที่กล่าวมาแล้วมาใช้งาน ก็คงต้องซื้อแบบที่มีกำลังส่งสูงๆ มา ซึ่งราคาก็จะสูงตามไปด้วย ยิ่งถ้าหากระยะทางในการส่งข้อมูลไกลมากขึ้น ก็คงเป็นการลงทุนที่ไม่คุ้มกันแน่ ผมเองกลับคิดว่าถ้าเราหาเทคโนโลยีหรืออุปกรณ์ที่มีอยู่แล้วในท้องตลาดบ้าน เรา ที่ราคาไม่แพงมากนัก สามารถนำมาประยุกต์ใช้งานได้ก็น่าที่จะเป็นเรื่องดี ผมเองจึงได้คิดโมดูล รับ-ส่ง หรือจะพูดว่าเป็นโมเด็มเอนกประสงค์ก็คงไม่ผิด ซึ่งมีความเร็วที่ไม่มากนัก เหมาะสำหรับงานที่ต้องการระยะทางควบคุมไกลๆ ข้อมูลที่ส่งไม่เร็วมากนัก เช่น สัญญาณควบคุมต่างๆ หรือแม้กระทั้งการนำไปประยุกต์ใช้กับโครงงานที่ต้องการควบคุมระยะทางไกลๆ (หุ่นยนต์สำรวจ) ได้ จึงได้ทดลองและสร้างโมเด็มเอนกประสงค์ขึ้น มีรายละเอียดและการทำงานดังนี้

คุณสมบัติ

  1. ความเร็วในการส่งสัญญาณ 1200 bps
  2. มอดูเลทแบบดิจิตอล (FSK)
  3. รับสัญญาณดิจิตอลอินพุทและส่งสัญญาณดิจิตอลเอาท์พุทเป็นแบบ TTL
    (ต่อใช้งานกับไมโครคอนโทรเลอร์ได้โดยตรง)
  4. มีช่องสัญญาณตรวจสอบสัญญาณคลื่นพาหะ
    (ใช้สำหรับตรวจสอบว่าเครื่องส่งหยุดส่งสัญญาณหรือยัง)
  5. มีภาคจ่ายไฟให้วงจรในตัว ผู้ใช้สามารถใช้แหล่งจ่ายได้หลายรูปแบบ
  6. สามารถปรับความเร็วให้เหมาะสมกับการใช้งานได้
  7. สามารถสื่อสารแบบ HALF และ FULL DUPLEX ได้
  8. ชิพที่ใช้เป็นมาตรฐาน CCI

 

มาถึงตรง นี้ท่านที่มีความรู้เกี่ยวกับอิเล็กทรอนิกส์เป็นอย่างดีก็คงจะสนใจวงจร โมเด็มเอนกประสงค์นี้แล้วใช้ไหมครับ แต่สำหรับท่านที่ไม่มีพื้นความรู้ทางนี้มาก ก็คงที่จะยัง งง… อยู่ใช้ไหมครับ ผมจะขออธิบายต่อละกันครับ สำหรับหลักการที่จะนำวงจรนี้ไปประยุกต์ใช้งาน

 

]]>
การเข้ารหัสข่าวสารแบบตรวจสอบและแก้ที่ผิดด้วย MCS51 https://thaiamp.com/archives/200 Thu, 06 Jun 2013 07:47:26 +0000 http://www.thaiamp.com/?p=200         การเข้ารหัสข่าวสารเป็นอีกวิธีการหนึ่งที่จะทำให้การส่งข้อมูลเข้าไปยังช่องสัญญาณได้อย่างมีประสิทธิภาพ เนื่องจากหากส่งข้อมูลไปในช่องสัญญาณโดยไม่มีการเข้ารหัส เมื่อเกิดสัญญาณลบกวนในช่องสัญญาณก็จะทำให้ข้อมูลที่รับได้เกิดความผิดพลาดขึ้น แต่ถ้าหากผู้ส่งมีการเข้ารหัสสัญญาณข้อมูลก่อนส่งแล้ว เมื่อเกิดสัญญาณลบกวนขึ้นในช่องสัญญาณ ภาครับก็ยังสามารถตรวจสอบและแก้ไขข้อมูลที่ส่งมาให้ถูกต้องเหมือนข้อมูลต้นฉบับได้ แต่ทั้งนี้วิธีการตรวจสอบแก้ไขข้อผิดพลาดจะได้มากหรือน้อยก็ขึ้นอยู่กับหลักการที่นำมาใช้

        การทดลองครั้งนี้ผมจะนำไมโครคอนโทรเลอร์ตระกูล 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 บิต ก็ตาม แต่ก็ยังถือว่าคุ่มค้ากับข้อมูลที่ถูกต้องที่ภาครับสามารถรับได้ครับ

บทความโดย กิติภูมิ

 

 

 

 

]]>