литература / Пухальский Проектирование микропроцессорных систем 2001
.pdf260 |
Глава 3. Интерфейсные БИС |
При приеме данных по линии связи USART в слове состояния фиксирует обнаруженные ошибки четности, переполнения и кадра. Прочитать слово состояния МП может в любой мо мент времени. Максимальная скорость передачи данных в синхронном режиме равна 64 Кбод,
ав асинхронном режиме — 19,2 Кбод. На практике используются три типа каналов связи:
1.Симплексный канал (Simplex Channel) — передача данных производится в одном на правлении (используется, например, для связи компьютера с удаленным печатающим устрой ством, для подключения мыши к персональному компьютеру и др.).
2.Полудуплексный канал (Half-Duplex Channel) — передача данных производится в двух направлениях по одной линии связи с разделением во времени приема и передачи.
3.Дуплексный канал (Duplex Channel или Full-Duplex Channel) — передача данных в двух направлениях производится по независимым линиям (прием и передача могут осуществляться одновременно); дуплексный канал эквивалентен двум симплексным каналам. БИС 825 Ы пред назначена для построения дуплексного канала связи и может быть использована для организа ции полудуплексного канала связи.
Принцип асинхронной передачи данных. Формат кадра передаваемого по линии связи символа D j_о изображен на рис. 3.79 (высокий уровень напряжения называется маркером, а низкий уровень — пробелом). Кадр начинается с передачи старт-бита (пробела), затем пере даются разряды данных, начиная с младшего разряда D,h бит паритета Р (контрольный разряд для обнаружения однократной ошибки с помощью проверки на четность или нечетность) и один, полтора или два стоп-бита (маркеры). Контрольный разряд Р при передаче 5-, 6-, 7- и 8-разрядных символов определяется одним из двух выражений (см. § 1.11):
|
* -1 |
|
|
|
|
P = '^J D p — контроль четности, |
Р = ^ |
D p — контроль нечетности, к = 5,6, 7, 8. |
|||
|
р =0 |
|
р =о |
|
|
|
Нет передачи |
|
|
1,3 стоп-бита - |
|
. . |
данных |
|
|
|
|
|
|
|
|
||
М аркер -► — -------- |
D2 |
|
Da Os Об |
Do D1 |
|
|
До |
D3 |
|||
П р о б е л -------------- > — |
|
|
|
|
|
|
|
|
Кадр |
|
|
|
Старт-бит ■ |
|
|
С топ-бит I ■ |
• С топ -бит2 |
Рис. 3.79. Формат кадра при асинхронной передаче данных
Скорость передачи данных. Номинальная скорость передачи — это скорость передачи данных, определяемая количеством элементов двоичной информации, передаваемых за 1 се кунду. Эффективная (реальная) скорость — это скорость передачи с учетом необходимости передачи служебной информации (старт-биты, стоп-биты и биты контроля четности), что уменьшает скорость передачи данных.
Скорость передачи измеряется в бодах (бод — единица скорости телеграфирования, на званная в честь французского ученого Жана Мориса Эмиля Бодо в 1927 г.). Иногда вместо бод употребляют обозначение bps (bit per second — бит/с). Однако это немного разные вещи. Вели чина в бодах указывает количество передаваемых за секунду разрядов с учетом служебных разрядов (старт-биты, стоп-биты и биты контроля четности). А величина, указанная в bps, под разумевает скорость передачи самих данных. Типовые значения скорости передачи данных через последовательный интерфейс персональных компьютеров (PC) периферийных устройств, таких как модемы, составляют 1200, 2400, 4800, 9600, 19200 бод и выше.
Принцип асинхронного приема данных. Приемник должен быть согласован с передат чиком по всем параметрам формата передаваемого символа, включая и время передачи одного разряда. Для оптимальной защищенности от искажений и шумов в линии связи приемник дол-
262 |
|
|
Глава 3. Интерфейсные БИС |
|
Di-a |
Data |
|
|
|
OI |
Bus |
v v |
|
|
RESET |
|
|
TxRD Y |
|
CLK—i |
|
О |
■Tx EMPTY |
|
Read/Write |
* — 7xC |
|
||
|
|
|||
ЯО-*У |
|
|
|
|
Ш-х> Los>c |
|
|
|
|
C/D —* |
|
|
|
|
CS -* ? |
|
|
|
|
Квитирование приема |
|
|
||
4 |
|
|
|
|
DSR |
|
|
|
|
DTR <—<!> Modem |
|
|
|
|
|
Control |
<^> |
|
|
|
|
|
|
|
Квитирование передачи по линии связи |
|
|
||
Рис. 3.81. Структурная схема PCI 8251Л |
Рис. 3.82. Структурная схема буферов |
|||
|
|
|
|
передатчика и приемника |
Transmit Buffer (Р —> S) — буфер передатчика (рис. 3.82), содержащий регистр ввода дан ных из МП (Data Input Register) и сдвигающий регистр типа PI/SO (Parallel Input/Serial Output),
служащий для преобразования принимаемых от МП в параллельном формате символов в по следовательный поток разрядов TxD (преобразование Р —> S). Символ из регистра ввода дан ных передается в сдвигающий регистр после его освобождения. Сдвиг разрядов символа для передачи по линии связи производится по спадающему фронту тактового сигнала ТхС . В по следовательный поток данных автоматически вставляются служебные разряды или символы в соответствии с запрограммированным режимом работы;
Transmit Control — устройство управления передачей;
Receive Buffer (S —> Р) — буфер приемника (рис. 3.82), содержащий сдвигающий регистр типа SI/PO (Serial Input/Parallel Output), служащий для преобразования в параллельный формат принимаемых из линии связи по входу RxD последовательных данных (преобразование S —> Р), и регистр вывода данных в МП (Data Output Register). Полностью сформированный в парал лельном формате символ из сдвигающего регистра передается в регистр вывода данных. По следовательные данные на входе RxD тактируются нарастающим фронтом тактового сигнала R xC . Проверка служебных разрядов и символов производится автоматически в соответствии с запрограммированным режимом работы;
Receive Control — устройство управления приемом, автоматически фиксирующее в реги стре слова состояния SIV (см. рис. 3.90) ошибку паритета РЕ (Parity Error), ошибку переполне ния (Overrun Error) и ошибку кадра FE (Framing Error).
Назначение сигналов PCI. Программирование и управление БИС производится микро процессором. Входные и выходные сигналы PCI имеют назначение:
£>7_о — сигналы 8-разрядной двунаправленной шины данных;
CLK (Clock) — тактовый сигнал внутренней синхронизации PCI. Обычно сигнал CLK по дается от МП 8085 или CLK = ф2 (от генератора 8224 для МП 8080). Период этого сигнала дол жен быть не менее чем в 30 раз меньше времени передачи одного разряда по последовательно му каналу связи;
CID (ControllData) — обычно CID = А0 (разряд шины адреса; см. табл. 3.14);
3.7. Программируемый связной интерфейс 8251А |
265 |
данные (DSR = 0). Значение этого сигнала фиксируется в регистре слова состояния SW (см. рис. 3.90) и может быть прочитано микропроцессором;
RTS (Request То Send — запрос передачи данных) — выходной сигнал PCI, передаваемый в модем и используемый для запроса его готовности принять данные из PCI. Запрос готовности (значение RTS = 0) посылает МП подачей в PCI инструкции команды С/ (см. рис. 3.89);
RS-222C |
ДУ-232С |
Рис. 3.85. Структурная схема дуплексного канала связи
CTS (Clear То Send — отсутствие передачи и готовность модема принять данные) — входной сигнал PCI, поступающий из модема в ответ на сигнал RTS и используемый для раз решения передачи данных из PCI в модем.
Сигналы управления модемом имеют универсальное назначение и при необходимости могут использоваться для квитирования передачи последовательных данных при отсутствии в МП-системе модема.
Итак, сигналы TxRDY, RxRDY и их копии в слове состояния используются для ввода и вывода данных с квитированием и по прерыванию в МП-системе (терминале), а сигналы DTR, DSR и RTS, CTS — для квитирования передачи последовательных данных между терминаль ным и связным оборудованием.
Управление данными и режимами работы PCI. Операции ввода-вывода описаны в табл. 3.14: M l (Mode Instruction) — инструкция режима, С/ (Command Instruction) — инструк ция команды, SW (Status Word) — слово состояния, А0 = С/D. При значенииА0= 0 выполняется чтение символа из регистра ввода данных (Data Input Register) буфера приемника и запись символа в регистр вывода данных (Data Output Register) буфера передатчика (рис. 3.82). При
значении А0 = 1 |
производятся операции по управлению работой PCI и чтение слова состояния, |
||||
которое используется для управления процессом ввода-вывода символов. |
|||||
|
|
|
|
Таблица 3.14. Таблица ввода-вывода PCI |
|
CS |
А) |
RD |
WR |
Операция |
Примечание |
0 |
0 |
0 |
1 |
Dj_o PCI Data |
Ввод в МП данных из буфера приемника |
0 |
0 |
1 |
0 |
D ' о —> PCI Data |
Вывод из МП данных в буфер передатчика |
0 |
1 |
0 |
1 |
D7_o 4 - SW |
Чтение слова состояния SW |
0 |
1 |
1 |
0 |
D7_о -» MI, Cl |
Запись слов управления MI и С/ |
0 |
X |
1 |
1 |
Нет операций |
Z-состояние Dl t) |
1 |
х |
X |
X |
Нет операций |
Z-состояние D7_0 |
266 Глава 3. Интерфейсные БИС
Из табл. 3.14 видно, что PCI обеспечивает для МП “прозрачность” интерфейса — требует ся выполнять только команды ввода и вывода (IN port и OUT port), а вставку служебных раз рядов и символов при передаче и их удаление при приеме выполняет сам PCI безучастия МП. Полезно сравнить описанный выше дуплексный канал связи с последовательными каналами ввода и вывода, реализованными непосредственно в МП 8085А, где вся рутинная работа по преобразованию форматов данных выполняется программным способом, что ведет к сущест венной потере производительности МП-системы.
П рограммирование PCI. Законченное функциональное назначение PCI 8251А задается программным обеспечением МП-системы: синхронный или асинхронный режим работы, ско рость приемопередачи в бодах, длина символа, число стоп-бит, контроль четности/нечетности или его отсутствие, внутренняя или внешняя синхронизация в синхронном режиме и т. д.
После подачи сигнала RESET = 1 (внешний сброс) выход TxD устанавливается в состоя ние маркера и PCI переходит в режим ожидания инструкции режима Ml. Последовательность подачи слов управления MI, CI и блоков данных Data (запись в буфер передатчика и чтение из буфера приемника) показана на рис. 3.86 (блок-схема алгоритма поясняет работу внутреннего цифрового автомата, адресующего регистры Ml, CI, SYNC 1 и SYNC 2).
Программирование PCI производится записью в регистры управляющих слов: инструкции режима MI и инструкции команды С/. Инструкция режима M l подается на PCI только один раз. После записи MI на выходе TxRDY устанавливается значение 1 — требование к МП загру зить байт данных в буфер передатчика.
Если в инструкции M l задан синхрон ный режим, то в регистры SYNC записы ваются еще одно или два слова, представ ляющих собой синхросимволы (Sync Char acter). После этого подается инструкция команды С/, а затем МП посылает в буфер передатчика данные байт за байтом для передачи по последовательному каналу связи. При записи каждого байта данных в буфер передатчика сигнал TxRDY и од ноименный флаг в слове состояния сбра сываются в 0. Передача может начаться только при условии, что в инструкции ко манды С/ задано значение TxEN = 1 (см. рис. 3.89) и от модема получено подтвер ждение его готовности принимать данные, т. е. получено значение сигнала CTS = 0.
Инструкция команды С/ должна сле довать за инструкцией режима M l и сим волами синхронизации Sync. Все слова
управления, записываемые в PCI после инструкции режима Ml, загружают инструкцию коман ды С/. Инструкция команды может быть подана в PCI в любое время в течение передачи или приема блока данных. Для изменения инструкции режима M l необходимо подать инструкцию команды С/ = 40h, в которой задано значение разряда IR - 1 (Internal Reset — см. рис. 3.89) внутреннего сброса, переводящего PCI в режим ожидания инструкции режима MI.
После включения питания PCI может оказаться в неопределенном состоянии (в состоянии ожидания инструкции режима Ml, ввода синхросимволов Sync или инструкции команды СГ). Поэтому перед подачей команды внутреннего сброса (значения С/ = 40/г) необходимо произве сти инициализацию PCI для самого плохого случая, требующего записи байта M l и двух байт
