Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
В простых случаях между процессорами использую такой протокол (правда, у меня связь через UART):
Отправлено
Леонид Иванович 25 августа 2008 г. 18:55
В ответ на:
Вопрос по SPI отправлено
Sannara 25 августа 2008 г. 16:10
Формат посылок при межпроцессорном обмене следующий:
Address
Command
N
Data1
...
DataN
Первым байтом пакета передается адрес подчиненного процессора. При передаче адреса установлен девятый бит. При этом UART-ы всех подчиненных процессоров находятся в режиме многопроцессорной связи и реагируют только на такую посылку. Тот процессор, адрес которого совпал с передаваемым в пакете, переходит к приему остальной части пакета (временно выходит из режима многопроцессорной связи). Остальные байты пакета передаются с нулевым девятым битом, поэтому другие подчиненные процессоры на эту часть пакета никак не реагируют.
Вторым байтом пакета передается код команды для подчиненного процессора.
Третьим байтом пакета передается количество байт данных, передаваемых дальше в пакете. Эти данные являются параметрами для передаваемой команды. Некоторые команды могут не иметь параметров, тогда будет передаваться N = 0, на чем пакет заканчивается.
В ответ на каждую команду подчиненный процессор посылает пакет, который имеет следующий формат:
N
Data1
...
DataN
Первым байтом пакета передается количество байт данных, передаваемых дальше в пакете. Эти данные являются ответом, который сформировала выполненная команда.
Составить ответ | Вернуться на конференцию
Ответы
- Ответ: - Sannara (26.08.2008 11:52:48 89.253.23.133, 115 байт)