menu
  • ENGLISH
  • Новини
  • Статии
  • Проекти
  • Изтегляне
  • Относно
  • Дарение
  • последна редакция на: 2017-11-03

    Асинхронна срещу синхронна комуникация

     

    Целта на тази статия не е да разисква темата в пълнота, а да даде най-обща представа за разликата между асинхронна и синхронна комуникация. Това са термини, които използвам в други статии от сайта и тук можете да намерите пояснение на това, което имам предвид.

     

    Асинхронна комуникация

    Асинхронната комуникация може да се дефинира, като начин на размяна на данни между две или повече устройства, които не са едновременно въвлечени в комуникацията и не се използва синхронизиращ механизъм (като например часовник), който да определя кой и кога може да изпрати или да получи съобщение. Това е двупосочна комуникация, по време на която има забавяне между изпращането и получаването на съобщенията. Участниците в нея четат и изпращат съобщения в удобно за тях време, т.е. имаме разлика във времето на получаване на съобщение и времето на изпращане на отговор на полученото съобщение.

     

    Обща характеристика:

    • Устройствата не изчакват отговора от отсрещната страна, за да изпратят следваща команда или данни;
    • Комуникацията между устройствата може да бъде силно разтеглена и неподредена във времето;
    • Не е задължително отговора на дадено съобщение да бъде веднага след съобщението;
    • Няма предварителна уговорка - кой да бъде инициатор на размяната на информация;

     

    Като примери:

    • по-голямата част от комуникацията между основните устройства в компютрите (между процесора и RAM паметта и процесора и твърдия диск);
    • комуникацията между компютъра и периферията (модем, принтер и т.н.) е асинхронна;
    • размяната на съобщения между компютри в мрежа, за които не е необходимо всички участници да са на линия (повечето пъти има само един активен участник в комуникацията и това е изпращача); 
    • изпращането и получаването на e-mail съобщения;
    • разговора между повечето от живите същества на планетата;

     

     

    Синхронна комуникация

    Синхронната комуникация е начин на размяна на данни между две или повече устройства, използващи синхронизиращ механизъм за осъществяне на комуникацията. Определя се начина на започване на комуникацията и реда за изпращане на съобщенията между участниците. Казано на жаргон - устройствата се изчакват “учтиво” и разговарят по строго определени правила при разговора си.

    Синхронизация по време

    Устройствата си предават данни по предварително известен протокол, който определя през какъв период от време ще предават информацията си едно на друго. В зависимост от конкретния случай – може да се налага на определени интервали часовниците на всички устройства участващи в комуникацията да се сверяват.

    Синхронизация по скорост и данни

    При този вид синхронна комуникация, преди да се изгради комуникационен канал устройствата знаят, какво е максималното количество данни, което може да се предава на една стъпка и/или - какво е количеството данни, което да се очаква преди отсрещната страна да започне да очаква отговор.

     

    Пример за синхронна комуникация, използвана при някои модели фискални устройства

    Нека имаме от една страна фискално устройство (Slave) и от друга страна програма, която се намира на компютър (Host). 

    • Комуникацията се инициира единствено и само от страна на Host. Фискалното устройство (Slave) не може да инициира комуникация. Тя се стартира задължително и винаги от програмата, която се намира на съответния компютър (Host);
    • Отговора на командата (съобщението), трябва да дойде в рамките на 60ms;
    • Отговора от страна на Slave е спрямо последната получена команда;
    • Slave не приема нови команди, докато не е отговорило на последната;
    • Host има 500ms timeout за получаване на отговор от страна на Slave. Ако изтече 500ms timeout то Host трябва да предаде същото съобщение отново;
    • Ако има два неуспешни опита, Host трябва да индицира, че няма връзка със Slave или че има хардуерен проблем в устройството;
    • Устройството Host изпраща следваща команда едва, след като е получило отговора от страна на Slave или след като е изтекло времето за timeout;

     

    Предимства и недостатъци

    Всъщност не е правилно да се говори за предимства или недостатъци. Технологията, която се избира за реализацията на комуникация между две или повече устройства зависи от началните условия, възможностите за реализация и крайната цел на проекта. 

     


    Ако смятате, че нещо в тази статия е некоректно, непълно или недостатъчно - моля пишете ми, за да коригирам статията.