Помощь в написании студенческих работ
Антистрессовый сервис

Разработка контроллера RS-232

РефератПомощь в написанииУзнать стоимостьмоей работы

На входы внутреннего D-триггера dlb_mb (вход бита данных и вход разрешения фиксирования бита на выходе) подаются низкий и высокий уровни сигнала соответственно. Этот низкоуровневый сигнал по следующему такту синхронизации появляется на выходе триггера, подключающемся к выходу Lb_mb_sel, который управляет элементом LB_MB. При низком уровне сигнала на этом выходе элемент коммутирует младшие 16… Читать ещё >

Разработка контроллера RS-232 (реферат, курсовая, диплом, контрольная)

Этот блок предназначен для связи программируемой логической интегральной схемы с однокристальным микроконтроллером. В его функции входит передача шине SPI состояние работы частотного преобразователя. Выбор того или иного действия интерфейсного блока осуществляется в полной зависимости от управляющих команд микроконтроллера.

Интерфейсный блок реализован в виде конечного автомата Мура, выходной сигнал которого не зависит от входного, а определяется только внутренним состоянием автомата. Все выходы автомата при переходе в новое состояние сбрасываются автоматически в низкий уровень. Исключение составляют регистровые выходы, которые управляются отдельными сигналами.

Интерфейсный блок в начале работы находится в состоянии S0, в котором он на выход Key_oe подает низкий уровень сигнала, тем самым, отключая от шины данных системной магистрали регистр статуса RGST.

На системной магистрали присутствует низкоуровневый сигнал чтения и на ее адресной шине присутствует двадцатиразрядный адрес, 17 младших бит которого соответствуют собственному семнадцатиразрядному адресу регистра статуса RGST в пределах модуля обработки, а старшие 3 бита соответствуют началу адресного пространства модуля, отведенного ему в адресном пространстве, поэтому автомат переходит в состояние S1.

В состоянии S1 на выход Key_oe подается высокий уровень сигнала, тем самым, подключая на шину данных системной магистрали регистр статуса RGST, давая возможность микроконтроллеру прочитать его содержимое.

Если на системной магистрали появляется неактивный высокоуровневый сигнал чтения, сигнализирующий о том, что цикл чтения из регистра статуса RGST закончен, то автомат переходит в состояние S2.

В состоянии S2 на выход Key_oe подается низкий уровень сигнала, тем самым, отключая от шины данных системной магистрали регистр статуса RGST.

На выход Rdrgst подается высокий уровень сигнала, устанавливающий в регистре статуса RGST бит, который сигнализирует о том, что микроконтроллер прочитал данные из него.

Автомат выполняет безусловный переход в состояние S0.

В состоянии S3 автомат ожидает окончания записи.

Если на шине появляется неактивный высокоуровневый сигнал записи, сигнализирующий о том, что цикл записи в регистр управления RGCONTROL закончен, то автомат переходит в состояние S4.

В состоянии S4 автомат считывает содержимое регистра управления RGCONTROL.

Если после цикла записи пятнадцатый бит регистра управления RGCONTROL равен высокому уровню сигнала (это означает, что микроконтроллеру не нужны данные), то автомат переходит в состояние S0.

Если пятнадцатый бит регистра управления RGCONTROL равен низкому уровню сигнала, а также четырнадцатый бит регистра статуса RGST равен низкому уровню сигнала (это означает, что данные для выгрузки еще не готовы), то автомат переходит в состояние S5.

Если пятнадцатый бит регистра управления RGCONTROL равен низкому уровню сигнала (это означает, что микроконтроллеру необходимо передать данные в режиме прямого доступа к его внешней памяти), а также четырнадцатый бит регистра статуса RGST равен высокому уровню сигнала (это означает, что данные для выгрузки готовы), то автомат переходит в состояние S6.

В состоянии S5 автомат подает на выход Set_error высокий уровень сигнала, устанавливающий в регистре статуса RGST бит, который сигнализирует о том, что микроконтроллер подал сигнал управления на передачу данных в режиме прямого доступа к его внешней памяти в тот момент, когда они еще не готовы.

Автомат выполняет безусловный переход в состояние S0.

