OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7183|回复: 7

[ALTERA] 开拓者网口UDP 问题

[复制链接]

1

主题

10

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-12-25
在线时间
2 小时
发表于 2018-12-25 14:46:59 | 显示全部楼层 |阅读模式
大家好,我使用的是正点原子的开拓者,我在测试UDP通信的时候,发现网口通信,每次都是收发4个字节(32个bit),但是手册上写的是UDP 数据是 46~1500Byte ,

    input                tx_start_en,    //以太网开始发送信号
    input        [31:0]  tx_data    ,    //以太网待发送数据  
    input        [15:0]  tx_byte_num,    //以太网发送的有效字节数
    input        [31:0]  crc_data   ,    //CRC校验数据
    input        [3:0]   crc_next   ,    //CRC下次校验完成数据
    output  reg          tx_done    ,    //以太网发送完成信号
    output  reg          tx_req     ,    //读数据请求信号
    output  reg          eth_tx_en  ,    //MII输出数据有效信号
    output  reg  [3:0]   eth_tx_data,    //MII输出数据
    output  reg          crc_en     ,    //CRC开始校验使能
    output  reg          crc_clr         //CRC数据复位信号



而且我测试发现,发送的数据是从低位到高位依次覆盖这4个字节,也就是收发寄存器中,如果发送ox11,ox22,ox33,ox44,ox55,ox66,这几个字节,那么在寄存器中读到的数据是ox55,ox66,ox33,ox44。依次发送的数据一帧数据会进行覆盖,如果是不同的帧,比如第一次发送ox11,ox22,ox33,ox44第二次发送 ox55一个字节,那么寄存器中就是ox55,0x22,0x33,0x44。

为什么收发数据是4个字节固定的一帧呢?而不是其他字节呢。而且也不满足数据长度要求呀?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2018-12-25 16:40:00 | 显示全部楼层
以太网要求发送至少46个字节,对于字节较少的情况,后面要补零
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-12-25
在线时间
2 小时
 楼主| 发表于 2018-12-25 17:50:58 | 显示全部楼层
QinQZ 发表于 2018-12-25 16:40
以太网要求发送至少46个字节,对于字节较少的情况,后面要补零

但是程序里面没看到补充0 呀,还是自动补0 的呢?正点原子的程序  默认都是发4字节的么??也就是程序后面可以增加字节数,
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-12-25
在线时间
2 小时
 楼主| 发表于 2018-12-25 17:52:27 | 显示全部楼层
QinQZ 发表于 2018-12-25 16:40
以太网要求发送至少46个字节,对于字节较少的情况,后面要补零

                if(tx_bit_sel == 3'd0) begin
                    eth_tx_data <= tx_data[27:24];
                end   
                else if(tx_bit_sel == 3'd1)
                    eth_tx_data <= tx_data[31:28];   
                else if(tx_bit_sel == 3'd2)
                    eth_tx_data <= tx_data[19:16];   
                else if(tx_bit_sel == 3'd3)
                    eth_tx_data <= tx_data[23:20];                                                                  
                else if(tx_bit_sel == 3'd4)
                    eth_tx_data <= tx_data[11:8];                                 
                else if(tx_bit_sel == 3'd5)
                    eth_tx_data <= tx_data[15:12];   
                else if(tx_bit_sel == 3'd6) begin
                    eth_tx_data <= tx_data[3:0];
                    if(data_cnt != tx_data_num - 16'd1)
                        tx_req <= 1'b1;  
                end                                       
                else if(tx_bit_sel == 3'd7)
                    eth_tx_data <= tx_data[7:4];                                                                                                        
                if(skip_en) begin
                    data_cnt <= 16'd0;
                    real_add_cnt <= 5'd0;
                    tx_bit_sel <= 3'd0;
                end  

就是这个位置嘛,可以增加发送数据的长度嘛。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-12-25
在线时间
2 小时
 楼主| 发表于 2018-12-25 20:47:02 | 显示全部楼层
ywhfdl 发表于 2018-12-25 17:50
但是程序里面没看到补充0 呀,还是自动补0 的呢?正点原子的程序  默认都是发4字节的么??也就是程序后 ...

如果我要收发多个字节的数据,岂不是要32bit的拼接了,还要判断32bit中到底是哪些字节数据是更新的。
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-12-25
在线时间
2 小时
 楼主| 发表于 2018-12-25 20:47:24 | 显示全部楼层
回复 支持 反对

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2018-12-25 21:18:33 | 显示全部楼层
本帖最后由 QinQZ 于 2018-12-25 21:32 编辑
ywhfdl 发表于 2018-12-25 17:50
但是程序里面没看到补充0 呀,还是自动补0 的呢?正点原子的程序  默认都是发4字节的么??也就是程序后 ...

有填充 1.png

回复 支持 反对

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2018-12-25 21:23:44 | 显示全部楼层
还有一点是这个只是定义输入的数据位宽是32bit,是指一个时钟周期输入的数据位数,数据量多的话分多个时钟周期传输就好了;
input        [15:0]  tx_byte_num,    //以太网发送的有效字节数
这个就是单次发送的字节数,肯定可以发送以太网所支持的最大字节数。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-4 10:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表