связь двух мк по одной линии
связь двух мк по одной линии
Здравствуйте! Возникла такая проблема : есть pic12f675 у которого задействованны все выводы,кроме одного. Это двунаправленная линия ввода - вывода, с возможностью задействовать прерывание по фронту или спаду сигнала (на выбор). Так вот,другой(главный мк) будет передавать команды (требуется передать числа 1,2,3 старт и стоп). Линия связи будет проходить через весь автомобиль из одной двери к другой. Вопрос,как реализовать передачу данных програмно? .Будут ли наводки,помехи,сбои во время передачи?
- Реклама
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: связь двух мк по одной линии
Усечённый до 3-х бит UART спасёт отца русской демократии.vovik15 писал(а):как реализовать передачу данных програмно?
Будут. Предвидя следующий вопрос - бороться железом и контрольной суммой.vovik15 писал(а):Будут ли наводки,помехи,сбои во время передачи?
Docendo discimus
Re: связь двух мк по одной линии
а раскажите побнее про этот усеченный юарт,ато я несовсем понимаю как это сделать
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: связь двух мк по одной линии
UART работает с 8-мью битами. Никто не мешает сделать 3. Как вариант:
1 - это будет посылка 000
2 - посылка 001
3 - 010
старт - 011
стоп - 100
(если под стартом и стопом вы подразумеваете команды.)
Программно может быть так: ждете спада (это будет начало посылки, т.е. старт-бит), далее через определенное время считывате первый бит, далее второй, потом третий, четвертым битом должна появиться 1, т.е. стоп-бит. Следующей посылкой можно отправить от мастер-контроллера контрольную сумму, ну, скажем, число, дополняющее предыдущую посылку до 111. При совпадении приёма принимается решение о верности и результат отправляется на исполнение. Желательно сделать ещё и ответ мастеру, но это потребует доп.вложений.
1 - это будет посылка 000
2 - посылка 001
3 - 010
старт - 011
стоп - 100
(если под стартом и стопом вы подразумеваете команды.)
Программно может быть так: ждете спада (это будет начало посылки, т.е. старт-бит), далее через определенное время считывате первый бит, далее второй, потом третий, четвертым битом должна появиться 1, т.е. стоп-бит. Следующей посылкой можно отправить от мастер-контроллера контрольную сумму, ну, скажем, число, дополняющее предыдущую посылку до 111. При совпадении приёма принимается решение о верности и результат отправляется на исполнение. Желательно сделать ещё и ответ мастеру, но это потребует доп.вложений.
Docendo discimus
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: связь двух мк по одной линии
Не пройдёт UART, если напрямую с ноги на ногу подключать. Загнётся...vovik15 писал(а):Линия связи будет проходить через весь автомобиль из одной двери к другой
RS-485. По 1 микросхеме с обоих сторон + программный UART на обоих камнях = спасение.
- Реклама
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: связь двух мк по одной линии
UART имеется ввиду программный интерфейс, а не железный.
Docendo discimus
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: связь двух мк по одной линии
Ну это не к Вашему сообщению относилось 
Я имел в виду, что нельзя на такую длину вести провода без всяких вспомогательных интерфейсов. Ибо был задан вопрос:
Я имел в виду, что нельзя на такую длину вести провода без всяких вспомогательных интерфейсов. Ибо был задан вопрос:
А по поводу :Будут ли наводки,помехи,сбои во время передачи?
конечно же, UART напрашивается. Тут без вопросов...как реализовать передачу данных програмно?
Re: связь двух мк по одной линии
а название этой микросхемы не подскажете? можно ли для защиты от помех использовать мах232 с двух сторон?Аlex писал(а):Не пройдёт UART, если напрямую с ноги на ногу подключать. Загнётся...vovik15 писал(а):Линия связи будет проходить через весь автомобиль из одной двери к другой
RS-485. По 1 микросхеме с обоих сторон + программный UART на обоих камнях = спасение.
Если есть такая возможность,кинте кусочек кода програмного uart,для ознакомления. Я так пологаю программа должна отследить прерывание по спаду,далее запретить прерывание и ожидать приема следующих восьми бит в цикле с определенной временной задержкой. Далее вновь разрешить прерывание. Так?
Re: связь двух мк по одной линии
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: связь двух мк по одной линии
Совершенно верно.vovik15 писал(а):Я так пологаю программа должна отследить прерывание по спаду,далее запретить прерывание и ожидать приема следующих восьми бит в цикле с определенной временной задержкой. Далее вновь разрешить прерывание. Так?
По RS-232. Тоже не лучший вариант. Ибо также непомехозащищённый. Делайте лучше 485-ый, всё равно микросхемы ставить.
Re: связь двух мк по одной линии
Как на мою скромную думку, передавать 3 бита на 1,5м через 485 ( напомню, он до 4км )- это по воробьям даже не из пушки, а из системы "Град" . Банальная 20мА токовая петля по витой паре да еще в экране - думается, больше, чем достаточно. Тем боле в одну сторону. А если еще дублирование и мажоритарный выбор - полный зупер.


