本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權歸本公司所有,如需轉載,需授權并注明出處(http://www.alinx.com)。
適用于板卡型號:
PGL22G
1. 實驗簡介
本實驗練習使用ADC的以太網(wǎng)傳輸,實驗中使用的ADDA模塊型號為AN108,ADC最大采樣率32Mhz,精度為8位?;谇懊嬷v到的以太網(wǎng)實驗,在本實驗中把AN108的采集數(shù)據(jù)以千兆以太網(wǎng)方式傳輸?shù)?a target="_blank">上位機軟件,我們可以用更加直觀的方式觀察波形,是一個數(shù)字示波器雛形,并且可以保存ADC數(shù)據(jù)。
ADDA模塊
實驗預期結果
2. 實驗原理
2.1 制定UDP包協(xié)議
為了體現(xiàn)上位機的靈活性,基于UDP傳輸,制定了以下通訊協(xié)議,此協(xié)議包含在UDP數(shù)據(jù)包中。
一、獲取板卡信息
(1)詢問命令(共5字節(jié),由上位機通過以太網(wǎng)發(fā)送)
| 字節(jié)數(shù) | 1 | 4 | 
| 命令信息 | Header | 32’h00000000 或32’h00010001 | 
(2)應答命令(共27字節(jié),由開發(fā)板通過以太網(wǎng)發(fā)送)
| 字節(jié)數(shù) | 命令信息 | 
| 1 | Header|8’h01 | 
| 4 | 32’h00010001 | 
| 6 | 板卡MAC地址 | 
| 4 | 板卡IP地址 | 
| 1 | 符號位8’h00:無符號數(shù) 8’h01有符號數(shù)(設置無效,上位機要求為有符號數(shù)) | 
| 1 | ADC有效數(shù)據(jù)長度,比如AD9280為8位,即8’d8 | 
| 1 | 采集一次ADC的字節(jié)數(shù)(設置無效,上位機要求ADC數(shù)據(jù)位寬為兩個字節(jié)) | 
| 1 | 采樣通道(此功能上位機未實現(xiàn)) | 
| 4 | 采樣率,即采樣的頻率,程序中設為32M | 
| 4 | 緩存的ADC數(shù)據(jù)長度,單位為字節(jié) | 
二、獲取數(shù)據(jù)
(1)控制命令(由上位機發(fā)送數(shù)據(jù)請求)
| 字節(jié)數(shù) | 命令信息 | 
| 1 | Header | 
| 4 | 32’h00010002 | 
| 6 | 板卡MAC地址,確認是本地的MAC地址 | 
| 4 | 采樣通道(此功能未實現(xiàn)) | 
| 4 | 采樣次數(shù)(采集數(shù)據(jù)為16位,采樣次數(shù)為緩存數(shù)據(jù)長度的一半) | 
(2)應答命令(由開發(fā)板發(fā)送)
| 字節(jié)數(shù) | 命令信息 | 
| 1 | Header|8’h01 | 
| 4 | 32’h00010002 | 
| 1024 | ADC數(shù)據(jù) | 
每個UDP包都包含有Header,在第一個字節(jié),其格式如下:
| 比特位 | 值(0) | 值(1) | 
| bit 0 | 查詢或控制 | 應答 | 
| bit1~bit7 | 隨機數(shù)據(jù) | 
注:當應答時,高7位隨機數(shù)據(jù)保持不變,bit0設置為1
2.2 程序?qū)崿F(xiàn)
首先在空閑狀態(tài),上位機會通過以太網(wǎng)廣播發(fā)送詢問命令,因此在IP層接收時要加上判斷是否是廣播UDP數(shù)據(jù),如果是,也接收數(shù)據(jù),此段代碼在ip_rx.v中,如下所示:

