导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[请教]请熟悉8019的同志帮帮忙!小弟谢了!~~~[long22885528]

 *第10854篇: [请教]请熟悉8019的同志帮帮忙!小弟谢了!~~~

  
楼 主:long22885528 2003年4月23日10:05
 [请教]请熟悉8019的同志帮帮忙!小弟谢了!~~~
谢谢!!!!!我的硬件电路已设计完成(我用的是8位模式),板子也在制作中。现在正在准备编程,遇到一些问题,就是到底我要程序中要编些什么(请别笑话我!我也是刚刚开始,没什么经验),也有一个大体的思路:1)复位网卡(我用的是冷复位),2)对网卡初始化(对PAGE0,PAGE1的相应的寄存器设置)3)读取网卡的物理地址(从网卡RAM的00————0BH读出)4)设置网卡的物理地址(将刚读出的物理地址写到PAR0--PAR5中)5)发送数据6)接受数据我对5,6步的具体实现的还不太清楚,我对“发送数据 ”的理解就是将数据写入网卡RAM的发送缓冲区(OX40--0X4B),然后设置CR将数据发走疑问[1]在这个过程中我没有对数据帧进行封装(实际上我还是不明白在那里对数据的封装(是按802.3协议的格式将数据帧写入发送缓冲区么??[2]我怎么DA(目的地址)写入呢?如果他确定了的话,岂不是只能和一台PC通讯么??[3]802.3数据帧的第五位到底是什么(是数据长度段还是类型字段??[4]在一些资料中看到在编程的时候要将TCP/IP协议写进,到底单片机中的TCP/IP协议是什么?他在程序中有什么用?谢谢!!!

  
2楼:seandy 2003年4月23日10:20
 说说我的见解!
网卡芯片仅仅完成发包功能,既已封装是由你上层软件来完成.比如说吧,你想发一个包到MAC地址为08-00-09-A0-4A-B1的机器,你网卡的地址为A1-3A-4A-F3-4A-4A.........(还有后续的数据).则你就按08 00 09 A0 4A B1 A1 3A 4A F3 4A 4A ...........这样的顺序写到网卡发送缓冲区里面去,然后设置CR进行发送.这样就完成了相应的封装,并发送到目的机器.你如果想和多台PC机通信的话就在写入不同的目的MAC地址进行发送就可以了.
  
3楼:long22885528 2003年4月23日10:49
 谢谢!~~~但是还有疑问……
也就是说我应按这样的顺序将数据写如发送缓冲区1)先写DA,2)SA,  3)TYPE,4)DATA。疑问:1)这样能实现通讯么?相关的TCP/IP协议不需要么?2)TYPE位有什么用,应该怎么写呢??3)DA位定死的化,我还怎么实现与其他的PC通讯啊!难道换一台通讯就要修改一次程序么?
  
4楼:seandy 2003年4月23日11:07
 你理解错误了!
1)先写DA,2)SA,  3)TYPE,4)DATA。疑问:1)这样能实现通讯么?相关的TCP/IP协议不需要么?2)TYPE位有什么用,应该怎么写呢??3)DA位定死的化,我还怎么实现与其他的PC通讯啊!难道换一台通讯就要修改一次程序么? 

我不清楚你说"换一台通讯就要修改一次程序么? "是什么意思.但"1)先写DA,2)SA,  3)TYPE,4)DATA。"的理解是对的."2)TYPE位有什么用,应该怎么写呢??"我建议你还是去看看TCP/IP协议.

  
5楼:long22885528 2003年4月23日11:28
 我的理解没有错!~~~~
不同的PC机的地址(在这指网卡的物理地址),即我们所要写的DA,若要与不同的PC通讯,那不就要改变DA位么?难道单片机会自动改变DA位么??
  
6楼:seandy 2003年4月23日11:52
 不是你的理解错误,那就是我理解错误了!^_^
要想跟多个PC机通信,必须知道多个PC机的MAC地址,而要知道某个PC机的MAC地址,你就要发送ARP请求获得.这就要用到TCP/IP协议了.电脑上就是这样处理的.当然你如果把某一台机子的MAC地址加到你的程序里面当然就只能跟一台机子通信了.
  
7楼:long22885528 2003年4月23日14:55
 这个解释我同意!~~
所以要写ARP协议,但是要将他放那呢??那有介绍51中的ARP协议的啊!~~~谢谢!~~
  
8楼:langren0468 2003年4月23日10:27
 网络通讯协议
  
9楼:long22885528 2003年4月23日11:04
 大哥:我也知道是TCP/IP协议。能不能就我的第一个贴子,具体谈谈!
  
10楼:langren0468 2003年4月23日11:05
 8019只完成物理层,连路层工作,上面的要自己编程!
  
11楼:long22885528 2003年4月23日11:21
 谢谢!~~但我不知如何下手啊!~~~802.3是物理层的协议吧?
  
12楼:langren0468 2003年4月23日11:24
 底层不用管!
  
13楼:long22885528 2003年4月23日11:33
 物理层不就是底层么?想管也管不了啊:),那其他层是怎么工作的呢?
  
14楼:langren0468 2003年4月23日11:44
 只设计IP层和通讯层!
  
15楼:wangshujun 2003年4月23日18:17
 在软件没有调通之前就吧电路板作了,可能会出现很多问题
最好的办法是项老古学习,网卡用成品,然后自己作一个单片机的板子,程序验证没问题了,再去作板子,而且成品网卡也避免了一开始硬件错误找不到原因
  
16楼:long22885528 2003年4月24日07:52
 谢谢!~~我就是用网卡而不是芯片啊!~没有硬件无法访真啊!
  
17楼:langren0468 2003年4月24日09:00
 先软仿真!
  
18楼:long22885528 2003年4月24日09:17
 可以嘛!~~~8019将TCP/IP包转为物理层传输,没有网卡怎么实现呢??
  
19楼:langren0468 2003年4月24日09:19
 你在说什么???8019就是网卡芯片!!!
  
20楼:long22885528 2003年4月24日09:28
 大哥:我指的是8019网卡啊!~~~问你一个问题
802.3以太帧中的DATA位是经过TCP/IP封装后的么??

>>>>>>对该主题发表你的看法

本主题贴数21,分页: [第1页] [第2页]


[上一篇主题]:[求助]我不认识的集成块

[下一篇主题]:问一个vhdl的问题!