ทำไมคนใช้คำสั่ง AT ในการสื่อสารแบบอนุกรม?


21

ฉันต้องรู้ว่าทำไมคนในระบบฝังตัวจึงใช้คำสั่ง AT?
เมื่อฉันถามคนอื่นว่ามันเป็นมาตรฐาน

ดังนั้นคำถามของฉันคือ "AT" หมายถึงอะไร? ทำไมผู้คนถึงพูดว่ามันเป็นมาตรฐาน


1
+++ ATH0 ทุกคน?
kinokijuf

@kinokijuf คุณหมายถึงอะไร?
xsari3x

1
why people in embedded systems use AT commands- ไม่มีคำถามใด ๆ เกี่ยวกับคำถามของคุณหรือการใช้ AT ในลิงค์อนุกรม อาจเป็นไปได้ว่าคุณเคยเห็นสิ่งนี้ในระบบฝังตัว แต่ที่มาของมันอธิบายไว้ด้านล่างและไม่เฉพาะเจาะจงกับระบบฝังตัว (ระวังอย่าทาสีด้วยแปรงที่กว้างเกินไป)
เรเดียน

1
คำสั่ง AT นั้นถูกนำไปใช้ในสิ่งที่เรียกว่าmodemu: โปรแกรม Unix ที่สร้างอุปกรณ์ pseudo-tty หลัก / ทาสและจำลองโมเด็มที่ผ่าน telnet คุณ "กด" ATD<hostname>โฮสต์ที่มี สิ่งที่ตลกคือโปรแกรมออกมาเกือบจะทุกครั้งที่ฉันต้องการประมาณปี 1996: รุ่น 0.0.1 ฉันไม่ได้ต้องการมันตั้งแต่ และยังคงเป็น 0.0.1! ฉันใช้มันร่วมกับ minicom เพื่อทำการโอน zmodem ผ่าน telnet ไปยังโฮสต์ระยะไกลที่สามารถเข้าถึงได้ด้วยวิธีนั้น
Kaz

@kinokijuf โปรดอย่าใส่ลงในความคิดเห็น คุณเพิ่งสร้าง StackOverflow ให้ฉัน! :-)
Curt J. Sampson

คำตอบ:


31

รายละเอียดเกี่ยวกับคำสั่ง "AT" ที่ไม่ค่อยเป็นที่นิยมคือโมเด็มหลายตัวจะเริ่มต้นในโหมด "auto-baud / auto-parity" ในขั้นต้นโมเด็มจะเริ่มจากการไม่พยายามถอดรหัสข้อมูลอนุกรมใด ๆ แต่จะดูชีพจรต่ำต่อเนื่องและพัลส์สูงที่มีความกว้างตรงกับช่วงเวลาบิตที่ถูกต้อง (เช่น 3.333 มิลลิวินาทีสำหรับ 300 บอด, 833us สำหรับ 1200 บอดเป็นต้น .) จากการตรวจสอบพบว่าพวกเขาจะเห็นว่าชีพจรต่ำถัดไปนั้นมีความกว้างห้าเท่าหรือไม่ ถ้าเป็นเช่นนั้นพวกเขาจะดูทั้งสูง - ต่ำ - สูงหรืออื่น ๆ อย่างน้อย 1.5 บิตสูง การค้นหาอย่างใดอย่างหนึ่งจะบ่งบอกว่าโมเด็มเพิ่งเห็น 0x41 หรือ 0xC1 (เช่น "A") ของอัตราการรับส่งข้อมูลที่ระบุ มันจะบ่งชี้ว่าคอมพิวเตอร์ที่ต่อพ่วงนั้นใช้ทั้ง 8-N-1 หรือ 7-E-1 หรือว่ามันใช้ทั้ง 7-N-1 หรือ 7-O-1 ไม่ว่าในกรณีใดมันจะค้นหาอักขระตัวถัดไปว่าเป็น 0x54 หรือ 0xD4 (เช่น "T") ซึ่งจะช่วยให้โมเด็มสามารถจัดประเภทการตั้งค่าความยาวอักขระและพาริตีเพิ่มเติม

โปรดทราบว่าทุกสิ่งที่ได้รับก่อน "AT" จะถูกละเว้น หากเปิดใช้งานเสียงสะท้อนข้อมูลจะถูกสะท้อนกลับไปยังคอมพิวเตอร์ที่เชื่อมต่อโดยเพียงทำมิเรอร์การเปลี่ยนสายทั้งหมดโดยไม่ต้องถอดรหัสอนุกรมใด ๆ หากคอมพิวเตอร์ส่งข้อมูลก่อน "AT" ที่เช่น 247 baud มันจะถูกสะท้อนกลับด้วยความเร็วนั้น

ทุกวันนี้มีอุปกรณ์ไม่กี่เครื่องที่ใช้ตัวอักษร "A" เริ่มต้นสำหรับการตรวจจับอัตรารับส่งสัญญาณอัตโนมัติ แต่ความจริงที่ว่าคำสั่งที่ขึ้นต้นด้วย "AT" นั้นเป็นความอยากรู้ทางประวัติศาสตร์


1
เอ๊ะ ... คุณหมายถึงอะไร "7-N-1"
xsari3x

1
บิตข้อมูลเจ็ดบิตไม่มีความเท่าเทียมกันหนึ่งบิตหยุด อนุญาตให้ส่งข้อมูลได้เร็วกว่า 8-N-1 11% หากไม่มีใครจะส่งข้อมูลใด ๆ ด้วยชุดบิตสูง
supercat

