Последната актуализация на този раздел е от 2019 година.

 

 

8.6   Обмен  на  данни  между  асинхронни  устройства

 

 

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

      И така, ще имаме предвид случай, при който всяко устройство се синхронизира от собствен тактов генератор. Ще наричаме едното устройство предавател на данни, а другото – приемник. Фактът, че устройствата са самостоятелни както по захранване, така и по управление от страна на оператор (ползвател), означава, че тяхното функциониране, появата и изчезването на различните логически сигнали в тях е абсолютно независимо едно от друго, т.е. те работят напълно несинхронизирано. В дъното на това твърдение стои разбирането, че тактовите генератори на тези две устройства са напълно асинхронни, т.е. тактовите последователности са с различни честоти и с различни коефициенти на запълване (вижте пункт 8.1 и фигура 8.1.1). На фигура 8.6.1 е илюстрирана ситуация на две асинхронни последователности.

 

Фиг. 8.6.1.  Асинхронност между две тактови последователности

 

      Както може да се види на рисунката, моментите на предните и задните фронтове на долната последователност, се появяват незакономерно във времето спрямо тези на горната последователност. Това е явен признак за асинхронност между тях. Независимо коя от последователностите тактува изпълнението на алгоритмите в предавателя на данни, то тяхната поява, изчезване и въобще управление, е синхронно с тази последователност и в същото време асинхронно с процесите в приемника. За да бъдат възприемани обаче от приемащата страна правилно, те трябва да бъдат синхронизирани спрямо собствената й такова последователност. Това е ситуация, която следва да бъде добре схваната. За тази цел ще дадем следния пример – играете с приятел някаква игра с топка. Подхвърляте топката и очаквате той да я хване. И какво би станало, ако той в този момент е решил да се наведе и да си поправи чорапите? Ясно е разбира се, играта се проваля. Бихме могли да обобщим, че играта се проваля поради липса на синхрон между играчите. Ето защо завършвайки тук тези общи пояснения, ще отбележим, че обменът на данни между две асинхронно работещи устройства изисква разработване на детерминирана система от правила и тяхната техническа реализация, задача с която ще се заемем по-долу.

      Най-напред ще поясним информационното свързване на предавателя с приемника. Първата връзка, която е задължителна, е връзката на общия потенциал (често се нарича обща маса). Втората задължителна връзка е информационната. Ако данните, които ще бъдат предавани, са двоични, то минималният състав на тази връзка е от една линия. Така с помощта на един проводник, в даден такт ще бъде предаван един единствен бит. За предаване на множество битове следва да се организира последователен процес. Ако информационната връзка е от тип шина, тогава имаме паралелно предаване на цяла порция данни, например един байт. В този случай информационната връзка е съставена от 8 линии. В този случай ако данните, които трябва да бъдат предадени, са множество байтове, то също следва да се организира последовател процес. И в двата случая (един бит или един байт) в последователния процес на предаване се повтаря една завършена процедура за надеждно предаване на една единствена порция данни.

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

·     Трябва да се появи точно в необходимия момент,

·     Да стои неизменно във времето необходимото време;

·     И да изчезне в необходимия момент.

      Споменатите моменти обаче се определят от тактовата последователност на приемника. Можем да кажем, че проблемът, който създава асинхронността, може да бъде преодолян чрез взаимен диалог или въз основа на предварително известно алгоритмично и параметрично поведение на участниците в обмена. За организацията на обмена съществено значение оказва инициативността или пасивността на устройствата. По-долу на фигура 8.6.1 е илюстрирана една от възможностите за връзка на предавателя с приемника.

 

