Как устройство (видеорегистратор) распознает, подключено ли оно к компьютеру или источнику питания? [закрыто]

У меня есть видеорегистратор A118, который я хочу интегрировать с Pi.

Я хочу записывать на нем установленную SD-карту во время вождения, и когда вы вернетесь домой в зоне действия Wi-Fi, чтобы загрузить файлы с SD-карты через Pi в мою домашнюю сеть.

Эта камера, когда она подключена к источнику 5 В на прикуривателе моего автомобиля, камера запускается запись прямо сейчас.

Когда я подключаю его к компьютеру, он запрашивает (на экране видеорегистратора), работать ли в режиме «Mass Storage» или «PC Camera».

В этом видео показано, как проблема другой камеры была решена путем изолирования клемм TX и RX от соединения.

Как работает камера (или обычное USB-устройство, например, телефон) ) знать, подключен ли он к простому источнику питания или к компьютеру?

Кроме того, как я могу затем использовать этот факт для управления видеорегистратором, чтобы при выходе за пределы моего диапазона Wi-Fi он записывал как когда подаётся только питание, и когда он находится в диапазоне Wi-Fi, он должен вернуться в режим «Mass Storage», чтобы Pi мог Обращайтесь к видеофайлам и передавайте их.

Я думаю, реле будут работать, но их большой размер не делает это практичным. Будет ли оптопары лучшей альтернативой, или я могу изучить другие предложения?


$ begingroup $

Спецификация зарядки аккумулятора USB используется многими устройствами USB для определения типа порта, к которому они подключены.

Основными типами портов являются …

Выделенный порт для зарядки: зарядное устройство указывает, что это выделенный порт для зарядки, путем замыкания линий D + и D- вместе.

Стандартный нисходящий порт: порт USB, поддерживающий ток зарядки до 500 мА ( для порта USB 2.0) плюс данные USB. Устройство выполняет перечисление на шине USB, чтобы определить, сколько тока оно может потреблять. Поле bMaxPower в дескрипторе устройства USB используется для запроса питания у хоста.

Нисходящий порт зарядки: порт USB, который поддерживает ток зарядки до 1,5 А, а также данные USB. Устройство определяет, что оно подключено к CDP, сначала переключая D-линию. Если линия D + отслеживает линию D-, значит, устройство знает, что оно подключено к зарядному устройству. Затем устройство выполняет вторичное обнаружение, переключая линию D +. Если линия D остается на низком уровне, то устройство знает, что линии не закорочены, поэтому его необходимо подключить к выходному порту зарядки.

http://www.usb.org/developers/ docs/devclass_docs/batt_charging_1_1.zip

$ endgroup $


Используется спецификация зарядки аккумулятора USB многими USB-устройствами, чтобы определить, к какому типу порта они подключены.

Основными типами портов являются …

Выделенный порт для зарядки: зарядное устройство указывает, что это специальный порт для зарядки путем замыкания линий D + и D- вместе.

Стандартный нисходящий порт: порт USB, поддерживающий ток зарядки до 500 мА (для USB 2. 0), плюс данные USB. Устройство выполняет перечисление на шине USB, чтобы определить, сколько тока оно может потреблять. Поле bMaxPower в дескрипторе устройства USB используется для запроса питания у хоста.

Нисходящий порт зарядки: порт USB, который поддерживает ток зарядки до 1,5 А, а также данные USB. Устройство определяет, что оно подключено к CDP, сначала переключая D-линию. Если линия D + отслеживает линию D-, значит, устройство знает, что оно подключено к зарядному устройству. Затем устройство выполняет вторичное обнаружение, переключая линию D +. Если линия D остается на низком уровне, то устройство знает, что линии не закорочены, поэтому его необходимо подключить к выходному порту зарядки.

http://www.usb.org/developers/ docs/devclass_docs/batt_charging_1_1.zip


$ begingroup $

Чтобы быть очень кратким, USB-устройства делают использование линий D +/D- для определения того, подключены ли они к USB-хосту или зарядному устройству.

Если вы хотите, чтобы устройство переключалось между двумя описанными вами режимами, я мог бы Предлагаем использовать микросхему мультиплексора USB 2: 1, такую ​​как FSUSB43, подключенную к gpios Raspberry Pi. Что-то вроде этого:

Как @dwizum указал в комментарий ниже, вам также потребуется добавить транзистор на линию 5V VBUS, идущую к видеорегистратору, чтобы выключить и включить его, поскольку переключение только D +/D- может привести к неопределенному поведению. Для упрощения, включение и выключение и выключение линии VBUS на USB-устройство при переключении заставит его быть готовым к новому открытию.

Оттуда вы можете легко написать свои собственные скрипты, работающие на Raspberry Pi, изменив состояния этих GPIOS, возможно, с помощью WiringPi, на основе различных событий, таких как список доступных точек доступа Wi-Fi.

$ endgroup $


Чтобы быть очень кратким, USB-устройства используют линии D +/D-, чтобы определить, подключены ли они к USB-хосту или зарядному устройству.

Если вы хотите, чтобы устройство переключалось между двумя описанными вами режимами, я мог бы предложить использовать микросхему мультиплексора USB 2: 1, такую ​​как FSUSB43, подключенную к gpios Raspberry Pi. Примерно так:

Как @dwizum указал в комментарий ниже, вам также потребуется добавить транзистор на линию 5V VBUS, идущую к видеорегистратору, чтобы выключить и включить его, поскольку переключение только D +/D- может привести к неопределенному поведению. Для упрощения, включение и выключение и выключение линии VBUS на USB-устройство при переключении заставит его быть готовым к новому открытию.

Оттуда вы можете легко написать свои собственные скрипты, работающие на Raspberry Pi, изменив состояния этих GPIOS, возможно, с помощью WiringPi, на основе различных событий, таких как список доступных точек доступа Wi-Fi.


