Контактные данныеНаш адрес:
Москва, ул. Кирова, 43
Телефон: +7 (495) 985 81 28
Тел./Факс: +7 (495) 854 35 25
Реализация интерфейса
По нынешней причине рекомендуем вниманию читателя реализацию интерфейса RS232 для полнодуплексной передачи без контроля по четности с постоянной скоростью 9600 бод - приемопередатчик UART в форме "конечного машины", прерывающий выполнение программы любые 20,833 мкс.
При данном событии главные истории генеральной программы могут по-прежнему обслуживаться. Спустя любые 20,833 мкс подпрограмма UART опрашивает состояние линий приема передачи. Ежели обе установки при прошлом прерывании от таймера находились в ждущем режиме и до сих пор из него не вышли, то зараз же совершается выход из подпрограммы, и не прекращает выполняться главная
софт.
Все-таки, ежели подпрограмма обнаружит старт-бит в установки приема либо установленный флаг передачи, то данное ориентирует на то, то что главная софт обязана записать отправляемый байт в буфер передачи TBuf, преобразовав тем самым прежнее состояние ждущего режима на "Основание приема" либо "Передача бита". Этап повторения прерываний от таймера выбираем равным 20,833 мкс,
потому, что данное - ровно пятая доля продолжительности передачи бита при скорости 9600 бод, которую просто одержать, разделив частоту системной синхронизации 12 МГц на 250.
Таким типом, линия приема за момент приема 1 бита опрашивается 5 однажды, то что гарантирует доставку данного бита. Для того для того чтобы узнать, то что начинает: 0 в противном случае 1 - применяется способ "мажорирования". При таком способе тоже устраняется действие импульсных помех, потому, что смысл принимаемого бита проверяется в 5 один учащеннее.
Плод 5 опросов бита суммируется. При данном подлый уровень сигнала употребляют за +1, напротив, высокий - за -1. На логический уровень принимаемого бита свидетельствует старший разряд полученной суммы. Отправитель затевает передачу байта асинхронно к интервалам опроса по прерываниям от таймера, передавая старт-бит. Такая смена уровня расценивается точно основание
старт-бита, и сумма опроса (RSum) сбрасывается в 0.