จะหลีกเลี่ยงสัญญาณรบกวนในการสื่อสารไร้สายได้อย่างไร


12

ฉันกำลังทำงานกับระบบสื่อสารไร้สาย เราใช้เครื่องส่งสัญญาณและตัวรับสัญญาณประมาณ 10 คู่ เราใช้ไมโครคอนโทรลเลอร์ atmega16 สำหรับการเข้ารหัสและถอดรหัสโดยพอร์ต USART

ตอนนี้เราสามารถส่งข้อมูลและรับเหมือนกันในจุดสิ้นสุดผู้รับ แต่มีปัญหาใหญ่เมื่อเราค้นหาข้อมูลตัวส่ง 2 ตัวที่มาพร้อมกัน ผู้รับไม่สามารถรับได้เนื่องจากสัญญาณรบกวน

สมมติว่าตัวส่งสัญญาณหนึ่งส่ง "SENDA" ในขณะเดียวกันตัวส่งอีกตัวหนึ่งส่ง "GETTS" ในเวลานั้นผู้รับไม่สามารถรับข้อมูลที่เหมาะสมได้ เนื่องจากเครื่องส่งสัญญาณและตัวรับสัญญาณทั้งหมดทำงานในความถี่เดียวกันดังนั้นการรบกวนนี้จึงเกิดขึ้น ฉันจะแก้ไขปัญหานี้ได้อย่างไร


4
วงจรคลื่นวิทยุประเภทใดที่ตั้งอยู่ระหว่าง UART และเสาอากาศของคุณ
jpc

คำตอบ:


14

การพัฒนาโปรโตคอลการสื่อสาร RF ที่ใช้การได้นั้นเหมาะสำหรับการออกกำลังกายที่ยากลำบาก แต่ให้ความรู้ จุดเพิ่มเติมเล็กน้อยที่ต้องพิจารณานอกเหนือจากที่กล่าวไว้:

  1. สำหรับฮาร์ดแวร์วิทยุบางตัวมันต้องใช้พลังงานมากในการรับฟังสัญญาณ ถ้าหากไม่ใช่วิทยุขนาดเล็กส่วนใหญ่การฟังวินาทีจะใช้พลังงานมากกว่าการส่งเป็นมิลลิวินาที สำหรับวิทยุบางรุ่นการฟังมิลลิวินาทีอาจใช้พลังงานมากกว่าการส่งเป็นมิลลิวินาที หากบริโภคในปัจจุบันไม่เป็นปัญหาการฟังอย่างต่อเนื่องเป็นจำนวนมากง่ายกว่าการฟังเป็นระยะ ๆ ; หากการบริโภคในปัจจุบันเป็นปัญหาอย่างไรก็ตามอาจจำเป็นต้องฟังเป็นระยะ อาจไม่ใช่ความคิดที่ดีจนกว่าคุณจะสามารถจัดการกับบางสิ่งได้ด้วยโปรโตคอลการรับฟังอย่างต่อเนื่อง
  2. ฟังก่อนส่งอาจเป็น "สุภาพ" แต่ไม่มีประโยชน์ใกล้เคียงกับ RF เช่นเดียวกับสายเคเบิลอีเธอร์เน็ต สัญญาณอีเธอร์เน็ตได้รับการออกแบบมาเพื่อไม่เพียง แต่เป็นไปได้ว่าอุปกรณ์ที่รับฟังก่อนการส่งสัญญาณมักจะหลีกเลี่ยงการชนกัน แต่ยังได้รับการออกแบบเพื่อให้อุปกรณ์ที่การส่งผ่านเกิดการชนกับอุปกรณ์อื่น การส่ง RF ไม่มีสัญญาดังกล่าว เป็นไปได้อย่างสมบูรณ์ว่าเมื่อ P ต้องการส่งต่อ Q อุปกรณ์อื่นที่อยู่ใกล้กับ Q มากกว่า P จะส่งสัญญาณเสียงดังพอที่จะป้องกันไม่ให้ Q ได้ยินการส่งสัญญาณของ P แต่ไม่ดังพอที่จะสังเกตได้ วิธีเดียวที่ P จะรู้ว่า Q อาจไม่ได้รับการถ่ายทอดของเขาคือความจริงที่ว่า P จะไม่ได้ยินคำตอบจาก Q
  3. สิ่งสำคัญคือต้องระวังปัญหาฉันทามติ - moreso จำนวนมากที่มี RF มากกว่าด้วยการส่งสัญญาณลวด หาก P ส่งไปที่ Q อาจเป็นไปได้ว่า Q จะได้ยินการส่ง P และส่งการตอบรับ แต่ P จะด้วยเหตุผลหลายประการที่ไม่ได้ยินการตอบรับนั้น จึงจำเป็นต้องใช้ความระมัดระวังอย่างมากในการแยกการส่งสัญญาณใหม่จากการส่งสัญญาณ "ใหม่"

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

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

