Jump to content

    
Sign in to follow this  
Almaz1988

Разработка печатной платы лазерного дальномера на FPGA. Пикосекундный таймер.

Recommended Posts

Добрый день.

Разрабатываем складской робот. Одна из задач, которую требуется решить, - измерение расстояния до окружающих предметов на расстояниях от 40 см до 5 метров независимо от освещенности, времени суток, типа окружающих предметов с возможностью детектировать довольно миниатюрные помехи, такие как стойки стеллажей. Ультразвуковые сенсоры не подошли из-за разрешения. Остановились на применении импульсного лазера и APD диода.

Смотрели в сторону готовых (out of box) решений, наподобие TOF конвертера TDC7200. Нашли даже опен сорс решение на базе данного чипа.

Но, к сожалению, нижний предел измерения у данной микросхемы 12 нС, что соответствует минимально измеримому расстоянию в 1.8 метра. 

Дальнейшее гугление показало, что меньших временных слотов времени можно добиться реализовав пикосекундный таймер на FPGA, - разрешение 60 пС, - для нашей задачи - "за глаза". На таком способе решения задачи решили и остановиться.

 

Таким образом, необходимо разработать принципиальную схему и печатную плату лазерного дальномера на базе FPGA и APD лазера. Измерение времени между отправкой имульса лазером и приема отраженного сигнала APD лазером - задача FPGA.

ПЛИС - смотрю в сторону Lattice ICE40 в силу их дешевизны. Корпус - LQFP или BGA, но в случае BGA - шаг не менее 0.8 мм.

За основу думаю взять схему опен сорс платы unruly либо отладочной платы EPC9126. Если вдруг найдется инженер, который НА ПРАКТИКЕ занимался отладкой железа для измерения расстояния связкой импульсный лазер + APD диод - идеально!

IDE для разработки - Altium. База компонентов - Vault. Доступ к базе будет предоставлен. Все компоненты строго - из базы. 

 

Присылайте пожалуйста ваши отклики на почту almaz.khamidullin@m2m-tele.com, если вы НА ПРАКТИКЕ занимались отладкой подобного железа. В письме укажите пожалуйста стоимость и сроки разработки платы.

Share this post


Link to post
Share on other sites

У ST есть готовые датчики: https://www.st.com/en/imaging-and-photonics-solutions/proximity-sensors.html

Чем они Вам не подошли?

PS: пикосекундный таймер на выбранных ПЛИС реализовать не получится, не та рабочая частота.

Share this post


Link to post
Share on other sites
14 minutes ago, bzx said:

Да, подтверждаю и рекомендую. Как раз работаем с VL53L1X. 

А какая у них реальная дальность?
В своё время хотели поставить в прибор для измерения высоты потолка помещения, но отказались почитав документацию -- вроде как не хватало дальности.

 

На счёт задачи Almaz1988 -- если вся проблема в минимум 12нс задержке, то кто мешает вычесть эти 12нс аналоговым образом? Это намного проще, чем реализовывать пикосекундные таймеры в ПЛИС.

Share this post


Link to post
Share on other sites
26 minutes ago, bzx said:

Да, подтверждаю и рекомендую. Как раз работаем с VL53L1X.

Судя по даташиту, keepout cone, равный 36 градусам, не позволит понять где именно у стеллажа ножки.

2 hours ago, makc said:

У ST есть готовые датчики: https://www.st.com/en/imaging-and-photonics-solutions/proximity-sensors.html

Чем они Вам не подошли?

PS: пикосекундный таймер на выбранных ПЛИС реализовать не получится, не та рабочая частота.

Почему нет?

Quote

The input 10MHz reference clock from Rb atom clock is quite stable but not high enough for interpolating. With built-in DCM on FPGA, it is synthesized into 200MHz.

Судя по реализации TimeToDigitalConverter на Virtex-4 синхронизация производилась на частоте 200 МГц. У ICE40 PLLOUT можно выставить до 275 МГц.

Share this post


Link to post
Share on other sites

Задача решается без ухода в пикосекундную область.

Промодулируйте сигнал лазера и по сдвигу фазы ответного сигнала определите расстояние. 

Если уж совсем заморочиться, то можно свертку сигнала сделать.

