大家好。
我想用c8051f120单片机控制CP2200进行以太网数据传输,只要求最简单的数据传输,也就是要求单片机和计算机之间进行点对点的传输, 但是对于速度要求比较高。要求每秒10M位(bit)速度,请问c8051f120能达到这个速度吗? 通过CP2200的datasheet得知,数据读取的流程 第一步:读 RXVALID 第二步:如果 RXVALID 或 RXOK 为 0,或要跳过当前包,则要向 RXSKIP(RXCN.1) 写 1。 如果 RXVALID 和 RXOK 为 1,则读 CPLENH:CPLENL 以获取当前包的长度。 第三步:通过读 RXAUTORD 来读取整个包,每次读一个字节。 第四步:如果读完整个包,向 RXCLRV(RXCN.2)写1。 如果当前缓冲区中还有任何未读的字节,则向 RXSKIP(RXCN.1)写 1。
数据发送的流程 第一步:等待前一个包发送结束(TXBUSY == 0x00)。最坏的情况是在半双工方式下 用指数退避算法,此时发送一个包的最长时间为 500ms。 第二步:设置发送缓冲区指针 TXSTARTH:TXSTARTL 为 0x0000。 第三步:如果最后一个包是被放弃的包((TXSTA3 & 0xF8)!= 0x00),则必须使用随 存储器访问方法将该包装入发送缓冲区: 等等
我的问题是,难道我控制单片机只往buffer写入或读取数据就行了,是不是我往buffer写入或读取数据 之后CP2200就自动的对数据进行封装,从UDP ARP 到 IP 假如这样的话,速度就有可能达到10M位,因为单片机只是 读写数据而不进行其他操作(初始化过程例外,不占用时间)
但是我看新华龙支持的例程,还要进行UDP ARP IP 的编程才能实现,假如这样的话将会花去单片机的很多时间, 请高手解答一下。不胜感激 |