一種基于ARM和FPGA的環形緩沖區接口設計
2.2 發送程序設計
首先介紹數據的發送過程,也就是數據幀從ARM到FPGA的發送流程。程序分為兩個部分,一個是ARM端的程序,負責將來自用戶的數據組成最大不超過256雙字節的數據幀,然后向FPGA內部的發送緩沖區寫數據幀;另外一個是FPGA端的程序,負責將接收的ARM數據幀寫入發送緩沖區,同時將各個子緩沖空間的數據依次提取出來,傳遞給物理層進行發送。
發送部分ARM端的程序流程圖如圖3所示。將用戶數據首先組裝成規定大小的數據幀,然后判斷發送緩沖區是否有空閑的子緩沖空間,若發送緩沖區滿則等待,否則將數據幀發送到統一編址的發送緩沖區空間。本文引用地址:http://www.104case.com/article/148003.htm
發送部分FPGA端的程序流程可分為接收ARM寫入的數據幀和將發送緩沖區中的數據幀發送給物理層進行數據處理。這兩部分的程序流程分別如圖4和圖5所示,主要是利用子緩沖空間的忙閑狀態與讀寫指針的變化來控制數據幀的讀取和寫入,實現子緩沖空間循環利用以及數據幀的正常發送和緩存。
fpga相關文章:fpga是什么
評論