Hardware TCP/IP-Stack + Ethernet Controller

In 2003, I discovered the first information about the chips of the company "WIZnet", which had managed a complete TCP/IP-stack in an integrated circuit. That went in the direction, favored by me : the lowest time-critical and complex layers of the TCP/IP-stack reside in external hardware, and the KC85 must send and receive network data with a corresponding protocol (RFC) "only".

Hardware TCP/IP Stack + Ethernet Controller

In October 2006, I bought an experimental board with a WIZnet chip and started the KCNet project later:

2007 - 2008:  KCNet - Native TCP/IP Stack for Z80 Systems

  • Ralf Kästner
  • Z80 PIO
  • BSD like Socket API
  • Z80 Assembler

This way of connecting a Z80 system over a fast parallel connection to a hardware TCP/IP-stack removes all disadvantages of the other solutions : no red markers, what a surprise :-) :

freely programmable - very good
memory usage
-
very low
system load through the stack -
no
stability and reliability -
yes
other computer or server needed
-
no
system load through network activity -
no
transfer speed of network data
-
high
response time and usability -
very good
communication capabilities -
very good
implementation of standard RFC-protocols -
yes
convenient API for network programming -
yes
compatibility with other Z80 systems -
very good
login / authentification / connection -
no
The TCP/IP stack is offloaded from the system, and the Z80 processes the network program on top of the TCP- or UDP-layer normally. The  system load remains at the level of an application program, because the hardware does the difficult and time-consuming work of the TCP/UDP-, IP- and network protocol-layers.

The Z80-PIO hands over the network data to the stack, and ensures high bidirectional transfer-speed with a very simple hardware-handshake. Because the PIO is a standard peripheral circuit for Z80 systems, the hardware-interface is highly portable.

With the existing API, the TCP/IP-stack behaves like memory for the Z80 system, and can be used very easy. The high-level socket CALL's let application programming be a snap for network programmers.

The 4 channels of the WIZnet stack can be programmed on the TCP/UDP transport layer, but on the IP-layer or network-layer (MAC) too.

For academic reasons, it would even be possible to write the stack in software and use the MAC-layer of the stack as connection to the network (hybrid mode), where the hardware limitation to 4 sockets no longer exists.

The low-level commands of the hardware interface form a generic protocol, and do not restrict a programmer in doing anything with the stack.

The software, which is required in order to use the stack, may be included in each network program, due to the small size. There is, compared to the first two solutions, almost no memory consumption.