本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(http://www.alinx.com)。
適用于板卡型號:
PGL22G
1. 實驗簡介
本實驗練習使用ADC的以太網傳輸,實驗中使用的ADC模塊型號為AN9238,最大采樣率65Mhz,精度為12位。基于前面講到的以太網實驗,在本實驗中把AN9238的采集數據以千兆以太網方式傳輸到上位機軟件,我們可以用更加直觀的方式觀察波形,是一個數字示波器雛形,并且可以保存ADC數據。
AN9238雙路65M采樣12位ADC模塊
![pIYBAGBuWM-ADyAOAABSb9ku1jY348.jpg](https://file.elecfans.com//web1/M00/E9/D0/pIYBAGBuWM-ADyAOAABSb9ku1jY348.jpg)
2. 實驗原理
2.1 制定UDP包協議
為了體現上位機的靈活性,基于UDP傳輸,制定了以下通訊協議,此協議包含在UDP數據包中。
一、獲取板卡信息
(1)詢問命令(共5字節,由上位機通過以太網發送)
字節數 | 1 | 4 |
命令信息 | Header | 32’h00000000 或32’h00010001 |
(2)應答命令(共27字節,由開發板通過以太網發送)
字節數 | 命令信息 |
1 | Header|8’h01 |
4 | 32’h00010001 |
6 | 板卡MAC地址 |
4 | 板卡IP地址 |
1 | 符號位8’h00:無符號數 8’h01有符號數(設置無效,上位機要求為有符號數) |
1 | ADC有效數據長度,比如AD9226為12位,即8’d12 |
1 | 采集一次ADC的字節數(設置無效,上位機要求ADC數據位寬為兩個字節) |
1 | 采樣通道(此功能上位機未實現) |
4 | 采樣率,即采樣的頻率,程序中設為65M |
4 | 緩存的ADC數據長度,單位為字節 |
二、獲取數據
(1)控制命令(由上位機發送數據請求)
字節數 | 命令信息 |
1 | Header |
4 | 32’h00010002 |
6 | 板卡MAC地址,確認是本地的MAC地址 |
4 | 采樣通道(此功能未實現) |
4 | 采樣次數(采集數據為16位,采樣次數為緩存數據長度的一半) |
(2)應答命令(由開發板發送)
字節數 | 命令信息 |
1 | Header|8’h01 |
4 | 32’h00010002 |
1024 | ADC數據 |
每個UDP包都包含有Header,在第一個字節,其格式如下:
比特位 | 值(0) | 值(1) |
bit 0 | 查詢或控制 | 應答 |
bit1~bit7 | 隨機數據 |
注:當應答時,高7位隨機數據保持不變,bit0設置為1
2.2 程序實現
首先在空閑狀態,上位機會通過以太網廣播發送詢問命令,因此在IP層接收時要加上判斷是否是廣播UDP數據,如果是,也接收數據,此段代碼在ip_rx.v中,如下所示:
![o4YBAGBuWNCAfwmcAAASP3k7LW0066.jpg](https://file.elecfans.com//web1/M00/E9/54/o4YBAGBuWNCAfwmcAAASP3k7LW0066.jpg)
之后在eth_cmd.v文件中判斷接收到的數據信息,是否是詢問命令或控制命令,從而產生出命令的應答請求信號cmd_reply_req,或請求數據的信號ad_data_req。
信號名稱 | 方向 | 寬度(bit) | 說明 |
clk | in | 1 | 系統時鐘 |
rst_n | in | 1 | 異步復位,低電平復位 |
udp_rec_data_valid | in | 1 | UDP接收數據有效 |
udp_rec_ram_rdata | in | 8 | UDP接收到的數據 |
udp_rec_ram_read_addr | out | 11 | UDP接收數據RAM地址 |
udp_rec_data_length | in | 16 | UDP接收數據長度 |
udp_rd_en | in | 1 | UDP發送讀使能信號 |
reply_data | out | 8 | 命令應答數據 |
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 | 命令應答數據長度 |
ad_data_ack | in | 1 | ADC數據應答信號 |
ad_data_req | out | 1 | ADC數據請求信號 |
mac_ctrl.v文件實現以太網的傳輸控制,在IDLE狀態下等待一定時間,進入CMD_WAIT狀態,判斷是否有命令請求cmd_reply_req或數據請求ad_data_req,之后進入CHECK_ARP狀態,檢查對應的IP地址是否在緩存列表中,如果沒有,將發送ARP請求,等待應答。之后根據命令請求或數據請求進入相應的數據發送狀態,CMD_SEND或AD_SEND狀態。
信號名稱 | 方向 | 寬度(bit) | 說明 |
clk | in | 1 | 系統時鐘 |
rst_n | in | 1 | 異步復位,低電平復位 |
udp_send_data_length | out | 16 | UDP發送數據長度 |
ip_rec_source_ip_addr | in | 32 | UDP接收到的廣播IP地址 |
destination_ip_addr | out | 32 | 目的IP地址 |
fifo_data | in | 16 | 從FIFO中讀出的ADC數據 |
fifo_data_count | in | 11 | FIFO中可讀數據數量 |
fifo_rd_en | out | 1 | FIFO讀信號 |
udp_rd_en | in | 1 | UDP發送讀請求信號 |
header | in | 8 | 命令頭 |
sample_num | in | 32 | 采樣長度 |
sample_len | out | 32 | 采樣長度latch |
reply_data | in | 8 | 命令應答數據 |
cmd_reply_ack | out | 1 | 命令應答響應 |
cmd_reply_req | in | 1 | 命令應答請求 |
cmd_send_len | in | 16 | 命令應答數據長度 |
ad_data_ack | out | 1 | ADC數據應答信號 |
ad_data_req | in | 1 | ADC數據請求信號 |
ad_sample_req | out | 1 | ADC采集請求信號 |
ad_sample_ack | in | 1 | ADC采集應答信號 |
mac_send_end | in | 1 | MAC發送結束信號 |
mac_not_exist | in | 1 | IP對應MAC不存在 |
arp_found | in | 1 | 接收到MAC |
udp_tx_req | out | 1 | UDP發送請求 |
arp_request_req | out | 1 | ARP發送請求 |
udp_data | out | 8 | UDP發送數據 |
read_req_ack | in | 1 | 讀FIFO應答 |
read_req | out | 1 | 讀FIFO請求 |
identify_code | out | 16 | IP序列號 |
注意:上位機設置的緩存空間為1M字節,請求數據間隔為100ms,因此在設置采樣深度時要考慮到這兩點。在eth_top.v程序中設置為32'h00080000,即512K字節,采樣頻率為65MHz,ADC采樣端數據為兩個字節長度,因此采樣長度為采樣字節除以2,即32’h00040000,計算得到4ms即可采集完成。ad9226_sample.v中將12位數據擴展16位,便于存儲。移除了UDP發送數據的檢驗和。
![pIYBAGBuWNCAYqv9AAATDV7IBec423.jpg](https://file.elecfans.com//web1/M00/E9/D0/pIYBAGBuWNCAYqv9AAATDV7IBec423.jpg)
3. 實驗現象
1)首先要確保PC的網卡速度為千兆,否則無法顯示。在網絡連接中找到本地以太網, 雙擊出現如下界面,千兆網絡默認連接如下圖:
![o4YBAGBuWNGAHSHcAACKIicwvI8210.jpg](https://file.elecfans.com//web1/M00/E9/54/o4YBAGBuWNGAHSHcAACKIicwvI8210.jpg)
如未出現如上所述界面,先確認是否是千兆網線連接的和網卡是否支持千兆,網卡判別則右鍵屬性
![pIYBAGBuWNGAMzkFAAC6R7mMAz4491.jpg](https://file.elecfans.com//web1/M00/E9/D0/pIYBAGBuWNGAMzkFAAC6R7mMAz4491.jpg)
點擊配置,可看到網卡型號查下是否支持千兆。
![o4YBAGBuWNKAPjklAAB1lACwKgw470.jpg](https://file.elecfans.com//web1/M00/E9/54/o4YBAGBuWNKAPjklAAB1lACwKgw470.jpg)
![pIYBAGBuWNKAX0XyAAB5-78MSi4967.jpg](https://file.elecfans.com//web1/M00/E9/D0/pIYBAGBuWNKAX0XyAAB5-78MSi4967.jpg)
在鏈接速度中,可以看到目前的鏈接狀態是多大速度,可在下拉菜單中查找鏈接選項,務必確保鏈接速度為1.0Gbps 全雙工,如果沒有這個選項,說明網卡不支持千兆以太網。
2)AN9238模塊插入開發板的擴展口J8,注意1腳對齊,不要插錯、插偏,不能帶電操作,不清楚連接的可參考“AD9238波形顯示例程”的教程。
3)連接AN9238的AD1輸入到信號發生器的輸出,這里使用的是專用屏蔽線,如果使用其他線可能會有較大干擾。
AN9238連接信號源示意圖
4)下載程序,調節信號發生器的頻率和幅度,AN9238輸入范圍-5V-5V,因此幅度最大設置為10Vpp,為了便于觀察波形數據,建議信號輸入頻率1Khz到5Mhz。打開示波器.exe即可自動顯示波形。此實驗不需要設置PC的IP地址,連接PC和開發板即可。
![pIYBAGBuWNOACH5CAABMPZmjL90966.jpg](https://file.elecfans.com//web1/M00/E9/D0/pIYBAGBuWNOACH5CAABMPZmjL90966.jpg)
附:上位機軟件說明
![o4YBAGBuWNSAf4kaAABTAUH-GsQ009.jpg](https://file.elecfans.com//web1/M00/E9/54/o4YBAGBuWNSAf4kaAABTAUH-GsQ009.jpg)
綠色框顯示發送板卡的MAC和IP地址。
紅色框中為控制按鈕,功能如下:
復位:點擊復位可使波形顯示到初始狀態,如下圖
![pIYBAGBuWNOACH5CAABMPZmjL90966.jpg](https://file.elecfans.com//web1/M00/E9/D0/pIYBAGBuWNOACH5CAABMPZmjL90966.jpg)
自動:沒有用處
垂直:“垂直“與“水平”切換,點擊此按鈕可進行水平垂直方向縮放的切換,在垂直狀態下,滾動鼠標滾軸可進行垂直方向的縮放,水平狀態下,進行水平方向的縮放。
暫停:“暫停“與”繼續“切換,點擊暫停波形,可再點擊“繼續”顯示波形。
保存:保存ADC數據為TXT文檔,保存路徑在“路徑”按鈕處設置,默認為軟件所在路徑。
數值:“數值”與“電壓”切換,Y方向坐標單位為原始值,即接收到的原始數據值,點擊“電壓”則顯示電壓值。
路徑:選擇保存路徑
打開:打開已保存的TXT波形文件
-
FPGA
+關注
關注
1630文章
21798瀏覽量
606060 -
示波器
+關注
關注
113文章
6282瀏覽量
185855 -
以太網
+關注
關注
40文章
5460瀏覽量
172752 -
adc
+關注
關注
99文章
6534瀏覽量
545770 -
紫光同創
+關注
關注
5文章
88瀏覽量
27563
發布評論請先 登錄
相關推薦
【紫光同創國產FPGA教程】【第二十七章】千兆以太網視頻傳輸實驗
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創</b><b class='flag-5'>國產</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十</b>七章】千兆<b class='flag-5'>以太網視頻傳輸</b>實驗](https://file.elecfans.com/web1/M00/EA/17/o4YBAGBz92WAL5M_AAAZW5sCUJk498.png)
【紫光同創國產FPGA教程】【第二十三章】千兆以太網傳輸實驗
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創</b><b class='flag-5'>國產</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十</b>三章】千兆<b class='flag-5'>以太網</b><b class='flag-5'>傳輸</b>實驗](https://file.elecfans.com/web1/M00/E9/30/o4YBAGBtJe2AIha4AAGUwAmCtBg901.png)
【紫光同創國產FPGA教程】【第二十五章】AD7606以太網傳輸
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創</b><b class='flag-5'>國產</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十</b>五章】AD7606<b class='flag-5'>以太網</b><b class='flag-5'>傳輸</b>](https://file.elecfans.com/web1/M00/E9/B7/o4YBAGBvxOWALSbqAAAR3t-kUIc983.png)
【紫光同創國產FPGA教程】【第二十六章】AD9280以太網傳輸
![【<b class='flag-5'>紫光</b><b class='flag-5'>同創</b><b class='flag-5'>國產</b><b class='flag-5'>FPGA</b>教程】【<b class='flag-5'>第二十</b>六章】AD9280<b class='flag-5'>以太網</b><b class='flag-5'>傳輸</b>](https://file.elecfans.com/web1/M00/EA/49/o4YBAGB1RPiAJoiLAAAQ9U6ykc8220.png)
火力發電廠水汽分析方法 第二十四部分:硫酸鋁凝聚劑量的測定(
模擬電路網絡課件 第二十四節:甲乙類互補對稱功率放大電路
![模擬電路網絡課件 <b class='flag-5'>第二十四</b>節:甲乙類互補對稱功率放大電路](https://file1.elecfans.com//web2/M00/A5/43/wKgZomUMN6OAHaXYAAANeQfeFNQ949.gif)
2022年第二十四屆高交會綠色低碳路線
![2022年<b class='flag-5'>第二十四</b>屆高交會綠色低碳路線](https://file.elecfans.com//web2/M00/7C/00/pYYBAGN13aeACudWAABfZIoJVfE67.jpeg)
普渡機器人亮相第二十四屆高交會,一起“見圳”科技魅力
![普渡機器人亮相<b class='flag-5'>第二十四</b>屆高交會,一起“見圳”科技魅力](https://file.elecfans.com//web2/M00/7D/5D/pYYBAGN7QtWAZST_AAfw9rEcs40855.gif)
第二十四屆高交會閉幕,普渡科技獲評“最佳品牌獎”
![<b class='flag-5'>第二十四</b>屆高交會閉幕,普渡科技獲評“最佳品牌獎”](https://file.elecfans.com//web2/M00/83/96/pYYBAGOX7GCAS9YvAAsl84g37AU031.png)
【參展消息】格瑞普將攜創新產品與您相約第二十四屆高交會
![【參展消息】格瑞普將攜創新產品與您相約<b class='flag-5'>第二十四</b>屆高交會](https://file.elecfans.com/web2/M00/52/FF/poYBAGLPcOmAALg_AAAilHMxW8Q509.jpg)
華正新材將亮相第二十四屆中國國際光電博覽會
普源精電(RIGOL)獲頒第二十四屆“中國專利金獎”
ALINX 多系列 FPGA 產品亮相第二十六屆高交會,攜手紫光同創助力 FPGA 國產化發展
![ALINX 多系列 <b class='flag-5'>FPGA</b> 產品亮相<b class='flag-5'>第二十</b>六屆高交會,攜手<b class='flag-5'>紫光</b><b class='flag-5'>同創</b>助力 <b class='flag-5'>FPGA</b> <b class='flag-5'>國產</b>化發展](https://file1.elecfans.com//web1/M00/F5/43/wKgZoWc6ppSAeUdvAANd1nK9_gA996.jpg)
評論