Hacker News new | ask | show | jobs
by analog31 1261 days ago
On the old terminals, the wire sits at one voltage level until a character is transmitted. After that, the bits are spaced out at agreed-upon time intervals. So the receiver detects the first transition, and then reads and stores the bits by applying the same timing, then waits for the next character. Meanwhile, the value of that character, say an 8-bit number, is stored in a register, and typically the processor is interrupted. This gives the processor time to deal with each character before the next one is received.

Oddly enough I could have answered the OP's question in an interview, 40 years ago, but stuff has gotten so complex that I can't even tell you what all of the layers of abstraction are.

1 comments

In the olden days, I'd drive my Fred Flintstone car to work. Serial I/O was done by wire-wrapping a UART chip on the board, which handled all the dirty details.

https://en.wikipedia.org/wiki/8250_UART

Though the UART chip I used was years earlier than that. Perhaps the Wikipedia article is wrong on that point.

On my first PC, the serial port was an add-on board, and I wire-wrapped one to save a few bucks. My hands were trembling as I powered it up. I don't remember the chip either. Next time I "wired" a UART, it was built into a microcontroller. I also bit-banged one for the PIC16C84 MCU.

But asynchronous serial isn't completely obsolete yet. It just has more protocol layers on top of the physical layers.

I had a design notebook for the project, which included all the datasheets for the various chips. Dammed if I know what happened to it.