可設(shè)計的實驗和測量平臺
什么讓Red Pitaya在于其他設(shè)備相比中脫穎而出?這是因為它設(shè)計為通用的平臺,透過“Bazaar”—一個在線入口類似智能手機的應(yīng)用程序商店,可為不同用戶配置。這篇文章探討了如何透過較靈活的硬件和開放原始碼的軟件來實現(xiàn)。
硬件
硬件平臺的核心是一個包含了一個雙核心的ARM處理器,接口設(shè)備和FPGA為一封包的Xilinx Zynq system-on-chip (SoC)。ARM和接口設(shè)備統(tǒng)稱為“處理系統(tǒng)”(PS),并且提供給運行操作系統(tǒng)和應(yīng)用軟件的計算機。此系統(tǒng)有512 MB的RAM,Micro SD卡用于儲存,最多支持擴充達32 GB,也可以通過千兆位的以太網(wǎng)絡(luò)和USB的UART端口來連接。
FPGA提供28000可程序化的RAM和DSP芯片。這是為了提供主要的ADCs和DACs接口,并且支持硬件方面的處理,加上常見的接口和擴充等。
Red Pitaya的高速數(shù)字轉(zhuǎn)換器提供兩個模擬輸入和兩個模擬輸出——125 MS / s的速度和14位分辨率,并且透過FPGA和AXI總線連接到PS。上圖可以看到FPGA RTL模塊文件中的一部分ASCII流程圖,并且和Zynq外部引腳、PS、應(yīng)用程序模塊連接在一起。
一個模擬擴充連接器提供了四個低速模擬輸入和四個低速模擬輸出,每個在100 kS/s和12位分辨率。板子另一面還有類似的連接器,提供16個由FPGA GPIOs組成的數(shù)字擴充頭。
菊煉板通過兩個SATA連接器,每個皆提供兩對差動對,并支持高達500 Mbps的數(shù)據(jù)傳輸速率。請注意, SATA并不支持驅(qū)動,連接器只是由于其性能和低成本的常用的纜線所組成,而常被使用。
軟件
板子上面運行從Xilinx sources下載的Linux3.9.0版本,帶有一個由BusyBox構(gòu)成的ramdisk。接電源時,將從SD卡加載以下文件:
? boot.bin:包含第一階段的bootloader,F(xiàn)PGA image和U-Boot bootloader。
? uImage: Linux 內(nèi)核。
? devicetree.dtb:Linux設(shè)備分支圖(描述外圍設(shè)備等)
? uramdisk.image.gz:包含root文件系統(tǒng)的ramdisk
一旦啟動了高效能和低內(nèi)存的web服務(wù)器,nginx就啟用了。這是用來提供HTML和JavaScript的網(wǎng)站應(yīng)用程序給客戶端瀏覽器。接著連接到一個控制器,一個服務(wù)器端Linux應(yīng)用程序,這依次經(jīng)由ADCs和DACs等接口接口連接到FPGA。所以,每個應(yīng)用程序由三個部分組成:一個web用戶界面,服務(wù)器端控制器和FPGA模塊。
命令行工具同樣可以使用,這些可以透過SSH遠程執(zhí)行,使諸如GNU Octave和Matlab的整合成為可能,并且對測試和除錯是有用的。這些也是Linux二進制程序和在軟件體系結(jié)構(gòu)的控制器旁,通過這個接口連接到FPGA并且與ADCs和DACs相連接。目前已提供兩種類似工具,分別為信號的產(chǎn)生和取樣。
開發(fā)者
示波器應(yīng)用控制器的部分main.c文件
RedPitaya GitHub 知識庫包含的原始碼:
? FPGA設(shè)計資源 (/FPGA/)
? Linux核心、U-boot、root文件系統(tǒng) (/OS/)
? Nginx和控制器模塊加載程序等 (/Bazaar/)
? Web應(yīng)用(/Applications/)
? 命令行工具(/Test/)
注意,操作系統(tǒng)子目錄不包含完整的Linux和U-boot,他們是從其他地方復(fù)制,而不是只包含特定平臺的補丁和配置等。
FPGA可以使用WebPack, Xilinx ISE或者Vivado設(shè)計軟件生成比特流,而不是使用GUI。這些驅(qū)動使用執(zhí)行腳本和命令行工具的makefile-based構(gòu)建的系統(tǒng)。
Web應(yīng)用程序,HTML和JavaScript代碼可以使用文本編輯器進行編輯。控制器和命令行工具都是用C語言編寫的,并且可以使用PC的ARM編譯程序進行編譯。和大多數(shù)Linux發(fā)行版相比,它只需要幾個命令來安裝一個ARM工具鏈。
應(yīng)用程序必須被給予唯一的應(yīng)用程序ID,放在一個同一名稱的目錄內(nèi),然后打包為ZIP文件,才能通過Bazaar來做發(fā)布。除了web應(yīng)用程序和控制器,它還必須包含一個圖標,和帶有名字、文件和版本等的JSON文件。
目前所有應(yīng)用程序使用相同的嵌入在boot.bin中的FPGA比特流。這對于許多新的應(yīng)用領(lǐng)域?qū)⑹亲銐虻?。然?它也可以分發(fā)常見的比特流作為應(yīng)用程序的一部分,實現(xiàn)修改和新的以FPGA為依據(jù)的DSP,并能夠控制其他設(shè)備和透過GPIO與外部周邊界面做連結(jié)。
結(jié)論
使用可編輯Zynq SoC為整合數(shù)字轉(zhuǎn)換器和實現(xiàn)硬件的信號處理的自定義I / O,提供了一個良好的解決方案。因為它是高度可配置的,如果你想利用其全部功能開發(fā)新的應(yīng)用程序,可能要有一個學(xué)習(xí)曲線,。然而,許多新的應(yīng)用程序就可以簡單地按原樣或相對較小的修改來使用現(xiàn)有的FPGA設(shè)計。
建立在Linux和web技術(shù),很容易想象Red Pitaya可以定制和擴展許多不同的方式。例如,用于日志記錄到本地或遠程數(shù)據(jù)庫,通過SNMP發(fā)送警報,或通過公共API整合在線服務(wù)。
最后, 除了在wiki上面提供文文件,同時提供結(jié)構(gòu)良好的原始碼,并且?guī)в写罅康脑u論和ASCII art diagrams,。所有的工作都是為了使初次使用這個平臺的開發(fā)者能夠更加容易運行。
評論