Фиг. 8.6.1.  Три-жична връзка

 

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

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

      И така, ще приемем, че предавателят подава сигнал, който ще наричаме “сеанс за връзка”. Ще приемем още за логично, че с появата на този сигнал, предавателят поставя на информационните линии за връзка с приемника истинните логически стойности на данните, или както най-често на практика се реализира това – разрешават се (включват се) данновите линии. В хардуера последното се постига чрез изходните буфери с три състояния. В отговор на сигнала “сигнал за връзка” приемникът трябва да запише получените данни, след което да издаде уведомителния сигнал, наречен “готов”. През това време приемникът изчаква този отговор и ако има още данни за предаване, процедурата се повтаря. Като имаме предвид асинхронното появяване на сигнала “сигнал за връзка” в приемника, следва че за надеждно приемане на данните този сигнал трябва да се синхронизира с тактовата последователност на приемника. Тук ще приемем, че тя се генерира от един 2-фазов тактов генератор, което означава, че на практика имаме 2 еднакви, синхронни и незастъпващи се тактови последователности С1 и С2. Генерирането на синхронни логически импулси в отговор на асинхронен единичен импулс беше разгледано тук в пункт 8.1, така че ще считаме този проблем изяснен. Тъй като продължителността на сигнала “сигнал за връзка” е в зависимост от периода на тактовата последователност в приемника, ако искаме да се постигне надеждно приемане (вижте случаите от фигура 8.1.5), то тази продължителност трябва да удовлетворява зависимостта (8.1.1). Ако приемникът не получи в отговор сигнала “готов” след време

където с Т е означен периодът на тактовата последователност на предавателя, а с tС – продължителността на тактовия импулс в последователността С1, то сеансът за връзка може да се счита за провален. Би следвало предавателят да измени параметрите на обмена и да направи следващ опит. Главният параметър на обмена е продължителността на сигнала “сеанс за връзка”. Последният елемент в горната сума (8.6.1) ще поясним по-късно.

      Нека разгледаме следната логическа схема, представена на фигура 8.6.2, чието функциониране е представено на времедиаграмата от следващата фигура 8.6.3. Както може да се види, схемата съдържа два пъти схемата на селектора от фигура 8.1.5. Елементите  &10  и  &11  образуват един асинхронен RS-тригер с инверсно управление.

 

Фиг. 8.6.2.  Принципна логическа схема на БУВ

 

 

Фиг. 8.6.3.  Времедиаграма за селектиране на 2 единични импулса

 

      Първата половина от времедиаграмата изразява превключванията на логическите елементи с номера от 1 до 9 и свързани с тактовата последователност (C1, not(C1)). В тази половина след поява на асинхронния сигнал “сеанс за връзка” се селектира първият срещнат цял единичен импулс ЕС1. Едновременно с това чрез елементите 10 и 11 се формира сигналът Q, който селектира във втората половина на схемата единичния импулс ЕС2. Елементите от втората половина имат същите номера, но се намират в сивата зона на рисунките.

      На схемата от фигура 8.6.2 постъпва сигналът “сеанс за връзка”, в резултат на което на изходите ЕС1 и ЕС2 излизат последователно по един единичен импулс от тактовите последователности С1 и С2 на приемника. Именно тези два импулса могат да се използват като управляващи сигнали за запис на данни в регистъра на приемника по желание – съответно синхронно по С1 или синхронно по С2. Изборът по кой от селектираните импулси (по С1 или по С2) да бъде извършен записът на данни, следва да бъде предварително определен от потребителя в приемника. Този сигнал, с който той ще направи (или декларира) избора ще се използва за управление на мултиплексор 2х1. Можем да наречем този сигнал “режим на запис”. Записването в регистъра за данни на приемника, в зависимост от структурата на използвания тригер, може да бъде по предния или по задния фронт на съответно избрания импулс. Възможната принципна логическа схема за тази микрооперация, при използване на еднотактни синхронни D-тригери, е показана на следващата фигура 8.6.4.

 

