There were more than a few people at the Maker Faire who wondered about the protocol used to communicate with the IC at the heart of the Mouse Eye. Everyone over 40 said that it must be PS/2. I knew about the connector, but not the protocol until now. Not much need to tap a PS/2 device lately…
The old IBM Personal System/2 gets origination credit for the old barrel connector and protocol. Based on the wave forms on this very informative source, its closest cousin seems to be SSI. The clock line idles high, and data is sent one byte at a time LSB first. There’s start, stop, and parity bits along for the ride. In contrast, the ADNS2620 IC that we use in the Mouse Eye has a much different flow. It’s a synchronous protocol, but there is none of that start, stop, parity business. If you mumble your bits, you just don’t get listened to. Here’s a head to head wave form comparison.
Above you have the PS/2 clock and data lines. Bytes are sent one at a time, and it takes 11 clock cycles to send 8 bits (image from this site). Below are images taken from the ADNS2620 datasheet (here you go).
First thing to notice is that there’s no parity, start, or stop bits. All the timing is done on the rising and falling edges of the clock. The two bytes sent are continuous in this Write Operation. 16 bits, 16 clock cycles. Data is MSB first.
The only difference with the Read Operation is the Detal ‘A’ and Detail ‘B’, which are timing considerations to allow the ADNS a chance to take control of the data line there in the middle where it starts to send the byte of interest to the host, and then release it at the end. This is about as far from PS/2 as synchronous serial gets. If anyone out there has a name for it (real or imagined) please let me know. We’re calling it MouseEye protocol around here.
In other news, we are cooking up some delicious libraries for all of our products which will be released next week! Have a good weekend!