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