Muszę wiedzieć, dlaczego ludzie w systemach wbudowanych używają poleceń AT?
Kiedy zapytałem, ludzie mówią, że to standard.
Więc moje pytanie brzmi: co oznacza „AT”? Dlaczego ludzie mówią, że to standard?
serial
communication
at-commands
xsari3x
źródło
źródło
why people in embedded systems use AT commands
- nie ma nic wbudowanego w twoje pytanie lub użycie AT w łączu szeregowym. Możliwe, że widziałeś to w systemie wbudowanym, ale jego pochodzenie wyjaśniono poniżej i nie jest ono specyficzne dla systemów wbudowanych. (Uważaj, aby nie malować rzeczy zbyt szerokim pędzlem).modemu
: program uniksowy, który tworzy urządzenie pseudo-tty master / slave i symuluje modem, który faktycznie przechodzi przez telnet. „Wybierz” hosta za pomocąATD<hostname>
. Zabawne jest to, że program wyszedł prawie dokładnie w czasie, gdy go potrzebowałem, około 1996 roku: wersja 0.0.1. Od tego czasu nie potrzebowałem tego. I wciąż jest to 0.0.1! Użyłem go w połączeniu z minicomem, aby wykonać transfery zmodem przez telnet do zdalnych hostów, do których można było dotrzeć tylko w ten sposób.Odpowiedzi:
Rzadko doceniany szczegół na temat poleceń „AT” polega na tym, że wiele modemów zaczynałoby w trybie „auto-baud / auto-parzystość”. Początkowo modem zaczynałby nie próbować dekodować żadnych danych szeregowych, ale po prostu szukał następujących po sobie niskich i wysokich impulsów, których szerokości pasowały do tego samego ważnego okresu bitów (np. 3,333 ms dla 300 bodów, 833us dla 1200 bodów itp. .). Po stwierdzeniu tego, zobaczą, czy następny niski puls był pięć razy większy niż szerokość. Jeśli tak, to sprawdziliby albo kolejny wysoki-niski-wysoki lub przynajmniej 1,5-bitowy czas wysokiego. Znalezienie jednego z nich wskazywałoby, że modem właśnie widział 0x41 lub 0xC1 (tj. „A”) zidentyfikowanej prędkości transmisji. Oznaczałoby to ponadto, że albo podłączony komputer używa 8-N-1 lub 7-E-1, albo że używa albo 7-N-1 albo 7-O-1. W obu przypadkach następnym znakiem będzie 0x54 lub 0xD4 (tj. „T”). Umożliwiłoby to modemowi dalsze kategoryzowanie ustawień długości i parzystości znaków.
Zauważ, że wszystko otrzymane przed „AT” zostanie zignorowane. Jeśli echo było włączone, dane byłyby wysyłane z powrotem do podłączonego komputera, po prostu odbijając wszystkie przejścia linii bez żadnego szeregowego dekodowania. Gdyby komputer wysłał dane przed „AT” przy np. 247 bodach, echo to byłoby powtórzone z tą prędkością.
Obecnie kilka urządzeń używa początkowego „A” do automatycznego wykrywania prędkości transmisji, ale poza tym fakt, że polecenia zaczynają się od „AT”, jest w zasadzie historyczną ciekawostką.
źródło
Odnosi się do zestawu poleceń Hayesa, który od dawna jest standardem do wydawania poleceń modemom (i innym urządzeniom) przez linię szeregową.
Zamiast poleceń i danych posiadających dwie oddzielne linie, używana jest tylko jedna linia, a do przełączenia z trybu danych do trybu poleceń wysyłana jest pewna sekwencja, np. +++, po której następuje pauza o ustalonej długości. Następnie następne dane są postrzegane jako polecenie przez urządzenie odbierające.
Powodem użycia czegoś takiego jest fakt, że unika się potrzeby kolejnej pary linii, które w wielu przypadkach są po prostu niedostępne, szczególnie w małych systemach wbudowanych.
Zajrzyj na stronę Wiki i linki na dole - jest tam mnóstwo szczegółów.
Istnieją jednak różnego rodzaju rozszerzenia oryginalnego zestawu AT, więc nie opierałbym się na wszystkim, co wspomina AT, aby używać wszystkich oryginalnych poleceń Hayesa. Na przykład mam tutaj szeregowy układ Bluetooth, który IIRC używa własnego zestawu AT.
Nie jestem jednak ekspertem w tej dziedzinie, po prostu pamiętam hakowanie za pomocą poleceń w dawnych czasach telefonowania i BBS.
źródło
Zestaw poleceń „AT” miał rozwiązać problem z potrzebą informacji o kontroli poza pasmem w tym samym wysłanym arbitralnym kanale strumienia bajtów. Był to powszechny problem modemów, gdy były zewnętrznymi urządzeniami podłączonymi do komputerów kablem szeregowym.
Hayes był producentem takich modemów i zyskał dużą popularność na początku. Rozwiązaniem problemu poza pasmem było wysłanie modemowi głównie dwóch liter poleceń sterujących ASCII ze specjalną sekwencją, aby wprowadzić go w tryb przekazywania danych. Aby zmniejszyć prawdopodobieństwo losowych rzeczy wyglądających jak polecenia, ich sekwencje poleceń zaczęły się od polecenia AT, które oznaczało „uwagę”.
Hayes zyskał tak duży udział w rynku, że inni producenci modemów musieli wdrożyć ten sam zestaw poleceń, aby był kompatybilny. W ten sposób klienci mogli korzystać z modemów bez konieczności ponownego pisania oprogramowania, które zostało już skonfigurowane do obsługi modemu Hayes.
W dzisiejszych czasach ten schemat jest rzadko używany, ale oczywiście coś, co było tak wszechobecne, krąży nawet w ciemnych zakątkach.
źródło
Istnieje szczególnie dobry dokument opisujący historię poleceń „AT”, które można znaleźć tutaj:
http://nemesis.lonestar.org/reference/telecom/modems/at/history.html
Zawiera wiele stron dobrej „historii” o tym, jak powstał protokół.
źródło
dlaczego ludzie w systemach wbudowanych używają poleceń AT?
Nie jestem jednym z tych „ludzi w systemach wbudowanych”, ale powiedziałbym, że
AT
polecenia są nadal w użyciu, ponieważ pochodzą z dobrze zdefiniowanego standardu niskiego narzutu dla sygnalizacji w linii.Oznacza to, że możesz używać tego samego kanału komunikacyjnego zarówno do sygnalizacji (komendy AT do zarządzania komunikacją), jak i danych (rzeczywiste dane, które chcesz wysłać). The
AT
Standard specyfikuje jak rozróżniać między nimi tak Ciebie i Twojego urządzenia szeregowego nie daj się mylić, gdy rozmawiają ze sobą.Co oznacza „AT”?
AT
jest dla uwagęDlaczego ludzie mówią, że to standard?
Cóż, bo tak jest. Powiedziałbym, że to jest rzeczywiście mieszanka de facto standaryzacji i para od „prawdziwych” standardów i kilka zaleceń .
źródło