Блок клавиатуры информационно-измерительном системы на базе микроконтроллера

B.B. Орлов: БЛОК КЛАВИАТУРЫ ИНФОРМАЦИОННО-ИЗМЕРИТЕЛЬНОЙ СИСТЕМЫ НА БАЗЕ МИКРОКОНТРОЛЛЕРА

отсутствии принципиальных схем, что особенно актуально при диагностике зарубежных систем ЧПУ. В-четвертых, значительно снижается трудоемкость процесса диагностики и требования к квалификации инженера по наладке и испытаниям. В-пятых, метод хорошо автоматизируется при работе на ЭВМ.

ПЕРЕЧЕНЬ ССЫЛОК

1. Нефедов A.B., Савченко A.M., Феоктистов Ю.Ф. Зарубежные интегральные микросхемы для промышленной электронной аппаратуры: Справочник. - М.: Энерго-атомиздат, 1989. -288 с.

2. Фергусон Дж., Макари Л, Уилльямз П. Обслуживание микропроцессорных систем. - М.: Мир, 1989. - 336 с.

3. Горбунов В.Л., Панфилов Д.И., Преснухин Д.Л. Справочное пособие по микропроцессорам и микро-ЭВМ. -М.: Высшая школа, 1988. - 272 с.

4. Самофалов К.Г., Романкевич A.M., Валуйский В.Н. и др. Прикладная теория цифровых автоматов. - Киев.: Вища школа, 1987. - 375 с.

5. Аванесян Г.Р., Левшин В.П. Интегральные микросхемы ТТЛ, ТТЛШ: Справочник. - М.: Радио и связь, 1991. -192 с.

6. Новиков Ю.В., Калашников О.А., Гуляев С.Э. Разработка устройств сопряжения для персонального комьютера типа IBM PC. - М.: ЭКОМ, 1997. - 224 с.

7. Коффрон Дж., Лонг В. Расширение микропроцессорных систем / Пер. с англ.; Под ред. П. В. Нестерова. - М.: Машиностроение, 1987. - 320 с.

8. Зельднер Г.А. Программируем на языке Quick Basic 4.5. - М.: ABF, 1997. - 432 с.

Надшшла 14.06.2004

Приведено опис i основт характеристики методу при-Mycoeo'i дiагнocтики цифрових Modynie систем керування технологшчним устаткуванням. Poглянyтo питання про-грамноЧ i апаратноЧ реалiзацi'i данного методу.

The article is developed to the questions of labor input reduction of the process of the technological equipment digital modules' diagnostics and to the increasing of the efficiency of the faults' search in condition of the partial uncertainty. The method of the diagnostics was designed for the solving of the problems, intended for optimization of searching for failure digital element in module of any complication and functional types.

УДК 681.58; 681.32

В. В. Орлов

БЛОК КЛАВИАТУРЫ ИНФОРМАЦИОННО-ИЗМЕРИТЕЛЬНОЙ СИСТЕМЫ НА БАЗЕ МИКРОКОНТРОЛЛЕРА

Предлагается эффективный алгоритм вычисления весовой функции нажатой клавиши, не требующий арифметических операций, и схема 16-клавишной клавиатуры с минимальным числом дополнительных элементов, использующая 5 линий пространства ввода-вывода микроконтроллера. Клавиатура конструктивно расположена на расстоянии около 300 мм от базового блока микроконтроллерной системы, которая может быть выполнена на микроконтроллерах различного типа.

ВВЕДЕНИЕ

Одной из наиболее динамично развивающихся областей современной вычислительной техники является микроконтроллерная техника. Появление на рынке микроконтроллеров с высокой производительностью, значительным объемом встроенной памяти, мощным вычислительным ядром с системой команд, ориентированной на решение задач управления и контроля, и доступными ценами обусловило их широкое применение в различных областях автоматизации и управления, в том числе и автоматизированных системах научных исследований (АСНИ). Ярким примером современных микроконтроллеров является семейство АУИ-микроконтроллеров производства фирмы «АТМЕЬ», завоевавших популярность среди разработчиков информационно-измерительных и микропроцессорных систем управления (МПСУ).

ПОСТАНОВКА ЗАДАЧИ