В состоянии S6 на входы внутреннего D-триггера dholdn (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот бит по следующему такту сигнала синхронизации появляется на его выходе. Выход триггера управляет инвертором, который в свою очередь управляет выходом с открытым стоком Holdn. В результате при первом же фронте такта синхронизации потенциал на выходе Holdn становится равным низкому активному уровню, инициируя режим прямого доступа к внешней памяти микроконтроллера (до этого момента на выходе D-триггера dholdn был низкий уровень сигнала, поэтому выход Holdn находился в высокоимпедансном состоянии и потенциал на нем с помощью внешнего резистора, подключенного к источнику питания был равен высокому неактивному уровню).

При появлении низкоуровнего сигнала на входе Hldan, информирующего о разрешении прямого доступа к внешней памяти микроконтроллера, автомат переходит в следующее по номеру состояние S7.

В состоянии S7 автомат читает содержимое регистра управления RGCONTROL.

Если тринадцатый и четырнадцатый биты регистра управления RGCONTROL равны низкому уровню сигнала (это означает, что микроконтроллеру нужны отсчеты дискретизированного аналогового сигнала), то автомат переходит в состояние S8.

Если четырнадцатый бит регистра управления RGCONTROL равен низкому уровню сигнала, а тринадцатый бит равен высокому уровню сигнала (это означает, что микроконтроллеру необходима информация о частотном реобразователе), то автомат переходит в состояние S18.

В состоянии S8 подается высокий уровень на вход асинхронного сброса внутреннего счетчика адресов текущего банка памяти count_ram, для которого этот сигнал является активным.

Автомат выполняет безусловный переход в состояние S9.

В состоянии S9 подаются высокие активные уровни сигналов на выходы Start_a и Dir_а, подключенные к автомату, управляющему текущим регистром данных. Совместное действие этих сигналов при первом же фронте сигнала тактов синхронизации переводит этот автомат в режим чтения данных.

Автомат выполняет безусловный переход в состояние S10.

В состоянии S10 автомат ожидает окончания чтения.

При появлении низкоуровнего сигнала на входе Busy_a, информирующего об окончании цикла чтения из текущего регистра, автомат переходит в следующее по номеру состояние S11.

В состоянии S11 на входы внутреннего D-триггера dcs (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот бит по следующему такту сигнала синхронизации появляется на его выходе. Выход триггера управляет инвертором, который в свою очередь управляет выходом с открытым стоком Csn. В результате при первом же фронте такта синхронизации потенциал на выходе Csn становится равным низкому активному уровню, инициируя выбор внешней памяти микроконтроллера (до этого момента на выходе D-триггера dcs был низкий уровень сигнала, поэтому выход Csn находился в высокоимпедансном состоянии и потенциал на нем с помощью внешнего резистора, подключенного к источнику питания был равен высокому неактивному уровню).

На входы внутреннего D-триггера dtri_mc (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот бит по следующему такту сигнала синхронизации появляется на выходе триггера, подключающемуся к выходу tri_mc_oe, который управляет элементом TRI_MC. При высоком уровне сигнала на этом выходе элемент коммутирует свои входные шины на выход.

На входы внутреннего D-триггера dlb_mb (вход бита данных и вход разрешения фиксирования бита на выходе) подаются низкий и высокий уровни сигнала соответственно. Этот низкоуровневый сигнал по следующему такту синхронизации появляется на выходе триггера, подключающемся к выходу Lb_mb_sel, который управляет элементом LB_MB. При низком уровне сигнала на этом выходе элемент коммутирует младшие 16 бит тридцатидвухразрядной шины данных на свой выход.

На выход Start_mc, подключенный к автомату, управляющему внешней памятью микроконтроллера, подается высокий активный уровень сигнала. При первом же фронте такта синхронизации этот автомат перейдет в режим записи данных.

Автомат интерфейсного блока выполняет безусловный переход в состояние S12.

В состоянии S12 на выход Start_mc подается низкий неактивный уровень сигнала.

При появлении низкоуровнего сигнала на входе Busy_mc, информирующего об окончании цикла записи в память микроконтроллера, автомат переходит в следующее по номеру состояние S13.

В состоянии S13 на вход разрешения сигнала тактов синхронизации внутреннего счетчика адресов памяти микроконтроллера Count_mc подается высокий активный уровень сигнала, тем самым, вызывая увеличение его содержимого на единицу при первом же фронте такта синхронизации.

Автомат выполняет безусловный переход в состояние S14.

В состоянии S14 на входы внутреннего D-триггера dlb_mb (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот высокоуровневый сигнал по следующему такту синхронизации появляется на выходе триггера, подключающемся к выходу Lb_mb_sel, который управляет элементом LB_MB. При высоком уровне сигнала на этом выходе элемент коммутирует старшие 16 разрядов тридцатидвухразрядной шины данных на свой выход.

На выход Start_mc, подключенный к автомату, управляющему внешней памятью микроконтроллера, подается высокий активный уровень сигнала. При первом же фронте такта синхронизации этот автомат перейдет в режим записи данных.

Автомат выполняет безусловный переход в состояние S15.

В состоянии S15 на выход Start_mc подается низкий неактивный уровень сигнала.

При появлении низкоуровнего сигнала на входе Busy_mc, информирующего об окончании цикла записи в память микроконтроллера, автомат переходит в следующее по номеру состояние S16.

В состоянии S16 на входы разрешения сигнала тактов синхронизации внутреннего счетчика адресов памяти микроконтроллера Count_mc и внутреннего счетчика адресов текущего банка памяти Count_ram подаются высокие активные уровни сигналов, тем самым, вызывая увеличение их содержимого на единицу при первом же фронте такта синхронизации.

Автомат выполняет безусловный переход в состояние S17.

В состоянии S17 на выходе Start_mc остается низкий неактивный уровень сигнала.

В состоянии s18 на входы синхронной предустановки и на вход разрешения сигнала тактов синхронизации внутреннего счетчика адресов Count регистра подаются высокие активные уровни сигналов.

Автомат выполняет безусловный переход в состояние S19.

В состоянии S19 подаются высокие активные уровни сигналов на выходы Start_a и Dir_а, подключенные к автомату, управляющему текущим банком памяти. Совместное действие этих сигналов при первом же фронте сигнала тактов синхронизации переводит этот автомат в режим чтения данных.

Автомат выполняет безусловный переход в состояние S20.

В состоянии S20 автомат ожидает окончания чтения.

При появлении низкоуровнего сигнала на входе Busy_a, информирующего об окончании цикла чтения из текущего банка памяти, автомат переходит в следующее по номеру состояние S21.

На входы внутреннего D-триггера dtri_mc (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот бит по следующему такту сигнала синхронизации появляется на выходе триггера, подключающемся к выходу tri_mc_oe, который управляет элементом TRI_MC. При высоком уровне сигнала на этом выходе элемент коммутирует свои входные шины на выход.

На входы внутреннего D-триггера dlb_mb (вход бита данных и вход разрешения фиксирования бита на выходе) подаются низкий и высокий уровни сигнала соответственно. Этот низкоуровневый сигнал по следующему такту синхронизации появляется на выходе триггера, подключающемся к выходу Lb_mb_sel, который управляет элементом LB_MB. При низком уровне сигнала на этом выходе элемент коммутирует младшие 16 разрядов тридцатидвухразрядной шины данных на свой выход.

На выход Start_mc, подключенный к автомату, управляющему внешней памятью микроконтроллера, подается высокий активный уровень сигнала. При первом же фронте такта синхронизации этот автомат перейдет в режим записи данных.

Автомат интерфейсного блока выполняет безусловный переход в состояние S22.

В состоянии S22 на выход Start_mc подается низкий неактивный уровень сигнала.

При появлении низкоуровнего сигнала на входе Busy_mc, информирующего об окончании цикла записи в память микроконтроллера, автомат переходит в следующее по номеру состояние S23.

В состоянии S23 на вход разрешения сигнала тактов синхронизации внутреннего счетчика адресов памяти микроконтроллера Count_mc подается высокий активный уровень сигнала, тем самым, вызывая увеличение его содержимого на единицу при первом же фронте такта синхронизации.

Автомат выполняет безусловный переход в состояние S24.

В состоянии S24 на входы внутреннего D-триггера dlb_mb (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот высокоуровневый сигнал по следующему такту синхронизации появляется на выходе триггера, подключающемся к выходу Lb_mb_sel, который управляет элементом LB_MB. При высоком уровне сигнала на этом выходе элемент коммутирует старшие 16 разрядов тридцатидвухразрядной шины данных на свой выход.

На выход Start_mc, подключенный к автомату, управляющему внешней памятью микроконтроллера, подается высокий активный уровень сигнала. При первом же фронте такта синхронизации этот автомат перейдет в режим записи данных.

Автомат выполняет безусловный переход в состояние S25.

В состоянии S25 на выход Start_mc подается низкий неактивный уровень сигнала.

При появлении низкоуровнего сигнала на входе Busy_mc, информирующего об окончании цикла записи в память микроконтроллера, автомат переходит в следующее по номеру состояние S26.

В состоянии S26 на входы разрешения сигнала тактов синхронизации внутреннего счетчика адресов памяти микроконтроллера Count_mc и внутреннего счетчика адресов текущего банка памяти Count_ram подаются высокие активные уровни сигналов, тем самым, вызывая увеличение их содержимого на единицу при первом же фронте такта синхронизации.

Автомат выполняет безусловный переход в состояние S27.

В состоянии S27 на выходе Start_mc остается низкий неактивный уровень сигнала.

В состоянии S28 подается высокий уровень на вход асинхронного сброса внутреннего счетчика.

Автомат выполняет безусловный переход в состояние S29.

В состоянии S29 подаются высокие активные уровни сигналов на выходы Start_a и Dir_а, подключенные к автомату, управляющему текущим регистром памяти. Совместное действие этих сигналов при первом же фронте сигнала тактов синхронизации переводит этот автомат в режим чтения данных.

Автомат выполняет безусловный переход в состояние S20.

В состоянии S30 автомат ожидает окончания чтения.

При появлении низкоуровнего сигнала на входе Busy_a, информирующего об окончании цикла чтения из текущего банка памяти, автомат переходит в следующее по номеру состояние S31.

В состоянии S31 на входы внутреннего D-триггера dcs (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот бит по следующему такту сигнала синхронизации появляется на его выходе. Выход триггера управляет инвертором, который в свою очередь управляет выходом с открытым стоком Csn. В результате при первом же фронте такта синхронизации потенциал на выходе Csn становится равным низкому активному уровню, инициируя выбор внешней памяти микроконтроллера (до этого момента на выходе D-триггера dcs был низкий уровень сигнала, поэтому выход Csn находился в высокоимпедансном состоянии и потенциал на нем с помощью внешнего резистора, подключенного к источнику питания был равен высокому неактивному уровню).

На входы внутреннего D-триггера dtri_mc (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот бит по следующему такту сигнала синхронизации появляется на выходе триггера, подключающемся к выходу tri_mc_oe, который управляет элементом TRI_MC. При высоком уровне сигнала на этом выходе элемент коммутирует свои входные шины на выход.

На входы внутреннего D-триггера dlb_mb (вход бита данных и вход разрешения фиксирования бита на выходе) подаются низкий и высокий уровни сигнала соответственно. Этот низкоуровневый сигнал по следующему такту синхронизации появляется на выходе триггера, подключающемся к выходу Lb_mb_sel, который управляет элементом LB_MB. При низком уровне сигнала на этом выходе элемент коммутирует младшие 16 разрядов тридцатидвухразрядной шины данных на свой выход.

На выход Start_mc, подключенный к автомату, управляющему внешней памятью микроконтроллера, подается высокий активный уровень сигнала. При первом же фронте такта синхронизации этот автомат перейдет в режим записи данных.

Автомат интерфейсного блока выполняет безусловный переход в состояние S32.

В состоянии S32 на выход Start_mc подается низкий неактивный уровень сигнала.

При появлении низкоуровнего сигнала на входе Busy_mc, информирующего об окончании цикла записи в память микроконтроллера, автомат переходит в следующее по номеру состояние S33.

Автомат выполняет безусловный переход в состояние S34.

В состоянии S34 на входы внутреннего D-триггера dlb_mb (вход бита данных и вход разрешения фиксирования бита на выходе) подаются высокие уровни сигнала. Этот высокоуровневый сигнал по следующему такту синхронизации появляется на выходе триггера, подключающемся к выходу Lb_mb_sel, который управляет элементом LB_MB. При высоком уровне сигнала на этом выходе элемент коммутирует старшие 16 разрядов тридцатидвухразрядной шины данных на свой выход.

Автомат выполняет безусловный переход в состояние S35.

В состоянии S35 на выход Start_mc подается низкий неактивный уровень сигнала.

При появлении низкоуровнего сигнала на входе Busy_mc, информирующего об окончании цикла записи в память микроконтроллера, автомат переходит в следующее по номеру состояние S36.

Автомат выполняет безусловный переход в состояние S37.

В состоянии S37 на выходе Start_mc остается низкий неактивный уровень сигнала.

Если на шине выходе внутреннего счетчика адресов текущего регистра число FF то автомат возвращается в состояние s29. В противном случае он переходит в состояние s38.

В состоянии S38 на входы внутреннего D-триггера dholdn (вход бита данных и вход разрешения фиксирования бита на выходе) подаются низкий и высокий уровни сигнала соответственно. Этот низкоуровневый бит по следующему такту сигнала синхронизации появляется на его выходе. Выход триггера управляет инвертором, который в свою очередь управляет выходом с открытым стоком Holdn. В результате при первом же фронте такта синхронизации выход Holdn перейдет в высокоимпедансное состояние и потенциал на нем с помощью внешнего резистора, подключенного к источнику питания будет равен высокому неактивному уровню, инициируя окончание режима обмена по шине SPI.

Автомат выполняет безусловный переход в состояние S0.

Текст описания элемента на языке AHDL представлен в приложении В.

Показать весь текст
Заполнить форму текущей работой