RS232 speed comparison under UZIX
Written by Adriano C. R. da Cunha
To know how some of the many RS232 interfaces available for MSX behave under the UZIX operating system, a simple test was made with them the compare the resulting reception/transmition times.
The test itself is very simple: it consists in, giving a RS232 interface and a speed, connecting the MSX into a Linux box using the PPP and TCP/IP protocols. Once connected, the connection speed is tested measuring the time spent to send and receive a data packet. 20 packets are sent (and, hopefully, received) from MSX to the Linux box and the roundtrip time is measured, giving us an average value of the speed of the link. The reverse case is also tested (20 packets are sent from the Linux box to MSX and the roudtrip time is measured). Previous tests show that 20 packets is a sufficient number for our tests, and incresing it will not make our results more accurate. Each packet sent/received has a total of 64 bytes, including data and packet headers.
For practical purposes, the well-known ping application was used for sending/receiving data. Thus, some facts are assumed:
the time spent by the Linux box to process the packets is zero, compared to the time needed for serial transmission/reception and processing on MSX;
under the UZIX and Linux operating systems it's assured that none of them are wasting CPU power with other processes that are not relevant to the test;
the CPU time spent by the MSX machine is also added to the total measured time, but it's assumed to be a constant, since the processing of one data packet is equal to the other data packets;
speeds lower than 9600bps were not tested, since we're interested in testing a high-speed connection; but, just for information, low-speed times were measured when the interface couldn't handle higher speeds;
the Van Jacobson compression for PPP packets was disabled to not affect the time measuring;
for the final result, the measured average and maximum times are not counted, since they affect the results and we're concentrated in the fastest speed reached by the interface;
Some conclusions:
From 19200bps and up there is no significative gain in speed: the bottleneck is the CPU power;
The fastest RS232 interface is Sunrise RS232C; it's also the best option in speed range; it can reach 57600bps in a MSX Turbo-R in R800 mode, 38400bps in a MSX with 7MHz Z80 and 19200bps in a MSX with 3.5MHz Z80 without loosing data;
ASCII's MSX-Serial 232 is the second best interface when used with its DMA mode turned on; it can reach 19200bps in any MSX;
Gradiente's CT-80NET can't reach speeds higher than 9600bps, even in a Turbo-R in R800 mode; since this interface doesn't use the IC pair 8251/8253, but 8530, this conclusion is not valid for other serial interfaces;
The results for Spectravideo's SVI-737 are too uncommon and do not allow us to make a conclusion based on these results;
Legend:
NT - means "Not Tested"
X - means that wasn't possible to establish a connection at this speed
--/--/-- - means that connection was possible, but all sent packets were lost
red value - mean that connection was possible, but the communication error rate was too high
blank field - means that the interface doesn't support this speed
Note: it is possible to establish a connection but not sucessfully send/receive ping packets: connection PPP packets are much smaller (around 10 bytes) than ping packets; it means that the serial interface can't send/receive large packets without loosing bytes.