ดังที่กล่าวไว้โปรโตคอลการสื่อสาร RF ที่ใช้การได้นั้นเหมาะสำหรับการออกกำลังกายที่ยุ่งยาก ถึงกระนั้นฉันคาดหวังว่าคุณจะได้เรียนรู้มากมายจากประสบการณ์


8

หากคุณไม่ได้ใช้โปรโตคอลมาตรฐานสำหรับสิ่งนี้คุณจะต้องออกแบบและใช้งานหนึ่งตัวอย่างเช่น:

  • ก่อนที่จะส่งโหนดควรฟังเพื่อตรวจสอบว่าช่องสัญญาณว่าง
  • หากหลังจากการส่งข้อความไม่ได้รับการตอบรับโหนดควรรอช่วงเวลาแบบสุ่มและลองอีกครั้งเพิ่มจำนวนครั้งสูงสุด

ดังนั้นสิ่งที่เกิดขึ้นคือคุณพยายามหลีกเลี่ยง "การรบกวน" โดยการฟังก่อนจากนั้นหากมีการติดขัดเกิดขึ้นคุณตรวจพบสิ่งนี้ผ่านการขาดการตอบรับจากโหนดรับและจากนั้นลองอีกครั้งหลังจากการหน่วงเวลาแบบสุ่ม ใช้ความล่าช้าแบบสุ่มต่าง ๆ ลดโอกาสการชนครั้งที่สอง


2
ข้อ จำกัด ที่สำคัญของการหลีกเลี่ยงการชนคือไม่มีการรับประกันว่าเครื่องส่งสัญญาณที่คาดหวังจะอยู่ในช่วงที่ได้รับซึ่งกันและกันแม้ว่าพวกเขาทั้งคู่จะอยู่ในช่วงรับเป้าหมายที่ตั้งไว้ก็ตาม
supercat

1
การหลีกเลี่ยงการชนเพียง แต่ปรับปรุงการใช้ช่องสัญญาณให้ดีขึ้น คุณยังต้องทำการตอบรับและส่งสัญญาณซ้ำ กุญแจสำคัญคือการรอเวลาสุ่มก่อนที่จะส่งใหม่
David Schwartz

สิ่งที่สำคัญที่สุดคือการทำงานแบบเรียลไทม์และเป็นการสื่อสารทางเดียว ดังนั้นถ้าเราทำมันแบบ 2 ทางมันจะรบกวนมากกว่านี้ :(
934070

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

4

นี่คือสองตัวเลือกทั่วไป

1) ใช้อัลกอริทึม Listen Before Talk (LBT) ซึ่งตรวจสอบว่ามีการส่งกำลังดำเนินการก่อนที่จะเริ่มต้นของคุณเองหรือไม่และหากเป็นเช่นนั้นจะถอยกลับไปชั่วระยะเวลาหนึ่ง ระยะเวลาควรมีความยาวคงที่และความยาวแบบสุ่มเพื่อไม่ให้หมดไปในช่วงเวลาเดียวกัน โปรโตคอลวิทยุมาตรฐานจำนวนมากรวมถึงขั้นตอนนี้ดู ETSI EN 300-220-1

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


นอกจากนี้ฉันคิดว่าส่วนที่สองสามารถใช้ประโยชน์จาก CDMA ได้หากพวกเขารู้ว่าสถานีส่วนใหญ่มักไม่จำเป็นต้องส่งสัญญาณ
Kortuk

1
@Kortuk: ฉันรู้สึกว่าข้อดีอย่างหนึ่งของ CDMA คือ - หากผู้รับสามารถซิงค์กับผู้ส่งได้ - จำนวนข้อผิดพลาดบิตจะเพิ่มขึ้นเมื่อจำนวนเครื่องส่งสัญญาณเพิ่มขึ้นพร้อมกัน ไม่มี "การรบกวน" เช่นนี้
supercat

