Контактные данныеНаш адрес:
Москва, ул. Кирова, 43
Телефон: +7 (495) 985 81 28
Тел./Факс: +7 (495) 854 35 25
Реализация интерфейса
При следующем прерывании, которое создается сквозь 20,833 мкс, в установки приема является импульс помехи, и потому считывается I, напротив, сумма декременти-руется в $FF. Третий опрос заново ударяет 0, и сумма инкрементируется в $00. При следующих 2 опросах вновь распознается 0, и сумма в конце точек принимает смысл $02. Старший разряд суммы, невзирая на то, то что в
время передачи началась помеха, отдаст корректное смысл старт-бита 0.
Потом прохождения подобной схемы выполняется опрос 8-ми битов сведений, последовательно сохраняемых во временном буфере приема RTMP. Точно едва прочитаны все 8 битов, содержимое буфера RTMP переписывается в всегдашний буфер приема RBuf, об нежели главная софт извещается установкой флага RRdy.
Позже сего буфер RTMP разом же опорожняется для приема следующих символов. Считывание символа основной программой определяется по сбросу флага RRdy. Когда главная софт накапливается вручить байт по последовательному интерфейсу, она записывает его в буфер TBuf и определяет флаг передачи TBusy, для того чтоб подать сигнал подпрограмме отделки
перебои UART.
Уже после передачи байта, корректно снабженного старт- и стоп-битами, подпрограмма отделки перебои вновь сбрасывает флаг TBusy, для того чтобы известить главную софт об начале новой передачи. Когда сообщается байт, в линию TxD раньше выдается старт-бит, занимающий 5 интервалов передачи.
Посланце подсчета отлично прерываний в линию TxD выдается первый бит сведений (начиная с молодого), вслед за тем соблюдает 5 циклов передачи последующего бита и т.д. Эта процедура выполняется до тех пор, пока не появятся даны все 8 битов сведений, и кончается передачей стоп-бита, тоже занимающего по продолжительности 5 прерываний. По сути, программный UART построен
по той же схеме.
Потому, что не имеется флаг FE, что устанавливается при обнаружении ошибок кадрирования, и флаг OR, что устанавливается при обнаружении переполнения буфера, при приеме байта нет ожидания стоп-бита, примерно точно в данном событии отношении банкет вечно корректен. Ежели же пользователь предъявляет повышенные требования к надежности передачи, то можно просто
вспомогательно продать опрос стоп-бита, флагов и бита четности.
Ежели для какого-либо происшествия применения скорость передачи 9600 бит/с чересчур высока, ее можно свободно понизить при абсолютно незначительных изменениях в программе. Главная софт делает инициализацию порта и таймера в бесконечном цикле, в котором только лишь то что принятый байт разом же сообщается до сегодня отправителю (эхо). При тестировании нынешней программы с
содействием набора STK200 в карьерной программе Hyper-Terminal (в Windows 95) никаких осложнений не возникло.