Это же задача лазерной рулетки. Поставьте лазерную рулетку на вращающуюся станину и получите пробный макет. А дальше уж посмотрите. Сдвиг фазы можно определить вполне аналоговыми методами, без высокоскоростных АЦП и прочих пикосекунд.

Share this post


Link to post
Share on other sites
2 часа назад, ivan2006 сказал:

А какая у них реальная дальность?

Чуть больше 3м получили. Но мы пытаемся сделать бытовой дальномер-датчик для "умного дома". Влияет температура, засветка... Честно говоря, не совсем в восторге...

2 часа назад, Almaz1988 сказал:

Судя по даташиту, keepout cone, равный 36 градусам, не позволит понять где именно у стеллажа ножки.

VL53L1X - это дальномер. А Вам, как понимаю, нужен 3D-сканер... Про вращающуюся станину Вам уже сказали.

Share this post


Link to post
Share on other sites
4 hours ago, Almaz1988 said:

Смотрели в сторону готовых (out of box) решений, наподобие TOF конвертера TDC7200. Нашли даже опен сорс решение на базе данного чипа.

Но, к сожалению, нижний предел измерения у данной микросхемы 12 нС, что соответствует минимально измеримому расстоянию в 1.8 метра. 

раз TDC7200 не устраивает только по минимальному времени, неужели в складском роботе не найдётся места куда 2м свернутого кабеля положить для линии задержки на 10нс, ну или DS1100 какой-нибудь.

Share this post


Link to post
Share on other sites
17 часов назад, Almaz1988 сказал:

Почему нет? 

Судя по реализации TimeToDigitalConverter на Virtex-4 синхронизация производилась на частоте 200 МГц. У ICE40 PLLOUT можно выставить до 275 МГц.

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

Я вижу две проблемы: стабильность опорного тактового генератора и стабильность магазина задержек, которые они предлагают реализовать на элементах carry chain. При этом они не учитывают разброс задержек в цепях синхронизации триггеров и разброс параметров триггеров. Причём при изменении напряжения питания ПЛИС и температурного режима эти параметры будут плыть довольно сильно. Как Вы планируете бороться с этими эффектами?

И, кстати, сходу не нашел временных параметров carry chain для iCE40, поэтому достижимая величина цены деления на них - вопрос открытый.

Share this post


Link to post
Share on other sites
16 hours ago, _pv said:

раз TDC7200 не устраивает только по минимальному времени, неужели в складском роботе не найдётся места куда 2м свернутого кабеля положить для линии задержки на 10нс, ну или DS1100 какой-нибудь.

в смысле перед STOP пином TDC7200 воткнуть DS1100 ?

Share this post


Link to post
Share on other sites
21 hours ago, Almaz1988 said:

измерение расстояния до окружающих предметов на расстояниях от 40 см до 5 метров независимо от освещенности, времени суток, типа окружающих предметов с возможностью детектировать довольно миниатюрные помехи, такие как стойки стеллажей.

Сделать измерение не зависимо от типа окружающих предметов в принципе невозможно.

Для начала нужно указать пределы размеров предметов которые являются целями.

Указать какое время отведено на измерение, какой угол обзора.

Этого достаточно для начала дискуссии.

Применение TOF не ограничивается только измерением времени. Нужно еще понять где собственно сигнал в ответе. Настройка по фронту импульса будет работать при небольших изменения расстояния и отражающей способности предметов. Я работал с измерителями на тысячи метров. У них определеется центр масс отклика, соответсвенно нужно АЦП, плавающий порог, накопление измерений и т.д.

Если выбрать лазер "не вредный" и вкачать достаточную мощность, то вероятно можно работать с компаратором по фронту.

В ПЛИС Xilinx есть блоки для работы с высокоскоростными сигналами IODELAY2 и ISERDES.

https://www.xilinx.com/support/answers/35783.html

Их можно приспособить для измерения. Но в "дешевых" Spartan эти времена термозависимы и требуют рекалибровку. Virtex еще дороже. 

 

Share this post


Link to post
Share on other sites
21 час назад, Almaz1988 сказал:

... на расстояниях от 40 см до 5 метров... Ультразвуковые сенсоры не подошли из-за разрешения.

Скажите, а какое разрешение требуется? Вероятно, менее 1мм?

Share this post


Link to post
Share on other sites

Дифференциальный датчик, т.е. относительно эталона,— теоретически достаточно 8-разрядного микроконтроллера с 10-разрядным АЦП.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this