Автоматика и аппаратура связи Дистанционное и непосредственное управление исполнительными механизмами, сотовая, а также радиосвязь. |
06.02.2008, 15:31
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от BigMazzi
|
Аппаратного буфера нет,его нужно делать программно.
|
А немного подробней можно? Мы отослали байт в приемник, и он там висит до тех пор пока мы его не считаем?
А если до того как мы его считаем, мы отошлем другой байт, то он заменит предыдущий?
|
|
|
|
06.02.2008, 16:04
|
|
Прописка
Регистрация: 09.06.2007
Сообщений: 96
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Ну на самом деле мы отсылаем не в приёмник, а в передатчик.
В контроллере есть прерывания от UART. Когда байт был принят или отправлен, возникает прерывание. В процедуре обрабатывающей прерывание и обрабатывается это событие. Либо мы полученное значение ложим в буфер приёма(если принимаем), либо берём из буфера передачи очередной байт и отправляем на передачу(если передаём).
Вот тебе кусок кода для контроллера.
//======================================
// ПРЕРЫВАНИЕ ОТ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА
//
void UART_proc (void) interrupt 4 using 3
{
if ( RI )
{
RI = 0;
input = SBUF;
switch (input)
{
case 0x01: f_receive = 1;
ct_receive = 0;
f_receive_done = 0; break;
case 0x02: if (ct_receive == 2)
f_receive_done = 1;
f_receive = 0; break;
case 0xFF: break;
default: if (f_receive == 1)
{
if (ct_receive ‹ 2) input_dat[ct_receive++] = input;
else
{
f_receive = 0;
}
} break;
}
}
if ( TI )
{
TI = 0;
if (ct_send ‹ size_message) SBUF = out_dat[ct_send++];
}
}
|
|
|
|
06.02.2008, 17:01
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от dimonbest
|
А немного подробней можно? Мы отослали байт в приемник, и он там висит до тех пор пока мы его не считаем?
А если до того как мы его считаем, мы отошлем другой байт, то он заменит предыдущий?
|
На самом деле я имел ввиду, что мы отослали в передатчик - а он в свою очередь в приемник.
За код спасибо.
Еще такой вопросик: у приемников нет серийных номеров (идентификаторов)?
Если такая ситуация: у меня 1 передатчик, и 5 приемников, и когда я отправлю байт, его получат все приемники? Не получится отправить конкретному приемнику?
|
|
|
|
06.02.2008, 17:16
|
|
Прописка
Регистрация: 09.06.2007
Сообщений: 96
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Вот мы и добрались до протокола
индивидуальных номеров нет ни у приёмника, ни у передатчика, это всё имеет контроллер(компьютер). Именно этот адрес и упоминался в даташите(тот кусок, который ты цитировал)
|
|
|
|
06.02.2008, 17:45
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Понятно
Давайте подведем итоги :
У нас 1 передатчик и 5 приемников например.
Передатчик передает посылку (по определенному протоколу), все приемники получают эту посылку. В посылке содержится адресс устройства, все приемники сравнивают этот адресс, и тот с которым он совпал отвечает. Тобиш он сам становится передатчиком, а бывший передатчик приемником. Остальные 4 приемника тоже примут этот сигнал, но формат у него будет другой, и они его проигнорируют. Я правильно все понял?
|
|
|
|
06.02.2008, 18:18
|
|
Прописка
Регистрация: 09.06.2007
Сообщений: 96
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Всё правильно.
|
|
|
|
06.02.2008, 18:38
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от BigMazzi
|
Всё правильно.
|
Спасибо огромное за помощь. Теперь осталось купить его и попробывать все на практике.
|
|
|
|
29.02.2008, 09:06
|
|
Прохожий
Регистрация: 26.10.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
http://www.aerocomm.com/rf_transceiv...ransceiver.htm
вот еще модуль приемо=передатчика - по цене незнаю..
но дальность и скорость - впечатляют...
|
|
|
|
05.03.2008, 13:56
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
Сообщение от m1sh
|
http://www.aerocomm.com/rf_transceiver_modules/ac4490-1x1_900mhz_rf_transceiver.htm
вот еще модуль приемо=передатчика - по цене незнаю..
но дальность и скорость - впечатляют...
|
Да, но в Украине их походу вообще нет...
|
|
|
|
08.04.2008, 16:58
|
|
Гражданин KAZUS.RU
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
|
BigMazzi, только приобрел модуля...
Подключать к контроллеру напрямую его или через MAX232?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:36.
|
|