之后在eth_cmd.v文件中判斷接收到的數(shù)據(jù)信息,是否是詢問命令或控制命令,從而產(chǎn)生出命令的應答請求信號cmd_reply_req,或請求數(shù)據(jù)的信號ad_data_req。
| 信號名稱 | 方向 | 寬度(bit) | 說明 | 
| clk | in | 1 | 系統(tǒng)時鐘 | 
| rst_n | in | 1 | 異步復位,低電平復位 | 
| udp_rec_data_valid | in | 1 | UDP接收數(shù)據(jù)有效 | 
| udp_rec_ram_rdata | in | 8 | UDP接收到的數(shù)據(jù) | 
| udp_rec_ram_read_addr | out | 11 | UDP接收數(shù)據(jù)RAM地址 | 
| udp_rec_data_length | in | 16 | UDP接收數(shù)據(jù)長度 | 
| udp_rd_en | in | 1 | UDP發(fā)送讀使能信號 | 
| reply_data | out | 8 | 命令應答數(shù)據(jù) | 
| local_ip_addr | in | 32 | 本地IP地址 | 
| local_mac_addr | in | 48 | 本地MAC地址 | 
| ch_sel | out | 32 | 通道選擇(未使用) | 
| sample_num | out | 32 | 采樣長度 | 
| header | out | 8 | 命令頭 | 
| cmd_reply_ack | in | 1 | 命令應答響應 | 
| cmd_reply_req | out | 1 | 命令應答請求 | 
| cmd_send_len | out | 16 | 命令應答數(shù)據(jù)長度 | 
| ad_data_ack | in | 1 | ADC數(shù)據(jù)應答信號 | 
| ad_data_req | out | 1 | ADC數(shù)據(jù)請求信號 | 
mac_ctrl.v文件實現(xiàn)以太網(wǎng)的傳輸控制,在IDLE狀態(tài)下等待一定時間,進入CMD_WAIT狀態(tài),判斷是否有命令請求cmd_reply_req或數(shù)據(jù)請求ad_data_req,之后進入CHECK_ARP狀態(tài),檢查對應的IP地址是否在緩存列表中,如果沒有,將發(fā)送ARP請求,等待應答。之后根據(jù)命令請求或數(shù)據(jù)請求進入相應的數(shù)據(jù)發(fā)送狀態(tài),CMD_SEND或AD_SEND狀態(tài)。
| 信號名稱 | 方向 | 寬度(bit) | 說明 | 
| clk | in | 1 | 系統(tǒng)時鐘 | 
| rst_n | in | 1 | 異步復位,低電平復位 | 
| udp_send_data_length | out | 16 | UDP發(fā)送數(shù)據(jù)長度 | 
| ip_rec_source_ip_addr | in | 32 | UDP接收到的廣播IP地址 | 
| destination_ip_addr | out | 32 | 目的IP地址 | 
| fifo_data | in | 16 | 從FIFO中讀出的ADC數(shù)據(jù) | 
| fifo_data_count | in | 11 | FIFO中可讀數(shù)據(jù)數(shù)量 | 
| fifo_rd_en | out | 1 | FIFO讀信號 | 
| udp_rd_en | in | 1 | UDP發(fā)送讀請求信號 | 
| header | in | 8 | 命令頭 | 
| sample_num | in | 32 | 采樣長度 | 
| sample_len | out | 32 | 采樣長度latch | 
| reply_data | in | 8 | 命令應答數(shù)據(jù) | 
| cmd_reply_ack | out | 1 | 命令應答響應 | 
| cmd_reply_req | in | 1 | 命令應答請求 | 
| cmd_send_len | in | 16 | 命令應答數(shù)據(jù)長度 | 
| ad_data_ack | out | 1 | ADC數(shù)據(jù)應答信號 | 
| ad_data_req | in | 1 | ADC數(shù)據(jù)請求信號 | 
| ad_sample_req | out | 1 | ADC采集請求信號 | 
| ad_sample_ack | in | 1 | ADC采集應答信號 | 
| mac_send_end | in | 1 | MAC發(fā)送結束信號 | 
| mac_not_exist | in | 1 | IP對應MAC不存在 | 
| arp_found | in | 1 | 接收到MAC | 
| udp_tx_req | out | 1 | UDP發(fā)送請求 | 
| arp_request_req | out | 1 | ARP發(fā)送請求 | 
| udp_data | out | 8 | UDP發(fā)送數(shù)據(jù) | 
| read_req_ack | in | 1 | 讀FIFO應答 | 
| read_req | out | 1 | 讀FIFO請求 | 
| identify_code | out | 16 | IP序列號 | 
注意:上位機設置的緩存空間為1M字節(jié),請求數(shù)據(jù)間隔為100ms,因此在設置采樣深度時要考慮到這兩點。在eth_top.v程序中設置為32'h00040000,即256K字節(jié),采樣頻率為32MHz,ADC采樣端數(shù)據(jù)為兩個字節(jié)長度,因此采樣長度為采樣字節(jié)除以2,即32’h00020000,計算得到4ms即可采集完成。ad9280_sample.v中將8位數(shù)據(jù)擴展16位,便于存儲。移除了UDP發(fā)送數(shù)據(jù)的檢驗和。

3. 實驗現(xiàn)象
1)首先要確保PC的網(wǎng)卡速度為千兆,否則無法顯示。在網(wǎng)絡連接中找到本地以太網(wǎng), 雙擊出現(xiàn)如下界面,千兆網(wǎng)絡默認連接如下圖:

