Перейти к содержанию
    

8 датчиков MMA8451Q на 1 USB

Здравствуйте!

Столкнулся с такой проблемой: нужно подключить 8 датчиков ММА8451Q к одному USB. При этом на датчики воздействуют различные помехи и нужно их минимизировать и при возникновении выявлять. Датчики соединяются с USB MK по интерфейсу I2C.

 

Чтение данных происходит с частотой 800 Гц. Предполагается выявлять ошибки в данных путем чтения с частотой в три раза чаще. То есть микросхема выдает данные с частотой 800 Гц, а мы читаем с частотой 2400 Гц - три значения сравниваем между собой, если есть 2 одинаковых, считаем их верными.

 

Есть два варианта реализации:

 

1) Необходимо 8 I2C, значит придется их эмулировать программно.

 

2) Прямо на датчик приделать МК с I2C, а на USB MK слать данные по UART

 

Вопрос, какой вариант лучше с точки зрения помехозащищенности? Длина кабеля от датчика до USB MK 2 метра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Необходимо 8 I2C, значит придется их эмулировать программно.

 

2) Прямо на датчик приделать МК с I2C, а на USB MK слать данные по UART

Вопрос, какой вариант лучше с точки зрения помехозащищенности? Длина кабеля от датчика до USB MK 2 метра.

Первый вариант дешевле и аппаратно проще, но придется писать программную эмуляцию I2C для МК.

Второй вариант - дороже, сложнее и для такого расстояния явно избыточен. Лично я за первый вариант.

Замечание: USB не даст вам хорошей надежности. Для офисного/домашнего применения он, может, и подойдет. Для серьезных задач - нет, почти наврняка. Почему вы выбрали именно USB ?

P.S. Я, кстати, так и не понял, когда данные должны портиться ? В процессе передачи их по I2C ? Почему вы думаете, что они испортятся ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не 8 а 4 I2C (смотрите вход SA0). 74HC4052 поставите или программно 4 штуки I2C на одном порту сделаете.

Вопрос, какой вариант лучше с точки зрения помехозащищенности? Длина кабеля от датчика до USB MK 2 метра.

Делать столь медленный I2C, что он будет работать на двухметровом проводе Вам не позволит требуемый период опроса. Так что локальный преобразователь-микроконтроллер с выходом на дифсигнал (MAX3485) и какой-то арбитраж. ВОзможно, просто тем же мультиплекстором, но коммутирующим UART.

Два метра - это как? Восемь датчиков звездой с радиусом два метра? Или все в куче - а потом по двухметровому кабелю к USB?

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Первый вариант дешевле и аппаратно проще, но придется писать программную эмуляцию I2C для МК.

Второй вариант - дороже, сложнее и для такого расстояния явно избыточен. Лично я за первый вариант.

Замечание: USB не даст вам хорошей надежности. Для офисного/домашнего применения он, может, и подойдет. Для серьезных задач - нет, почти наврняка. Почему вы выбрали именно USB ?

P.S. Я, кстати, так и не понял, когда данные должны портиться ? В процессе передачи их по I2C ? Почему вы думаете, что они испортятся ?

помехи вызваны работой электрокоагулятора рядом с датчиками т.е да, в процессе передачи по I2C.

с USB потом разберемся

 

Не 8 а 4 I2C (смотрите вход SA0). 74HC4052 поставите или программно 4 штуки I2C на одном порту сделаете.

скорости I2C не хватит, на 400 кГц считывание данных занимает 0,3 мс. период выдачи данных 1,25 мс (800 Гц), а надо одни и теже данные 3 раза считать т.е. 0,9 мс

 

Делать столь медленный I2C, что он будет работать на двухметровом проводе Вам не позволит требуемый период опроса. Так что локальный преобразователь-микроконтроллер с выходом на дифсигнал (MAX3485) и какой-то арбитраж. ВОзможно, просто тем же мультиплекстором, но коммутирующим UART.

Два метра - это как? Восемь датчиков звездой с радиусом два метра? Или все в куче - а потом по двухметровому кабелю к USB?

звездой 8 датчиков, каждый на 2-х метровом проводе

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помехи вызваны работой электрокоагулятора рядом с датчиками т.е да, в процессе передачи по I2C.

с USB потом разберемся

...

Реально, при наличии серъезных помех, придется все время разбираться с USB. Смотрите в сторону Ethernet.

 

...1) Необходимо 8 I2C, значит придется их эмулировать программно...

Или использовать FPGA. Сейчас достаточно просто реализовать Ethernet на FPGA.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...При этом на датчики воздействуют различные помехи...

...работой электрокоагулятора рядом с датчиками...

...нужно подключить 8 датчиков ММА8451Q к одному USB...

Не знаю, насколько велики помехи от машины, но USB и помехи - слишком ненадежная связка. Работы частотного преобразователя в полуметрах от экранированого USB кабеля может быть достаточно для того, чтобы USB отвалился. И лечится сие лишь передергиванием шнурка. Мощные контакторы - тоже неплохой источник помех. Так что в промышленых условиях лучше отказаться от USB.

 

различные помехи и нужно их минимизировать и при возникновении выявлять
Если бы такая задача стояла передо мной, я снабдил бы каждый датчик копеечным процом и драйвером RS-485. Все датчики завел непосредственно на комп с конвертором или, если есть необходимость, через отдельный "мозг" с двумя RS485. Судя по всему, у Вас трафик вполне способен "пролезть" через COM Port. Если не хватит скорости 115кбит, то доп. карточка позволит обзавестись портами около 1мбит.

 

