เราสามารถคำนวณอัตราบอดของการสื่อสาร RS232 จากสัญญาณเอาท์พุท TX ได้หรือไม่?


10

เราสามารถคำนวณอัตรา baudหรือความเร็วในการสื่อสารของการสื่อสาร RS232 จากสัญญาณ X output ได้หรือไม่?

ภาพด้านล่างมาจากสัญญาณเอาต์พุตการสื่อสาร RS232 ฉันถ่ายรูปนี้ด้วย 0xaa และช่วงเวลาระหว่างเสียงสูงคือ 100.us

ฉันได้ยินมาว่าความถี่ของออสซิลเลเตอร์ภายนอกคือ 8Mhz เราสามารถคำนวณอัตราการรับส่งข้อมูลได้ไหม

Oscilloscope ติดตามแสดงสัญญาณ RS232


9
ฉันคิดว่า EE ควรรู้สิ่งF=1/Tนั้น
ยูจีน Sh.

2
ฉันคาดหวังว่าสิ่งนี้จะเป็นคำถามเกี่ยวกับการตรวจจับอัตราการรับส่งข้อมูลโดยปราศจากความรู้ของข้อมูลเพื่อให้การกำหนดค่าง่ายขึ้น แต่สิ่งนี้? @EugeneSh เป็นสิ่งที่ถูกต้องมากกว่าการรู้คำจำกัดความของความถี่คือความรู้พื้นฐานเมื่อทำงานกับอุปกรณ์อิเล็กทรอนิกส์
NieDzejkob

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

Sigrok เป็นโอเพ่นซอร์สจริงไหม? ผู้คนคิดว่า "เดาความถี่" ทำงานอย่างไร
mckenzm

คำตอบ:


21

ดูเหมือนว่าคุณมีประมาณ 2.4 บิตต่อการหารซึ่งเท่ากับ 250 250s นั่นทำให้แต่ละบิตเวลาที่ 104 .s ค่าอินเวอร์เตอร์ที่ให้ค่า 9.6 kBaud นั่นเป็นหนึ่งในอัตราการรับส่งข้อมูลมาตรฐานดังนั้นนี่จึงเป็นไปได้มากทีเดียว


12

100μs


8MHz

ความคิดอื่น ๆ :

  1. 100μs±2%
  2. สัญญาณนี้ชัดเจนว่าไม่ได้ใช้แรงดันไฟฟ้า RS-232 แต่อาจเป็น ~แทน3.5V
  3. สัญญาณนี้ใช้ HI สำหรับ MARK (ใน RS-232, MARK เป็นแรงดันลบ) ดังนั้นสิ่งนี้จะต้องเป็นเอาต์พุตระดับตรรกะจากไมโครและไม่ใช่การส่งสัญญาณ RS-232

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

ป้อนคำอธิบายรูปภาพที่นี่

ข้างต้นจะถูกตีความ 0x2A โดยไม่คำนึงถึง endianness ถ้าฉันให้ความสนใจ

อย่างไรก็ตามนี่จะเป็นแผนภูมิสำหรับแปดบิตข้อมูล:

ป้อนคำอธิบายรูปภาพที่นี่

ในกรณีนี้การตีความจะเป็น 0xAA หรืออื่น ๆ 0x55 ขึ้นอยู่กับลักษณะ endian ของกระแส ดังนั้นนี่อาจเป็นตัวแทนของคุณ 0xAA (endian น้อยซึ่งฉันเชื่อว่าเป็นเรื่องธรรมดามากขึ้น)

อย่างที่คุณเห็นเครื่องส่งและเครื่องรับจะต้องได้รับการเห็นพ้องกับจำนวนบิตข้อมูลและลักษณะเฉพาะของพวกมัน

ขอบเขตของผลลัพธ์สามารถตีความได้ว่าเป็นขนาดของคำต่อเนื่องที่ยาวขึ้น ฉันเคยเห็นพวกเขามาก่อน (9 ซึ่งโดยทั่วไปมักเป็นเพราะไอซีบางตัวเคยใช้รองรับ แต่ฉันเคยเห็นมาแล้ว 10 อันมาก่อน)

หากไม่มีข้อตกลงก็ยากที่จะแน่ใจ


เป็นแถบข้าง:

