Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

/* Функция sci_trans осуществляет непрерывную пересылку одного байта */

/*-------------------------------------------------------------------*/

void sci_trans(void) {

 SC0CR2 = 0x08; /*разрешить работу передатчика*/

 SC0DRL = 's'; /*загрузить в буфер передатчика код символа "S"*/

 while (SC0SR1 != 0x80) /*ожидать установления бита TDRE)

 {

  ;

 }

}

/*-------------------------------------------------------------------*/

Если соединить два микропроцессорных контроллера по последовательному интерфейсу так, что выход TxD первого МК будет соединен со входом RxD второго МК и наоборот, то можно будет организовать двусторонний обмен информацией.

Именно эту задачу Вам предстоит решить в домашнем задании №11, полный текст которого Вы найдете в конце главы.

4.19. Синхронный последовательный интерфейс SPI

Интерфейс SPI относится к группе синхронных последовательных интерфейсов. Принцип действия интерфейсов этого типа предполагает, что передача каждого бита данных по однопроводной линии сопровождается сигналом синхронизации, который передается по другой линии. Спецификация интерфейса SPI определяет число линий связи и временные диаграммы сигналов на этих линиях в процессе обмена данными. 

4.19.1 Концепция интерфейса SPIФункциональная схема обмена между двумя контроллерами SPI

Рис. 4.70.


Функциональная схема организации обмена данными с использованием интерфейса SPI представлена на рис. 4.70. При описании режимов работы и линий связи интерфейса SPI приняты к использованию следующие термины и обозначения:

• Master Mode — режим ведущего. Устройство, работающее в режиме ведущего, начинает сеанс обмена, генерирует передаваемые данные в ведомое устройство и формирует сигналы синхронизации, сопровождающие эти данные.

• Slave Mode— режим ведомого. Устройство, работающее в режиме ведомого, получает сигналы синхронизации от ведущего. В момент поступления импульса синхронизации ведомое устройство запоминает очередной бит 8-разрядного слова, переданный ведущим по одной линии данных, и выставляет на другую линию данных очередной бит другого 8-разрядного слова, передаваемого от ведомого к ведущему.

MOSI (Master Output Slave Input) — линия передачи данных от ведущего  к ведомому.

• MISO (Master Input Slave Output) — линия передачи данных от ведомого к ведущему.

• SCK (Serial Shift Clock) — линия сигнала синхронизации данных. По этой линии ведущее устройство «сообщает» ведомому о начале сеанса обмена с ним.

4.19.2. Алгоритмы работы контроллера SPI

В данном разделе мы рассмотрим организацию обмена данными с использованием аппаратных средств контроллера SPI в составе МК 68HC12. Мы также кратко остановимся на регистрах управления контроллера SPI. Более подробно эти регистры будут рассмотрены в следующем параграфе.

На рис. 4.71 представлена функциональная схема контроллера SPI. Остановимся сначала на системе синхронизации, которая располагается в левом верхнем углу рисунка. Модуль SPI использует в качестве источника тактирования импульсную последовательность PCLOCK, частота которой равна частоте ECLOCK (т.е. частоте системной шины МК). Частота PCLOCK делится делителем с программируемым коэффициентом. На выходе делителя формируется сигнал, частота которого определяет скорость обмена данными по SPI, если контроллер работает в ведущем режиме. Коэффициент деления назначается битами SPR2…SPR0 регистра скорости передачи SP0BR.

Рис. 4.71. Аппаратные средства контроллера синхронного обмена SPI


Данные, которые подлежат передаче, а также принятые от другого устройства данные, записываются в регистр данных SP0DR. Управление режимами работы контроллера осуществляется двумя регистрами управления SP0CR1 и SP0CR2. Текущее состояние процесса передачи данных отражает регистр состояния SP0SR. И, наконец, контроллер взаимодействует с внешним миром по четырем линиям порта S (сигналы MOSI, MISO, SCK и ).

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже