您好,欢迎来到全球工厂网!请 |免费注册

产品展厅本站服务收藏该商铺

深圳市立显光电有限公司

免费会员
手机逛
深圳市立显光电有限公司

Product Display

产品展示

当前位置:深圳市立显光电有限公司>>>>LED 手表>> LEDSUP-083A厂家供应自动同步时钟|无线wifi/zibgee远程控制电子时钟|自动校时电子钟

厂家供应自动同步时钟|无线wifi/zibgee远程控制电子时钟|自动校时电子钟

产品二维码
参  考  价:面议
具体成交价以合同协议为准
  • 产品型号:LEDSUP-083A
  • 品牌:
  • 产品类别:LED 手表
  • 所在地:
  • 信息完整度:
  • 样本:
  • 更新时间:2023-02-14 20:17:58
  • 浏览次数:70
收藏
举报

联系我时,请告知来自 全球工厂网

深圳市立显光电有限公司

其他

  • 经营模式:其他
  • 商铺产品:52条
  • 所在地区:
  • 注册时间:2015-05-21
  • 最近登录:2023-02-14
  • 联系人:徐飞
产品简介

ledsup-083a用的网络芯片是rtl8019as,但是在移植u-boot到开发板的时候,网络的移植出了一点问题

详情介绍

ledsup-083a用的网络芯片是rtl8019as,但是在移植u-boot到开发板的时候,网络的移植出了一点问题。所以想看看rtl8019as这个网卡是如何工作的,很不幸的是,正如网络上很多人说的那样,rtl8019的文档及其的烂,真的不是一般的烂。基本上看过它的文档,跟没看过没什么区别。现将网络同步时钟的网卡工作过程详细讲述一下。

rtl8019as网卡的功能:

一句话来说,网卡所完成的功能就是收发数据。

  • 接收功能:从网络上接收数据,然后存储于网卡内部的RAM(本网卡为16KB)中,然后触发中断,通知CPU来取走数据。

  • 发送功能:CPU发送的数据被复制到网卡内部的RAM中,然后网卡自主的在网络上发送这些数据。

由此可见,对于程序员来说,网卡其实就是一片内存区域。程序员对网卡的操作实际上可以认为是对内存的读写操作。当网络上有数据传来时,LED时钟网卡存储这些数据到内存,并通知CPU到内存的相应位置取相应大小的数据。当时钟CPU想向网络上传输数据时,只需要将数据写入网卡的内存,然后给网卡一个"发送"命令即可。就是这么简单。

很明显的,网络数据是一个层次性很强的东西,OSI就规定了网络的7层协议,TCP/IP规定了5层协议,从数据上来说,tcp帧作为IP帧的数据被打包进IP帧,而IP帧又作为以太网帧的数据被打包进以太网帧。如上所述,CPU跟网卡的交互就是数据的读和写"数据",但是,这个数据到底是什么数据呢?我们该怎么理解从同步时钟的网卡中接收到的二进制数据呢?我应该认为它是一帧IP帧,还是一帧以太网帧呢?我们写内存来发送数据,那么,我们发送的应该是什么格式的数据呢?我们是打包成IP数据,还是需要打包成以太网数据呢?接收和发送的数据的帧格式并不一样,如下图所示:




由上图可见,LED电子时钟只需要将如上图所示的IP帧写入RAM中,其余的就叫给网卡去办就可以了。而接收的数据,其实是一个修改过了的IP帧,整体还是在IP这个层次上。由此可见,对于网络数据,应用层程序只需要处理到IP层,将数据打包成变形的IP帧即可。至于将IP帧打包成以太网帧然后在网络上传输,这些功能都是时钟网卡自己完成的。接收数据也是一样,从网卡的RAM中接收到的数据就是变形的IP帧,至于底层的物理链路数据和以太帧的解析,这些都是网卡完成的。也就是说,IP层以下的处理,对于程序员来说,是透明的。

