Разработал проект настроечной машины для электронных компонентов. Суть в том что компонент содержит микросхему, машина проводит ряд измерений и зашивает в микросхему калибровочные данные. Машина содержит программное обеспечение на ПК и измерительные-программирующие платы под управлением МК.
Со временем количество поддерживаемых микросхем стало расти, ПО компьютера и плат обновляться.
Протокол общения ПК и платы делал по простому принципу - команда-исполнение-ответ. Помимо общих команд управления платой, появлялись команды специфичные для каждого типа программируемых микросхем. Протокол стал наполняться ими и становиться запутанным.
Особенно ситуацию усугубляло то что некоторые чипы поддерживают одинаковые протоколы с разным смысловым наполнением и соответственно со стороны ПК управляются одними командами. У некоторых чипов наоборот от версии к версии протокол менялся (а в некоторых вообще были баги, требующие индивидуального подхода к отдельной ревизии чипа) при сохранении смыслового наполнения.
Появилась проблема проверки совместимости версий прошивки плат и версий ПО компьютера. (где и какие поддерживаемые чипы, какие версии протоколов, баги и т.п.) Начали появляться новые версии плат с измененным функционалом и другими поддерживаемыми чипами.
Хотелось бы организовать относительно простой и понятный протокол для управления всем этим безобразием. Кто и как решает подобные проблемы? (когда задача одна - измерить и прошить - а способов ее исполнения множество).
|