В интерактивных информационно-измерительных системах и МПСУ в контур управления включен интерфейс «оператор-система», основным элементом которого является клавиатура, предназначенная для ввода информации в систему. Обычно, если число клавиш не превышает 64, применяют так называемую некодирующую матричную схему, которая представляет собой простую матрицу двоичных переключателей (требуемой размерности), включенных на пересечении строк и колонок матрицы. Идентификация (кодирование) нажатой клавиши в таких клавиатурах выполняется программой. В этом случае наиболее распространенный способ вычисления весовой функции нажатой клавиши - аналитический в соответствии с выражением

Ш=ЫС + В,

где Ш - весовая функция, N - количество линий возврата, С - номер линии сканирования, В - номер линии возврата.

Примером таких схем могут служить схемы приведенные в [1, 2] и других публикациях по применению микроконтроллеров. Очевидным недостатком такого способа вычисления весовой функции является применение арифметических операций, и в особенности операции умножения, поскольку микроконтроллеры, как правило,

не имеют в своей системе команд операции умножения. Использование подпрограммы умножения приводит к значительному увеличению размера исполняемого кода и снижению быстродействия микроконтроллерной системы в целом.

Так же следует учесть еще одно важное обстоятельство - на практике, по конструктивным соображениям, часто появляется необходимость размещения клавиатуры на некотором расстоянии от базовой платы микроконтроллера.

МЕТОД РЕШЕНИЯ

При решении подобной задачи в ходе разработки блока удаленной клавиатуры информационно-измерительной системы, выполненной на базе АУЫ микроконтроллера типа АТ9088515, предназначенной для автоматизации тракта регистрации данных магнитного масс-спектромета МИ-1201Э (НПО «Электрон», г. Сумы, Украина), были изучены особенности функционирования блока и предложено программно-аппаратное решение, позволившее исключить арифметические операции при вычислении весовой функции клавиши.

Первоначально схема клавиатуры представляла собой матрицу 4x4, составленную из кнопок типа ПК8, и по конструктивным требованиям была вынесена от базовой платы микроконтроллера на расстояние 250-300 мм посредством ленточного кабеля. Фрагмент схемы показан на рис. 1.

Рисунок 1 - Схема матричной клавиатуры:

S1 —S16 - контакты клавиатуры; R1-R4 - подтягивающие резисторы; DD1 - микроконтроллер

Однако, при практическом использовании данной схемы был обнаружен эффект, приводивший к полной потере работоспособности устройства. Заключалось это в следующем: при обращении управляющей программы к функции чтения клавиатуры, функция, не дожидаясь реального нажатия клавиши, возвращала случайный скэн код клавиши, как правило, первых двух строк матрицы (эффект "самосканирования" матрицы). Подбор номинала подтягивающих резисторов К1-Ы4 в пределах 1,5...100 кОм приводил к изменению частоты «самосканирования».

Рассматривая электрические характеристики микроконтроллера [3], такие как высокое входное сопротивление линий порта ввода и низкое выходное сопротивление линий порта вывода, можно заметить, что эти параметры обеспечивают хорошие условия для перезаряда распределенной емкости внешней цепи, подключенной к портам вводавывода микроконтроллера. На основании этих данных был сделан вывод о емкостной реакции контактов клавиатуры, представляющих собой механические контакты нажимного действия достаточно большой площади.

Дальнейшие эксперименты показали, что работоспособность такой схемы может быть обеспечена только при расположении микропереключателей с уменьшенной площадью контактов в непосредственной близости от выводов микроконтроллера и тщательной трассировке платы. Такой подход к решению проблемы противоречит двум условиям: выбору типа контактов по эргономическим соображениям и удаленному размещению клавиатуры по конструктивным требованиям компоновки устройства.

Для решения вышеизложенной проблемы нами предложено изменение схемотехнического решения блока клавиатуры, основанное на использовании мультиплексора. Фрагмент предлагаемой схемы показан на рис. 2.

Рисунок 2 - Схема клавиатуры1 с применением мультиплексора:

S1-S16 - контакты клавиатуры; R1-R16 - подтягивающие резисторы; DD1 - мультиплексор; DD2 - микроконтроллер

В такой схеме мультиплексор DD1 выполняет функции согласования линии связи контактов клавиатуры с портом ввода-вывода микроконтроллера DD2 и програм-мноаппаратного шифратора скэн кода нажатой клавиши.

При изготовлении блока возможны два варианта компоновки схемы - размещение мультиплексора на общей плате микроконтроллера и на конструкционной плате клавиатуры. Для уменьшения количества проводников

88

ISSN 1607-3274 "Радтелектрошка. 1нформатика. Управл1ння" № 2, 2004

