مجموعه دستورهای هایس

مجموعه دستورهای هایس یک زبان فرمان خاص است که ابتدا برای مودم باد (یکا) ۳۰۰، توسط محصولات ریزکامپیوتری هایس و در سال ۱۹۸۱ توسعه یافته است. این مجموعه دستور شامل یک سری رشته متن کوتاه است که در ترکیب با یکدیگر، دستورهای کاملی را برای انجام عملیاتی از قبیل شماره گیری، قطع تلفن و تغییر مشخصات اتصال است. بسیاری از مودم‌های امروزی از این مجموعه دستوری هایس پیروی می‌کنند.
تاریخچه
پیش زمینه
با توجه به مقدمه سیستم برد پژوهشنامه (BBS) مودم‌ها معمولا به صورت مستقیم به خطوط تلفن متصل هستند که این خطوط نیز به نوبه خطوط به مودم خاصی در هر سوی خود متصل هستند. مودم‌ها در دو حالت «شروع‌کننده» یا «پاسخ‌دهنده» کار می‌کنند، و معمولا کاربر پیش از اتصال مودم، به صورت دستی شماره‌گیری می‌کند، یا اینکه در زمان زنگ خوردن آنرا پاسخ می‌دهد. عملیاتی کردن پاسخ دادن تلفن راحت است. برای خودکارسازی تماس‌های بیرونی یک دستگاه جنبی جداگانه (یه نام شماره‌گیر) باید به درگاه ورودی خروجی رایانه متصل شود. این پورت معمولا از استاندارد
RS-۲۳۲ پیروی می‌کند.
این روش زمانی که مودم‌ها به طور گسترده‌ای برای ارتباط بین ماشین‌ها (و نه انسان‌ها)، مثل ارتباط ترمیانال‌های رایانه‌ای و رایانه‌های بزرگ، مورد استفاده قرار می‌گرفتند، در اواخر دهه ۶۰ و اوایل دهه ۷۰ میلادی کاربرد عملی پیدا کرد. در دهه ۷۰ میلادی، انقلاب ریز-رایانه‌ای به تولید مودم‌های کم‌هزینه منجر شد. بسیاری از کاربرهای تمایل به تماس با دیگر کاربرها داشتند و تنها راه‌حل در آن زمان شماره‌گیری مستقم بود.
صنعت رایانه نیازمند راهکاری بود که توسط نرم‌افزار به مودم بگوید چه شماره‌ای باید بگیرد. در آن زمان شماره‌گیرهای تازه به بازار آمده توانایی این کار را داشتند؛ ولی این قابلیت تنها با پرداخت هزینه خرید شماره‌گیر در اختیار کاربر قرار می‌گرفت و هزینه کلی بالا می‌رفت. یکی از راهکارها استفاده از مجموعه‌ای از سوزن‌های جداگانه بود که توسط آنها فرمان یه مودم داده شود. این سوزن‌ها «سوزن دستور» خوانده می‌شدند. راهکار دیگری که مورد اسفتفاده قرار گرقته بود، استفاده از یک سوزن علامت بود که مودم باید دستورهای دریافت شده از این سوزن را اجرا می‌کرد؛ ولی این دو روش با مشکل مواجه می‌شدند. زیرا در بسیاری از وسایل این سوزن وجود نداشت یا به دلیل عدم استفاده اصلا در مدار نبود.
راه‌حل هایس
شرکت ارتباطات هایس در سال ۱۹۸۱ مودم هوشمند خود را با بازتعریف کاربرد سوزن‌های موجود در استاندارد RS-۲۳۲ و بدون تغییر در تعداد و بدون تعییر در این استاندارد راهی بازار کرد. این مودم برخلاف مودم‌های پیشین در دو حالت کار می‌کرد:
حالت داده : در این حالت مودم داده‌های را به مودم دوردست می‌فرستد. مودم در این حالت هر چیزی را که از رایانه به آن برسد به صورت داده تلقی کرده و آن را از طریق خط تلفن منتقل می‌کند.
حالت دستور : دراین حالت مودم داده‌های رسیده از رایانه را دستو رتلقی کرده و در درون مودم محلی آن را اجرا می‌کند.
به منظور تغییر کاربری مودم از حالت داده به حالت دستوری، باید یک رشته "توالی فرار" که شامل سه علامت مثبت است ("+++") را به مودم ارسال کنیم که همراه یک مکس ۱۰۰۰ میلی ثانیه‌ای است (به منظور در نظر گرفتن زمان تغییر حالت مودم از یک حالت به حالت دیگر). برای تغییر حالت معکوس، یعنی تغییر از حالت دستوری به داده، از دستور برخط (O) استفاده می‌شود. در عمل، پس از اجرای بسیاری از دستورها مودم به طور خودکار به حالت برخط می‌رود.
اینگونه استفاده از علامت‌دهی داخلی (بین رایانه و مودم) ممکن بود به مشکلاتی منجر شود. مثلا فرض کنیم کسی قصد داشت که پرونده‌ای را ارسال کند که شامل سه علامت مثبت پشت سر هم بود. برای فائق آمدن بر این مشکل باید حتما مکث ۱۰۰۰ میلی ثانیه‌ای مد نظر گرفته می‌شد. اگر پس از هر سه علامت مثبت پشت سر هم، در ۱۰۰۰ میلی ثانیه بعدی علامتی داده می‌شد، این دستور تلقی نمی‌شد و داده تلقی شده و هر سه علامت مثبت به همراه بقیه علامت‌ها به مودم دوردست ارسال می‌شدند.
دستورها
مجموعه دستورهای هایس شامل دستورهایی به منظورهای متفاوت مثل دستکاری خط تلفن، شماره‌گیری، و قطع خط ارتباطی بود. همچنین دستورهایی برای راه‌انداری مودم بود، که آن هم به نوبه خود شامل دستورهای مربوط به دستورهای ثبات می‌شد و به کاربر اجازه می‌داد که مستقیما از داخل حافظه گوشی، شماره‌های ثبت شده شماره‌گیری شوند. این دستورها عموما به صورت کلمه به کلمه منتقل می‌شد و در آن دوره مودم‌های باد ۳۰۰ یک مقدار کار را سخت می‌کردند.
با پیشرفت مودم‌ها به مودم‌های ۱۲۰۰ baud و ۲۴۰۰ baud، نیاز به دستورهای جدید احساس می‌شد. برخی از پسوند اتصال "-" استفاده می‌کردند که نشان دهنده یک دستور جدید برای مودم است. شرکت هایس خود را متعهد به ساخت مودم‌های ۲۴۰۰ baud کرد.
یک سال بعد از این کار
TIA/EIA
مجموعه دستورهای ۲۴۰۰-baud را به شکل استاندارد درآورد و تحت عنوان ادوات و سیستم‌های انتقال داده – کنترل و شماره‌گیری خودکار غیرهمزمان سریال ، TIA/EIA-۶۰۲ منتشر کرد.
پس از آن شرکت ارتباطات هایس به دنبال افزایش سرعت و فشرده سازی رفت، در حالی که سه شرکت دبگر در آن زمان (یعنی
Microcom
U.S. Robotics
، و
Telebit) در همین‌جا توفق کرده بودند هرکدام از این شرکت‌ها به جای پیروی از شرکت هایس (که پدر این تکنیک بود)، به توسعه مجموعه دستورهای خود پرداختند. در اوایل دهه ۹۰، چهار مجموعه دستور مودم به طور جامنع مورد استفاده قرا ر می‌گرفت. با ارائه مودم‌های ۴/۱۴ و ۸/۲۸ کلیو بیت بر ثانیه در اوایل دهه ۹۰، مسائل ساده‌تر شدند. کم‌کم مجموعه دستورهای تولید شده توسط هایس که با استفاده از واژه - گسترش یافته بودند محبوبیت یافتند و جهانی شدند. تنها مجموعه دستورهای یک شرکت دیگر محبوب ماند و آن هم شرکت US Robotics بود. دلیل این امر هم گستردگی محصولات این شرکت بود.
توصیفات
در فهرست زیر، قسمتی از مجموعه دستورهای هایس آورده شده است (این دوستورها، دستور AT هم خوانده می‌شوند؛ از آن جهت که ابتدا برای انجام هر دستوری در مودم، باید مودم را آگاه
می‌ساختند)
مجموعه دستورهای پایه – یک واژه بزرگ همراه با یک عدد. مثل M1.
مجموعه دستورهای توصعه یافته – یک واژه - و یک واژه بزرگ همراه با یک عدد. با این کار دستورهای پایه گسترده‌تر می‌شدند. مثلا دستور -M۱ که با دستور M۱ متفاوت بود.
مجموعه دستورهای اختصاصی – معمولا با یک واژه برش-برعکس “\”و یا علامت درصد “%” شروع می‌شوند. این دستورها به طور گسترده توسط سازندگان مودم استفاده می‌شوند.
دستورهای ثبات – مثل Sr=n که r شماره حافظه‌ای است که قرار است تغییر کند، و n مقداری است که باید بگیرد.
یک ثبات یک خانه فیزیکی در حافظه را نمایش می‌دهد. مودم‌ها حافظه کوچکی در خود دارند. این ثبات‌ها می‌توانند محتوات خاصی داشته باشند که شامل عددو حروف باشد. این حافظه می‌تواند توسط نرم‌افزارهای ارتباط مورد استفاده قرار بگیرند. برای مثال دستور S7=۶۰ به رایانه داخلی می‌گوید که مقدار ثبات شماره ۷ را برابر با ۶۰ قرار بده. بسیاری از دستورها در این مجموعه دستورها با ترکیب حرف-عدد به نمایش در می‌آیند. استفاده از ۰ اختیاری است. برای مثال دستور L۰ همان دستور L است.
زمانی که مودم در حالت داده است، و یک توالی فرار مودم را از این حالت خارج کرده و به حالت دوستوری تغییر می‌دهد. یک توالی فرار معمولی شامل سه علامت مثبت پشت سر هم است ("+++") برای رفع ابهام این واژه‌ها با داده‌های واقعی، یک فاصله زمانی (مکث) مورد استفاده قرار می‌گیرد.
تعریف دستوری
در این مجموعه دستوری از قواعد دستوری زیر استفاده می‌شود:
. کاراکتر انتقال-برگشت، کاراکتر اختمام دهنده دستورها است. پس از ارسال این کد، مودم به بررسی کاراکترهای فرستاده شده تا پیش از این کارکتر می‌پردازد. مقدار این کارکتر در کد اسکی برابر با ۱۳ است که در ثبات S۳ ذخیره می‌شود. به جای این کاراکتر می‌توان مقدار دیگری را بین ۰ تا ۲۵۵ در ثبات مذکور قرار داد.
. این کاراکتر تحت عنوان کارکتر اتمام خط شناخته می‌شود. مقدار این کاراکتر در کد اسکی برابر با ۱۰ است که در ثبات S۴ ذخیره می‌شود. به جای این کاراکتر می‌توان مقدار دیگری را بین ۰ تا ۲۵۵ در ثبات مذکور قرار داد. اگر در حالت پرجانه باشیم (که با پارامتر V۱ مشخص می‌شود و هر اتفاقی که بیافتد کاملا و مفصل گزارش می‌شود). آنگاه پس از هر کاراکتر ، یک کارکتر در خروجی مودم ظاهر خواهد شد. در غیر این صورت باید در حالت پاسخ عددی باشیم (که با پارامتر V۰ مشخص می‌شود) که پس از کاراکتر ، چیزی ظاهر نمی‌شود.
…. زیر-پارامترهای اختیاری یک دستور در این علامت‌ها قرار داده می‌شوند. این کروشه‌ها در دستور ظاهر نمی‌شوند.
آماده‌سازی مودم
یک رشته می‌تواند شامل چندین دستور هایس باشد. این امر به منظور بهینه کردن عمل شماره‌گیری یا پاسخ دهی مودم آنجا م می‌گیرد. مثلا دستور AT-F -D2 -C1S0=۰X4 را در نظر بگیرید که رشته آماده‌سازی نام دارد.
قوانین V.۲۵۰ تمام DCEها را ملزم می‌کند که پس از "AT" حداقل ۴۰ واژه را به صورت دستورهای متصل به هم بپذیرند.
مثال
در ادامه دو رایانه A و B را که با مودم به هم متصل هستند را در نظر گرفته‌ایم، که یک کاربر قصد دارد با یک نرم‌افزار شبیه‌ساز ترمینال آن دو را کنترل کند. اصولا نرم‌افزار شبیه‌ساز ترمینال به کاربر این اجازه را می‌دهد که دستورهای هایس را مستقیما به مودم ارسا لکند و پاسخ‌های آن را مشاهده کند. در این مثال کاربر رایانه A مودم را مجبورمی کند که شماره رایانه B را بگیرد. دقت کنید که پس از هر ارسال یا دریافت، یک انتقال-برگشت برای تکمیل پیام ارسال می‌شود.
Modem A
Modem B
Comment
ATDT۱۵۵۵۱۲۳۴
کاربر مودم A دستور شماره‌گیری ارسال می‌کند: واژه AT مودم را آگاه می‌کند، واژه D ابتدایی دستور شماره‌گیری است، T نشان دهنده ویژگی بوق-تماس و شماره پس از آن نیز شمارهرایانه دیگر است.
RING
مودم A شروع به شماره‌گیری می‌کند. مودم B زنگ می‌خورد، و سپس واقعیت را گزارش می‌کند.
ATA
رایانه B دستور پاسخ دادن را به مودم ارسال می‌کند.
CONNECT
CONNECT
هر دو مودم به یکدیگر متصل می‌شوند و هر دو مودم پدیده "اتصال" را گزارش می‌کنند. در عمل مودم‌های اطلاعات بیشتری را پس از "اتصال" نیز گزارش می‌کنند. در همین زمان هر دو مودم بر روی درگاه مودم علامت DCD (یا تشخیص حامل داده) را روشن می‌کند.
abcdef
abcdef
زمانی که مودم‌ها متصل شدند، هر واژه‌ای که یک سوی اتصال تایپ شود در سوی دیگر نیز ظاهر می‌شود. شخصی که پای رایانه A نشسته است حروفی را تایپ می‌کند. حروف از مودم‌ها عبور کرده و بر روی صفحه رایانه B ظاهر می‌شوند. (کاربر رایانه A ممکن است حروفی که تایپ کرده است را نبیند. این بستگی تنظیمات نرم‌افزار ترمینال دارد. با استفاده از دستور ATE می‌تواند ویژگی پژواک دستورهای خود خاموش یا روشن کند.
شخصی که پای رایانه B نشسته است دستور فرار مودم را ارسال می‌کند (به گونه‌ای دیگر و بسیار معمول، رایانه B می‌توان DTR را خاموش کند تا تماس را قطع کندبدون نیاز به +++ یا ATH.
OK
مودم تایید می‌کند.
ATH
کاربر رایانه B دستور قطع تماس را صادر می‌کند.
NO CARRIER
OK
هر دو مودم گزارش می‌دهند که ارتباط قطع شده است. مودم B پاسخ “OK” را برمی‌گرداند که پاسخ دلخواه است!. مودم A عبارت “NO_CARRIER” را گزارش می‌کند تا نشان دهد که سمت دوردست ارتباط را مختل کرده است. هر دو مودم علامت DCD را خاموش می‌کنند..
سازگاری
زمانی که مجموعه دستورهای اصلی ارائه شدند، با وجود مشکلات بسیار که هایس نیز مسبب آنهال نبود، یک جهش عظیم در ارتباطات بر پایه مودم ایجاد شد.
به دلیل نبودن یک استاندارد نوشته شده، دیگر تولیدکنندگان مودم تنها ظاهر خارجی دستورها را رونوشت کرده و تنها قسمتی ابتدایی از آن را برداشتند. این باعث تفاوت‌هایی در چگونگی تغییر حالت و کاربری مودم ایجاد کند.
هر سازنده علاقه داشت که دستورهای جدیدی را اضافه کند که بتواند نیازهایش را رفع کند. این باعث عدم سازگاری با مودم‌های دیگر می‌شد.
بسیاری مودم‌های "سازگار با هایس" دارای تغییرات زیادی شدند که به طور موثری سازگاری آنها با یکدیگر را مختل می‌کرد. برای مثال بسیاری از مودم‌ها پس از دیافت دستور بازیابی "ATZ" نیاز به زمان مکث داشتن. برخی مودم‌ها بین دستورها نیاز به فاصله جداکننده داشتند، در حالی که دیگر مودم‌ها نداشتند. برخی مودم‌ها خودبه‌خود باد خود را تغییر می‌دادندو این کار باعث می‌شد که رایانه نتواند به تماس‌های دریافتی پاسخ دهد.
در نتیجه این مسائل بودکه ناگهان بسیاری از برنامه‌های ارتباطی نتواستند به همکار خود با مودم‌های "سازگار با هایس" ادامه دهند و مجبور شدند نوع مودم را با توجه به پاسخ‌های دریافتی از مودم تعیین کنند، یا کاربر را مجبور ساختند انواع محدودی از مودم‌ها (که توانایی کارباآنها را دارند) را انتخاب کنند.
مجمعه دستورهای ابتدایی هایس
Command
Description
Comments
A0 or A
به تماس ورودی پاسخ می‌دهد
A/
دستور آخر را تکرار می‌کند
دستور AT را پیش از آن قرار ندهید. انتقال-برگشت را پس از آن قرار ندهید.
D
شماره‌گیری
با پارمترهای زیر شماره‌گیریکرده و سپس به دست‌تکان دادن می‌پردازد
P - شماره‌گیری پالس
T - شماره‌گیری تن
W – منتظر بوق آزاد بعدی می‌ماند
R – پس از شماره‌گیری به طور خودکار به حالت انتظارتماس بر می‌گردد
@ - تا ۳۰ ثانیه منتظر تماس برگشتی می‌ماند
- تا مدت زمان مشخص شده در ثبات S۸ (که معمولا ۲ است) مکث می‌کند. یکای این ثابت ثانیه است.
- پس از شماره‌گیری در حالت دستوری می‌ماند
– قطع ضربتی تماس (به مدت ۵۰۰ میلی ثانیه خط را قطع کرده تا تماس را منتقل کند)
L – آخرین شماره را دوباره شماره‌گیری می‌کند
E0 or E
بدون پژواک
پژواک دستوراها را به رایانه برنمی‌گرداند.
E۱
پژواک
پژواک دستوراها را به رایانه برمی‌گرداند (لذاکاربر می‌تواند آنچه را که تایپ کرده مشاهده کند).
H۰
وضعیت گوشی
در صورتی که خط وصل باشد (اصطلاحا گوشی برداشته شده باشد) آنرا قطع می‌کند و هر تماس در حال شماره‌گیری را قطع می‌کند.
H۱
وضعیت گوشی
اگر خط قطع باشد (اصطلاحا گوشی برداشته نشده باشد) خط را وصل می‌کند (گوشی را برمی‌دارد). در این زمان باید منتظر صدای بوق آزاد خط تلفن بود.
I0 to I۹
پرس و جو، اطلاعات، یا بازجویی مودم
این دستور اطلاعاتی در رابطه با مدل (مثل نرم‌افزار راه‌انداز آن یا سازنده آن) برمی‌گرداند. هر شماره (عددی بین ۰ تا ۹ گاهی ۱۰ یا بیشتر هم دیده می‌شود) یک خط از اطلاعات مودم را برمی‌گرداند. اگر ثبات تعریف نشده باشد عبارت ERROR بر می‌گردد. امروزه سیستم عامل ویندوز از این ویژگی جهت تشخیص انواع مودم‌ها در حالت وصل-و-استفاده سود می‌برد.
L0 or Ln (n=۱ to 3)
حجم صدای بلندگوها. تنها برخی مودم‌ها (اکثرا مودم‌های بیرون-کار) از آن پشتیبانی می‌کنند.
حجم صدای کم یا قطع کامل صدا
M0 or M
قطع کامل صدا در طول تماس
ثبات M۳ نیز همین عمل را انجام می‌دهد؛ ولی بستگی به سازنده مودم نیز دارد.
M۱
بلندگو تا زمانی که مودم دوردست علامت تسخیص حامل را روشن نگاه داشته، روشن می‌ماند. (یعنی تا زمانی که مودم دیگر شنیده می‌شود)
M۲
بلندگو روشن می‌ماند (صدای انتقال داده‌ها پس از دریافت CONNECT شنیده می‌شود).
O
به وضعیت بر خط بر می‌گردد
پس از دریافت کد فرار "+++"، یه حالت معمولی اتصال بر می‌گردد.
Q0 or Q
حالت ساکت
خاموش – کدهای پاسخ نشان داده می‌شوند و کاربر پاسخ دستورهای خود را می‌بیند. ( OK )
Q۱
حالت ساکت
روشن - کدهای پاسخ خاموش می‌شوند و کاربر پاسخ دستورهای خود را نمی‌بیند.
S n
یک ثبات را انتخاب می‌کند
دقت کنیدکه S n ، ؟ یا = r در حقیقت که دستور جداگانه هستند.
ثبات شماره n را به عنوان ثبات جاری (قابل استفاده در حال حاضر) انتخاب می‌کند.
S n ?
ثبات شماره n را به عنوان ثبات جاری انتخاب می‌کند؛ و محتویات آن را سوال می‌کند. استفاده از؟ به تنهایی سوال می‌کند که کدام ثبات در حال حاضر انتخاب شده است.
S n = r
ثبات n را به عنوان به عنوان ثبات جاری انتخاب می‌کند و مقدار r را در آن ذخیره می‌کند.
V۰ یا V
پرچانگی
نتایج را به صورت عددی نمایش می‌دهد
V۱
نتایج را به زبان انگلیسی برمی‌گرداند (مثلا CONNECT ، BUSY ، NO CARRIER و غیره)
X0 or X
مودم-هوشمند
Hayes Smartmodem 300 compatible result codes
X۱
معمولا سرعت ارتباط را همراه با کدهای خروجی چاپ می‌کند (مثل CONNECT 1200 )
X۲
معمولا علامت تشخیص بوق آزاد را همراه نتایج گزارش می‌کند. (از شماره‌گیری کور، و گاهی از ATO جلوگیری می‌کند.
X۳
معمولا تشخیص علامت اشغال را نیز گزارش می‌کند.
X۴
معمولا هم تشخیص علامت اشغال و هم تشخیص بوق آزاد را گزارش می‌کند.
Z0 or Z
بازسازی
مودم را به تنظیمات کارخانه بازمی‌گرداند. استفاده از Z۰ ، Z۱ و غیره برای نمایه‌های مختلف خواهد بود. این دستور مشابه -F است برای مودم‌هایی که NVRAM ندارند.
GSM
استاندارد ETSI GSM 07.۰7 (3GPP TS 27.007) برای کنترل و تنظیم گوشی یا مودم GSM دستورهای AT خاصی را تعریف کرده است.
در کنار این استاندارد که تنها برای گوشی یا مودم است، استاندارد دیگر با شماره ETSI GSM 07.۰5 (3GPP TS 27.005) وجود دارد که دستورهای لازم جهت مدیریت پیام کوتاه در شبکه GSM را تعریف می‌کند. مثال‌هایی از این دستورها در زیر آمده‌اند
دستور
توضیحات
AT+CPIN=۱۲۳۴
ورود PIN code
AT+CPWD="SC","old","new"
تغییر کد PIN از مقدار قدیمی به مقدار جدید.
AT+CLCK="SC",۰,"۱۲۳۴"
حذف کد PIN
AT-V
اعلام وضعیت
ATI
گزارش ساخت (سازنده، مدل، بازبینی،
IMEI
، قابلیت‌ها)
AT+COPS=?
List available networks
۰-ناشناس/۲-فعلی/۳-ممنوع، نام بلند، نام کوتاه، مشخصه عددی، "AcT"
AT+CSQ
قدرت سیگنال دریافتی را برمی‌گرداند پاسخ:
+CSQ:
ATD*۹۹#
مرکز دسترسی را شماره گیری می‌کند
مودم‌های GSM/3G معمولا مجموعه دستورهای ETSI GSM 07.۰7 (3GPP TS 27.007) و دستورهای توسعه یافته پس از آن را نیز پشتیبانی می‌کنند. بسیاری از تولیدکنندگان مودم USB مثل Huawei, Sierra Wireless، و Option نیز دستورهایی را برای استفاده در حالت رادیویی (GSM/3G) توسعه داده‌اند.