Как стать автором
Обновить

Комментарии 9

Интересное решение завязаться на протокол существующего CANHacker под свое устройство для использования имеющегося интерфейса отображения. Я вот сейчас занимаюсь разработкой своего кроссплатформенного GUI интерфейса для отображения CAN пакетов со своего устройства.
А почему нельзя сделать такое устройство на f103 серии? Просто сам хотел сделать подобное устройство.
Потому что CAN и USB не смогут работать на одновременно 103 камне, а на 105-ом — смогут. Можно конечно сделать вариант 103 камень + FT232RL. Но это не то. Стоимость STM32F105 и FT232RL не очень сильно отличаются.
Всегда хотелось подержать в руках какое-нибудь готовое CAN-устройство. Например, банальный CAN-термометр или CAN-кнопку. Но что-то не гуглится. Если воткнуться в какой-нибудь автомобильный ODB2, то да, там там жизнь кипит, но идет от одного большого черного проприетарного блока к другому. А хочется поехать в автомагазин или, извиняюсь, на разборку и купить маленькую готовую коробочку с длинным номером, производителя NNN которая, о чудо, отзовется на CAN.

Как я понял, надо копать в сторону грузовиков, стационарных дизелей или катеров, там CAN более «стандартный» чем в авто.
На разборке можно без проблем найти ЭБУ, который работает по CAN. Даже подключив его на столе, сам по себе он уже будет генерировать CAN трафик, который можно посмотреть тем же CANHacker. Если интересует какой конкретно ЭБУ нужно искать — пиши, подскажу.
Упс. Большой Черный Ящик и ЭБУ не хочется, на нем как правило висит туча старинных аналоговых датчиков и релюх. Хочется уже «оцифрованной» мелкой CAN-периферии.

Еще поискал, нашел такое
www.alibaba.com/product-detail/Automobile-CAN-BUS-Laboratory-Equipment_618628226.html

Мне кажется, у современных машин на шине «салона» должно висеть много реальной CAN-мелочи.
Баг в функции:

uint8_t hexascii_to_halfbyte(uint8_t _ascii)
{
if((_ascii >= '0') && (_ascii <= '9')) return(_ascii — '0');
if((_ascii >= 'a') && (_ascii <= 'f')) return(_ascii — 'a' + 10);
if((_ascii >= 'A') && (_ascii <= 'F')) return(_ascii — 'A' + 10);
return(0xFF);
}
У меня так было, когда либо forscan был запущен, либо помимо сниффера был подключен ELM327
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации