Честно говоря, почему все коммуникационные ИС (или, по крайней мере, многие из них, или самые известные или популярные), такие как Bluetooth, WIFI, GSM или т. Д., Поддерживают набор AT-команд? почему у них нет простого контакта для D / C (данных или команд) для связи? Каковы преимущества использования набора команд AT?
Набор AT-команд велик и потребует времени и пространства памяти, что затрудняет связь, в то время как вместо этого вы можете использовать простой вывод D / C и отправлять целое число для установки регистров или отправки данных.
Ответы:
Брханс прав - Наследие.
В 1980-х Хейс начал делать «Smartmodem 1200». Он почти сразу устарел, и Хейс выбил Smartmodem 2400. В этот раз не было времени для изменений дизайна между модемами. В результате Хейс первым сделал два разных скоростных модема, которые принимали одинаковые команды программирования! Любое программное обеспечение, которое может заставить Smartmodem 1200 набирать телефонный номер, также может набирать Smartmodem 2400.
В то время для каждого нового модема требовались месяцы для написания обновленного драйвера. Когда Smartmodem 2400 появился на рынке, уже существовал работающий драйвер для Smartmodem 1200, так что месяца ожидания не было. Внезапно другие производители осознали преимущество новых модемов, имеющих те же команды, что и старые модемы. В течение шести месяцев поставщики предлагали «совместимые с Hayes» модемы как единственный выбор. Который получил их иск от Хейса. Поэтому все начали называть свои модемы «совместимыми с AT Command Set», но продолжали использовать набор команд Hayes.
К середине 80-х годов не было создано потребительских модемов, которые не могли бы использовать набор AT-команд. В результате каждый модем, такой как система связи, использует AT-команды. Есть и другие преимущества - так как набор команд - ASCII, любой может вручную ввести AT-команды в окне терминала для управления модемом. Поскольку мой собственный модем имел рискованное RJ11-соединение, я обычно начинал каждый сеанс в Procomm Plus с:
Просто чтобы убедиться, что я получил тональный сигнал готовности. Если бы я этого не сделал, я бы немного пошевелил проводами!
источник
Вы говорите только о недостатках набора команд. Рассмотрим плюсы:
Используя набор AT-команд, ваше коммуникационное устройство может быть немедленно подключено к любой IP-сети через реализацию PPP операционной системы . Альтернатива заключается в том, что в дополнение к разработке пользовательского интерфейса протокола вы должны написать свой собственный драйвер сетевого устройства для каждой ОС, которую вы хотите поддерживать, прежде чем эта ОС сможет использовать ваше устройство для подключения к Интернету.
Любой компетентный инженер уже знает этот протокол. Возьмите его от того, чья повседневная работа требует от него понимания и реализации десятков нестандартных последовательных протоколов: один хорошо спроектированный общий протокол лучше.
Хотя это правда, что протокол AT является довольно сложным и требует больше памяти для реализации, чем специализированный протокол, предназначенный для конкретной задачи, это также тот случай, когда кто-то, решивший реализовать этот протокол, получает возможность не тратить кучу времени на переизобретение идеально хороший руль. У него десятилетия опыта в дизайне. Он знает, что это сработает, прежде чем выделит на это время разработки. Хороший дизайн протокола удивительно сложен.
(На днях я собираюсь опубликовать мой опус «Твой протокол отстой» в надежде предотвратить совершение более ужасных, наполовину продуманных одноразовых протоколов.)
источник
ATS
команда ...Я остановлюсь на другой стороне вопроса ... почему бы просто не добавить еще одну сигнальную линию в интерфейс?
Об этом может спросить только тот, кто не прошел через все перестановки сигнальных линий на подлинном 25-контактном интерфейсе RS232. В дополнение к TXD, RXD и Gnd, уже было несколько других пар сигналов: RTS / CTS (готовность к отправке, очистка для отправки), DSR / DTR (готовность набора данных, готовность терминала данных) и аппаратный вывод зависания. И другие. И нет четкого универсального соглашения между производителями о том, что именно выполняло функцию - зачем вам в первую очередь требовалось два набора аппаратных сигналов квитирования? И программный протокол XON / XOFF в довершение всего этого (а почему принтеры Diablo настаивают - насколько я знаю, уникально - на установлении связи на контакте 11?)
Некоторое оборудование требует полного интерфейса. Некоторые были довольны TXD / RXD / Gnd. Некоторые могут быть обмануты, если закоротить контакты 4 и 6 (таким образом, возвращая свой собственный RTS к CTS). И некоторые из них, которые должны были быть DCE, были DTE или наоборот и могли бы общаться с кем-либо еще только через «нуль-модемный» кабель при каждой замененной паре соединений.
Затем, чтобы упростить все это, IBM PC представил новый 9-контактный интерфейс для RS232. Это значит, что вся ваша существующая коллекция кабелей устарела, и вам пришлось начинать заново ...
Все это усложняло жизнь даже без учета того, что оба конца могли быть настроены на разные скорости в бодах ...
Это поддержало целую индустрию, построенную вокруг коммутационных блоков RS232, кабелей и инструментов тестирования / отладки.
Добавление другого сигнала, в этом контексте, вероятно, не собирался летать ...
источник
Первый модем Hayes, использующий команды «AT», выбрал «A» в качестве первого символа своего префикса команды, потому что он должен был поддерживать несколько скоростей передачи, а «A» в строке выглядит так:
-------_-_____-x----------
соотношение 5: 1 между самые длинные и самые короткие «низкие» времена («х» может быть высоким или низким в зависимости от настроек четности). Скорость не более 1200 бод не может справиться с «коротким» временем 833 мкс или меньше, а скорость не более 2400 не может обойтись «длинным» 4,16 мс или более, поэтому модем может с уверенностью предположить, что если он видит что-то, что выглядит как 1200 бод "А", это (и аналогично с 300 бод и т. д.). Буква «Т» имеет четность, противоположную букве «А», поэтому, если второй символ выглядит как буква «Т»,Устройства или драйверы, которые используют команды «AT», которые работают аналогично или аналогично командам модема Hayes (например, принимают
ATDTW192,168,254,123W4567
в качестве команды для подключения к порту 4567 из 192.168.254.123), делают это для совместимости с программным обеспечением, которое рассчитывает на связь со старым стилем модем или совместимое устройство. Однако существует много устройств, которые используют команды, начинающиеся с «AT», из теории, что «набор команд AT» представляется полезным маркетинговым словом, даже если устройства не способны автоматически определять скорость передачи и имеют команды, отличающиеся от что-нибудь на любом другом устройстве. Использование «AT» в качестве префикса команды в таких контекстах не добавляет значения совместимости и не служит никакой полезной цели; дизайнеры делают это, потому что они видели, как другие дизайнеры делают это,источник