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