@supercat ฉันอยู่ภายใต้การแสดงผลที่ทุกคนกำลังจัดสรรช่วงเวลาแบบสุ่ม เครื่องส่งสัญญาณส่วนใหญ่จะพูดคุยเป็นครั้งคราวเท่านั้นดังนั้นโอกาสในการพูดคุยสองครั้งในเวลาเดียวกันจึงน้อยมาก แต่บางครั้งก็เกิดขึ้นและแสดงเป็นข้อผิดพลาดบิตจำนวนเล็กน้อย ณ จุดนั้น ด้วยการพัวพันและ ECC ทั่วไปคุณสามารถทำได้ทั้งหมด แต่ไม่สนใจสิ่งนี้ ที่กล่าวว่าทุกคนมีช่วงเวลาที่กำหนดไว้ล่วงหน้าตามตัวสร้างตัวเลขแบบสุ่มเพื่อให้แน่ใจว่าไม่มีเครื่องส่งสัญญาณสองเครื่องที่แบ่งปันพื้นที่เดียวกันอย่างต่อเนื่องและพบกันเป็นครั้งคราวเท่านั้น ฉันสามารถถามคนที่รู้แน่ชัดและให้พวกเขาพูดสอดเข้า
Kortuk

1
@Kortuk: นั่นคือสิ่งที่ฉันเคยคิดว่า CDMA หมายถึง แต่แหล่งข้อมูลจำนวนมากรวมถึงหน้า Wikipedia แนะนำว่ามันหมายถึงการปรับที่ความเร็วสูงกว่าอัตราบิต; หากเครื่องส่งสัญญาณสลับสัญญาณตามบิตสตรีมหลอกปลอมและเครื่องรับก็ทำเช่นเดียวกันแล้วกรองสัญญาณที่ได้ผลลัพธ์สัญญาณเดิมสามารถกู้คืนได้ วิธีการที่อิงกับช่วงเวลาแบบหลอกหลอกนั้นมีประโยชน์ แต่ฉันไม่คิดว่า CDMA เป็นคำที่ถูกต้อง ปัญหาที่ใหญ่ที่สุดด้วยวิธีการดังกล่าวคือการประสานงาน ฉันหวังว่าจะมีสัญญาณเวลาความละเอียดสูงที่มีให้เลือกใช้อย่างกว้างขวาง
supercat

1
@Kortuk: WWV kinda sorta ทำงานเพื่อซิงโครไนซ์นาฬิกาดิจิตอลและนาฬิกา แต่มันใช้เวลาสักครู่ในการส่งสัญญาณเวลา มันจะดีกว่านี้หากมีการกระจายเวลาที่ใช้กันอย่างแพร่หลายซึ่งสามารถอ่านได้ใน 10ms หรือน้อยกว่าและรับประกันว่าจะอยู่ภายในช่วงเวลา WWV ในโคโลราโด (ซึ่งหมายความว่าอยู่ห่างออกไป 1,000 ไมล์) เวลาออกอากาศควรนำ WWV ประมาณ 5ms)
supercat

3

ตามที่ฉันเข้าใจจากข้อคิดเห็น ฯลฯ พลังงานไม่ได้เป็นปัญหา แต่ความเร็วในการสื่อสารคือ ดังนั้นนี่คือคำแนะนำของฉันสำหรับโปรโตคอล

หมายเลขโหนดทั้งหมด, 0..n-1 ให้แต่ละโหนดทราบว่าเป็นหมายเลขใด โหนด 0 จะเป็นมาสเตอร์

ทุกๆ 15ms, โหนด 0 ส่งข้อความ: "0HELO"
1ms ในภายหลังโหนด 1 ส่งข้อความ: "1DATA"
1ms ในภายหลังโหนด 2 ส่งข้อความ: "2NICE"
1ms ในภายหลังโหนด 3 ส่งข้อความ: "3" (โหนดนี้ไม่มีอะไรจะพูด)
1 มิลลิวินาทีในภายหลังโหนด 4 ส่งข้อความ: "2CATS"
...
1 มิลลิวินาทีในภายหลังโหนด 9 ส่งข้อความ: "9MICE"
จากนั้นมีการหยุดชั่วคราว 5ms

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


2

การสื่อสาร RF ด้วยเครื่องส่งสัญญาณอะซิงโครนัสหลายรายการเป็นปัญหาที่ยุ่งยาก ความคิดและวิศวกรรมจำนวนมากเข้าสู่มาตรฐาน 802.11 และ 802.15 เพื่อแก้ไขปัญหาเหล่านี้ หากคุณต้องถามที่นี่คุณควรติดฮาร์ดแวร์ชั้นวางที่ใช้มาตรฐานเหล่านี้อย่างใดอย่างหนึ่ง

