【導讀】本文探討ADI公司新推出且擁有廣泛市場的LIDAR原型制作平臺,以及它如何通過提供完整的硬件和軟件解決方案,使得用戶能夠建立其算法和自定義硬件解決方案的原型,從而幫助客戶縮短產品開發(fā)時間;詳細介紹模塊化硬件設計,包括光接收和發(fā)送信號鏈、FPGA接口,以及用于長距離感測的光學器件;介紹系統(tǒng)分區(qū)決策,以凸顯良好的系統(tǒng)設計、接口定義和合適的模塊化分級的重要性;描述開源LIDAR軟件堆棧的組件和平臺定制的API,顯示客戶在產品開發(fā)期間如何受益,以及如何將這些產品集成到其最終的解決方案中。
簡介
隨著自動駕駛汽車和機器人從想象逐漸變?yōu)楝F(xiàn)實,汽車和工業(yè)客戶開始尋求新的環(huán)境感知解決方案,力圖讓這些機器能夠自動導航。LIDAR是該領域中發(fā)展最快的技術之一,隨著它越來越成熟和可靠,其應用范圍也變得更加廣泛,帶來了巨大的市場機遇。許多初創(chuàng)企業(yè)和知名傳感器公司都致力于開發(fā)更加精準、功耗低、尺寸小,且更加經濟高效的LIDAR傳感器,但在設計系統(tǒng)硬件、實施軟件基礎設施以和系統(tǒng)中的所有組件通信時,他們都遇到了同樣的挑戰(zhàn)。正是在這些區(qū)域,ADI能夠通過軟件參考設計和開源軟件堆棧提供價值,令客戶能夠輕松將ADI LIDAR產品系列、軟件模塊和HDL IP集成到其產品和IC中,從而縮短上市時間。
系統(tǒng)架構
客戶在開發(fā)自己的LIDAR傳感器時,系統(tǒng)設計中會存一些不同之處:接收和發(fā)送光學器件、激光器的數(shù)量和方向、激光發(fā)射模式、激光束控制,以及光接收元件的數(shù)量。但是,不管做出什么選擇,在接收信號鏈和激光器驅動信號要求方面,所有傳感器都高度相似?;谶@些假設,ADI公司設計出模塊化LIDAR原型制作平臺AD-FMCLIDAR1-EBZ,以期讓客戶能夠使用他們自己的硬件輕松配置或更換器件;該平臺根據(jù)特定的應用要求設計,但仍可以用作整個系統(tǒng)。該系統(tǒng)可以分為三個不同的電路板,每個都配備標準化的數(shù)字和模擬接口:
? 數(shù)據(jù)采集(DAQ)電路板,包含高速JESD204B ADC、對應的時鐘和電源。此電路板上有一個符合FMC要求的接口,可以連接至用戶首選的FPGA開發(fā)板。它充當系統(tǒng)的基板,通過用于在這些板和FPGA之間路由控制和反饋信號的數(shù)字連接器,以及用于傳輸模擬信號的同軸電纜,將另外兩個板連接至這個板。
? 包含雪崩光電探測器(APD)的光傳感器和整個信號鏈的模擬前端(AFE)電路板,信號鏈用于調諧APD輸出信號,以便能饋入DAQ板上的ADC。
? 包含激光器和驅動電路的激光器板。
和以往一樣,在系統(tǒng)設計中,模塊化意味著靈活性,但它也有一些缺點,比如復雜性增加、性能下降和成本增加,在決定系統(tǒng)分區(qū)時必須全面評估這些缺點。在這種情況下,系統(tǒng)被分成三個板,原因如下:
? 無論使用哪種模擬前端,選擇哪種激光器解決方案,ADC和時鐘很可能保持不變。
? 模擬前端硬件設計和尺寸根據(jù)所選的APD、整體的系統(tǒng)接收靈敏度,以及選擇的光學器件而變化。
? 激光器板設計和尺寸根據(jù)所選的照明解決方案和光學器件而變化。
? 對于接收器和發(fā)射器的位置和方向,系統(tǒng)提供很大的靈活性,以便它們彼此對應或和其他目標對應,因此使用柔性電纜來傳輸數(shù)字信號,使用同軸電纜來傳輸兩個電路板之間的模擬信號。
圖1.LIDAR平臺系統(tǒng)設計。
圖2.產品開發(fā)周期。
包含硬件設計的軟件堆棧以分層方法為基礎,以少數(shù)幾個層級區(qū)分為適用于特定操作系統(tǒng)的驅動和接口、系統(tǒng)特定的API和應用層。這使得堆棧的上層可以保持不變,無論軟件是在嵌入式目標上運行,還是在通過網(wǎng)絡或USB連接與系統(tǒng)通信的PC上運行。如圖2所示,在不同的產品開發(fā)階段,這一點非常有用,因為這意味著將系統(tǒng)連接至PC以簡化開發(fā)時,在原型制作期間開發(fā)的同樣的應用軟件可輕松部署到嵌入式系統(tǒng)中,甚至無需觸碰低層接口。
硬件設計
LIDAR傳感器通過測量光脈沖到達目標并返回的時間來計算與目標之間的距離。測量時間時,以ADC 采樣數(shù)據(jù)為增量, 這里ADC采樣速率決定了系統(tǒng)對接收的光脈沖采樣時的分辨率。公式1顯示如何根據(jù)ADC采樣速率計算距離。
開源LIDAR原型制作平臺
其中:
LS為光的速度,3 × 108 m/s
fS為ADC采樣速率
N為光脈沖生成至返回接收期間ADC樣本的數(shù)量
假設系統(tǒng)使用AD9094JESD204B四通道ADC的1 GHz采樣速率,那么每個樣本結果相當于15厘米距離。因此,系統(tǒng)中不能存在采樣不確定性,因為任何樣本不確定性都可能導致巨大的距離測量誤差。傳統(tǒng)上,LIDAR系統(tǒng)以并行ADC為基礎,這種ADC本身提供零采樣不確定性。隨著接收通道的數(shù)量不斷增加,功率和PCB尺寸的要求越來越嚴格,這些ADC類型不能很好地擴展。另一選項是使用具備高速串行輸出的ADC,例如JESD204B,以解決并行ADC存在的問題。這種選項的數(shù)據(jù)接口復雜度更高,因此難以實現(xiàn)零采樣不確定性。
圖3.DAQ板時鐘和數(shù)據(jù)路徑。
圖4.AFE板信號鏈。
LIDAR DAQ板提供了解決這些挑戰(zhàn)的方案,通過展示為在Subclass 1模式下運行的JESD204B數(shù)據(jù)采集系統(tǒng)的電源、時鐘和數(shù)據(jù)接口設計來確保確定性延遲,以實現(xiàn)零采樣不確定性,同時利用JESD204B接口提供的所有優(yōu)勢,令時鐘方案的功耗達到最低。要在Subclass 1模式下運行JESD204B,系統(tǒng)總共要用到5個時鐘:
? ADC采樣時鐘:驅動ADC信號采樣過程。
? ADC和FPGA SYSREF:源同步、高壓擺率時序分辨率信號,用于重置器件時鐘分頻器,以確保獲得確定性的延遲。
? FPGA全局時鐘(也稱為內核時鐘或器件時鐘):驅動JESD204B PHY層和FPGA邏輯的輸出。
? FPGA參考時鐘:生成JESD204B收發(fā)器所需的PHY層內部時鐘;需要等于,或是器件時鐘的整數(shù)倍。
所有時鐘都由一個AD9528 JESD204B時鐘生成器生成,因此可以確保它們彼此都同步。 圖3顯示了時鐘方案,以及與FPGA的數(shù)據(jù)接口。
AFE板接收光學反射信號,將其轉化成電子信號,然后傳輸給DAQ板上的ADC。這個板可能是整個設計中靈敏度最高的部分,因為它混合信號調節(jié)電路(使用16通道APD陣列生成的微安電流信號),將光學信號轉化成電子信號,并采用為同樣的APD供電所需的–120 V至–300 V大電壓電源。16個電流輸出被饋送至4個低噪聲四通道互阻增益放大器(TIA)LTC6561,帶有一個內部4合1復用器,用于選擇之后向其中一個ADC輸入端饋送的輸出通道。要特別注意TIA的輸入部分,以實現(xiàn)所需的信號完整度和通道隔離等級,使得APD生成的極低電流信號中不會摻雜更多噪聲,從而最大化系統(tǒng)的SNR和對象檢測率。AFE板的設計顯示,要實現(xiàn)最高信號質量,最好的方法是讓APD和TIA之間的線路長度盡可能短,并在TIA輸入之間增加橢圓孔,以最大化通道間隔離;此外,在部署信號調節(jié)電路時,要保證該電路不會干擾板上的其他電源電路。另一項重要特性是能夠測量APD的溫度,以補償APD信號輸出的變化,這種變化是因為在正常運行期間APD溫度上升導致的。提供幾個旋鈕來控制信號鏈的偏置和APD偏置,這些偏置轉化成APD靈敏度,從而最大化ADC輸入范圍,以實現(xiàn)最大SNR。圖4顯示了AFE板信號鏈的框圖。
激光器板生成波長為905 nm的光學脈沖。它使用四個激光器,這些激光器同時驅動,以增加光束強度,實現(xiàn)更長的測量距離。此激光器使用由FPGA載波板生成的具備可編程脈寬和頻率的PWM信號來控制。這些信號在FPGA上生成,以LVDS從FPGA傳輸至激光器板,經過DAQ板以及連接DAQ和激光器板的扁平電纜期間,不易受到噪聲影響。驅動信號可以返回至其中一個ADC通道,以獲得飛行時間參考。采用外部電源為激光器供電。其設計符合國際標準IEC 60825-1:2014和IEC 60825-1:2007中關于Class 1級激光器產品的要求。
圖5.激光器板信號鏈。
圖6.HDL設計框圖。
AFE和激光器板都需要光學器件,以實現(xiàn)長距離測量。事實證明,該系統(tǒng)可在60米范圍內測量,使用快速軸準直器1,幫助激光二極管將垂直FoV縮小到1°,同時在保持水平視場不變的情況下,在接收側放置一個非球面透鏡。
HDL參考設計
HDL設計包含連接硬件的主要接口,其邏輯電路實現(xiàn)了將來自JESD鏈接的數(shù)據(jù)傳輸至系統(tǒng)存儲器,驅動激光器,同步接收器和發(fā)射器以準確測量飛行時間,并且在所有組件上設計了通信接口。圖6顯示了HDL設計的簡化框圖。ADI的HDL參考設計采用了通用架構使得框架可擴展,且更容易連接另一個FPGA端口。該設計使用ADI公司的JESD204B框架2,以及多個SPI和GPIO接口來接收來自AD9094 ADC的數(shù)據(jù),以及控制該原型機平臺上的所有器件。
JESD204鏈接配置用于支持4個數(shù)據(jù)轉換器(M),這些轉換器使用線路速率為10 Gbps的4條路線來實現(xiàn)8位轉換器分辨率。器件時鐘與高速收發(fā)器的參考時鐘相同,被設置為250 MHz,由DAQ板提供。該鏈接在Subclass 1模式下運行,確保高速轉換器和FPGA之間具備確定性延遲。
對于LIDAR系統(tǒng),最大的挑戰(zhàn)在于如何同步各種功能和發(fā)射脈沖,以及如何處理從高速ADC接收的必要數(shù)量的數(shù)據(jù)。為了解決這一挑戰(zhàn),HDL設計中包含了一個IP,用于提供生成激光器脈沖所需的邏輯,控制TIA的內部多路復用器,以及為DMA提供背壓。所有這些控制函數(shù)都與發(fā)射脈沖同步,以便系統(tǒng)無需保存所有原始高速量化數(shù)據(jù)流。如此,大幅降低系統(tǒng)的總數(shù)據(jù)速率。
軟件
定義LIDAR平臺的軟件堆棧的幾個關鍵點包括自由和開源。用戶因此能夠“自由運行、復制、分發(fā)、學習、變更和改善軟件,”3包括從Linux®內核到用戶域的工具,以及與此相關的所有代碼。
圖7.軟件堆棧。
內核中使用的軟件驅動器會啟動硬件組件,向用戶顯示所有可用功能。這些驅動器大部分都是工業(yè)I/O (IIO) Linux子系統(tǒng)的組成部分。4這些驅動器都與平臺無關,所以無需改變硬件,包括與FPGA供應商相關的部分(例如,從Xilinx® FPGA遷移至Intel®)。
為了簡化軟件接口IIO器件開發(fā),ADI開發(fā)出了libiio庫。5該庫提取硬件的低層詳情,提供簡單但完整的編程接口,可供高級項目使用。多種可用的libiio后端(例如,本地、網(wǎng)絡、USB、串行端)支持在本地使用IIO器件,以及遠程在不同操作系統(tǒng)上運行的應用(包括,Linux、Windows®、macOS®)中使用該器件。
ADI開發(fā)的IIO示波器就是這樣一項應用示例,它使用libiio連接IIO器件,可在系統(tǒng)評估階段使用。該工具可在不同模式下捕捉和圖示數(shù)據(jù)(例如,時域、頻域、星座圖、交互相關)、發(fā)送數(shù)據(jù)以及允許用戶查看和修改被檢測器件的設置。
圖8.顯示LIDAR數(shù)據(jù)的IIO示波器捕捉窗口。
雖然libiio提供低層編程接口,但在大多數(shù)情況下,用戶期望使用平臺相關的集合了低層驅動器調用的API,來展示一組功能,用于訪問和配置各種系統(tǒng)參數(shù)和流數(shù)據(jù)。因此,LIDAR原型制作平臺采用特定的API,以及適用于常用框架和編程語言(例如C/C++、MATLAB®或Python®)的配套組件,6使用戶能夠使用其首選的編程語言與系統(tǒng)連接,集中精力研發(fā)對客戶而言極具價值的算法和應用。
結論
對于系統(tǒng)設計,在建立架構和做出設計決定時,存在一定程度的模糊性。這代表著系統(tǒng)構建完成后無法正常工作或運行的風險,會導致重復的設計周期,增加開發(fā)成本,以及延長產品上市時間。參考設計以預設計的、針對彼此交互操作的系統(tǒng)為基礎,與從頭開始的自定義專用設計相比,其風險降低,整體可預測性和可靠性提高。在規(guī)劃過程中使用參考設計作為起點,有助于更快將新設計推向市場,并確保出現(xiàn)更少的意外和問題。系統(tǒng)設計人員總是尋求通過參考平臺來驗證其設計方案,以降低風險和提高可靠性。啟動項目時,使用清晰標準的設計選項有助于推動規(guī)劃過程的實施??赏ㄟ^使用通用語言來幫助協(xié)調目標,鼓勵多個職能部門相互合作和參與來實現(xiàn),并且?guī)椭喕诟髟O計目標之間評估和取舍的難度。LIDAR原型制作平臺試圖通過提供開源硬件和軟件設計來滿足這些需求,這些設計可以提供初始系統(tǒng)架構階段的參考。硬件平臺和軟件堆??捎糜谡麄€產品開發(fā)階段,從初始系統(tǒng)評估、開發(fā),到集成到最終產品中。參考設計的內容(例如工程圖紙和BOM)可構建、合法、本地化的系統(tǒng)設計提供了一個良好的開端??梢詭椭s短設計周期,且可能在整個過程中幫助節(jié)省資金。模塊化硬件設計支持使得各種配置選項滿足特定的應用要求,而基于行業(yè)標準框架和編程語言,搭配應用示例的開源軟件堆棧則允許客戶側重于開發(fā)應用,為產品注入價值,無需將精力耗費在堆棧的低層。
參考文獻
1 快速軸準直透鏡。FISBA,2019年。
2 JESD204接口框架。ADI公司,2019年。
3 自由軟件是什么?Free Software Foundation, Inc.,2019年。
4 Linux Driver Implementer的API指南。ADI公司,2019年。
5 關于libiio。ADI公司,2019年。
6 “PyADI-IIO:ADI Python接口,適用于配備工業(yè)I/O驅動器的硬件。”GitHub, Inc.,2020年。
Michael Hennerich和Robin Getz。“ADI公司如何看待自由和開源軟件。”《模擬對話》,第44卷第3期,2010年3月。
作者簡介
István Csomortáni是ADI公司的FPGA設計工程師,負責支持基于FPGA的參考設計的設計與開發(fā)。他擁有工業(yè)自動化與信息技術學士學位及集成電路設計碩士學位。他從2012年開始進入ADI公司工作,負責為高速轉換器和RF收發(fā)器提供各種系統(tǒng)級參考設計支持。聯(lián)系方式:istvan.csomortani@analog.com。
Dragos Bogdan目前是SDG部的小型嵌入式軟件開發(fā)團隊負責人,為各種類型的平臺和組件增加開源裸機和Linux支持。Dragos于2011年加入ADI公司擔任軟件工程師。2010年到2011年間,他在Pergamon RD公司從事用于打印設備的嵌入式硬件和軟件的開發(fā)工作。在此之前,他曾參加National Instruments和Continental Automotive的實習生項目。他擁有克盧日-納波卡科技大學電子學學士學位和自動化碩士學位。聯(lián)系方式:dragos.bogdan@analog.com。
Cristian Orian是ADI公司的系統(tǒng)設計工程師,負責評估平臺的硬件開發(fā)工作。他擁有電子學博士學位。其工作領域還涉及電源設計。聯(lián)系方式:cristian.orian@analog.com。
Andrei Cozma是ADI公司工程設計經理,負責支持系統(tǒng)級參考設計的設計與開發(fā)。他擁有工業(yè)自動化與信息技術學士學位及電子與電信博士學位。他參與過電機控制、工業(yè)自動化、軟件定義無線電和電信等不同行業(yè)領域的項目設計與開發(fā)。聯(lián)系方式:andrei.cozma@analog.com。
推薦閱讀: