İnsanlar neden AT komutlarını seri iletişimde kullanıyor?


21

Gömülü sistemlerdeki insanların neden AT komutlarını kullandıklarını bilmem gerekiyor?
İnsanlara sorduğumda bunun standart olduğunu söylüyor.

Öyleyse sorum şu: "AT" ne demek? İnsanlar neden standart olduğunu söyleyip duruyorlar?


1
+++ ATH0 kimse?
kinokijuf

@kinokijuf ne demek istiyorsun?
xsari3x

1
why people in embedded systems use AT commands- Sorunuzla veya AT'nin seri bağlantıda kullanılmasıyla ilgili özel bir şey yok. Bunu gömülü bir sistemde görmüş olabilirsiniz, ancak kökeni aşağıda açıklanmıştır ve gömülü sistemlere özgü değildir. (Bir fırçayla çok geniş şeyleri boyamamaya dikkat edin.)
Radian

1
AT komutu bile denilen modemubir şeye uygulandı : bir master / slave sözde-tty cihazı yaratan ve aslında telnet üzerinden geçen bir modemi simüle eden bir Unix programı. Bir ana bilgisayarı "çeviriyorsunuz" ATD<hostname>. İşin garibi, program tam olarak ihtiyaç duyduğum bir zamanda ortaya çıktı, 1996 civarında: versiyon 0.0.1. O zamandan beri ihtiyacım olmadı. Ve hala 0.0.1! Minicom ile birlikte, telnet üzerinden yalnızca bu şekilde ulaşılabilecek uzaktaki ana bilgisayarlara zmodem transferleri yapmak için kullandım.
Kaz

@kinokijuf Lütfen bunu yorumlara bırakmayın. Az önce StackOverflow'u bana kapattın! :-)
Curt J. Sampson

Yanıtlar:


31

"AT" komutları hakkında nadiren anlaşılan ayrıntılardan biri, birçok modemin "otomatik-baud / otomatik eşlik" modunda başlayacağıdır. Başlangıçta, modem aslında herhangi bir seri verinin kodunu çözmeye çalışmaz, ancak genişlikleri aynı geçerli bit periyoduna uyan ardışık düşük bir pals ve yüksek pals izler. .). Bunu bulduktan sonra, bir sonraki düşük atımın bu genişliğin beş katı olup olmadığını göreceklerdi. Öyleyse, başka bir yüksek-düşük-yüksek ya da en az 1.5 bit yükseklikte başkalarını izlerlerdi. Bunlardan herhangi birini bulmak, modemin tanımlanmış baud hızının 0x41 veya 0xC1 (yani "A") gördüğünü gösterir. Ayrıca, bağlı bilgisayarın 8-N-1 veya 7-E-1 kullandığını veya 7-N-1 veya 7-O-1 kullandığını gösterir. Her iki durumda da, bir sonraki karakterin 0x54 veya 0xD4 (yani "T") olması gerekir. Bu, modemin karakter uzunluğu ve parite ayarlarını daha da sınıflandırmasını sağlar.

"AT" den önce alınan her şeyin göz ardı edileceğini unutmayın. Yankı açılırsa, veri, seri bir kod çözme işlemi olmadan tüm satır geçişlerini yansıtmak suretiyle ekli bilgisayara geri döndürülür. Bir bilgisayar, örneğin 247 baud'da "AT" den önce veri gönderirse, bu hızda tekrar yankılanır.

Günümüzde, birkaç cihaz otomatik baud hızı tespiti için bir ilk "A" kullanır, ancak aksi halde komutların "AT" ile başlaması aslında temelde tarihsel bir meraktır.


1
ehm ... ne demek "7-N-1"?
xsari3x

1
Yedi veri biti, eşlik yok, bir durak biti. Yüksek bit ayarlı herhangi bir veri göndermeyecekse, verilerin 8-N-1'den% 11 daha hızlı gönderilmesine izin verir.
supercat

Bunun dışında, otomatik bauding işlemi tipik olarak bir +++ AT veya +++ <bekçi saati> AT komutunun +++ bölümünde yapıldı. Bakınız en.wikipedia.org/wiki/Time_Independent_Escape_Sequence
david

