邱浩淼
摘 要 在當前,利用ARM與FPGA高速數(shù)據(jù)通信接口的相關設計,滿足了數(shù)據(jù)采集器相關設備工作中對信號的高速要求。如果要實現(xiàn)ARM與FPGA之間的信號交互工作,主要是通過SPI總線來進行完成,然后數(shù)據(jù)的上傳工作,主要需采用雙口RAM來完成。這種設計其主要目的為了解決在ARM于FPGA運行中,其對數(shù)據(jù)的處理速度匹配不良或不匹配的情況,并且該設計滿足高速、實時的需求。與此同時,根據(jù)相關的測試可以看出,此系統(tǒng)的設計不僅促使操作更為簡單,功能也穩(wěn)定正常。在儀器控制、電子測量的相關工作中應用廣泛。本文結合自己相關經(jīng)驗,對基于ARM與FPGA高速數(shù)據(jù)通信接口設計進行相關探討。
關鍵詞 ARM與FPGA;數(shù)據(jù)通信;接口設計
前言
這些年來我國的科技日新月異,各類儀器的性能也變得越來越高,從而對儀器的性能也有了更高的要求和標準,其中對于儀器控制方面有諸多的要求,無論從儀器的實時性能,還是其精準度、采樣速度等方面,都有著非常高的要求和標準。為了滿足儀器的控制需求,則需要不斷應用先進的技術,不斷提升通信質量,建立高速數(shù)據(jù)通信接口設計,滿足人們的使用需求。
1LINUX程序設計
在過去的信號采集工作中,通常需要通過單片機或者通過DSP來完成。但是,單片機存在時鐘頻率不高的情況,導致信號采集沒有足夠的速度,也無法提升效率。如果想要進行高速的信息采集,就無法應用單片機[1]。DSP雖然擁有較快的運算速度,但其對于外部復雜的硬件沒有良好的控制。而如果應用FPGA就可以避免上述的問題,非常適合于高速信號的采集工作和控制工作,對提高信息通訊的效率有著極大的作用,進而滿足數(shù)據(jù)采集和控制工作需求。相對來說,ARM技術具有成本低、體積小、速度很快等優(yōu)勢,諸多優(yōu)點集于一身,其比較適合處理大容量的數(shù)據(jù)和控制。如果想要linux系統(tǒng)與FPGA可以配合并使用,就需要設計出相應的驅動。通過Linux的分配,設備被分為三個類別。再者,設備的驅動程序主要面對是使得相應硬件可以順利完成其對應的工作,主要通過對系統(tǒng)軟件的應用編程接口進行調用而產生,與此同時,還要在linux系統(tǒng)下的應用程序進行設計,從而實現(xiàn)對設備進行相關的操作。
1.1 驅動程序設計
首先是SPI驅動,其中包括主機控制器驅動和SPI外設驅動。前者由系統(tǒng)自帶,而后者的驅動目標是需要注冊一個平臺設備,包括片選數(shù)量等內容。SPI外設驅動需要外掛在總線上,并且在數(shù)據(jù)傳輸?shù)倪^程中,用SPI-transfer為主要的借口。該系統(tǒng)主要是與FPGA之間形成發(fā)送工作和相應流程,之后由FPGA進行對硬件控制,依照相應的參數(shù)和配置完成采集。
1.2 應用程序設計
本文主要闡述關于SCPI解釋器的應用程序設計,其基于LXI總線的軟件,而其應用程序則基于SCPI進行開發(fā),如果要判斷PC機的相關指令,就要通過SCPI,之后再判斷應該應用的執(zhí)行函數(shù)。為了使得Linux與FPGA之間通信提升,本文也主要介紹其回傳命令在執(zhí)行中的設計。當FPGA采集數(shù)據(jù)完畢后,就會給ARM一個信號,ARM收到信號后,就可以進行讀取數(shù)據(jù)[2]。與此同時,DPRAM也開始存儲相應的數(shù)據(jù),而每次讀取完畢1kb的數(shù)據(jù)后,就會通知ARM進行讀取和計數(shù)。然后當已經(jīng)有了存儲數(shù)據(jù)后,ARM就開始回讀存儲的數(shù)據(jù),并存儲到buf之中,當讀完畢后,就會給FPGA信號,促使其可以繼續(xù)寫,達成如上循環(huán)工作后,直到計數(shù)data,將DDR2完成全部讀取數(shù)據(jù)。如此算是一次成功的數(shù)據(jù)傳輸,在實際測試中發(fā)現(xiàn),有效提升了數(shù)據(jù)傳輸?shù)男剩袭斀窀咚?、真實的?shù)據(jù)傳輸。
另外是控制臺程序的設計,這個程序主要是源于IVI驅動,源于其采集的相關數(shù)據(jù)和現(xiàn)實的程序,我們在控制臺中輸入相關的參數(shù),繼而執(zhí)行設置電壓、采樣點等命令,再通過Socket來進行傳輸,傳輸必要的參數(shù)和占領,繼而進行比較后發(fā)送指令,最后,再由FPGA來對硬件實現(xiàn)控制,進而獲得相應的數(shù)據(jù),最終通過套接字之后在控制臺最終得以顯示。
2FPGA程序設計
在將FPGA的數(shù)據(jù)無誤的傳送給ARM的過程中,對FPGA進行設計是一項較難的工作,因為FPGA與ARM分別采用不同的時鐘。
2.1 雙口RAM模塊
FPGA擁有較高的處理速度,其等級為ns級,而ARM為ms級,兩者在數(shù)據(jù)通信過程中,都存在于難點,就是其處理速度無法達成一致,因此需要采用異步進行通信[3]。在設計中,可以采取由雙端口和FIFO進行存儲工作,其中利用FIFO存儲是先進先出的方式。其僅需要按照始終寫入和讀取相關的數(shù)據(jù)即可,脫離了地址線[4]。而如果采用RAM進行存儲,地址線、控制線等不會相互之間產生影響,進行獨立的數(shù)據(jù)讀寫工作。在本設計之中,設計讀取處于固定位置的數(shù)據(jù),因此,要采用RAM的方式。
2.2 NIOSⅡ軟核作為控制核心
該軟件是FPGA的控制核心,對FPGA中所有模塊之間的工作進行控制,以及進行協(xié)調各個模塊之間的工作。其主要采用NIOS Ⅱ/e 的軟核,其主要包括SPI叢及模塊等多個模塊。
3結束語
綜上所述,利用FPGA和ARM相結合,利用了前者的高速處理信號的能力,利用了后者較好控制能力,從而設計出由ARM和FPGA組合而成的一種高速通信接口。雙口RAM特點在于可以傳輸大量的數(shù)據(jù),提升了數(shù)據(jù)的傳輸吞吐總量,而SPI實現(xiàn)了對FPGA 底層的有效控制,提升了一起的通用性能,進而應用終端傳輸來進行相關數(shù)據(jù)的輸送工作,較大幅度地提升了系統(tǒng)的效率。
參考文獻
[1] 肖燕娟,楊俊峰.基于USB2.0的高速數(shù)據(jù)通信接口設計[J].微計算機信息,2008,(05):310-312.
[2] 李剛. 小型PLC的數(shù)據(jù)配置與ARM-FPGA總線接口的研制[D].桂林:廣西科技大學,2015.
[3] 陳佳欣. 基于FPGA與ARM的多功能綜合測試平臺研發(fā)[D].上海:上海交通大學,2014.
[4] 廖啟文,Patrick Yin CHIANG,祁楠.面向5G通信的高速PAM4信號時鐘與數(shù)據(jù)恢復技術[J].中興通訊技術,2018,24(04):21-26.