В.В. Орлов: БЛОК КЛАВИАТУРЫ ИНФОРМАЦИОННО-ИЗМЕРИТЕЛЬНОЙ СИСТЕМЫ НА БАЗЕ МИКРОКОНТРОЛЛЕРА

связи клавиатуры с платой микроконтроллера нами выбран вариант размещения мультиплексора на плате клавиатуры. В этом случае требуется всего 5 проводников.

Рассмотрим принцип действия программно-аппаратного шифратора. Блок-схема предлагаемого алгоритма определения весовой функции представлена на рис. 3.

Рисунок 3 — Алгоритм определения весовой функции

Шифратор скэн кода нажатой клавиши работает следующим образом: выход мультиплексора подключен к входу порта ввода микроконтроллера и выполняет функцию бита возврата. При обращении к функции чтения клавиатуры в локальной переменной Code содержится значение от 0 до 15, изменяемое в цикле, которое поступает на адресные входы мультиплексора (переменная Port). Затем анализируется бит возврата (переменная Pin7), имеющий значения 0 - в случае нажатия соответствующей клавиши или 1 - в случае отсутствия события нажатия клавиши. Здесь значения бита возврата указаны для случая прямого выхода мультиплексора. Если мультиплексор имеет инверсный выход, то логику обработки бита возврата необходимо изменить на противоположную. При получении значения 0 бита возврата функция возвращает значение переменной Code. Таким образом осуществляется прямое кодирование номера нажатой клавиши в диапазоне 0...15, ввиду однозначного соответствия номера информационного входа и его адреса, содержащегося в переменной Code.

В целях упрощения блок-схемы в алгоритме не показана обработка ситуации отсутствия события нажатия клавиши. Программное решение в этом случае зависит только от желания программиста. Можно, например, установить старший бит переменной Code или использовать бит T регистра SREG (регистр состояния AVR микроконтроллера).

Подавление дребезга контактов в этой схеме можно производить двумя классическими методами. Либо ис-

пользовать К8-триггеры в цепи контактов и подключить выход триггера к информационному входу мультиплексора, либо программно, что позволяет существенно уменьшить количество микросхем в устройстве, не накладывает ограничений на тип применяемых контактов (замыкающие или переключающие), достаточно просто реализуется и, наконец, является более современным и изящным методом подавления дребезга контактов.

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

ВЫВОДЫ

К достоинствам предложенного схемотехнического решения можно отнести простоту, минимальное количество дополнительных элементов и использование меньшего (5 вместо 8) числа разрядов порта ввода-вывода микроконтроллера, что актуально практически в любом случае использования микроконтроллера.

Предлагаемый способ определения весовой функции нажатой клавиши отличают:

1) отсутствие каких-либо дополнительных арифметических операций вычисления скэн кода (1), что уменьшает размер кода программы и увеличивает быстродействие системы, чем достигается эффективность алгоритма вычисления весовой функции;

2) то обстоятельство, что при наличии клавиш предназначенных для ввода информации в виде цифр в диапазоне 0...9 при соответствующем их подключении к одноименным информационным входам мультиплексора, такой способ декодирования возвращают скэн код, прямо соответствующий необходимой цифре в двоичном формате числа и его значение можно использовать в управляющей программе без дополнительного преобразования.

ЗАКЛЮЧЕНИЕ

Блок клавиатуры, реализованный на основе описанного программно-аппаратного решения, при удалении блока от платы микроконтроллера на расстояние 300 мм посредством неэкранированного ленточного кабеля без проводников защитного заземления (чередование проводов «общий-сигнал-общий») и без использования подтягивающих резисторов в цепи порта ввода-вывода микроконтроллера, показал высокую надежность считывания данных в условиях сложной электромагнитной обстановки работающего масс-спектрометра.

Следует также отметить, что предлагаемый блок клавиатуры можно использовать в МПСУ, выполненной с применением любого типа микроконтроллера.

Данная работа выполнена при частичной поддержке гранта #2155 фонда НТЦУ.

ПЕРЕЧЕНЬ ССЫЛОК

1. Сташин В.В., Урусов A.B., Мологонцева О.Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. М.: Энергоатомиздат, 1990. 224 с.

2. Application Note AVR240: 4X4 Keypad-Wake-up on Keypress http://www. atmel. com.

3. Евстифеев A.B. Микроконтроллеры AVR семейства Classic фирмы "ATMEL". М.: Издательский дом "Додэка-XXI", 2002. 288 с.

Надшшла 29.12.2003

