I/O 포트(input/output port)는 I/O 인터페이스라고도 하는 것으로서, 입출력장치와 CPU 사이에 존재하여, 전송 속도, 전압 레벨, 전송 사이클의 길이 등을 조절함으로 써 이들 간에 데이터 전송이 원활하게 이루어지도록 하게 하는 역할을 한다.


일반적으로 입출력장치를 직접 CPU에 연결할 수 있으면 좋겠지만, 실제로 그럴 수가 없다.

첫째로 속도가 맞지 않는다. 입출력장치의 속도는 CPU의 속도에 비교가 되지 않을 정도로 느리다.

둘째로 전압 레벨이 맞지 않는다. 입출력장치의 전압 레벨은 기종에 다라 각양각색이다.

셋째로 전송 사이클의 길이가 맞지 않는다. 상당수의 입출력장치는 기계장치이기 때문에 정송 사이클의 길이가 길다. 이러한 것들을 서로 맞게 하기 위해선느 CPU와 입출력장치 사이에 특별한 하드웨어를 만들어 넣어야 하는데, 이것이 I/O 포트인 것이다.


I/O 포트는 CPU와 입출력장치간에 데이터전송하는 방식에 따라 병렬형과 직렬형으로 분류되는데, AT90S2313은 병렬형과 직렬형 모두를 내장하고 있다. 내장 병렬 I/O 포트의 수는 포트B, D 2개이고, I/O 라인의 수는 도합 16개이다(AT90S8515는 4개 포트에 32ㅐ의 I/O 라인임). AT90S2313의 외부핀이 20개 밖에 되지 않으므로, 대부분의 오부핀이 I/O 라인에 할당되어 있음을 알 수 있다.


AT90S2313의 I/O  포트는 자유자재로 입력 또는 출력으로 될 수 있는데, 입력의 겨웅에는 High 임피던스 상태로 되고, 출력의 경우에는 High 또는 Low 의 상태가 된다. High 상태에서는 3 mA의 전류를 공급(source)하고, Low 상태에서는 20mA의 전류를 흡입(sink)한다. AT90S2313은 High 상태에서 3mA밖에 출력하지 못하므로 전류 흡입형으로 외부장치를 연결해야 한다.

Posted by 나무길 :