|
Как должна происходить синхронизация сигналов? |
|
|
|
May 27 2008, 05:44
|
Группа: Новичок
Сообщений: 11
Регистрация: 27-05-08
Пользователь №: 37 836

|
ЗадачаИмеется микроконтроллер (МК) как представлено на прикрепленной картинке МК должен начать принимать информацию от Арбитра после того как на С1 появится 1-ный сигнал. После этого появится 8 1-ных сигналов на С2. По этим сигналам через DATA МК должен принять от Арбитра байт (последовательно). Если значение байта равно 98 (это адрес МК среди других МК) МК должен подать Арбитру через DATA байт со значением 80 (это обозначает что МК "ГОТОВ" принимать информацию). После этого МК получит от Арбитра по DATA последовательность бит (информацию какую-то), завершающуюся последовательностью "конец передачи". --------- Вопрос:Я не понимаю как должна происходить синхронизация МК с Арбитром. - когда МК должен подавать обратно "ГОТОВ": после появления единички на С1? - как МК поймёт, что Арбитр уже начал посылать ему информацию. В какой момент он должен начать её принимать?
Прикрепленные изображения
|
|
|
|
|
May 27 2008, 06:04
|

Местный
  
Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836

|
Мало входных данных. Что за Арбитр? Есть ли возможность изменять алгоритм его работы? Цитата - когда МК должен подавать обратно "ГОТОВ": после появления единички на С1? "Арбитр" должен после передачи адреса МК (98) "слушать" линию данных на предмет ответа от запрашиваемого МК. Как в Вашем случае поступает арбитр пока это не известно. Цитата - как МК поймёт, что Арбитр уже начал посылать ему информацию. В какой момент он должен начать её принимать? После того как "арбитр" и МК "разобрались" кто с кем общается и нашли общий язык :-) (после посылки команды 98 контроллер переходит в режим приема данных) МК ожидает прихода импульса на "С1" и принимает уже данные.
--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
|
|
|
|
|
May 27 2008, 06:11
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Артем Бум @ May 27 2008, 08:44)  Я не понимаю как должна происходить синхронизация МК с Арбитром. Существует два базовых принципа синхронозации - с синхронизацией и без нее Вспомните порты - бывают синхронные и асинхронные. В синхронном есть специальные сигналы, где приемник сообщает передатчик, что он принял данные - например, LPT. На вашей схеме такого сигнала нет. Асинхронный порт обходится без сигналов, но временная диаграмма определена заранее и передатчик и приемник работают, чтобы обеспечить известную обоим временную диаграмму. Например,UART. В Вашем описании задачи ни сигналов нет, ни описания временной диаграммы нет, ни логики взаимодействия между передатчиком и приемником нет. Ну так придумайте или спросите у препода, и реализуйте.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
May 27 2008, 06:25
|
Группа: Новичок
Сообщений: 11
Регистрация: 27-05-08
Пользователь №: 37 836

|
Спасибо! По Вашим советам узнал логику синхронизации у преподавателя.
|
|
|
|
|
May 27 2008, 12:09
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Dog Pawlowa @ May 27 2008, 09:11)  В синхронном есть специальные сигналы, где приемник сообщает передатчику, что он принял данные - например, LPT. На вашей схеме такого сигнала нет. Асинхронный порт обходится без сигналов, но временная диаграмма определена заранее и передатчик и приемник работают, чтобы обеспечить известную обоим временную диаграмму. Например,UART. А не наоборот? Специальные сигналы могут быть как у синхронного так и у асинхронного интерфейса, также как их может и не быть и там и там. (Синхронизация напр в HDLC осуществляется потоком данных). В синхронном действуют жесткие времянки, и не приемник, а передатчик стробирует посылку. Приемник обязан успевать! (это главное требование любого синхронного протокола). а в асинхронном кроме стробов могут быть подтверждения от приемника, которые позволяют передатчику быстрее перейти к отправке следующей порции данных либо наоборот дожидаться, пока медленное устройство не примет данные. Взять напр. синхронный и асинхронный доступ к памяти: Синхронный подразумевает строб R/W заранее заданной длительности T (не менее реакции самого медленного модуля памяти), за время которого гарантируется что любой модуль памяти успеет выставить данные. Временная диаграмма жесткая. Асинхронный подразумевает строб R/W и квитирование завершения записи/чтения по сигналу RD от модуля памяти, т.о. с быстрым модулем памяти обмен будет происходить быстрее, с медленным - медленнее (нет постоянства - это и есть "асинхронный"). Временная диаграмма гибкая и зависит от модулей памяти. UART асинхронный не потому что должен придерживаться заданной временной диаграммы, а потому что он может ее не придерживаться!!! Разность частот между передатчиком и приемником UART'a может достигать аж 10% без риска искажения данных.
|
|
|
|
|
May 27 2008, 12:32
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(defunct @ May 27 2008, 15:09)  А не наоборот? Я с памятью работал давно, еще с помощью READY и TEST  Так что особенно спорить не буду. Параллельный интерфейс через LPT содержит сигнал строба от передатчика и сигнал подтверждения от приемника. Как называть его - синхронный или асинхронный? Мне лично кажется, что любое согласование дополнительными сигналами - это синхронность. Для Ваших примеров с памятью это не так. Что будем делать? Да, скорость передачи по LPT со стробами и подтверждениями может меняться от нуля до мегабайтов в секунду. Вот уж где не придерживается заданной временной диаграммы
--------------------
Уходя, оставьте свет...
|
|
|
|
|
May 27 2008, 12:40
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Dog Pawlowa @ May 27 2008, 15:32)  LPT содержит сигнал строба от передатчика и сигнал подтверждения от приемника. Как называть его - синхронный или асинхронный? Если скорость передачи одного кадра не меняется (интервал времени затрачиваемый на пересылку кадра постоянный) тогда интерфейс синхронный. Если меняется - асинхронный. У LPT ведь разные режимы работы есть SPP / EPP / ECP, асинхронно-синхронный? Цитата Мне лично кажется, что любое согласование дополнительными сигналами - это синхронность. Ну а как насчет HDLC? Синхронный? Да. И нет упр. сигналов. Цитата Да, скорость передачи по LPT со стробами и подтверждениями может меняться от нуля до мегабайтов в секунду. Вот уж где не придерживается заданной временной диаграммы Вот это и делает его асинхронным.
|
|
|
|
|
May 27 2008, 12:42
|
Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 5-04-07
Из: Санкт-Петербург
Пользователь №: 26 782

