開源LIDAR原型制作平臺
HDL參考設(shè)計
HDL設(shè)計包含連接硬件的主要接口,其邏輯電路實現(xiàn)了將來自JESD鏈接的數(shù)據(jù)傳輸至系統(tǒng)存儲器,驅(qū)動激光器,同步接收器和發(fā)射器以準確測量飛行時間,并且在所有組件上設(shè)計了通信接口。圖6顯示了HDL設(shè)計的簡化框圖。ADI的HDL參考設(shè)計采用了通用架構(gòu)使得框架可擴展,且更容易連接另一個FPGA端口。該設(shè)計使用ADI公司的JESD204B框架2,以及多個SPI和GPIO接口來接收來自AD9094 ADC的數(shù)據(jù),以及控制該原型機平臺上的所有器件。
JESD204鏈接配置用于支持4個數(shù)據(jù)轉(zhuǎn)換器(M),這些轉(zhuǎn)換器使用線路速率為10 Gbps的4條路線來實現(xiàn)8位轉(zhuǎn)換器分辨率。器件時鐘與高速收發(fā)器的參考時鐘相同,被設(shè)置為250 MHz,由DAQ板提供。該鏈接在Subclass 1模式下運行,確保高速轉(zhuǎn)換器和FPGA之間具備確定性延遲。
對于LIDAR系統(tǒng),最大的挑戰(zhàn)在于如何同步各種功能和發(fā)射脈沖,以及如何處理從高速ADC接收的必要數(shù)量的數(shù)據(jù)。為了解決這一挑戰(zhàn),HDL設(shè)計中包含了一個IP,用于提供生成激光器脈沖所需的邏輯,控制TIA的內(nèi)部多路復用器,以及為DMA提供背壓。所有這些控制函數(shù)都與發(fā)射脈沖同步,以便系統(tǒng)無需保存所有原始高速量化數(shù)據(jù)流。如此,大幅降低系統(tǒng)的總數(shù)據(jù)速率。
圖5.激光器板信號鏈。
軟件
定義LIDAR平臺的軟件堆棧的幾個關(guān)鍵點包括自由和開源。用戶因此能夠“自由運行、復制、分發(fā)、學習、變更和改善軟件,”3 包括從Linux?內(nèi)核到用戶域的工具,以及與此相關(guān)的所有代碼。
內(nèi)核中使用的軟件驅(qū)動器會啟動硬件組件,向用戶顯示所有可用功能。這些驅(qū)動器大部分都是工業(yè)I/O (IIO) Linux子系統(tǒng)的組成部分。4這些驅(qū)動器都與平臺無關(guān),所以無需改變硬件,包括與FPGA供應商相關(guān)的部分(例如,從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ù)(例如,時域、頻域、星座圖、交互相關(guān))、發(fā)送數(shù)據(jù)以及允許用戶查看和修改被檢測器件的設(shè)置。
雖然libiio提供低層編程接口,但在大多數(shù)情況下,用戶期望使用平臺相關(guān)的集合了低層驅(qū)動器調(diào)用的API,來展示一組功能,用于訪問和配置各種系統(tǒng)參數(shù)和流數(shù)據(jù)。因此,LIDAR原型制作平臺采用特定的API,以及適用于常用框架和編程語言(例如C/C++、MATLAB?或Python?)的配套組件,6使用戶能夠使用其首選的編程語言與系統(tǒng)連接,集中精力研發(fā)對客戶而言極具價值的算法和應用。
圖6.HDL設(shè)計框圖。
結(jié)論
對于系統(tǒng)設(shè)計,在建立架構(gòu)和做出設(shè)計決定時,存在一定程度的模糊性。這代表著系統(tǒng)構(gòu)建完成后無法正常工作或運行的風險,會導致重復的設(shè)計周期,增加開發(fā)成本,以及延長產(chǎn)品上市時間。參考設(shè)計以預設(shè)計的、針對彼此交互操作的系統(tǒng)為基礎(chǔ),與從頭開始的自定義專用設(shè)計相比,其風險降低,整體可預測性和可靠性提高。在規(guī)劃過程中使用參考設(shè)計作為起點,有助于更快將新設(shè)計推向市場,并確保出現(xiàn)更少的意外和問題。系統(tǒng)設(shè)計人員總是尋求通過參考平臺來驗證其設(shè)計方案,以降低風險和提高可靠性。啟動項目時,使用清晰標準的設(shè)計選項有助于推動規(guī)劃過程的實施。可通過使用通用語言來幫助協(xié)調(diào)目標,鼓勵多個職能部門相互合作和參與來實現(xiàn),并且?guī)椭喕诟髟O(shè)計目標之間評估和取舍的難度。LIDAR原型制作平臺試圖通過提供開源硬件和軟件設(shè)計來滿足這些需求,這些設(shè)計可以提供初始系統(tǒng)架構(gòu)階段的參考。硬件平臺和軟件堆??捎糜谡麄€產(chǎn)品開發(fā)階段,從初始系統(tǒng)評估、開發(fā),到集成到最終產(chǎn)品中。參考設(shè)計的內(nèi)容(例如工程圖紙和BOM)可構(gòu)建、合法、本地化的系統(tǒng)設(shè)計提供了一個良好的開端??梢詭椭s短設(shè)計周期,且可能在整個過程中幫助節(jié)省資金。模塊化硬件設(shè)計支持使得各種配置選項滿足特定的應用要求,而基于行業(yè)標準框架和編程語言,搭配應用示例的開源軟件堆棧則允許客戶側(cè)重于開發(fā)應用,為產(chǎn)品注入價值,無需將精力耗費在堆棧的低層。
圖7.軟件堆棧。
參考文獻
1 快速軸準直透鏡。FISBA,2019年。
2 JESD204接口框架。ADI公司,2019年。
3 自由軟件是什么?Free Software Foundation, Inc.,2019年。
4 Linux Driver Implementer的API指南。ADI公司,2019年。
5 關(guān)于libiio。ADI公司,2019年。
6 “PyADI-IIO:ADI Python接口,適用于配備工業(yè)I/O驅(qū)動器的硬件?!盙itHub, Inc.,2020年。
Michael Hennerich和Robin Getz?!癆DI公司如何看待自由和開源軟件。”《模擬對話》,第44卷第3期,2010年3月。
圖8.顯示LIDAR數(shù)據(jù)的IIO示波器捕捉窗口。
作者簡介
István Csomortáni是ADI公司的FPGA設(shè)計工程師,負責支持基于FPGA的參考設(shè)計的設(shè)計與開發(fā)。他擁有工業(yè)自動化與信息技術(shù)學士學位及集成電路設(shè)計碩士學位。他從2012年開始進入ADI公司工作,負責為高速轉(zhuǎn)換器和RF收發(fā)器提供各種系統(tǒng)級參考設(shè)計支持。
Dragos Bogdan目前是SDG部的小型嵌入式軟件開發(fā)團隊負責人,為各種類型的平臺和組件增加開源裸機和Linux支持。Dragos于2011年加入ADI公司擔任軟件工程師。2010年到2011年間,他在Pergamon RD公司從事用于打印設(shè)備的嵌入式硬件和軟件的開發(fā)工作。在此之前,他曾參加National Instruments和Continental Automotive的實習生項目。他擁有克盧日-納波卡科技大學電子學學士學位和自動化碩士學位。
Cristian Orian是ADI公司的系統(tǒng)設(shè)計工程師,負責評估平臺的硬件開發(fā)工作。他擁有電子學博士學位。其工作領(lǐng)域還涉及電源設(shè)計。
Andrei Cozma是ADI公司工程設(shè)計經(jīng)理,負責支持系統(tǒng)級參考設(shè)計的設(shè)計與開發(fā)。他擁有工業(yè)自動化與信息技術(shù)學士學位及電子與電信博士學位。他參與過電機控制、工業(yè)自動化、軟件定義無線電和電信等不同行業(yè)領(lǐng)域的項目設(shè)計與開發(fā)。
評論