如未出現(xiàn)如上所述界面,先確認是否是千兆網(wǎng)線連接的和網(wǎng)卡是否支持千兆,網(wǎng)卡判別則右鍵屬性

點擊配置,可看到網(wǎng)卡型號查下是否支持千兆。


在鏈接速度中,可以看到目前的鏈接狀態(tài)是多大速度,可在下拉菜單中查找鏈接選項,務必確保鏈接速度為1.0Gbps 全雙工,如果沒有這個選項,說明網(wǎng)卡不支持千兆以太網(wǎng)。
2)將AN108模塊插入開發(fā)板的擴展口J8,注意1腳對齊,不要插錯、插偏,不能帶電操作。不清楚連接的可參考“ADDA測試例程”的教程。
3)連接AN108的ADC的輸入到信號發(fā)生器的輸出,這里使用的是專用屏蔽線,如果使用其他線可能會有較大干擾。
AN108連接示意圖
4)下載程序,調(diào)節(jié)信號發(fā)生器的頻率和幅度,AN108輸入范圍-5V-5V,因此幅度最大設置為10Vpp,為了便于觀察波形數(shù)據(jù),建議信號輸入頻率1Khz到1Mhz。打開示波器.exe即可自動顯示波形。此實驗不需要設置PC的IP地址,連接PC和開發(fā)板即可。

附:上位機軟件說明

綠色框顯示發(fā)送板卡的MAC和IP地址。
紅色框中為控制按鈕,功能如下:
復位:點擊復位可使波形顯示到初始狀態(tài),如下圖

自動:沒有用處
垂直:“垂直“與“水平”切換,點擊此按鈕可進行水平垂直方向縮放的切換,在垂直狀態(tài)下,滾動鼠標滾軸可進行垂直方向的縮放,水平狀態(tài)下,進行水平方向的縮放。
暫停:“暫?!芭c”繼續(xù)“切換,點擊暫停波形,可再點擊“繼續(xù)”顯示波形。
保存:保存ADC數(shù)據(jù)為TXT文檔,保存路徑在“路徑”按鈕處設置,默認為軟件所在路徑。
數(shù)值:“數(shù)值”與“電壓”切換,Y方向坐標單位為原始值,即接收到的原始數(shù)據(jù)值,點擊“電壓”則顯示電壓值。
路徑:選擇保存路徑
打開:打開已保存的TXT波形文件
- 
                                FPGA
                                +關注
關注
1652文章
22231瀏覽量
628548 - 
                                以太網(wǎng)
                                +關注
關注
41文章
5888瀏覽量
179121 - 
                                adc
                                +關注
關注
100文章
6969瀏覽量
552985 - 
                                AD9280
                                +關注
關注
1文章
5瀏覽量
12225 - 
                                紫光同創(chuàng)
                                +關注
關注
6文章
114瀏覽量
28498 
發(fā)布評論請先 登錄
【紫光同創(chuàng)國產(chǎn)FPGA教程】【第二十七章】千兆以太網(wǎng)視頻傳輸實驗
    
【紫光同創(chuàng)國產(chǎn)FPGA教程】【第二十三章】千兆以太網(wǎng)傳輸實驗
    
【紫光同創(chuàng)國產(chǎn)FPGA教程】【第二十四章】AD9238以太網(wǎng)傳輸
    
【紫光同創(chuàng)國產(chǎn)FPGA教程】【第二十五章】AD7606以太網(wǎng)傳輸
    
國產(chǎn)FPGA介紹-紫光同創(chuàng)
【正點原子FPGA連載】第二十六章以太網(wǎng)UDP測試實驗-領航者ZYNQ之FPGA開發(fā)指南
紫光同創(chuàng)PGL22G開發(fā)板|盤古22K開發(fā)板,國產(chǎn)FPGA開發(fā)板,接口豐富,高性價比
第二十六講 寄存器和移位寄存器
    
模擬電路網(wǎng)絡課件 第二十六節(jié):差分式放大電路
    
AD9280 完整8位、32 MSPS AD
    
納雷科技將攜兩大交通家族產(chǎn)品參加第二十六屆CEIC中國高速公路展
開放原子開源基金會亮相第二十六屆中國國際軟件博覽會
上海貝嶺榮獲第二十六屆上市公司金信披獎
潤和軟件亮相第二十六屆中國國際軟博會
ALINX 多系列 FPGA 產(chǎn)品亮相第二十六屆高交會,攜手紫光同創(chuàng)助力 FPGA 國產(chǎn)化發(fā)展
    
          
        
        
【紫光同創(chuàng)國產(chǎn)FPGA教程】【第二十六章】AD9280以太網(wǎng)傳輸
                
 
           
            
            
                
            
評論