Разъем J1
6. Часовой таймер
Для управления часовым таймером используются следующие биты порта микроконтроллера: Синхронизирующие импульсы (SCLK) - бит порта Р4.4 Данные таймера (I/O) - бит порта Р4.7 Сброс таймера (RST) - бит порта Р6.7 Подключение питающего напряжения не приводит к старту таймера. Для его запуска необходимо записать в регистр секунд любое правильное значение секунд. Часовой таймер сохраняет работоспособность, при подключенной батарее и отключенном напряжении питания контроллера. Календарь таймера учитывает количество дней в месяцах, включая високосные годы. Пример программы работы с часовым таймером приведен в приложении Д). Часовой таймер содержит 7 регистров календаря и 31 байт статического ОЗУ. Обмен данными производится по синхронному последовательному интерфейсу одиночными байтами или блоками объемом до 31 байта. Сначала передается адрес команды (командный байт), определяющий к какому из сорока байтов данных происходит доступ, определяется режим передачи одного байта или блока, выбирается цикл чтение или запись. При обмене данными сигнал RST устанавливается в состояние лог.1, затем подаются синхронизирующие импульсы SCLK. Структура командного байта показана на рисунке 5.
Рис. 5.
Диаграммы передачи данных приведены на рисунке 6.
Рис. 6.
Структура командного байта: Бит 7: логическая 1. Бит 6: логическая 1 – ОЗУ, логический 0 - часы/календарь. Биты 5 - 1: определяют регистр данных или режим передачи данных блоком (все - лог.1). Бит 0: логическая 1 – цикл чтения из часового таймера (ОЗУ), логический 0 – запись в часовой таймер (ОЗУ). Старт командного байта происходит с бита 0. Старт байта данных происходит с бита 0. Соответствие командных байтов и байтов данных приведены на рисунке 7.
Рис. 7. Часовой таймер содержит семь регистров с данными в двоично-десятичном формате. Бит 7 регистра секунд указывает на состояние часов: лог.1 - часы стоят, лог.0 - часы работают. Бит 7 регистра часы определяет режим: лог.1 – 01-12 часов, лог.0 – 00-24 часа. Бит 7 регистра контроль - бит защиты записи. Перед циклом записи в регистры таймера или ОЗУ, бит защиты записи должен быть установлен в лог.0. Биты 6-0 регистра контроля всегда в состоянии лог.0, при чтении должны быть прочитаны как лог.0. При передаче блоком происходит последовательное чтение или запись восьми регистров часового таймера (включая регистр контроля) следующих за командным байтом, стартующих с бита 0, адреса 0. При установленном в лог.1 бите защиты записи приём данных в этом режиме не происходит. Статическое ОЗУ (31*8 байт) адресуется последовательно в адресном пространстве часового таймера. При передаче данных блоком происходит последовательное чтение или, запись 31 регистра ОЗУ часового таймера, следующих за командным байтом, стартующих с бита 0, адреса 0.
7. CAN интерфейс
Контроллер ЕМ167-1 имеет в своем составе оптоизолированный сетевой CAN интерфейс, предназначенный для построения мультипроцессорных систем реального времени. На плате контроллера установлен буфер, который позволяет подключить контроллер к CAN шине, содержащей до 32 устройств (рис. 8). При использовании большего количества устройств на CAN шине необходимо использовать модуль расширителя.
Рис. 8.
CAN контроллер занимает 256 ячеек памяти в первом сегменте памяти, начиная с адреса EF00h. В этой области располагаются 15 регистров объектов-сообщений, регистры конфигурации, контроля и арбитража, регистр статуса/контроля (0EF00h), регистр прерываний (0EF02h), регистр битов таймера (0EF04h), регистры глобальной (длинной (0EF08h) и короткой (0EF06h)) маски, маска последнего сообщения (0EF0Ch). Для приема и передачи используются биты Р4.5 и Р4.6 порта микроконтроллера, поэтому при использовании CAN контроллера максимальный размер внешней памяти может быть не более 1 МБайт. Каждый из объектов-сообщений имеет бит XTD, определяющий работу со стандартным или расширенным идентификатором. Длина сообщения может быть от 1 до 8 байт. Объекты-сообщения с номерами с 1 по 14 могут работать на передачу и прием, сообщение с номером 15 имеет буферированный режим, то есть можно принять еще одно сообщение до того, как будет прочитано предыдущее. Разъем J12 предназначен для подключения контроллера в CAN сеть.
8. Работа в отладочном режиме
С контроллером ЕМ 167-1 поставляется программный инструмент разработки -полноэкранный отладчик, который позволяет выполнять отладку загруженного исполняемого кода. Программа, предназначенная для отладки, должна быть предварительно скомпилирована в Intel hex.83 коде или двоичном формате. Для контроллера возможны два основных варианта отладки: 1. Отладчик загружается в основное ОЗУ (микросхемы U5, U6) контроллера. (В панели U1 и U2 установлены микросхемы FLASH памяти или панели пустые). Для запуска контроллера в отладочном режиме необходимо:
Например: SYSCON = 00080h BUSCON0 = 04BFh; ADDRSEL1 = 0000Bh BUSCON1 = 04BFh; ADDRSEL2 = 00000h BUSCON2 = 0000h; ADDRSEL3 = 00000h BUSCON3 = 0000h; ADDRSEL4 = 00000h BUSCON4 = 0000h SORIC = 037h Load Address = 18:E000h VVP = --,-. 2. Отладчик загружается в дополнительное ОЗУ (В панели U1 и U2 установлены микросхемы ОЗУ (режим эмуляции ПЗУ)) контроллера. Для запуска контроллера в отладочном режиме необходимо:
В этом режиме дополнительное ОЗУ в панелях U1, U2 используется вместо ПЗУ, а ОЗУ установленное на плате контроллера используется как обычное ОЗУ. Для использования отладчика в этом режиме, следует сконфигурировать дополнительное ОЗУ (вставленное в панели U1, U2) вдиапазон младших адресов регистрами ADDRSEL1... ADDRSEL4. Например: ADDRSEL1 = 00806h - младшие 512 Кбайт памяти (с нулевого адреса) будут отведены под дополнительное ОЗУ (режим эмуляции ПЗУ), верхние 256 Кбайт памяти под ОЗУ.
9. Программирование микросхем FLASH памяти
Схема контроллера М167-1 предусматривает возможность программирования, установленных на плате микросхем Flash памяти. Программа, предназначенная для программирования во FLASH память, должна быть предварительно скомпилирована в Intel hex.83 коде. Отладчик поддерживает программирование микросхем Flash памяти со следующими кодами: Intel: 089h Thomson: 020h AMD: 001 h 0B4h - 28F010 007h - 28F101 0A7h - AM28F010 0BDh - 28F020 0E2h - M29F040 (без 12V) 020h - AM29F010 (без 12V) 0B8h - 28F512 020h - M29F011 (без 12V) 0A4h - AM29F040(6es 12V) 0B9h - 28F256
Рис. 9
Для программирования FLASH памяти необходимо:
SYSCON = 0080h; BUSCON0 = 04BFh; ADDRSEL1 = 1805h BUSCON1 = 04BFh; ADDRSEL2 = 0000h BUSCON2 = 0000h; ADDRSEL3 = 0000h BUSCON3 = 0000h; ADDRSEL4 = 0000h BUSCON4 = 0000h; SORIC = 0037h; Load Address 18:E000h VPP --,-.
|