Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
На МК реализован мост RS232 CAN2.0 + дополнительные функции по мониторингу CAN шины.
Отправлено
dip 13 февраля 2008 г. 16:30
В ответ на:
А DTR-то на кой? Хватит RTS/CTS (+) отправлено
SM 13 февраля 2008 г. 14:45
Информация в CAN появляется случайным образом. Ее нужно передавать в
PC сразу, но PC(winxp) это не реалтайм система - что там происходит - в какие кванты времени - не известно. Поэтому - если PC(winxp) не прочитал предыдущие 16 байт из буфера 16550 - значит DTR=0 т.е.
PC(winxp)не готов принять данные - МК пишет данные для передачи в свой выходной буфер, и, как только PC(winxp) выставит готовность -
DTR=1 - тогда МК сразу передает порцию из 16 байт в PC(winxp).
Если PC(winxp) хочет передать данные в МК, то анализирует CTS из MK -
как сигнал готовности МК. Если CTS=1 то PC передает в МК 16 байт, которые до этого могли находиться в 16 байтном FIFO Tx 15c550 *(т.е. 16550 сама анализирует аппаратно CTS).
МК в процессе работы, когда есть возможность принимать формирует окно - 2 мсек для приема 16 байт выставлением готовности CTS=1, а после приема 16 байт полностью или это окно закрывается (CTS=0).
Т.е. потоки данныйх в обоих направлениеях полностью случайны и нет выделенного Мастера кака например в MODBUS.
МК - pic18f458.
Я прочитал в описании контактов RS232, что именно
DTR - готовность терминала (т.е. PC), CTS - готовность модема, т.е. МК.
Или что-то не так с определениям DTR и CTS?
Составить ответ | Вернуться на конференцию
Ответы
- Ответ: (+) — SM (13.02.2008 16:41:39 80.92.255.53, 491 байт)