|
я сейчас сижу бодаюсь с попыткой написать протокол с синхронизацией между мастером и слейвом. Очень грустно и гиморно.
Складывается такое впечатление, что синхронные протоколы типа SPI, I2C хороши только для общения с конкретной периферией, в которой эти протоколы зашиты в самом железе. Я имею в виду всякие там ОЗУ/ПЗУ, термометры и прочая дребедень. При попытке программной эмуляции двумя процами начинаются трудности на ровном месте. Типа: слейв в меге видит (имею в виду получает прерывание) только приход байта по SPI, когда он выбран линией SS. И если что-то не заладилось в обмене и надо пересинхронизировать цепочку байт? Как? На реализацию простейшего обмена с программным конечным автоматом при передаче пакета от слейва к мастеру получаются такие временные накладки, что говорить о работе на очень высокой скорости по SPI и не приходится. Так может и не юзать аппаратный SPI, а сделать программную реализацию псевдо SPI?
Короче, асинхронный RS485 - форева.
E-mail: info@telesys.ru