本人在这方面由于做过产品,从中有一点经验,特上传到网上,供有意者参考和提点。
由于本人公司的产品要求保密,所以就只讲一些以太网方面的东西。
现在大多数智能设备和仪表都是用RS232和485进行通讯,所以在远程控制上常常会带来一些遗憾。而目前以太网已经很成熟,所以把以太网的线路利用到需要远程控制的系统中去,是一件很不错的事情。而智能设备和仪表都是很底层的东西。所以我们必须了解以太网底层的东西。以实现他们之间的通讯。
以太网(IEEE802.3)的物理传输帧的格式:目的MAC地址(6个字节)+源MAC地址(6个字节)+类型(2个字节)+数据(n 个字节)+校验位(4个字节)。其中n小于1500个字节。要注意的有以下几点。
1,其中必须注意到MAC地址应该是全球唯一的,(虽然只要不在局域网里不存在相同的MAC地址即可,但制造原则应该是全球唯一。因为谁也不知道到时候相同MAC的网卡会不会会聚一堂。
2,类型(type)是区分所传的以太网包是哪个协议层的数据包,例如是IP包、ARP地址解析包等,不同包有不同的值,0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包。
3,数据(data)是以太网包里最主要的东西,它所包含的是用户所需要的数据。当然它还有很多种类型的数据,代表着不同的含义。有着不同的用处。
4,校验和,这一项当然对大家来说都不陌生。我也不必来解释。
现在的仪表一般只要10M网卡的速度都可以满足其传输数据的要求,一般方案是利用单片机(本人用的51单片机)、网卡芯片、脉冲变压器等。如果要求更高的速度100M,那么就一般需要ARM和相应的网卡芯片来实现。在这里我做过10M网卡的东西,所以只能讲10M的系统。因为100M的网卡我还没有去设计,需要留到以后。
在10M网卡的系统中。我们一般采用的网卡芯片主要是台湾瑞虞公司的RTL8019AS、RTL8029AS,以及NE8900等芯片。这些芯片的资料网上都可以搜索到,至于具体选用哪个型号的则要看各位的喜好了,相应的典型应用电路网上都可以搜索到 。
至于软件方面,则由于单片机处理方面的限制,以能完成所需的基本要求为原则,但几个基本的协议必须要能实现,比如ARP协议、ICMP中的PING 命令、IP协议、UDP或着TCP协议中的一种,因为这是传输数据最基本的要求。各种协议的实现,大家也可以参考TCP/IP协议的书籍。
如果各位有这方面问题可以跟本人联系,以便大家可以互相探讨提高。
本人信箱:cwlchen@sina.com
QQ:17728314
小灵通:0571-87527172