ฉันจำได้ว่าช่วงเวลาที่โทรพิมพ์ย้ายจาก 5 บิตเป็น 6 บิต (ช่วงต้นทศวรรษ 1960) ในขณะที่ RS-232 ถูกสร้างขึ้นในปี 1960 ในขณะที่พ่อของฉันมีโทรศัพท์พิมพ์อยู่ที่บ้านในพื้นที่สำนักงานที่บ้าน การสื่อสาร RS-232 หกบิตมีอยู่จริงในช่วงระยะเวลาหนึ่ง

การเข้ารหัส ASCII ใช้กันอย่างแพร่หลายในช่วงปลายปี 1960 และต้นปี 1970 และมีการเข้ารหัส 7 บิต มันเป็นเรื่องธรรมดามากที่การสื่อสารข้อมูล RS-232 จะใช้ข้อมูล 7 บิต

ต่อมาเมื่อไอซีการสื่อสารและไมโครคอนโทรลเลอร์เข้าสู่การใช้งานทั่วไปและขนาดการลงทะเบียน 8 บิตนั้นมีอยู่มากมาย RS-232 จึงถูกขยายให้ส่ง / รับ 8 บิตต่อครั้ง

ฉันคิดว่าคนส่วนใหญ่ในวันนี้คาดหวังว่ามันจะใช้สำหรับการสื่อสาร 8 บิต แต่นั่นไม่ใช่กรณีเสมอไป


ฉันคิดว่าข้อมูลอาจเป็นสองไบต์ 0x98 0xE6 ที่ 19,200 แยกย่อยเป็น s00011001Ss01100111S [s = start S = stop] อักขระบางตัวเช่น "A" [0x41] สร้างรูปแบบบิตที่ไม่สามารถสร้างได้โดยอัตราการรับส่งข้อมูลอื่น ๆ (น่าจะเป็นเหตุผลที่ Hayes เลือก "A" เป็นตัวอักษรตัวแรกสำหรับลำดับการฝึกอบรม autobaud) แต่รูปแบบด้านบน ลำดับไบต์ที่ 19,200 บอด
supercat

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

ค่อนข้างแน่ใจว่านั่นเป็นหนึ่งในเหตุผลหลักที่ rs232 มีแรงดันไฟฟ้าและกระแสแรงขับสูงมาก ไม่มีอะไรอยู่ระหว่างนั้นเพียงแค่สาย RS232 -> โซลินอยด์
Trevor_G

@supercat ใช่ มันสามารถแบ่งออกได้ในเวลาเช่นกัน ความแตกต่างเหล่านี้เริ่มต้นจนถึงจุดที่ต้องการหนังสือ แต่ประเด็นของคุณจะได้รับอย่างแน่นอน
jonk

1
@ เทรเวอร์ฉันไม่เคยเป็นเจ้าของ แต่ฉันมักจะใช้ KSR-35 (เครื่องจักรกลลูกเบี้ยวที่น่าประทับใจมาก) และต่อมาราคาถูกกว่ามากสำหรับหน่วย ASR-33 / KSR-33 พ่อของฉันมีอยู่ในบ้านของเรา (ก่อนที่เขาจะเสียชีวิตจากอุบัติเหตุบนท้องถนน) ไม่ใช่สิ่งเหล่านี้ แต่เป็นอุปกรณ์รหัส 6 บิตก่อนหน้านี้ที่มีขนาดใกล้เคียงกับ ASR-33
jonk

0

หากเป็นเช่นนี้สำหรับไมโครคอนโทรลเลอร์คุณไม่สามารถกำหนดอัตราการรับส่งข้อมูลจากออสซิลเลเตอร์ได้ แต่คริสตัล 8MHz สามารถสร้าง 9600 บอดได้แน่นอน

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


หากคุณสุ่มตัวอย่างสัญญาณและวัดความกว้างที่เล็กที่สุดที่พบมันเป็นเรื่องเล็กน้อยที่จะคำนวณอัตรา ไม่ช้าก็เร็วต้องมีบิตเริ่มต้นตามด้วย '1'
mckenzm

0

การกำหนดอัตราการรับส่งข้อมูลจากการติดตามขอบเขตเป็นบางครั้ง แต่ไม่สามารถทำได้เสมอไป

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

สมมติว่าข้อมูล 8 บิตและไม่มีความเท่าเทียมกันของรูปคลื่นของคุณสามารถแทนไบต์เดียวที่มีรอบระยะเวลาบิตของ ~ 100ns แต่ก็ยังสามารถแทนสองไบต์ด้วยระยะเวลาบิตประมาณ 50ns

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.