
- •Содержание
- •Понятие вычислительной системы
- •Организация микроконтроллерных систем управления
- •Микроконтроллеры. Основные сведения
- •Интерфейсы связи с датчиками Сигнальные интерфейсы и цифровые интерфейсы
- •Прием импульсно-дискретных сигналов
- •Демодуляция квадратурно-модулированного сигнала
- •Прием аналоговых сигналов
- •Схемотехника ацп
- •Ацп последовательного счета
- •Ацп последовательного приближения
- •Расширение разрядности. Метод передискретизации
- •Стандартные интерфейсы связи Интерфейсы связи
- •Топологии сетей
- •Последовательный интерфейс i2с
- •Состояние старт и стоп
- •Подтверждение
- •Адресация в шине i2c
- •Преимущества
- •Последовательный интерфейс spi Введение
- •Электрическое подключение
- •Протокол передачи
- •Cравнение с шиной i2c
- •Последовательный интерфейс rs-232
- •Can интерфейс
- •Описание стандарта
- •Контроль ошибок
- •Скорость передачи и длина сети
- •Методы выявления и устранения ошибок данных при передаче
- •Блоковые коды
- •Свёрточные коды
- •Коды обнаружения Циклический избыточный код (crc)
- •Бит чётности
- •Формализованный алгоритм расчёта crc16
- •Корректирующие коды
- •Каскадное кодирование. Итеративное декодирование
- •Выбор кода
- •Некоторые методы (алгоритмы) обработки сигналов
- •Калибровка сигнала
- •Компенсация сигнала
- •Табличные вычисления и тарировочные таблицы Табличные вычисления
- •Тарировочные таблицы
- •Коррекция нуля, обнуление
- •Фильтрация
- •Разностное уравнение дискретного фильтра
- •Рекурсивные (бих) и нерекурсивные (ких) фильтры
- •Устойчивость
- •Зависимости частотных свойств звеньев системы регулирования
- •Регуляторы
- •Регулятор типа п – пропорциональный
- •Регулятор типа пи – пропорционально-интегральный
- •Регулятор типа пид – пропорционально-интегрально-дифференциальный
- •Реализация регуляторов
- •Примерная реализация ядра регулятора на языке Си
- •Выбор длительности такта
- •Вычисления с плавающей и фиксированной точкой
- •Основы технологии разработки программного обеспечения Структура программы на языке Си
- •Компиляция программы
- •Директивы препроцессора
- •Присоединение файла
- •Макросы
- •Условная компиляция
- •Типы переменных
- •Математические операторы
- •Операторы цикла
- •Условный оператор
- •Оператор выбора
Формализованный алгоритм расчёта crc16
Для получения контрольной суммы, необходимо сгенерировать полином. Основное требование к полиному: его степень должна быть равна длине контрольной суммы в битах. При этом старший бит полинома обязательно должен быть равен «1».
Из файла берется первое слово. Если старший бит в слове "1", то слово сдвигается влево на один разряд с последующим выполнением операции XOR. Соответственно если старший бит в слове "0", то после сдвига операция XOR не выполняется. После сдвига (умножения) теряется старый старший бит, а младший бит освобождается (обнуляется). На место младшего бита загружается очередной бит из файла. Операция повторяется до тех пор, пока не загрузится последний бит файла.
После прохождения всего файла, в слове остается остаток, который и является контрольной суммой.
Корректирующие коды
Коды Хемминга
Коды Рида — Соломона
Каскадное кодирование. Итеративное декодирование
Преимущества разных способов кодирования можно объединить, применив каскадное кодирование. При этом информация сначала кодируется одним кодом, а затем другим, в результате получается код-произведение.
Например, популярной является следующая конструкция: данные кодируются кодом Рида-Соломона, затем перемежаются (при этом символы, расположенные близко, помещаются далеко друг от друга) и кодируются свёрточным кодом. На приёмнике сначала декодируется свёрточный код, затем осуществляется обратное перемежение (при этом пачки ошибок на выходе свёрточного декодера попадают в разные кодовые слова кода Рида — Соломона), и затем осуществляется декодирование кода Рида — Соломона.
Выбор кода
Выбор типа кода для обнаружения и коррекции ошибок осуществляется на основе анализа ошибок, возникающих при передаче данных по данной конкретной линии связи, функционирующей в данных условиях.
Следует понимать, что применение корректирующих кодов, строго говоря, не гарантирует защиту от получения данных с ошибками, а понижает вероятность данного события. При этом степень понижения этой вероятности тем лучше, чем лучше подобран (сконструирован) код под данное конкретное применение. Код и его параметры подбираются под виды возможных ошибок и их статистические характеристики.
Часто эффективность кода оценивается в прибавках децибел к соотношению сигнал/шум, характерного для данной линии связи. То есть можно сказать, что кодирование повышает соотношение сигнал/шум.
Некоторые методы (алгоритмы) обработки сигналов
Алгоритмы систем управления работают на основе сигналов от датчиков в реальном времени.
Сигналы могут обладать следующими «недостатками»:
Зашумленность,
Низкая частота измерений,
Низкое разрешение сигнала,
Нелинейность чувствительного элемента,
Взаимозависимость нескольких сигналов.
Для того, чтобы алгоритмы системы управления работали правильно, требуется свести вышеуказанные недостатки к приемлемому уровню.
Для этого используются определенные методы обработки сигналов. Эти методы могут быть реализованы как с помощью специальных аппаратных средств, так и цифровой обработкой внутри вычислителя.
Типы обработки сигналов условно разделим на следующие:
Калибровка сигнала
Компенсация сигнала
Аппроксимация сигнала (интерполяция и экстраполяция).
Фильтрация сигнала (обработка во временной или частотной областях).
Первые два типа представляют собой совокупность средств для коррекции статической характеристики датчика.
Статической характеристикой датчика называют функцию, ставящую в соответствие каждому значению измеряемой физической величины уровень электрического сигнала или цифрового кода.
Вид исходной статической характеристики датчика определяется физической схемой датчика и физическими процессами, протекающими в нем. Этот вид может быть любым изначально, а также варьироваться от экземпляра к экземпляру из-за несовершенства и погрешностей в конструкции.
Все типы обработки сигналов опираются на следующие операции и методы.
Аппроксимация сигнала – расширение ряда значений функции путем вычисления промежуточных значений (интерполяция) или предсказания следующих значений по предыдущим (экстраполяция).
Существуют две группы алгоритмов аппроксимации - искажающие исходные значения (сглаживающие) и неискажающие. Для вторых принципиально то, что полученная аналитическая функция точно проходит через заданные точки. Во втором случае – необязательно.
Первые довольно сложны алгоритмически, но позволяют также сгладить случайные возмущения сигнала, вторые просты, но могут подчеркнуть шум.
Интерполяция применяется, как правило, в пост-обработке, то есть это не алгоритм реального времени, а средство изучения сигнала, хотя возможны случаи, когда управляющий алгоритм совершает какие-то действия на основе анализа истории сигнала, к которому может быть применена интерполяция.
Экстраполяция применяется в том случае, если измерения поступают реже, чем это требуется в алгоритме управления.
Алгоритмы экстраполяции строятся на основе математических моделей процессов для предсказания данных, которых они разрабатываются, при этом нужно понимать, что модель достоверна только при определенных условиях.
Наиболее частым местом применения методов экстраполяции является задача вычисления координат объекта по данным навигационной системы или системы наведения, поступающим с недостаточным темпом. При этом наиболее простым и эффективным методом является аппроксимации данных движения объекта дифференциальным уравнением движения (уравнение 2 порядка) точки.
Фильтрация сигнала – обычно понимают изменение соотношения между спектральными составляющими сигнала.
Применяется для подавления шумов и согласования спектра сигнала.
Различают два подхода к решению задачи фильтрации: временной – на выходной сигнал влияют мгновенные текущие значения сигнала и частотный (спектральный) – сначала выборка сигнала отображается в частотную область, получается спектр, который корректируется заданным образом и затем выполняется обратное отображение во временную область.
Очевидно, что вторая группа алгоритмов не является алгоритмами реального времени.