Запропоновано ефективний алгоритм обчислення вагово1 функцп натиснуто'( клавгшг, що не потребуе арифме-тичних операцгй, i схема 16-клавгшно1 клавгатури з мгт-малъним числом додаткових елементгв, яка використовуе 5

niniu npocmopy eeody-eueody MiKpoKonmponepa. Knaeiamypy KOHcmpyKmueHO po3Miw,eno na eidcmani 6nu3bKo 300 mm eid 6a3oeoio 6noKa MiKpoKonmponepnoi cucmeMu, w,o Moxe 6ymu euKonanorn na MiKpoKonmponepax pi3nux munie.

An efficient algorithm of calculation of the weight function of a pressed key, which does not require arithmetic operations, and a scheme of a 16-key keyboard with minimum of additional elements, which uses 5 lines of the input-output space of a microcontroller, are suggested. The keyboard is located at a distance of about 300mm from the base block of the microcontroller system and can be combined with different types of microcontrollers.

УДК 004.93

М. Ю. Сенашова

ОЦЕНКИ ПОГРЕШНОСТЕЙ ВЫЧИСЛЕНИЯ СЛОЖНОЙ ФУНКЦИИ МНОГИХ ПЕРЕМЕННЫХ И ЕЕ ГРАДИЕНТА

Описаны графы вычисления сложных функций многих переменных, изложен принцип двойственности для вычисления градиента сложной функции. Изложены алгоритмы оценки погрешностей вычислений функции и ее градиента.

ВВЕДЕНИЕ

Если сложная функция многих переменных пред-ставима в виде суперпозиции функций меньшего числа переменных, можно построить граф, соответствующий этой функции. Тогда вычисление этой функции может быть описано как движение по графу. Рассматривая затем граф как набор элементов, производящих некоторые вычисления над приходящими к ним данными, можно изучать, как ошибки вычислений элементов влияют на ошибки вычислений всей функции.

Для сложной функции, представленной в виде графа можно решать две задачи, относящиеся к оценке точности ее вычислений: прямую и обратную. Под прямой задачей понимается оценка погрешностей вычислений выходных вершин графа, если заданы погрешности входных вершин графа. Заданные погрешности входных вершин пропускаются по графу в прямом направлении. При этом для каждого нового набора погрешностей входных вершин требуется заново вычислять погрешности выходных вершин. Наиболее близки к этой задаче методы оценки погрешностей счетно-решающих устройств на основе аналоговых элементов [1, 2, 3].

Гораздо больший интерес представляет обратная задача. Под обратной задачей понимается оценка допустимых погрешностей вычислений внутренних и входных вершин графа по заданным погрешностям вычислений его выходных вершин. Для решения обратной задачи задается точность, с которой должно вычисляться значение выходной вершины графа. То есть задается интервал, в котором может изменяться значение выходной вершины графа. За-

тем, проходя по графу в обратном направлении, вычисляются интервалы, в которых могут изменяться значения элементов графа. Эти интервалы вычисляются для всех элементов графа вплоть до входных вершин. Для вычислений интервалов изменения погрешностей строится граф, двойственный исходному. Система связей двойственного графа совпадает с системой связей исходного графа, но все элементы заменяются на двойственные, а сигналы передаются в направлении, противоположном движению сигналов в исходном графе. При этом все значения из интервала изменения значений входных вершин графа, при прямом прохождении по графу попадут в интервал изменения значений выходных вершин графа. При решении обратной задачи мы получаем уже не соотношение «конкретный набор погрешностей для входных вершин - конкретная погрешность для выходной вершины», как это происходит при решении прямой задачи, а соотношение «интервалы изменения значений входных вершин - интервал изменения значения выходной вершины».

ГРАФ ВЫЧИСЛЕНИЯ СЛОЖНОЙ ФУНКЦИИ

Рассматривается сложная функция многих переменных Р. Под «сложной» функцией подразумевается, что может быть представлена как суперпозиция некоторого набора «простых» функций от меньшего числа переменных.

Для построения графа, вычисляющего сложную функцию п переменных Р, нужно представить эту функцию в виде суперпозиции функций меньшего числа переменных Функции можно разделить на слои по глубине вхождения в функцию Р. В нулевом слое будут находиться константы и переменные, в первом слое -функции, зависящие от констант и переменных нулевого слоя, во втором слое - функции, зависящие от констант, переменных и функций первого слоя и т. д.

90

ISSN 1607-3274 "Радюелектрошка. 1нформатика. Управл1ння" № 2, 2004