Я уже писал недавно. Транспорт (паузы, определение ID, прием/передача буфера, подсчет CRC) у меня на прерываниях приемника, передачика и системных тиках (10-16мс). А разбор буфера в основной программе идет.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)