โปรดทราบว่าในขณะที่ทั้งสองมีประโยชน์และแสดงถึงการออกแบบอย่างระมัดระวังโดยทั่วไปแอปพลิเคชันจริงใด ๆ จะยังคงต้องใช้โปรโตคอลสแต็กเหนือมาตรฐาน นี่จะเป็น WiFi และ TCP ที่สูงกว่า 802.11 และ Wi-Fi ของ Zigbee หรือ Microchip หรืออื่น ๆ ที่สูงกว่า 802.15

อีกครั้งการออกแบบเครือข่ายวิทยุหลายจุดแยกออกจากลีกของคุณหากคุณถามคำถามพื้นฐานเช่นนี้ที่นี่ คุณจะใช้เวลามากและสิ่งต่าง ๆ จะไม่ได้ผลเสมอไป

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


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

9
"ทางออกจากลีกของคุณ" ค่อนข้างรุนแรง พวกเขาอยู่ในหัวของพวกเขาบ้างและฉันเคยเห็นคนที่อยู่ในตำแหน่งแบบนี้เสียเวลาหนึ่งปีกับปัญหาประเภทนี้ ... แต่นั่นไม่ได้หมายความว่าพวกเขาไม่สามารถให้คำแนะนำและทำงานได้ ดังที่ jpc กล่าวว่าการประสบความสำเร็จที่นี่อาจหมายถึงการก้าวกระโดดครั้งสำคัญในการทำความเข้าใจ หากพวกเขาเป็นพนักงานของฉันด้วยคำถามนี้ (และฉันสามารถใช้เวลาสำหรับบทเรียนได้) ฉันจะผลักดันพวกเขาไปด้วยและหวังว่าพวกเขาจะเรียนรู้บางสิ่งบางอย่าง
darron

3
มันเป็นความเสียหายเมื่อผู้คนมาที่ไซต์นี้เพื่อค้นหาคำตอบเพื่อเรียนรู้และแก้ไขปัญหาและปล่อยให้ถูกบังคับ (โดย upvotes) ลงในโซลูชันที่พวกเขาไม่ได้ขอหรือไม่สามารถใช้งานได้
Joel B

1
@JoelB upvotes ไม่บังคับให้ยอมรับคำตอบ
Chris Stratton

1

ฉันเห็นด้วยกับการฟังก่อนที่จะพูดคุยและระบบสัญญาณ แต่ถ้าคุณต้องการใช้ช่องทางเดียวในการส่งข้อมูลในเวลาเดียวกันคุณสามารถใช้เทคนิคการมอดูเลตแบบกระจายลำดับ (DSSS) สิ่งนี้จะช่วยคุณหลีกเลี่ยงการรบกวน

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


ขอบคุณมากสำหรับคำแนะนำ แต่ที่จริงแล้วประเด็นสำคัญของเราคือระบบของเราทำงานในเวลาจริงดังนั้นเมื่อใดและจากที่ใดที่เราจะได้รับสัญญาณนั้นไม่สามารถคาดเดาได้ทั้งหมด ให้ฉันอธิบายรายละเอียดเพิ่มเติม จริง ๆ แล้วเครื่องส่งสัญญาณและตัวรับสัญญาณทั้งหมดจะถูกวางไว้ภายในช่วงของพวกเขาเช่นสมมติว่าช่วงของพวกเขาคือ 100 เมตรแล้วทั้งหมดจะปรากฏภายใน 50 เมตรดังนั้นสัญญาณใด ๆ ที่ออกมาจากเครื่องส่งสัญญาณหนึ่งสามารถเข้าถึงทุกโหนดและสัญญาณใด ๆ ดังนั้นเราจะแก้ปัญหานี้ได้อย่างไร ..
user934070

@ User934070 ระบบโทรศัพท์มือถือและ wifi มักใช้สเปรดสเปกตรัมของการเรียงลำดับบางอย่างหรืออย่างน้อยเทคโนโลยีที่เป็นไปตามแนวคิดพื้นฐานเดียวกัน โทรศัพท์มือถือและแล็ปท็อปเป็นเหมือนที่คุณอธิบาย "เมื่อใดและจากที่เราจะได้รับสัญญาณที่ไม่แน่นอนทั้งหมด"
Kellenjb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.