- •Первый вариант реализации
- •Cтруктурная и функциональная схемы проекта
- •Выбор датчиков.
- •Датчики основные
- •Датчики вспомогательные
- •Блок измерения мощности
- •Назначение портов pic18f448
- •Энкодер
- •Часы реального времени (Real-Time Clock).
- •Соединение контроллера pic18f448 с sd-картой памяти через интерфейс spi.
- •Расчёт памяти для работы системы в течение двух часов.
- •Cвязь контроллеров pic18f448 с помощью can-шины
- •Достоинства и недостатки проекта
- •Второй вариант реализации
- •Структурная и электрическая схемы проекта
- •Выбор датчиков и их схема подключения
- •Блок измерения мощности
- •Назначение портов модуля Crumb128-can v5.0-5.1
- •Сравнение двух вариантов реализаций
Соединение контроллера pic18f448 с sd-картой памяти через интерфейс spi.
Полученные измерения с обоих PIC18F448 необходимо записать в файл, который будет храниться на SD-карте (рисунок 5). SD-карту подключим к левому контроллеру. Будем использовать для подключения контакты CS, SCLK, DI, DO.
Рисунок 5. Назначение контактов SD карты в SPI режиме
Расчёт памяти для работы системы в течение двух часов.
Считывать информацию с SD-карты будем блоками определённого размера. Поскольку структура памяти байтовая, то будем округлять до большего значения.
9.1 Время, поступающее с часов реального времени будет храниться в следующем формате: ЧЧ/ММ/СС, что составит 3 байта памяти.
Напряжение должно записываться с точностью до 16 бит = 2 байта.
Ток также должен записываться с точностью 16 бит = 2 байта.
Для мощности нужно 20 бит ≈ 3 байта.
Вспомогательное напряжение 12 бит ≈ 2 байта.
Вспомогательный ток 12 бит ≈ 2 байта.
8.7 Вычислим, сколько памяти нам потребуется
для хранения пройденного пути. Он
зависит от того, сколько раз энкодер
насчитал 180 импульсов. Но при этом расчет
может быть не совсем точным, потому что
число оборотов может быть и не целым.
Сделаем так: 1 импульс = 2 градусам поворота
колеса. По формуле вычисления длины
дуги окружности, при радиусе колеса
м, двум градусам будет соответствовать
м. Программно мы реализуем это так,
чтобы на каждый пришедший импульс с
энкодера переменная, отвечающая за
пройденный путь будет увеличиваться
на 0,01915 м.
Вычислим количество разрядов, которые нужно выделить для хранения максимального числа метров, которые может пройти поезд за 2 часа = 7200 с при максимальной скоростью 80 км/ч = 22,2 м/с.
, за 7200 с будет совершено 46296 оборотов.
Это значит, что пройденное расстояние
будет равно 159906,4 м. В двоичном коде это
10111000010100010.01 - 20 разрядов
3 байта.
Положение водительской ручки – это 3 провода, которые кодируют значения от 0 до 4, значит нам понадобится 1 байт
Положение тормозной ручки в виде одного бита. Выделим 1 байт.
Количество изменений CAM – может произойти сколько угодно, поэтому выделим с запасом 3 байта памяти.
Положение CAM. Всего может быть 16 разных положений, на кодирование которых понадобится 1 байт памяти.
В итоге получаем: за 0.1 секунду на флеш-карте окажется 22 байта информации, значит за 7200 с на флеш-карте будет 1584000 байт или 1,55 Mб.
Cвязь контроллеров pic18f448 с помощью can-шины
Так как драйвера для CAN-шины нет в контроллере PIC18F448, то мы подключим дополнительно. Драйвером для CAN-шины служит микросхема PCA82C251 (схема ее включения представлена на рисунке 6).
Рисунок 6. Микросхема PCA82C251
Контакты CANL и CANH будут контактами самой CAN-шины, c их помощью драйверы будут подключены друг к другу, а контакты RXCAN и TXCAN нужно будет соединить с соответствующими контактами контроллера, т.е. с контактами RB2/CANTX/INT2 и RB3/CANRX соответственно. В другой части поезда соединяем соответствующие входы и выходы аналогично.
