Gvozdidir 0 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба В большинстве своем выпускают железки с урезанным Com-портом, мне нужна ножка DCD, с помощью нее, я завожу метку времени от GPS приемника и получаю достаточно сносную нестабильность NTP сервера, без нее все хуже на порядок, смотри рисунки. Думаю как переиначить драйвер com-порта, чтобы я подавал сигнал на CTS, а драйвер был уверен, что это DCD. Хотел попробовать сначала на винде, но в целом мне это на юбунту надо положить. Пробовал usb-rs микруху с полным Uart, но за счет уже драйвера USB, хорошую стабильность получить не удалось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 182 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба 1 час назад, Gvozdidir сказал: В большинстве своем выпускают железки с урезанным Com-портом, мне нужна ножка DCD, с помощью нее, я завожу метку времени от GPS приемника и получаю достаточно сносную нестабильность NTP сервера, Просто какой-то поток сознания или фраза выдранная разговора с самим собой из середины... Что за железки? Кто выпускает? Чем это плохо? О чём вообще речь? И при чём тут NTP??? 1 час назад, Gvozdidir сказал: Думаю как переиначить драйвер com-порта, чтобы я подавал сигнал на CTS, а драйвер был уверен, что это DCD. Что за драйвер? Зачем его "переиначивать"? И почему невозможно подать что-то на CTS и как этому мешает "драйвер"?? 1 час назад, Gvozdidir сказал: Пробовал usb-rs микруху с полным Uart, но за счет уже драйвера USB, хорошую стабильность получить не удалось. К концу сообщения выясняется что видимо об USB-UART чипе.... или нет? PS: Может изложите вопрос вразумительно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gvozdidir 0 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба 2 hours ago, jcxz said: Просто какой-то поток сознания или фраза выдранная разговора с самим собой из середины... Что за железки? Кто выпускает? Чем это плохо? О чём вообще речь? И при чём тут NTP??? Что за драйвер? Зачем его "переиначивать"? И почему невозможно подать что-то на CTS и как этому мешает "драйвер"?? К концу сообщения выясняется что видимо об USB-UART чипе.... или нет? PS: Может изложите вопрос вразумительно? Извиняйте, действительно сумбурно и не связно описал проблему, так как сам долгое время копался, думал, что данных сведений достаточно. Железка не важна, я поднимаю сервер точного времени от GPS приемника по Com порту на винде 10, но также и на RockChip`e 3399, и на Nvidia nano. В конечном итоге все будет крутиться на RK3399 под Юбунтой, а у него есть только 4 пина(Rx,Tx,CTS,RTS). На винде проще всего тестить. Так как есть полный Rs232, в котором есть первый пин DCD(Наличие несущей (Carrier Detect)). Метка времени имеет стабильность в 10 нс. Подавая ее на DCD я здорово повышаю стабильность времени NTP сервера от Meinberg. http://www.satsignal.eu/ntp/NTP-on-Windows-serial-port.html про USB-Uart чип я имел ввиду, что пробовал такой путь, подключал юсб свисток, а к нему подключал навигационный приемник, но он не решил моих проблем. Вопрос заключается в следующем, могу ли я обмануть драйвер Com порта, и заставить систему думать, что ножка CTS, на самом деле DCD. По описанию порта, у нее только 2 и 3 ноги(Rx,TX)железно прописаны и переназначить их нельзя, а вот оставшиеся вроде можно, но не смог найти как. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vladivolt 0 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба А если переосмыслить задачу? Не "обмануть драйвер", а сконфигурировать либо пересобрать ту программу, которая потребляет данные от драйвера. Чтобы она ожидала импульсы pps не по DCD но CTS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 182 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба 1 час назад, Gvozdidir сказал: про USB-Uart чип я имел ввиду, что пробовал такой путь, подключал юсб свисток, а к нему подключал навигационный приемник, но он не решил моих проблем. Вопрос заключается в следующем, могу ли я обмануть драйвер Com порта, и заставить систему думать, что ножка CTS, на самом деле DCD. По описанию порта, у нее только 2 и 3 ноги(Rx,TX)железно прописаны и переназначить их нельзя, а вот оставшиеся вроде можно, но не смог найти как. Ну во-первых: Зачем обманывать? Можно работать с COM-портом без управления потоком (см. SetCommState()), а изменение ножки CTS (да и любой другой) ловить через WaitCommEvent(). А во-вторых: Часто GPS-приёмники (с UART-интерфейсом) синхронизируют начало выдачи данных по TXD с сигналом PPS. Так что может и CTS не нужен (смотря где, под RTOS - не нужен, можно получать PPS по TXD). А в-третьих: Самая главная проблема под виндой будет то, что винда - не RTOS (не ОС реального времени). А значит на уровне прикладной задачи ни о каком гарантированном времени реакции на аппаратное событие (шевеление ноги CTS или шевеление TXD) нельзя говорить. И если нужно такое время реакции, то тогда нужно спускаться на уровень драйверов и писать свой драйвер. Имха. PS: Про USB я вообще молчу - там кроме времени реакции прикладной задачи на аппаратное событие (внутри ОС), есть ещё и время реакции на сигнал чипа USB-UART и время передачи этим чипом сообщения о событии через всю цепочку USB-хабов к хосту (время это - неопределённое). И о наносекундах и даже о мкс - можно вообще сразу забыть, а о мс думать только если ваше устройство - единственное на USB-хабе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gvozdidir 0 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба 12 minutes ago, Vladivolt said: А если переосмыслить задачу? Не "обмануть драйвер", а сконфигурировать либо пересобрать ту программу, которая потребляет данные от драйвера. Чтобы она ожидала импульсы pps не по DCD но CTS. пересобрать чужой NTP можно, и наверное, так и придется сделать. Но скорее всего не поможет, так как DCD работает по особому прерыванию, а задержка по прерыванию CTS мне кажется, совсем другая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gvozdidir 0 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба 10 minutes ago, jcxz said: А во-вторых: Часто GPS-приёмники (с UART-интерфейсом) синхронизируют начало выдачи данных по TXD с сигналом PPS. Так что может и CTS не нужен (смотря где, под RTOS - не нужен, можно получать PPS по TXD). А в-третьих: Самая главная проблема под виндой будет то, что винда - не RTOS (не ОС реального времени). А значит на уровне прикладной задачи ни о каком гарантированном времени реакции на аппаратное событие (шевеление ноги CTS или шевеление TXD) нельзя говорить. И если нужно такое время реакции, то тогда нужно спускаться на уровень драйверов и писать свой драйвер. Имха. Я для того картинки и приложил, существенная разница с сигналом DCD и без под виндой. Да, ОС не реального времени, но мне хватает. Сам приемник по TxD не может дать толковый pps так как привязан к обслуживающему ее контроллеру, как правило АРМ с не самым стабильным тактовым генератором, а вот PPS он генерит от коррелятора с высокостабильным генератором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 22 августа, 2019 Опубликовано 22 августа, 2019 · Жалоба Я правильно понимаю, что борьба идет за реализацию fudge??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gvozdidir 0 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 9 hours ago, gosha-z said: Я правильно понимаю, что борьба идет за реализацию fudge??? именно. Устройство предполагается метрологическим. Поэтому стремлюсь выжать самый сок. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 182 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 20 часов назад, Gvozdidir сказал: Да, ОС не реального времени, но мне хватает. А теперь попробуйте посвёртывать/поразворачивать различные окошки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 2 hours ago, Gvozdidir said: именно тыц Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gvozdidir 0 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 9 minutes ago, gosha-z said: тыц Так я так и сделал, для точной pps использовал DCD. Но на платах которые в будущем предполагается использовать нет DCD, есть только (Rx,Tx,CTS,RTS), хочу переназначить драйвер Com порта, чтобы CTS воспринимал как DCD. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 20 hours ago, Gvozdidir said: Сам приемник по TxD не может дать толковый pps так как привязан к обслуживающему ее контроллеру, как правило АРМ с не самым стабильным тактовым генератором, а вот PPS он генерит от коррелятора с высокостабильным генератором. наверное можно завести PPS прямо на RX (второго порта)? с правильной полярностью и возможно его удлиннить придётся. а у Rockchipa таймеры есть для правильного захвата pps. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gvozdidir 0 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 54 minutes ago, jcxz said: А теперь попробуйте посвёртывать/поразворачивать различные окошки. Хехе, пробовал и открывать и закрывать, и боевую задачу запускал, распознавания, сжатия и распихивание по сети видео. с использованием DCD см. первый рисунок, не было. Статистику собирал месяц, результат просто отличный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gvozdidir 0 23 августа, 2019 Опубликовано 23 августа, 2019 · Жалоба 6 minutes ago, _pv said: наверное можно завести PPS прямо на RX (второго порта)? с правильной полярностью и возможно его удлиннить придётся. а у Rockchipa таймеры есть для правильного захвата pps. У меня программисты заняты другими задачами, и пока я не докажу им что это работает на винде, за Рокчип и не возьмутся, чтобы не распыляться, по таймерам на Рокчипе не задумывался, тут тоже может быть и проблема. Насчет второго порта возможно хорошая идея, но вижу нюанс, он скорее всего не поймет, что я подаю PPS на RX, так как ждет ее именно с DCD. Покурю мануал, может что и получится... мой конфиг для NTP сервера: server 127.127.20.4 mode 80 minpoll 3 maxpoll 3 iburst prefer #80-скорость RS-232 ->115200 fudge 127.127.20.4 flag1 1 flag3 1 Flag2 1 server 127.127.22.4 mode 80 minpoll 4 fudge 127.127.22.4 flag3 1 #flag2 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться