คำถามติดแท็ก serial-port

อินเทอร์เฟซฮาร์ดแวร์ที่พบได้ทั่วไปในพีซีรุ่นเก่าโดยปกติจะมีซ็อกเก็ต / ปลั๊ก DE-9 9 พินบนอุปกรณ์เครือข่ายหรือเซิร์ฟเวอร์ที่มีซ็อกเก็ต / ปลั๊ก RJ-45 (หรือที่ใช้กันทั่วไปสำหรับอีเธอร์เน็ต) หรือที่มี (กว้างกว่ามาก) ซ็อกเก็ต / ปลั๊ก DB-25 25 พิน สองมาตรฐานทั่วไปที่ใช้กับอินเทอร์เฟซดังกล่าวคือ RS-232 หรือ RS-422

2
ผลลัพธ์ที่ไม่คาดคิดทดสอบลูปแบ็คอนุกรมโดยใช้ echo และ cat
ดังนั้นฉันจึงมีพอร์ตอนุกรม RS232 มาตรฐานที่วนกลับมาเองโดยใช้สายจาก Tx ถึง Rx ฉันกำลังทดสอบลูปแบ็คด้วยการรันechoและcatในสองเทอร์มินัลแยกกัน: cat /dev/ttyS1 echo "hi" > /dev/ttyS1 ปัญหาของฉันอยู่กับผลลัพธ์ ฉันคาดหวังว่าจะได้เห็น "สวัสดี" หนึ่งตัวบนแมวที่วิ่งอยู่ แต่กลับได้รับสิ่งนี้: hi [2 newlines] hi [4 newlines] hi [8 newlines] hi [16 newlines] hi [32 newlines] hi ... และอื่น ๆ จนผม+ctrlc cat หลังจากขัดจังหวะแมวถ้าฉันเรียกใช้อีกครั้งมันจะไม่ส่งออก "hi" จนกว่าฉันจะรันเสียงสะท้อนครั้งที่สอง เป็นเรื่องปกติหรือไม่ ความคิดใดที่ว่าทำไมฉันถึงเห็นพฤติกรรมนี้ แก้ไข : โดยการขึ้นบรรทัดใหม่ผมหมายถึง 0x0AASCII ไม่มีการขึ้นบรรทัดใหม่ในเอาต์พุตนี้
18 cat  serial-port  echo 

6
Telnet ส่ง Ctrl-C
ฉันใช้ telnet เพื่อเชื่อมต่อกับเซิร์ฟเวอร์เทอร์มินัลซึ่งพร็อกซีการรับส่งข้อมูลไปยังพอร์ต RS-232 น่าเสียดายที่เมื่อใช้อุปกรณ์บางอย่างมันเป็นไปไม่ได้ที่จะส่งตัวอักษรCTRL+ C(0x03) แทนที่จะส่งตัวละครดูเหมือนว่าลูกค้าในพื้นที่จะได้รับการกดแป้นและฉันก็ออกจาก "โหมดอื่น ๆ " สิ่งที่ฉันต้องการก็แค่ส่งตัวละคร เพื่อแก้ไขข้อบกพร่องนี้ฉันได้เล่นกับ: ^] toggle termdata และ ^] toggle options นี่คือสิ่งที่เกิดขึ้นเมื่อฉันกดCTRL+ Cบนเซิร์ฟเวอร์เทอร์มินัลซึ่งไม่ทำงาน: telnet 10.10.129.101 2012 Trying 10.10.129.101... Connected to termserv-val3 (10.10.129.101). Escape character is '^]'. ^] telnet> toggle options Will show option processing. ^] telnet> toggle termdata Will print hexadecimal representation …