помехи нужно минимизировать и при возникновении выявлять
Эта задача как раз ложится на RS485 и какой-нибудь протокол с CRC, например, Modbus.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если бы такая задача стояла передо мной, я снабдил бы каждый датчик копеечным процом и драйвером RS-485. Все датчики завел непосредственно на комп с конвертором или, если есть необходимость, через отдельный "мозг" с двумя RS485. Судя по всему, у Вас трафик вполне способен "пролезть" через COM Port. Если не хватит скорости 115кбит, то доп. карточка позволит обзавестись портами около 1мбит.

 

Эта задача как раз ложится на RS485 и какой-нибудь протокол с CRC, например, Modbus.

датчик должен быть как можно меньше и легче. приведите пожалуйста пример копеечного проца и драйвера RS-485

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например STM8 + ST485, но мне mega48 роднее.

 

P.S.

При силных помехах лучше добавить гальваноразвязку. Это конечно - удорожание.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаю, насколько велики помехи от машины, но USB и помехи - слишком ненадежная связка. Работы частотного преобразователя в полуметрах от экранированого USB кабеля может быть достаточно для того, чтобы USB отвалился. И лечится сие лишь передергиванием шнурка.

USB не может упасть таким образом, чтобы потребовалось передергивать шнурок. Во всяком случае, при условии, что мы контролируем device, т.е. сами пишем его код. Сам протокол вполне себе дуроустойчивый.

 

Тот факт, что вы (по всей видимости) встречали кривые девайсы которым требуется периодическое перевтыкание не значит, что ЮСБ не надежный.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например STM8 + ST485, но мне mega48 роднее.

довольно громоздко будет

 

Делать столь медленный I2C, что он будет работать на двухметровом проводе Вам не позволит требуемый период опроса.

что вы имеете ввиду? I2C не будет работать на полной скорости (400 kHz) при 2-х метровом проводе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

USB не может упасть таким образом, чтобы потребовалось передергивать шнурок. Во всяком случае, при условии, что мы контролируем device, т.е. сами пишем его код. Сам протокол вполне себе дуроустойчивый.

 

Тот факт, что вы (по всей видимости) встречали кривые девайсы которым требуется периодическое перевтыкание не значит, что ЮСБ не надежный.

:biggrin: :biggrin: :biggrin:

Насмешили! Вы это правда о USB пишете?

Я бы сказал так: тот факт, что Вам попадались устройства, которым не потребовалось "перевтыкание", ещё не говорит о надёжности USB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:biggrin: :biggrin: :biggrin:

Насмешили! Вы это правда о USB пишете?

Я бы сказал так: тот факт, что Вам попадались устройства, которым не потребовалось "перевтыкание", ещё не говорит о надёжности USB.

Ну обрисуйте ситуацию на шине, при которой может потребоваться перевтыкание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну обрисуйте ситуацию на шине, при которой может потребоваться перевтыкание.

Я Вам не на шине, а на пальцах обрисую ситуацию. ;)

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

И думаете: "перевтыкать" или перезапускать?

Ещё интереснее, когда компьютер удалённый. И надо бросить всё и ехать, чтобы "перевоткнуть".

И Вас мало волнует, что там на шине за ситуация такая. Хорошо ещё, если ущерб восполнимый.

Или вот пример, банальнейший житейский случай.

На компьютере 9(!) гнёзд USB. Два на передней панели, два сзади торчат прямо из материнки, остальные - на PCI карте-расширителе. Постепенно "умирают" все.

Кроме одного из двух на передней панели. Дошло до того, что мышку некуда воткнуть. Помня, что 90% проблем с USB - это плохие контакты, чищу, мою, подгибаю...

Не помогает. Ещё незадействованным остаётся разъём на материнке, куда можно подключить два порта. Подключаю. Оба работают. Тогда меняю местами кабеля на материнке, идущие от гнёзд USB передней панели и только что подключенный. Теперь работают все 4 гнезда, в том числе то, что напрочь отказывалось до сих пор.

Карту расширения уже собираюсь выбросить. Напоследок переставляю в соседний слот. Вуаля! Все пять её портов работают.

Другой пример, менее житейский. Покупаем USB-камеру у Thorlabs, недёшево. В комплекте с ней - кабель. Включаем, не работает. Что только ни делаем, переставляем драйвера, проводим всякие манипуляции с компьютером, следуя указаниям службы техподдержки... Не помогает. Решаем, что камера неисправна, поставшик присылает другую. Тоже с кабелем. Подключаем - ОК. Подключаем первую через "новый" кабель - тоже работает. Кабель виноват? Подключаем "новую" через "старый" кабель - работает. Возвращаем всё назад - ни в какую....

И это только малая часть. А Вы мне ещё про надёжность USB порасскажите....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А Вы мне ещё про надёжность USB порасскажите....

COM-порт, наверное, кому-то очень мешает, раз его пытаются уже не один год отправить на свалку истории (совершенно незаслуженно отправить, кстати). Вместо этого предлагают его ущербную эмуляцию через USB. Барахло да и только. Хорошо хоть мультипортовки с ностоящими COM-портами еще можно купить ...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я Вам не на шине, а на пальцах обрисую ситуацию. ;)

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

И думаете: "перевтыкать" или перезапускать?

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

 

Шина тут при чем? Сама по себе она обеспечивает нормальную надежность. Вы с протоколом знакомы, или так, на пальцах? Вы звиняйте, я в год 15К девайсов продают которые работают 24/7 много лет подряд, будучи подключены через ЮСБ.

 

А расказывать такие анекдоты тут не место. Все ж таки форум электронщиков, а не домохозяек. Давайте еще раскажите о ваших проблемах с сетевым роутером и на этом основании скажите что и езернет фуфло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...