时钟网络组件联网同步芯片RTL8019AS寄存器介绍:
1、rtl8019as的工作机制以及原理:
网络时钟接收:rtl8019as的RAM是一个循环RAM空间,当网卡从网络上接收到数据后,会按照RAM地址从小到大依次存放接收到的数据。但是RAM的空间只有16K,而且,有一部分还是划为用来做发送缓存,另外的那一部分才是用来做接收缓存的。当网络上的数据超过了缓存的大小怎么办呢?这里就需要介绍一些,rtl8019as的RAM是一种循环RAM,所谓循环RAM,比如说用来做接收缓存的RAM的页是从50页~80页,接收的数据从第50页开始存放,一直存放到第80页。当接收的数据过多,超过了上限的第80页时,再接收到的数据就会重新从第50页开始依次从低到高存放!当然,时钟CPU也在同时的从RAM中读取走数据,所以只要安排得当,采用循环RAM,还是有可能不会将原先的数据冲掉的。而且RAM的利用率将会得到提高。那么怎么样才叫安排得当呢?在实际的机制中,引入了CURR和BNRY这两个"指针"(两个实际的寄存器)。这两个寄存器都是存放的RAM的页地址(rtl8019as也是以页为单位存储的)CURR表示如果网卡接收到了数据,应该从CURR页开始存放。而且这个CURR寄存器的值是网卡自动为它赋值的,每填满一个页,CURR寄存器的值就增加1,表示下一次有数据来的时候从下一个页开始存放。BNRY表示,CPU已经从RAM中接收的数据,到BNRY页为止,就是BNRY+1页的数据还没有被CPU取走。CPU下来再来取数据的时候就应该从BNRY+1页来取数据。那么可以想见,当网卡从网络上接收到数据,已经超过了接收缓冲的上限,重新从下限开始存放的时候,只要我不存放到超过BNRY页,都是不会引起将原来被有被CPU取走的数据覆盖的,不是么?正是这样。这真是一个很好的方法啊。
网络时钟发送:相对于接收,发送功能就要简单一点了。应用程序只需要将数据写入到RAM中,想网卡发出发送命令即可完成数据向网络的发送了(置RD2,RD1,RD0的值为011即可),当网口通知CPU有数据到来,或者CPU检测到RAM中有数据需要读取的时候,设置两个地址值RSAR和RBCR。RSAR0,1:要读取的数据的起始地址,RBCR0,1:要读取的数据的大小(可以以字节为单位),然后我们从数据寄存器中读取数据,每读取一次,数据寄存器中所指向的地址就会增加1。其寄存器变化原理图如下:




仟渔https:///
上一篇: 立显光电NTP同步时钟系统的实现及局域
下一篇: 123456789寸数码管|WIFI时间系统|自动
我要评论
文明上网,理性发言。(您还可以输入200个字符)

所有评论仅代表网友意见,与本站立场无关。

请选择省份

  • 安徽
  • 北京
  • 福建
  • 甘肃
  • 广东
  • 广西
  • 贵州
  • 海南
  • 河北
  • 河南
  • 黑龙江
  • 湖北
  • 湖南
  • 吉林
  • 江苏
  • 江西
  • 辽宁
  • 内蒙古
  • 宁夏
  • 青海
  • 山东
  • 山西
  • 陕西
  • 上海
  • 四川
  • 天津
  • 新疆
  • 西藏
  • 云南
  • 浙江
  • 重庆
  • 香港
  • 澳门
  • 台湾
  • 国外
=
同类优质产品

在线询价

X

已经是会员?点击这里 [登录] 直接获取联系方式

会员登录

X

请输入账号

请输入密码

=

请输验证码

收藏该商铺

X
该信息已收藏!
标签:
保存成功

(空格分隔,最多3个,单个标签最多10个字符)

常用:

提示

X
您的留言已提交成功!我们将在第一时间回复您~