1
@david: Zamandan bağımsız kaçış dizisi makalesinde otomatik bauding'den bahsetmiyorum, ya da bir modemin iletişim için kullandığı baud hızında başka bir ++ + kabul ettiğini görmedim. 0x9E 0x86 karakterleri, 2400-8-N-1'de (veya 2400-7-O-1'de ^ N ^ F olarak) , 1200 baud'da "+" karakteri ile tam olarak aynı satır geçişleri oluşturur; bu yüzden "+" 'yı bir baud-antrenman karakteri için garip bir seçenek olarak görecektim.
supercat,

Wikipedia (!) Referansı sadece +++ hakkında bilmeyenler içindi. Donanım Ben 'U' üzerindeki trenleri, özel dizgelerin üzerindeki yazılımları kullanırım. Bir standart biliyor musunuz? Tüm bağlantı dizeleri +++ başlatmak için kullanılır, bu yüzden otomatik iletişim, başka bir iletişimden önce tamamlanmıştır.
david,

22

Modemlere (ve diğer ekipmanlara) seri bir hat üzerinden komut vermek için uzun süredir standart olan Hayes komut setini ifade eder .

İki ayrı satıra sahip komutlar ve veriler yerine, yalnızca bir satır kullanılır ve belirli bir dizilimden verilerden komut moduna geçmek için, örneğin + + + ardından bir dizi uzunluğu duraklatması gönderilir. Ardından bir sonraki veri alıcı ekipman tarafından komut olarak görülür.
Bunun gibi bir şey kullanmanın nedeni, özellikle küçük gömülü sistemlerde, çoğu durumda basitçe bulunmayan başka bir çift çift hattına duyulan ihtiyacı ortadan kaldırmasıdır.

Wiki sayfasına ve alttaki bağlantılara bir göz atın - orada çok fazla ayrıntı var.

Orijinal AT kümesinde her türlü uzantı olsa da, aslında tüm orijinal Hayes komutlarını kullanmak için AT'den bahseden her şeyi hesaba katmazdım. Örneğin, burada IIRC'nin kendi AT tipi setini kullandığı bir bluetooth seri çipim var.
Yine de uzman değilim, sadece çevirmeli günlerde ve BBS'de emirlerle dolaşmayı hatırlıyorum.


13

"AT" komut seti, aynı bayt akışı kanalı üzerinde rasgele veri gönderimi üzerinden bant kontrolü bilgisine ihtiyaç duyulması sorununu çözmekti. Bu, bilgisayarlara seri kabloyla bağlanan harici kutular olduklarında, yaygın bir modem sorunuydu.

Hayes, bu tür modemlerin üreticisiydi ve çok erken popülerlik kazandı. Bant dışı problem için onların çözümü modeme çoğunlukla iki harfli ASCII kontrol komutunu veri geçiş modundan geçirmesi için özel bir sıra ile göndermekti. Komuta benzeyen rastgele şeylerin olasılığını azaltmak için, komut dizilerinin tümü "dikkat" anlamına gelen AT komutuyla başladı.

Hayes, diğer modem üreticilerinin de uyumlu olması için aynı komutu uygulamak zorunda kaldıklarından çok fazla pazar payı kazandı. Bu şekilde müşteriler modemlerini, zaten bir Hayes modemi çalıştırmak için kurulmuş olan yazılımı yeniden yazmak zorunda kalmadan kullanabilirler.

Günümüzde, bu şema nadiren kullanılmaktadır ancak elbette bugün bile karanlık köşelerde bu kadar yayılmış olan bir şey.


1
Hayes hakkındaki bu tarihi notu çok beğendim ve standartlara nasıl zorladı, cevabını yukarıdaki iki cevapla birleştirdikten fazlasıyla :)
xsari3x

Bu arada, birçok yeni modem artık "AT" karakterlerinin büyük harf olmasını gerektirmiyor, bu da bir metin dosyası göndermenin ortasında bağlantı kesilmesinin hatalı modem davranışına neden olacağı sıklığı artırıyor.
supercat

Band-Break kontrol kodu +++ AT veya +++ <koruma zamanı> 'dır. AT, standart bir kontrol setinin ilk iki karakteridir ve DİKKAT anlamına gelir.
david,


0

neden gömülü sistemlerdeki insanlar AT komutlarını kullanıyor?

Bu "gömülü sistemlerdeki insanlardan" değilim, ancak ATkomutların hala kullanımda olduğunu söyleyebilirim çünkü onlar, hat içi sinyal için iyi tanımlanmış bir düşük masraflı standarttan geliyorlar.

Bunun anlamı, hem iletişim (hem iletişimi yönetmek için AT komutları) hem de veri (göndermek istediğiniz gerçek veriler) için aynı iletişim kanalını kullanabilmenizdir . ATBirbirlerine konuşurken sizin ve seri aygıt böylece bu ikisi arasındaki farkı nasıl standart belirtir karıştı alamadım.

"AT" ne anlama geliyor?

ATiçindir Dikkat

İnsanlar neden standart olduğunu söyleyip duruyorlar?

Eh, çünkü öyle. Ben aslında bir karışımı olduğunu söyleyebilirim fiili standardizasyon ve bir çift arasında "gerçek" standartlar ve bazı önerilerin .


Bu, yıllar önce diğer cevaplarda daha önce söylenmeyen hiçbir şey söylemedi gibi görünüyor. Eski bir soruyu soracaksanız, daha önce söylenmemiş önemli bir şey söylemek gerekir.
Chris Stratton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.