Начало здесь.
Итак, следующей задачей было получение данных с датчиков давления. Вскрыв блок управления я изучил используемые комплектующие.
Как видно, в качестве ресивера используется Atmel ATA5428. В даташите расписан алгоритм его работы: конфигурация и обмен данными происходят по SPI. В данном случае микроконтроллер подключен слэйвом, а мастером является Samsung S3F9488. При включении, Самсунг производит настройку ресивера и ждет прерывания, которое сигнализирует о получении ресивером данных от датчиков. После чего, мастер читает полученные данные и отправляет их на видеоконтроллер (под металлической крышкой).
Я собрал и подключил вот такую гирлянду из различных плат к ноутбуку и поехал кататься, чтобы насобирать данные для работы.
В этом эксперименте данные с блока TPMS на контроллер приборной панели отправлялись через заранее предусмотренный SPI (также они дублировались на плату DiscoveryF4, которая через com-порт выдавала их на ноут). Для работы в автомобиле это было явно не подходящим решением, поэтому я решил использовать дополнительную кан-шину. В качестве мастера SPI и кан-интерфейса отлично подошла слегка доработанная плата дистанционного запуска двигателя. А сгоревший когда-то контроллер TPMS стал донором. В нем я избавился от лишних деталей, подключился к ресиверу и написал прошивку, которая шлет данные с датчиков в кан.
Вывел дополнительный кан-интерфейс из приборки.
Теперь предстояло разобраться с интерпретацией данных. Это оказалось не очень сложно. Данные передаются по 7 байт, каждый из которых записан в обратном порядке (MSB/LSB).
Например:
80 32 BC 22 2C 84 C4
D0: 0x80 — 0x01 — тип данных (1 — датчик)
D1 D2: 0x32 0xBC — 0x4C 0x3D — идентификатор
D3: 0x22 — 0x44 — давление (расчитывается по формуле: D3*8/256). 2.1 Bar в данном случае.
D4: 0x2C — 0x34 — температура (расчитывается по формуле D4-50). 2 градуса.
D5: 0x84 — 0x21 — статус датчика. Информации об этих данных у меня пока нет.
D6: 0xC4 — 0x23 — контрольная сумма (по модулю 0x100).
Данные передаются тройными посылками примерно раз в минуту либо при изменении давления. Осталось лишь переслать их в приборную панель и отобразить на экране, что не составило особых сложностей. Единственный недостаток на данный момент — идентификаторы датчиков заложены в прошивку. Но в планах есть написание алгоритма для привязки, как это сделано в китайском блоке.
Можно вот этот момент пояснить — «подключился к ресиверу и написал прошивку, которая шлет данные с датчиков в кан.»
Здесь имеется ввиду прошивка, которая читает, бесконечно передаваемы данные с датчиков? Или прошивался каждый датчик..
И еще хотелось бы понять — «в планах есть написание алгоритма для привязки, как это сделано в китайском блоке.» — имеется ввиду свою привязку к датчикам.. Может можно сделать чб Ваша плата была «универсальной» для купившего ее юзера, а каким-то образом привязывать новые датчики — например посылкой какого-либо кода в шину на каких-то условиях.. Как там у китайцерреализовано, интересно…
Can we install the TPMS in outlander lll 2014, can I get the details with price