1
วิธีที่ง่ายที่สุดในการกำหนดค่าพอร์ตอนุกรมบน Linux คืออะไร
ในพรอมต์คำสั่ง Windows เพื่อกำหนดค่าพอร์ตอนุกรมฉันสามารถใช้งานได้ง่าย: mode com1: 9600,n,8,1 หรืออ่านการกำหนดค่า: mode com1: มีคำสั่งที่คล้ายกันใน Linux หรือไม่ อะไรจะเป็นวิธีที่ง่ายที่สุดในการค้นหาและกำหนดค่าพอร์ตอนุกรมใน Linux

3
จะส่งคำสั่ง AT ไปยังโมเด็มใน Linux ได้อย่างไร
ในลินุกซ์ (Ubuntu) ฉันพยายามที่จะส่งคำสั่ง AT /dev/ttyACM0กับโมเด็มที่ ฉันพยายามที่จะเป็น: sudo socat - /dev/ttyACM0 แต่เมื่อพิมพ์อะไรฉันก็จะได้บรรทัดทำซ้ำคำสั่งนี้ (ฉันคาดหวังOK) เมื่อฉันทำ sudo minicom modem1 ดูเหมือนว่าจะทำงาน ฉันพิมพ์และได้รับการAT ฉันพิมพ์อึบางอย่างผมได้รับOKERROR มันดูเหมือนว่าmodem1สำหรับ minicom /dev/ttyACM0มีการกำหนดค่าอย่างใดที่จะใช้โมเด็มที่ ฉันจะใช้ socat เพื่อส่งคำสั่ง AT ได้อย่างไร? ฉันต้องกำหนดค่าบางอย่างหรือไม่ บางทีฉันสามารถใช้การกำหนดค่าสำหรับmodem1ของ minicom (ฉันไม่ทราบวิธีการค้นหา / ดูการกำหนดค่านี้)? ข้อมูลเพิ่มเติม socatคำสั่งที่ระบุถูกต้องหรือไม่? ฉันควรเล่นด้วยตัวเลือกบางอย่าง? ด้วย-vตัวเลือกที่ฉันเห็นดังต่อไปนี้: AT > 2013/10/23 17:10:28.917413 length=3 from=0 to=2 AT < 2013/10/23 17:10:28.921598 length=3 from=0 …

2
ฉันจะรู้ได้อย่างไรว่าพอร์ตอนุกรมกำลังส่งข้อมูลโดยไม่ต้องเปิดอุปกรณ์หรือไม่
ฉันมีคลัสเตอร์ที่มีความพร้อมใช้งานสูง (Heartbeat) เชื่อมต่อผ่านสายอนุกรมและอีเธอร์เน็ต NIC สองตัว ฉันต้องการตั้งค่าสคริปต์การตรวจสอบความสามารถในการรับรู้ถึงการเชื่อมต่อสายอนุกรม (โดยทั่วไปแล้วคำถามเดียวกันตอบที่ SOแต่ฉันไม่พอใจกับคำตอบทั่วไปดังกล่าว) ฉันไม่สามารถเปิดอุปกรณ์อนุกรมและอ่านข้อมูลด้วยตัวเองได้เนื่องจาก Heartbeat เปิดบรรทัดอนุกรม ดังนั้นฉันจึงเริ่มมองหาเบาะแสทางอ้อม /proc/tty/driver/serialแตกต่างเพียงฉันได้พบเพื่อให้ห่างไกลอยู่ในเนื้อหาของ นี่คือลักษณะที่ปรากฏเมื่อเชื่อมต่อ: # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:2722759 rx:2718165 brk:1 RTS|CTS|DTR|DSR|CD และเมื่อตัดการเชื่อมต่อ: # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:2725233 rx:2720703 brk:1 RTS|DTR ฉันไม่มั่นใจพอที่จะตัดสินใจได้ว่าสัญญาณที่แสดงในตอนท้ายของบรรทัดมีความหมายอย่างมากต่อสายเคเบิลที่ถูกเชื่อมต่อ / ตัดการเชื่อมต่อเนื่องจากฉันไม่พบเอกสารใด ๆ เกี่ยวกับเนื้อหาของ / proc …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.