ยกเว้นว่าการรับส่งข้อมูลอัตโนมัตินั้นปกติแล้ว (และเป็น) ในส่วน +++ ของคำสั่ง +++ AT หรือ +++ <ยามเวลา> AT ดูen.wikipedia.org/wiki/Time_Ind พึ่งพา_Escape_Sequence
david

1
@ David: ฉันไม่เห็นการกล่าวถึงการรับส่งข้อมูลอัตโนมัติในบทความเกี่ยวกับการหลบหนีที่ไม่ขึ้นกับเวลาและฉันไม่เคยเห็นโมเด็มยอมรับ +++ ในอัตรารับส่งข้อมูลใด ๆ นอกเหนือจากที่ใช้สำหรับการสื่อสาร ตัวละคร 0x9E 0x86 ส่งกลับไปกลับที่ 2400-8-N-1 (หรือ ^ ^ N F ที่ 2400-7-O-1) จะผลิตว่าการเปลี่ยนบรรทัดเดียวกันเป็นอักขระ "+" ที่ 1200 บอด ดังนั้นฉันจึงถือว่า "+" เป็นตัวเลือกที่แปลกสำหรับตัวละครฝึกหัด
supercat

การอ้างอิง Wikipedia (!) มีไว้สำหรับผู้ที่ไม่รู้เกี่ยวกับ +++ ฮาร์ดแวร์ฉันใช้รถไฟบน 'U' ซอฟต์แวร์รถไฟบนสตริงแบบกำหนดเอง คุณรู้มาตรฐานหรือไม่ สตริงการเชื่อมต่อทั้งหมดที่ใช้ในการเริ่มต้น +++ ดังนั้นการรับส่งข้อมูลอัตโนมัติจึงเสร็จสมบูรณ์ก่อนการสื่อสารอื่น ๆ
david

22

มันหมายถึงชุดคำสั่ง Hayesซึ่งเป็นมาตรฐานมาเป็นเวลานานสำหรับการออกคำสั่งไปยังโมเด็ม (และอุปกรณ์อื่น ๆ ) ผ่านสายอนุกรม

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

ดูที่หน้า Wiki และลิงค์ด้านล่าง - มีรายละเอียดมากมาย

มีส่วนขยายทุกประเภทสำหรับชุด AT ดั้งเดิมดังนั้นฉันจะไม่ฝากเงินกับทุกสิ่งที่กล่าวถึง AT เพื่อใช้คำสั่ง Hayes ดั้งเดิมทั้งหมด ตัวอย่างเช่นฉันมีชิปอนุกรมบลูทู ธ ที่นี่ซึ่ง IIRC ใช้เป็นชุดประเภท AT ของตัวเอง
ฉันไม่มีความเชี่ยวชาญในเรื่องนี้ แต่ฉันจำการแฮ็กด้วยคำสั่งในวันเก่า ๆ ของการโทรและ BBS


13

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

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

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

ทุกวันนี้รูปแบบนี้ไม่ค่อยได้ใช้ แต่แน่นอนว่ามีบางสิ่งที่แผ่กระจายไปทั่วในมุมมืดแม้กระทั่งทุกวันนี้


1
ฉันชอบบันทึกทางประวัติศาสตร์เกี่ยวกับ Hayes และวิธีที่มันบังคับใช้มาตรฐานของตัวเองการต่อคำตอบของคุณกับคำตอบสองข้อข้างต้นนั้นมากเกินพอ :)
xsari3x

อนึ่งโมเด็มรุ่นใหม่จำนวนมากดูเหมือนจะไม่ต้องการตัวอักษร "AT" ที่เป็นตัวพิมพ์ใหญ่อีกต่อไปซึ่งจะเพิ่มความถี่ในการตัดการเชื่อมต่อระหว่างการส่งไฟล์ข้อความจะทำให้โมเด็มทำงานผิดพลาด
supercat

รหัสควบคุม Band-Break คือ +++ AT หรือ +++ <การ์ดเวลา> AT เป็นอักขระสองตัวแรกของชุดควบคุมมาตรฐานและย่อมาจาก ATtention
david

1

มีเอกสารที่ดีโดยเฉพาะที่อธิบายประวัติของคำสั่ง "AT" ที่สามารถพบได้ที่นี่:

http://nemesis.lonestar.org/reference/telecom/modems/at/history.html

มันมีหลายหน้าของ "ประวัติศาสตร์" ที่ดีเกี่ยวกับวิธีการที่โปรโตคอลมา


0

ทำไมคนในระบบฝังตัวจึงใช้คำสั่ง AT

ฉันไม่ได้เป็นหนึ่งใน "คนในระบบฝังตัว" แต่ฉันบอกว่าATคำสั่งยังใช้งานอยู่เพราะมาจากมาตรฐานค่าโสหุ้ยต่ำที่กำหนดไว้อย่างดีสำหรับการส่งสัญญาณในบรรทัด

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

"AT" หมายถึงอะไร

ATสำหรับความสนใจ

ทำไมผู้คนถึงพูดว่ามันเป็นมาตรฐาน

ก็เพราะมันเป็น ผมว่ามันเป็นจริงผสมของมาตรฐานพฤตินัยและคู่ของ"ของจริง" มาตรฐานและบางข้อเสนอแนะ


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