|
Цитата(defunct @ May 27 2008, 16:09)  Разность частот между передатчиком и приемником UART'a может достигать аж 10% без риска искажения данных. Это интересно как? Обычная арифметика подсказывает, что при передачи 8бит +1старт+1стоп разность не может быть больше 4%.
|
|
|
|
|
May 27 2008, 13:06
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Со скоростью кадра - допустим, есть USART и UART, оба передают кадры со отклонением скорости 0,1%. Так они оба синхронные, оба асинхронные, или таки разные? Цитата(defunct @ May 27 2008, 15:40)  У LPT ведь разные режимы работы есть SPP / EPP / ECP, асинхронно-синхронный? А там во всех случаях есть сигналы хэндшэйкинга, они отличаются количеством направлений и DMA и еще "мелочами". Цитата(defunct @ May 27 2008, 15:40)  Вот это и делает его асинхронным.  И мне смешно
--------------------
Уходя, оставьте свет...
|
|
|
|
|
May 27 2008, 13:40
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Dog Pawlowa @ May 27 2008, 16:06)  Со скоростью кадра - допустим, есть USART и UART, оба передают кадры со отклонением скорости 0,1%. Так они оба синхронные, оба асинхронные, или таки разные? Разные, отличие не в передатчиках (хотя и в них тоже), а в приемниках. Цитата А там во всех случаях есть сигналы хэндшэйкинга, они отличаются количеством направлений и DMA и еще "мелочами". И мне смешно  Если сигналы квитирования передаются на каждый кадр (передатчик не может перейти к отправке сл. кадра без подтверждения текущего) - интерфейс асинхронный. У LPT порта есть сигнал ACK, но используется ли он для квитирования передачи каждого байта? Если нет (а насколько я знаю ничто не мешает не использовать этот сигнал) то интерфейс будет синхронным, в противном случае - асинхронным.. Кстати LPT это не интерфейс, это все-таки порт, со своей фантазией сигналов, также как и COM это не интерфейс, а порт - со своей фантазией. Цитата(_dem @ May 27 2008, 16:28)  Господа, есть есть сигнал, по стробу которого происходит передача данных - то синхронный. В противном случае - асинхронный  Асинхронный тоже может быть со стробом.
|
|
|
|
|
May 27 2008, 14:42
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(VladimirYU @ May 27 2008, 11:42)  Это интересно как? Обычная арифметика подсказывает, что при передачи 8бит +1старт+1стоп разность не может быть больше 4% Обычная арифметика говорит немного иное. Погрешность из-за нестабильности частоты приёмника при приёме абсолютно точно сформированного по времени сигнала составит ±0.5/8.5=0.059 или ±5.9%, поскольку последний отсчёт делается при t=8.5*To, а допустимые временные рамки не превышают ±0.5*То. Так что РАЗНОСТЬ может доходить до 5.9%. Однако частота передатчика гуляет независимо от частоты приёмника. Если предположить, что передатчик и приёмник имеют похожие генераторы, то погрешность приёмника (как и передатчика) надо уменьшить вдвое. Таким образом, имеем допустимую погрешность частот расстройки передатчика и приёмника, равную ±2.9%.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|