СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №4/2012
В ВЕДЕНИЕ Протокол обмена информацией компьютера с микроконтроллером по интерфейсу RS 232 с аппаратной по байтной синхронизацией линиями данных [1] успешно используется в компьютерных системах сбора и об работки информации [2, 3]. Однако возросшие скоростные характеристи ки как компьютеров, так и микрокон троллеров потребовали усовершен ствования этого протокола. При этом программные средства, предназначен ные для микроконтроллеров, остались прежними. Аппаратные средства, используемые для обмена, описаны в [2]. В предлага емой статье предложены программ ные средства, предназначенные для компьютера. Во первых, это програм мирование аппаратно независимой временной задержки длительностью около 25 мкс, которая позволяет уве личить стабильность передачи и прак тически убрать «дрожание» фронтов сигнала. Во вторых, это использова ние низкоуровневых команд процес сора компьютера для всего процесса ввода/вывода. Если раньше подпро граммы ввода/вывода байта были на писаны на языке высокого уровня (Clarion v.6.0) и каждое обращение к командам прямого ввода из порта компьютера (in) и вывода в порт (out) было организовано с помощью трой ной цепочки Clarion → внешняя под программа на C++(external) → внутрен няя подпрограмма на C++ (static) → ко манда процессора ввода/вывода из порта (in/out), то сейчас эти подпро граммы полностью перенесены в низ коуровневые команды процессора и весь процесс ввода/вывода байта (т.е. анализ состояния портов, временные задержки, прямой ввод/вывод и т.п.) организован непосредственно в кодах процессора компьютера. В связи с тем ПРОГРАММИРОВАНИЕ 64 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2012 что низкоуровневые команды процес сора выполняются на порядок быст рее операторов языка высокого уровня Clarion, надёжность обмена возрастает. П РОТОКОЛ ОБМЕНА КОМПЬЮТЕРА С МИКРОКОНТРОЛЛЕРОМ Стандартный протокол обмена по интерфейсу RS 232 с аппаратной син хронизацией каждого байта линиями квитирования DTR DSR и RTS CTS хо рошо известен. Однако при сопряже нии компьютера с микроконтролле ром выходные линии квитирования (DTR и RTS) интерфейса RS 232 не мо гут быть использованы по прямому назначению, т.к. в этом случае они применяются для других целей. На помним, что линия DTR предназначе на для сброса микроконтроллера, а линия RTS – для его перевода в режим программирования в системе (In Sys tem Programming, ISP). В зависимости от типа микроконтроллера, линия RTS также управляет определённым выво доммикроконтроллера, переводя его в режим ISP. Когда осуществляется передача ин формации из компьютера в микрокон троллер, используются выходная ли ния TxD компьютера и входная линия RxD микроконтроллера, а входная ли ния RxD компьютера и выходная ли ния TxDмикроконтроллера не исполь зуются. Суть модернизации протоко ла состоит в том, чтобы использовать эти линии для аппаратной побайтной синхронизации, аналогично линиям DTR DSR или RTS CTS. В стандартном протоколе обмена, если, например, аппаратная синхро низация осуществляется линиями кви тирования DTR DSR (они соединены между собой), то линия DTR приёмни ка разрешает или запрещает передачу байта передатчиком, а линия DSR пере датчика используется для анализа со стояния линии DTR приёмника. Если состояние линии DTR приёмника раз решающее, то передатчик выводит ин формационный байт, в противном слу чае – не выводит байт до тех пор, пока на линии DTR приёмника не устано вится разрешающее состояние. В модернизированном протоколе аппаратная синхронизация осущест вляется аналогичным образом, только вместо линии DTR приёмника, разре шающей или запрещающей передачу байта передатчиком, используется его линия TxD, которая при приёме байта не задействована. Линия TxD приём ника, так же как и линия DTR (в стан дартном протоколе), может быть пе реведена в любое состояние (разре шающее или запрещающее). В то же время линия RxD передатчика, кото рая также не задействована при пере даче байта, может быть использована для анализа состояния линии TxDпри ёмника (аналогично линииDSR в стан дартномпротоколе обмена), т.к. линии TxDприёмника и RxDпередатчика так же соединены вместе. На рисунке 1 показана временная диаграмма передачи конкретного бай та – символа 'Q', имеющего ASCII код, равный 51h или 01010001b. Как видно из рисунка 1, в интерфейсе RS 232 при нят порядок передачи байта младшим битом вперёд (LSB First). При передаче кода 01010001b вначале передаётся старт бит (= 0), младший бит 1(1), за тем идут три следующих бита (2(0), 3(0) и (0)), далее бит 5(1), бит 6(0), бит 7(1) и, наконец, бит 8(0). После этого следует стоп бит (1), а если их два – то ещё один стоп бит (1). При чём единичному состоянию (1) со ответствует низкий уровень сигнала (–10 В), а нулевому (0) – высокий (+10 В). Поэтому практически все пре образователиинтерфейсаRS 232 ↔ TTL, помимо преобразования уровней, ин вертируют сигналы. В предложенной схеме передатчик (в данном случае компьютер) ждёт раз решения передачи байта от микрокон троллера, анализируя свою линию RxD (DSR). Как только такое разреше ние получено, через время реакции Усовершенствованный протокол обмена по интерфейсу RS 232 Алексей Кузьминов (Москва) В статье описаны программные средства усовершенствованного протокола обмена информацией компьютера с микроконтроллером по интерфейсу RS 232 с побайтной синхронизацией. Обращение к низкоуровневым командам процессора в подключаемых подпрограммах позволяет снизить уровень ошибок. © СТА-ПРЕСС
RkJQdWJsaXNoZXIy MTQ4NjUy