$ begingroup $

Как камера (или обычное USB-устройство , как и телефон) знаете, подключен ли он к простому источнику питания или к компьютеру?

USB имеет 4 соединения: 2 для питания 5 В и 2 для данных.

Адаптер питания обычно не реагирует на сигналы в линиях передачи данных (за исключением протоколов быстрой зарядки, но это более высокий уровень обнаружения, чем передаваемые данные).

ПК действительно реагирует на сигналы в линиях передачи данных. Камера может запросить USB-соединение, а затем ПК удовлетворит этот запрос (или нет). Будет произведен обмен некоторой информацией.

Таким образом, камера просто «разговаривает» по линиям данных USB, как только обнаруживает питание на входе USB. Если нет ответа, значит, это «тупой» блок питания. Если есть ответ, это должен быть ПК (USB-хост).

Управление поведением камеры в зависимости от доступности Wi-Fi — это то, что может выполняться программным обеспечением (прошивкой), работающим внутри камера. В общем, вы не можете и не должны этого менять. Сделайте ошибку, и камера станет бесполезной (неработоспособной).

$ endgroup $


Как камера (или обычное USB-устройство, например телефон) узнает, подключена ли она к простому источнику питания или к компьютеру?

USB имеет 4 соединения: 2 для источника питания 5 В и 2 для передачи данных.

Адаптер питания обычно не реагирует на сигналы в линиях передачи данных (за исключением протоколов быстрой зарядки, но это больше определение уровня, чем данные передаются).

ПК действительно реагирует на сигналы в линиях данных. Камера может запросить USB-соединение, а затем ПК удовлетворит этот запрос (или нет). Будет произведен обмен некоторой информацией.

Таким образом, камера просто «разговаривает» по линиям данных USB, как только обнаруживает питание на входе USB. Если нет ответа, значит, это «тупой» блок питания. Если есть ответ, это должен быть ПК (USB-хост).

Управление поведением камеры в зависимости от доступности Wi-Fi — это то, что может выполняться программным обеспечением (прошивкой), работающим внутри камера. В общем, вы не можете и не должны этого менять. Совершите ошибку, и камера станет бесполезной (неработоспособной).


$ begingroup $

Вы можете попробуйте отключить/включить USB-порты Raspberry в зависимости от того, хотите ли вы, чтобы камера обнаруживала соединение для передачи данных,

Чтобы отключить питание на USB-портах (это выключает питание также Ethernet):

echo '1-1' | sudo tee/sys/bus/usb/drivers/usb/unbind

Чтобы снова включить питание

echo '1- 1 '| sudo tee/sys/bus/usb/drivers/usb/bind

(https://www.raspberrypi.org/forums/viewtopic. php? t = 172313 # p1217773)

IIRC, по крайней мере, на старых Pi это не отключило бы линии питания USB-портов, а только питание микросхемы USB/Ethernet Pi, эффективное отключение любого обмена данными и перечисления на этих портах USB/Ethernet; устройство, подключенное к одному из отключенных портов, не сможет обнаружить, что оно подключено к чему-либо, кроме источника питания USB.

$ endgroup $


Вы можете попробовать отключить/включить USB-порты Raspberry в зависимости от того, хотите ли вы, чтобы камера обнаруживала соединение для передачи данных,

Чтобы отключить питание USB-портов (это также отключает питание Ethernet):

echo '1-1' | sudo tee/sys/bus/usb/drivers/usb/unbind

Чтобы снова включить питание

echo '1- 1 '| sudo tee/sys/bus/usb/drivers/usb/bind

(https://www.raspberrypi.org/forums/viewtopic.php?t= 172313 # p1217773)

IIRC, по крайней мере, на старых Pi это не отключило бы линии питания USB-портов, а только подало бы питание на микросхему USB/Ethernet Pi, эффективно отключив все и все коммуникации и перечисление на этих портах USB/Ethernet; устройство, подключенное к одному из отключенных портов, не сможет обнаружить, что оно подключено к чему-либо, кроме источника питания USB.


$ begingroup $

USB-устройства (и особенно видеорегистраторы) являются интеллектуальными устройствами. Когда они подключены к хосту USB, хост выполняет перечисление и выполняет все остальные действия интерфейса USB. И USB-устройство отмечает это.

При подключении к тупому зарядному устройству нет перечисления/связи USB. Вот как видеорегистратор/все, что знает разницу.

Что касается реальной проблемы, почему видеорегистратор не записывает внутреннюю запись при подключении к функциональному USB-хосту, это вопрос разработки программного обеспечения видеорегистратора — это так. разработан таким образом. Очевидно, что когда вы перерезаете провода D +/D- в соединении ПК с видеорегистратором (не Tx и Rx !!!), связь по USB прекращается, и видеорегистратор переходит в стандартный режим с питанием от зарядного устройства.

$ endgroup $


USB-устройства (и особенно видеорегистраторы) являются интеллектуальными устройствами. Когда они подключены к хосту USB, хост выполняет перечисление и выполняет все остальные действия интерфейса USB. И USB-устройство отмечает это.

При подключении к тупому зарядному устройству нет перечисления/связи USB. Вот как видеорегистратор/все, что знает разницу.

Что касается реальной проблемы, почему видеорегистратор не записывает внутреннюю запись при подключении к функциональному USB-хосту, это вопрос разработки программного обеспечения видеорегистратора — это так. разработан таким образом. Очевидно, что когда вы перерезаете провода D +/D- в соединении ПК с видеорегистратором (не Tx и Rx !!!), связь по USB прекращается, и видеорегистратор переходит в стандартный режим с питанием от зарядного устройства.

Оцените статью
techsly.ru
Добавить комментарий