Фиг. 8.6.4.  Запис на данните в регистъра на приемника

      За да завършим обясненията по процедурата за обмен, трябва да кажем как ще бъде реализиран отговорът на приемника, т.е. как ще се формира сигналът “готов”. Разбирането ни за този сигнал е той да се появява в отговор на сигнала “сеанс за връзка” след успешно извършено записване на данните. От пункт 8.1 и неравенство 8.1.1 е известно, че този запис е възможен при определено отношение между продължителността на сигналите. С други думи, ако сигналът “сеанс за връзка” е твърде кратък в сравнение с периода на тактовата последователност на приемника, селектирането на единичните импулси меже да се провали и данните да не бъдат записани. Този факт ще бъде установен в предавателя ако в отговор на сигнала “сеанс за връзка” не бъде получен сигналът “готов”. Естествено, тогава предавателят следва да повтори заявката за обмен, но с по голяма продължителност на сигнала “сеанс за връзка”. Въпросът, как предавателят ще постига това, ние няма да разглеждаме тук. Що се отнася до сигнала “готов”, то навярно вече е ясно, че той следва да се издаде, ако е селектирана двойката импулси ЕС1 и ЕС2. Можем даже да твърдим, че е достатъчно да следим само импулса ЕС2, тъй като той е следствие на схемата от фигура 8.6.2 по-горе. Ако трябва да бъдем абсолютно точни, трябва да кажем, че успешното предаване на данните завършва със появата на задния фронт на импулса ЕС2. Така следващият сеанс за предаване предавателят може да започне след този момент. Формално можем да запишем, че ЕС2 º ”готов”.

      След всичко казано до момента възниква въпросът колко често може да се подава входният асинхронен сигнал? Ако се позовем на времедиаграмата от фигура 8.1.6 и по-точно на третият, най-дясно изобразен на нея случай, можем да заключим, че подобен асинхронен сигнал (имаме предвид сигнала “сеанс за връзка”) може да бъде подаван на всеки 3 такта на тактовата последователност в приемника. Така, при приблизително еднакви по честота синхронизиращи последователности в предавателя и в приемника, скоростта на обмен между двете устройства пада най-малко 3 пъти по сравнение със скоростта на обмен между устройства, които се синхронизират с една и съща тактова последователност. Във връзка с това е формиран и последният елемент на сумата (8.6.1).

      На фигура 8.6.5 е показано свързването на предавателя и приемника след направения по-горе анализ и синтез на необходимите схеми. В дясната част на фигурата е изобразена необходимата ни част от логическата структура на устройството “Приемник”, в която са обозначени следните елементи:

·         ТГ2                       Собствен двуфазен тактов генератор ;

·         УУ2                       Управляващо устройство на приемника ;

·         БУВ                      Блок за управление на връзката (селектор на единични импулси) ;

·         Рг. за обмен        Входен буферен регистър за данни.

 

Фиг. 8.6.5.  Блокова схема на свързаните устройства

 

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

      След изчезване на сигнала “Сеанс за връзка” устройството за управление на приемника (УУ2), получавайки под свое разпореждане новото съдържание на регистъра за обмен, прочита и използува тези данни според своя алгоритъм. Следващото включване на приемника става по инициатива на следващия сигнал “Сеанс за връзка”. Очевидно е, че предавателя трябва да започне предаването на синхронизиращите и данновите сигнали малко по-късно спрямо началото на сигнала “Сеанс за връзка”. Това време на изчакване е необходимо на блока за управление на връзката (БУВ), който се синхронизира от тактовия генератор на приемника, за да сработи. Времето за това изчакване представлява, както може да се види от времедиаграмата, представена на фигура 8.1.6, поне 1 такт. При тази организация на обмена, загубата на време за сметка на несинхронност в работата между предавателя и приемника, става само в началото и в края на сеанса за връзка. Самото предаване на данните протича с максимално възможната скорост на тактовата честота на предавателя.

 

 

 

Следващият раздел е:

9.  Организация на входно-изходен обмен за ISA-базирани аналого-цифрови контролери