51通过CPLD控制8029只是暂时的方案现在主流的基于PCI的10/100M以太网控制芯片(如8139,82559)内部都几乎不带缓冲存储器,它们都是试图通过PCI的MASTER方式直接将从网络收到的数据写入主存储器或把从主存储器读到的数据直接送到网络上。
而8029的操作方式其实和基于ISA的NE2000类网卡差不多,只是将接口换成PCI(TARGET方式)。由于CPU发起的PCI块传送操作,尤其是块读,不能很好地利用PCI总线的猝发方式,又由于收发的以太网包都要首先在控制芯片中完全准备好再传给另一侧,所以在PC上使用时效果其实和ISA卡差不多。
当然用于单片机时并不关心速度和效率,能用是最重要的,但由于上面的原因,我认为8029这种不伦不类的产品可能会比8019更早被淘汰,而且如果肯研究Datasheet,ISA类的控制芯片也还有CS8900A和SMC91C96等可以用。
如果说早晚要转向PCI,那么只有能接驳主流芯片才有前途,但51这一档次的单片机实现起来可能很难,不过我还是有些设想:
1. 如果51支持DMA的话会好办一点,但我还没见过这种51.
2. 在51和CPLD之间加一个Dual-Port RAM或者双向FIFO.
3. CPLD外挂一个普通SRAM而通过CPLD使其在51和NIC之间切换.
4. 选用自带RAM块的CPLD(如ispXPLD)或小型非易失的FPGA(如ProASIC)
不论哪个方案,CPLD/FPGA的逻辑都会比8029方案复杂得多,而宏单元数很多的CPLD会很贵,我自己感觉用Actel的ProASIC PLUS系列的APA075相对会经济一点。
上面这些只想表达我对8029前景的担忧,对在各个方面不断探索着的同行们,我表示衷心的敬意。