2012年11月26日星期一

Basic Input & Output Interface

After learning a lot about the structure and the function of pins in 8088, we begin to learn how it interface with other input and output. I feel 8088 is like a commander and he controls those sub-devices and coordinates them together to achive the goal.

As for a whole and brief look, the professor shows us the graph below, which describes how 8088 interface with peripheral devices and memory part.


But to write our own program to control it , we have to take a step further and learn more detailed knowledge about every part as well as the connection between them.

Input-output involves the transfer to (or from) peripheral devices from (or to) the data bus of the cpu; eg. data transfer to the CRT display, from the keyboard, to/from a hard-disk drive, to/from a modem to another computer system.

Input-output operations fall into one of the following types:

Programmed I/O - cpu polls peripherals to check if I/O is needed
Interrupt I/O - peripheral sends an interrupt request to cpu for I/O
Direct memory access (DMA) - peripheral writes directly to memory

The more detailed connection among each part is shown as below:

We can see from the graph  data Transfer between the I/O interface and the peripheral ca  involve either parallel or serial data transmission, depending on the peripheral and the actual implementation of the I/O interface.

Parallel data transfer involves using at least 8 separate lines for the 8 data bits in a byte. Normally, other lines are needed for the communications protocol (eg. STB [data strobe] line to indicate when data is valid, ACK line to acknowledge data has been read).

Serial data transfer involves sending the data on a single line, bitby bit. The I/O interface converts the data from parallel to serial or vice-versa using shift registers.

And there are 2 modes as for control the interface:

(1) Synchronous - data are sent in blocks, with start and end-of-block
markers. Individual characters within a block do not need start and stop
bits since the receiver identifies every 8 bits as one character, eg.

(2) Asynchronous - no block synchronization bits. Each character is identified by the start and stop bit(s) (stop bits can be 1, 1.5, 2 bits) inserted at the start and end of each character,eg.


It is really amazing that such a tiny chip can have so many functions, and we can even choose different modes to realize different goals. The graph below is a format for us to refer when we want to set different modes.


My own thinking about this course
As this course has ended in last week, I feel even though I still know little about the function and control of microprocessor, at least I have had a concept of it and known some basic operations.I still believe the best way to learn is to try it yourself. And the corresponding lab session gives us such a good chance.Making it out is really much much more difficult than knowing about it.That's why I spend a lot of time in lab session and I still find it hard.

Apart from the knowledge and experience I get, I begin to know the importance of cooperation and teamwork. Cooperation is important because without agreement and coordination we cannot accomplish what we need to do. Everyone must make sacrifices for the better if needed. To organize important ideas and events, cooperation must be obtained between groups of people to insure the job is done right and well.




2 条评论:

  1. The author cleverly combines the theories with appropriate pictures, which helps readers have more intuitive feeling about the subject.

    回复删除
  2. 对IO interface的讲解挺详细的,如果可以,建议再加些例子,可以更詳細的解釋如何設置CONTROL WORD 等。

    回复删除