Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 524 по 631.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
2.54 Mб
Скачать

Коммуникационные микроконтроллеры и системы на их основе

прерывание и устанавливает бит GUN в регистре событий SCCE SCC-канала, останав­ливает передачу данных во всех логических каналах и начинает передавать в канал или символы IDLE или символы FLAG в зависимости от типа используемого протокола. При возникновении ошибки GOV контроллер обновляет значение в ячейке RSTATE (бит 20 указывает, что прием остановлен), генерирует запрос на прерывание и устанавливает бит GOV в регистре событий SCCE SCC-канала, останавливает прием данных во все буферы всех каналов и ожидает, что центральный процессор сбросит в исходное состо­яние вначале ячейку ZDSTATE, а затем ячейку RSTATE.

Другой тип ошибок связан со скоростью передачи данных по SDMA-каналам внутри контроллера. Ошибка bus latency регистрируется, когда SDMA-контроллер не успевает освобождать FIFO приемника, и новые данные записываются в буфер поверх старых, что ведет к потере данных.

Такие же ошибки незаполнения (бит UN в ячейке таблицы прерываний) и переполне­ния могут быть зарегистрированы для каждого логического канала в отдельности с ис­пользованием ячейки таблицы прерываний. При возникновении ошибки незаполнения контроллер передает во временной слот не менее 16 единиц, генерирует запрос на пре­рывание и устанавливает бит UN в ячейке прерывания канала, останавливает передачу данных и начинает передавать в канал или символы IDLE или символы FLAG в зависи­мости от настройки регистра режима.

Бит RXF устанавливается в «1», если получен завершенный HDLC-кадр, он сохранен в памяти и обновлена информация в буферном дескрипторе. Далее декрементируется счетчик GRFCNT для генерации запроса на прерывание. Если во время приема кадра получена последовательность ABORT, состоящая минимум из семи единиц, буфер зак­рывается и устанавливаются биты RXB = RXF := 1 в регистре прерываний и бит АВ := 1 в слове состояния буферного дескриптора. При работе с протоколом Transparent преры­вание RXF не регистрируется.

Если принят корректный кадр данных, но нет буферов для его сохранения, то регист­рируется событие переполнения приемника, формируется условие занятости (busy condition) и устанавливается бит BSY := 1. После этого приемник выключается и прекра­щает прием данных.

Если текущий буфер данных успешно передан, то регистрируется событие и устанав­ливается бит ТХВ := 1. Но этот бит устанавливается, а прерывание генерируется только после того, как в FIFO-буфер передатчика будет записано заданное количество симво­лов PAD или будет записан один закрывающий флаг, если в слове состояния дескрипто­ра бит PAD = 0. Таким образом, время начала ТХВ-прерывания зависит от времени пере­дачи закрывающего флага на линию TXD.

При получении по сети полного буфера данных устанавливается бит события RXB := 1.

Инициализация QMC-контроллера.

  1. Проинициализировать регистр настройки последовательного интерфейса SIMODE. Установить нормальный режим работы (биты SDMx:=00), выключить механизм grant (бит GMx := 0) и сбросить бит STZx := 0. Остальные биты - SMCx, SMCxCS, RFSDx, DSCx, CRTx, CEx, FEx и TFSDx - устанавливаются в соответствии с системными установками для выбранного основного коммуникационного протокола. Обычно устанавливают CRTa = RFSDa = TFSDa := 1, включая общую синхронизацию для приемника и передат­ чика с задержкой в 1 бит при обработке кадра.

  2. Проинициализировать регистр синхронизации последовательного интерфейса SICR. Сбросить бит GRx := 0, выключив механизм подтверждений (grant), и установить бит SCx := 1, подключив канал к SCCx мультиплексору TSA. Так как SCC-канал будет рабо­ тать в мультиплексируемом режиме, также требуется установить биты RxCSx и TxCSx, выбрав источник тактирования для приемника и передатчика канала.

578