Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
Глава 15. Программирование UART и обмен данными с персональным компьютером 391 стоящее заземление, то вам очень повезло), то у него на корпусе всегда висит опре деленный потенциал, равный примерно половине сетевого питания, т. е. около 1 1 0- 1 20 вольт переменного тока. Спасти от различных неприятностей, которые потен циально в этом кроются, может только адаптер с оптической развязкой сигнальных цепей, когда «земли» с обеих сторон изолированы друг от друга. В любительской практике оптическая развязка - редкость, и обычно ее отсутствие не причиняет проблем по крайней мере в случае USB, - слишком много «если» должно совпасть одновременно, чтобы возникли неприятности . А вот в аппаратуре бытового, осо бенно медицинского назначения, требование опторазвязки в USB- или СОМ адаптерах должно соблюдаться неукоснительно, причем вне зависимости от того, используете вы готовую плату Arduino или собственноручно спаянную конструк цию. П рограммы для связи ПК с контроллером Адаптер, как мы говорили, подобрать просто, но на этом проблемы не заканчива ются . Куда сложнее подобрать программу-монитор, с помощью которой можно общаться со стороны ПК с контроллером. Монитор порта Arduino для этой цели годится только теоретически: он воспринимает данные лишь в виде текстовых сим волов и символьных строк (прозрачное для пользователя преобразование чисел в текст и обратно в Arduino осуществляют функции класса Serial) . Если посылать на монитор порта обычные числа, то вы получите полную несуразицу, и тем более это касается отправки со стороны ПК в контроллер. В определенных задачах это бывает даже удобно, но класса Serial у нас нет, так что в этом случае приходится конвертацию чисел в символы и наоборот осуществлять внутри контроллера. Далее мы соорудим программу установки часов DS 1 3 07, специально адаптирован ную под монитор порта, т. к. с его помощью установку делать проще и не требует никаких дополнительных настроек. Но в общем случае нам со стороны ПК требу ется совсем не это. Мы хотим посьmать числа «as is», причем побайтно, и получать на экране уже готовое число в текстовой форме в одной из заданных разновидно стей: как минимум, в обычном десятичном или в шестнадцатеричном виде . Бывает полезно и отобразить текстовые символы, если контроллер посьmает именно тек стовое сообщение. Неплохо сохранять обмен в лог-файле, а также иметь возмож ность копирования результатов с экрана. Обязательной функцией должна быть возможность остановки приема без закрытия программы - это полезно, когда ва лится большое количество данных, и вы не успеваете их рассмотреть. Обязателен также весь набор возможных номеров СОМ-портов со всеми стандартными скоро стями, начиная по крайней мере от 1 200 (чего, кстати, не допускает монитор порта Arduino ) . А вот такие функции, как 9-битовый обмен или подсчет контрольной суммы, для наших целей, в общем, необязательны. Различных программ для работы с СОМ-портом существует огромное количество, но указанным требованиям соответствуют считанные единицы. Особенно неприят но то, что большинство подобных программ представляют собой либо жутких мон стров, собравших в себе все функции всех возможных коммуникационных портов, либо специализированные утилиты, «заточенные» под какую-то частную задачу.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==