最近學習了一段時間的FPGA,本帖用來記錄一下FPGA聯合ARM制作一個雙通道示波器的過程
一·總體設計
--------1.硬件部分
------------FPGA采用Altera Cyclone IV E 的 EP4CE10F17C8N ,采用BGA封裝共256引腳;
------------ARM芯片采用STM32F407IGT6,主頻168MHz;
------------ADC部分采用AD9280ARS高速8bitADC;
------------顯示部分采用7英寸TFTLCD屏幕;
--------2.軟件部分
------------FPGA負責顯示屏的顯示驅動和觸摸驅動,使用外拓展SDRAM作LCD的緩存;ADC芯片采樣后數據的處理;
------------ARM負責控制TFT的顯示,和上位機通訊;
------------FPGA和ARM采用FSMC總線進行通訊;
--------3.原理框圖

二,FPGA功能實現
--------FPGA主要模塊組成為復位信號產生,鎖相環倍頻,頻率測量和對ADC芯片轉換出的信號進行采樣,FSMC總線通信,LCD顯示和觸摸驅動

--------在RTL圖中
------------rst_ctrl為復位信號產生模塊,在系統開始后的十個周期后,向后級module發送高電平復位信號;
------------my_pll為FPGA內置鎖相環,輸入為25M系統時鍾,輸出為C0 : 100MHz用於示波器采樣基准頻率,C1 : 120MHz用於示波器采樣基准頻率 , C2 : 120MHz用於給外置SDRAM作時鍾,決定了SDRAM的讀寫速度 , C3:30MHz用於做LCD的像素CLK;
------------dso為數字示波器的采樣和頻率計算模塊,將前級ADC轉換電路得出的雙通道8bit數據按照字節采樣進addb寄存器內,由於前級ADC的轉換速率高達125MSPS,FPGA可用25MHz,100MHz,120MHz來提取寄存器addb內的任一字節,稱之為FPGA的采樣頻率,dso模塊的參數模式由dso_control寄存器控制,包括觸發沿選擇、采樣率選擇、通道開啟或關閉、直流或交流耦合選擇,xy軸分度等,ARM可通過FSMC總線來更改dso模塊的觸發模式和控制寄存器,FPGA通過FSMC向ARM發送采樣后的數據和測量出的當前頻率,ab_r和rd_clk分別為dso模塊掛載在fsmc總線上的地址和讀時鍾;
------------lcd為tft顯示屏的驅動模塊,包括SDRAM緩存操作、觸摸回饋數據傳遞、TFTLCD的控制,由於總線速度和SDRAM的讀寫速度不匹配,所以在數據進入SDRAM前添加FIFO模塊做數據緩沖,數據讀出SDRAM后添加RAM做緩存,其中wr_clk為fifo寫時鍾,tft_control是液晶LCD顯示控制寄存器,pwm_temp是液晶pwm調光亮度控制;
------------fsmc中rsn,AB,DB,WRn,RDn,CSn,NADV分別為ARM與FPGA通信中的地址線,數據線,寫信號,讀信號,片選信號和控制信號,其余信號為lcd或者dso的數據和地址通道;
三·ARM功能實現
--------ARM在此次設計過程中承擔的主要任務是控制中心,包括UI設計,亮度調節,示波器參數控制,任務切換等

------------程序開始后,延遲約1s時間,等待FPGA開始工作,1s過后,進行FSMC,USART,LCD顯示和觸摸驅動相關程序初始化,之后檢測FPGA就緒狀態,若就緒,就進行下一步,若不就緒,則進入while(1)並向串口發送error;
------------整個GUI設計采用STemWin,更改靜態儲存區分配內存大小和畫點函數就可以對LCD屏幕進行UI界面設計和波形繪制;
------------初始化結束后的while(1)中,主要包含兩個進程,dso_process和display_process,dso進程用來通過觸摸反饋獲取當前示波器參數變量,計算電壓峰峰值,平均值,頻率,實時獲取子菜單變量值等,而display負責顯示不同菜單和繪制波形;


四·波形效果
--------使用高頻信號源產生vpp=3.3V,fre=1KHz的方波,用示波器觀察到的現象如下

------------所用平台為ICORE3雙核心實驗板;
------------本次設計的核心內容為FPGA底層驅動的實現,ARM與FPGA之間的FSMC總線通信,STemWin用戶圖形界面設計;
------------本次設計的難點在於,系統的實時性。系統總體設計采用FPGA+ARM,使用FPGA是為了實現信號高速采樣和處理,雙核心設計既保證了邏輯控制和媒體顯示,也保證了高速信號傳輸,整個系統的實時性由ARM和FPGA共同完成,保證了從采樣到顯示,從觸摸到反饋的實時資源調用。
