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