아타리 SIO

Atari SIO
Atari 시리얼 I/O(SIO)


Atari-800-Computer-Port-Side.jpg
왼쪽에서 두 번째 SIO 포트를 가진 Atari 800 포트.
유형 시리얼 버스
생산 이력
디자이너Joe Decuir/Atari Inc.
설계된1978년, 44년(연장)
제조원 아타리
생산.1979년부터 1992년까지
일반사양
핫 플러그 대응이론상으로는
외부의네.
13
커넥터D-초소형 변이체
데이터.
데이터 신호양방향 시리얼
8 + 시작/정지 = 10
비트레이트최대 120 kbit/s
최대 장치 수최대 256
8개 사용 중
프로토콜시리얼
핀 배치
핀 1클럭클럭 입력
핀 2클럭아웃클럭 출력
핀 3데이터data 입력
핀 4GND
핀 5데이터 출력data 출력
핀 6GND
핀 7명령어명령어
핀 8모터모터 제어
핀 9진행하다진행하다
핀 10+5 V+5V/준비완료
핀 11오디오 입력오디오 입력
핀 12+12V+12 V (400/800 한정)
핀 13인터럽트방해하다

일반적으로 SIO로 알려진 시리얼 입출력 시스템은 Atari 8비트 패밀리에서 사용되는 전용 주변기기 버스 및 관련 소프트웨어 프로토콜 스택으로, 이러한 컴퓨터에 대부분의 입출력 작업을 제공합니다.RS-232와 같은 당시의 대부분의 I/O 시스템과 달리 SIO에는 수십 개의 디바이스를 지원하는 단일 데이지 체인 포트에 여러 디바이스를 연결할 수 있는 경량 프로토콜이 포함되어 있습니다.플러그 앤 플레이 작업도 지원했습니다.SIO의 디자이너인 Joe DecuirUSB의 기초로서 시스템에 대한 그의 작업을 신뢰합니다.

SIO는 무선 간섭을 통한 FCC의 문제로 인해 Apple II와 같이 내장 카드슬롯을 사용하지 않고 확장할 수 있도록 개발되었습니다.이를 위해서는 디바이스 지원 측면에서 상당히 유연해야 했습니다.SIO 인터페이스를 사용한 디바이스에는 프린터, 플로피 디스크 드라이브, 카세트 덱, 모뎀 및 확장 박스가 있습니다.일부 디바이스에는 부팅 시 호스트 컴퓨터에 복사되는 ROM 기반 드라이버가 있어 컴퓨터 자체에 내장된 네이티브 지원 없이도 새로운 디바이스를 지원할 수 있습니다.

SIO는 프로토콜을 지원하기 위해 주변기기의 논리를 필요로 했으며, 경우에 따라서는 상당한 처리 능력이 요구되기도 했습니다. 예를 들어 Atari 810 플로피 디스크 드라이브에는 MOS Technology 6507이 포함되어 있었습니다.게다가 큰 커스텀 커넥터는 비쌌습니다.이로 인해 SIO 시스템의 비용이 상승했으며, Decuir는 이것이 "시스템 손실"[1][2]의 원인이라고 비난했습니다.8비트 역사 동안 시스템 비용을 낮추려는 노력은 성공하지 못했습니다.

"SIO"라는 이름은 데이터 교환을 처리한 운영 체제의 섹션만을 적절하게 지칭합니다. Atari 문서에서는 버스 자체가 단순히 "시리얼 버스" 또는 "인터페이스 버스"라고 합니다. 단, [3]SIO라고도 합니다.일반적으로 SIO는 운영체제에서 버스, 심지어 물리커넥터까지 시스템 전체를 말합니다.

역사

FCC 문제

SIO 시스템은 최종적으로 아날로그 TV 신호를 직접 생성하는 모든 장치에서 누출될 수 있는 RF 간섭 허용량에 관한 FCC의 규칙에 기인합니다.이러한 규칙은 매우 적은 양의 누출을 요구했고 광범위한 테스트 스위트를 통과해야 했습니다. 규칙들은 아타리의 그래스 밸리 그룹이 [4]아타리 800이 되는 콜린 기계를 설계하던 기간 동안 개정되고 있었다.

그 시대에 TV에 접속되어 있던 몇 안 되는 프리빌트 머신 중 하나인 Apple II는 컴퓨터RF 모듈레이터를 탑재하지 않음으로써 이 문제를 회피하고 있었습니다.대신 애플은 현지 전자회사인 M&R 엔터프라이즈와 Sup'R'Mod라는 이름으로 플러그인 변조기 판매를 주선했다.이는 애플이 기술적으로 텔레비전 신호를 생성하지 않았고 FCC 테스트를 거치지 않았다는 것을 의미한다.Atari의 주요 벤더 중 하나인 Sears는 이 솔루션이 기성품 판매에 적합하지 않다고 생각했기 때문에 간섭 요구사항을 충족하기 위해 전체 시스템을 2mm [4]두께의 알루미늄 블록에 담았습니다.

Collen은 원래 아타리 2600의 후속작인 게임 콘솔이 될 예정이었다.Apple II의 성공으로 인해 시스템이 가정용 컴퓨터로 재배치되었고, 이 시장에는 주변기기가 필요했습니다.Apple II 등의 머신에서는, 어댑터 카드를 머신의 내장 카드 슬롯의 어느 쪽인가에 삽입해, 케이스의 구멍에 케이블을 접속해, 디바이스를 그 케이블에 접속하는 것으로 주변기기를 서포트하고 있습니다.이러한 케이블에 충분한 크기의 구멍이 있으면 Colen이 RF 테스트에 실패하여 심각한 문제가 발생합니다.또한 카드를 대류 냉각하는 것은 [4]매우 어렵습니다.

TI 전환

1978년 [a]Texas Instruments(TI) 영업 사원이 양 끝에 트랜시버를 성형한 광섬유 케이블로 구성된 시스템을 시연했습니다.Joe Decuir는 이를 사용하여 비디오 신호를 외부 RF 모듈레이터로 전송할 수 있다고 제안했습니다.이것은 어쨌든 TV에 신호를 전송하기 위해 필요한 동축 케이블만큼 사용하기 쉽습니다.이제 컴퓨터는 일반 슬롯을 가질 수 있게 되었습니다. Apple II와 마찬가지로 RF 부분은 완전히 외장되어 컴퓨터와 [4]별도로 테스트할 수 있습니다.

데쿠이어가 자신의 컨셉을 설명하자 판매원의 눈이 튀어나올 [4]뻔했다.Grass Valley 팀에게는 알려지지 않은 TI는 당시 TI-99/4를 개발 중이었고 RF 출력에서도 동일한 문제에 직면해 있었습니다.Decuir가 나중에 그의 상관인 Wade Tuma에게 아이디어를 설명했을 때, Tuma는 "아니, FCC는 결코 우리가 그 [4]묘기를 피하도록 허락하지 않을 것입니다."라고 대답했다.TI는 Decuir의 아이디어를 사용했고 1979년 FCC에 제출했을 때 이를 즉각 거부했습니다.TI는 시스템을 재설계해야 했고, 그 결과로 인한 지연은 Atari가 먼저 시장에 [4]나왔다는 것을 의미했습니다.

SIO

이 방법으로 카드 슬롯을 제한함으로써 Decuir는 일종의 [4]외부 시스템을 통한 확장 제공 문제로 되돌아갔습니다.

이때 아타리의 POKEY 칩을 사용하여 테이프에 녹음되는 소리를 직접 출력하여 카세트 덱을 구동하는 작업이 상당히 진행되었습니다.적절한 수정으로 POKEY는 디지털-아날로그 변환 하드웨어를 바이패스하여 TTL 출력을 직접 구동할 수 있다는 것을 깨달았습니다.TTL 디지털 버스를 생성하기 위해 SIO 시스템은 POKEY의 4개 사운드 채널 중 2개를 사용하여 특정 주파수의 클럭 신호를 나타내는 안정된 톤을 생성했습니다.데이터 송수신에는 싱글바이트 버퍼가 사용되었습니다.클럭 신호가 전환될 때마다 버퍼의 1비트가 읽히거나 쓰이게 됩니다.8비트를 모두 읽거나 쓸 때 운영체제가 더 많은 데이터를 [5]읽거나 쓰도록 트리거하는 인터럽트가 발생하였습니다.

일반적으로 하나의 장치만 사용하는 카세트 인터페이스와 달리 외부 확장 포트는 여러 장치를 지원할 수 있어야 합니다.이를 지원하기 위해 간단한 프로토콜이 개발되었고 원래의 간단한 카세트 포트에 몇 개의 새로운 핀이 추가되었습니다.이 중 가장 중요한 것은 COMMAND 핀으로, 버스 상의 디바이스 중 하나를 활성화하고 데이터를 요구(또는 [6]명령어를 전송)하는 5바이트 메시지를 디바이스가 수신하도록 트리거했습니다.또한 디바이스가 호스트의 제어 레지스터에 비트를 설정하기 위해 사용할 수 있는 PROCESS 핀과 INTERRUPT 핀도 추가되었지만, 배포된 시스템에서는 사용되지 않았습니다.마찬가지로 POKEY에 의해 생성된 타이밍 신호는 CLOCKOUT 핀과 CLOCKIN 핀으로 전송되었지만 비동기 프로토콜은 [7]이들을 사용하지 않았습니다.

묘사

하드웨어

SIO 커넥터는 스프링 금속 리프를 사용하여 디바이스의 핀에 단단히 연결했습니다.커넥터에 절단된 슬롯에 의해 리프가 움직일 수 있는 공간이 생깁니다.
Atari 850은 Centronics 프린터와 RS-232 시리얼 포트를 통해 서드파티 디바이스에 연결할 수 있었습니다.전형적인 SIO 디바이스는 데이지 체인을 가능하게 하는 입력 포트와 출력 포트를 모두 갖추고 있습니다.

SIO 버스는 커스텀13 핀 D커넥터 배치(D-서브미니어쳐는 아님)를 사용하여 디바이스의 수컷 커넥터와 케이블의 [8]양 끝에 있는 암컷 커넥터를 사용하여 실장되었습니다.커넥터는 물리적으로 견고하여 디바이스 소켓에 매우 강한 핀을 꽂고 케이블에 스프링 커넥터를 꽂아 반복 사용할 수 있습니다.일반적인 D 커넥터와 달리 마찰이 있습니다.Atari 410 프로그램 레코더는 체인의 끝에 배치해야 했기 때문에 출력 포트를 포함하지 않았지만 대부분의 디바이스에는 데이지 체인을 허용하는 포트가 있었습니다.

통신

SIO는 아타리의 POKEY 칩에 의해 제어되었으며, 여기에는 다수의 범용 타이머가 포함되어 있습니다.이들 중 4개는 타이밍 레이트를 미세하게 제어할 수 있도록 설계되어 있어 Digital-to-Analog Converter(D-to-A; 디지털 아날로그 컨버터)에 접속하여 RF 모듈레이터에 들어가기 전에 TV 신호에 혼합함으로써 사운드 출력에 사용됩니다.이것들은 일부 모드에서는 클럭으로 사용되거나 다른 모드에서는 직접 출력 신호를 생성하기 위해 SIO 시스템의 기반으로 재사용되었습니다.

이 시스템에는 대부분의 데이터 전송을 반자동화하는 데 사용되는 단일 "시프트 레지스터"가 포함되어 있었습니다.이 값은 읽기 및 쓰기를 버퍼링하는 데 사용되는 단일 8비트 값([9]LSB 먼저)으로 구성됩니다.사용자는 쓰기용 SEROUT와 읽기용 SERIN으로 알려진 두 개의 메모리 위치를 통해 이러한 위치에 액세스합니다.이것들은 "섀도 레지스터"로, POKEY와 같은 다양한 지원 칩의 레지스터를 미러링하는 RAM 내의 위치였다.데이터 비트는 제로 스타트 비트 1개와 스톱 비트 1개로 프레임화되었으며 패리티는 [9]사용되지 않았습니다.

동기 모드로 데이터를 쓰기 위해 POKEY의 메인타이머 채널은 적절한 클럭환율(예를 들어 9600비트/초)로 설정되어 있습니다.SEROUT 레지스터에 기록된 데이터는 신호가 하이가 될 때마다 한 번에 1비트씩 전송됩니다.신호가 비트 중간에 로우로 돌아오도록 타이밍이 설정되었습니다.10비트(시작 및 정지 포함)가 모두 전송되면 POKEY는 CPU에 마스크 가능한 인터럽트를 전송하여 다른 바이트에 대한 준비가 완료되었음을 나타냅니다.판독 시 SERIN을 읽기 전에 다른 바이트의 데이터가 수신된 경우 SKSTAT의 세 번째 비트는 오버플로를 나타내기 위해 true로 설정되었습니다.읽혀지고 있는 개별 비트는 SKSTAT의 4번째 비트로 전송되어 프레임이 완료될 때까지 기다리지 않고 데이터를 직접 읽을 수 있습니다.

이 시스템은 공식적으로 최대 19,200비트/s의 속도를 지원했지만, 이 속도를 선택한 이유는 Atari 엔지니어의 프로토콜 분석기가 그 속도로 최고치를 기록했기 때문입니다.이 시스템은 실제로 훨씬 더 높은 성능을 발휘할 수 있었습니다.다수의 서드파티제 디바이스(특히 플로피 드라이브)는 커스텀 하드웨어와 드라이버를 사용하여 전송 속도를 최대 72,000비트/초로 대폭 향상시켰습니다.

시스템에는 동기 통신에 이론적으로 사용할 수 있는 CLOCKOUT 핀과 CLOCKIN 핀이 있었지만 실제로는 비동기 시스템만 사용되었습니다.이 경우 POKEY에서는 위와 같이 기본속도가 설정되어 있으며, 이 기본환율에서 최대 5%의 변경이 뒤따릅니다.이것에 의해, 기계적인 문제나 전기적인 문제로 인해, 시간의 경과에 따라 약간의 환율 변동이 발생하는 실제의 디바이스로 작업하는 것이 훨씬 쉬워졌습니다.예를 들어 카세트 덱을 예로 들 수 있습니다.테이프 스트레칭이 속도를 바꿀 수 있는 경우, 모뎀이 있습니다.리모트 시스템의 클럭이 특정 속도로 정확하게 설정되어 있지 않을 수 있습니다.

디바이스 제어

SIO 시스템에서는 디바이스를 데이지 체인으로 연결할 수 있기 때문에 다양한 데이터 핀의 정보가 체인상의 특정 디바이스용임을 특정할 수 있는 방법이 필요했습니다.이는 COMMAND [9]핀을 사용하여 수행되었습니다.

COMMAND 핀은 일반적으로 [8]높게 유지되며, 핀을 낮게 당기면 버스에 있는 장치가 "명령 프레임"을 수신해야 했습니다.이것은 5바이트 패킷으로 구성되어 있습니다.첫 번째 바이트는 디바이스 ID, 두 번째 바이트는 디바이스 고유의 명령어 번호, 두 번째 바이트는 드라이버에 의해 임의의 목적으로 사용될 수 있는 보조 바이트입니다.이들 4개 뒤에는 체크섬바이트가 [6]계속됩니다프레임이 [10]완성되었을 때 COMMAND 핀이 다시 하이 상태가 되었습니다.

패킷을 수신하면 첫 번째 바이트로 지정된 디바이스가 응답할 것으로 예상되었습니다.이는 패킷이 올바르게 디코딩된 경우 Acknowledge를 나타내는 ASCII 문자 "A", 체크섬이 일치하는 경우 "N"을 포함하는 단일 바이트로 구성됩니다.데이터를 교환하는 명령어에서는 명령어프레임 뒤에 선택한 디바이스와의 사이에서 "데이터 프레임"이 이어집니다.이 프레임은, 수신측으로부터 「C」(완료) 또는 「E」(에러)[11]로 확인 응답됩니다.128바이트의 모든 패킷은 다음 번 전송되기 전에 다른 명령 프레임이 필요했기 때문에 처리량은 지연 문제로 인해 영향을 받았습니다. Atari 810 디스크 드라이브는 일반적으로 19,200비트/초의 속도를 사용했지만 [12]오버헤드로 인해 약 6,000비트/초로 제한되었습니다.

디바이스는 일반적으로 작은 DIP [13]스위치를 사용하여 기계적으로 열거되었습니다.디바이스의 각 클래스에는, 예를 들면 디스크 드라이브의 경우는 30달러, 프린터의 경우는 40달러 등, 16 진수에 근거하는 16개의 잠재적인 숫자가 할당되어 있습니다.그러나 각 드라이버는 원하는 개수만큼 또는 적은 수의 디바이스를 지원할 수 있습니다. Atari 820 프린터 [14]드라이버는 40달러의 단일 프린터만 지원하는 반면 디스크 드라이버는 31달러에서 [15]34달러의 4개의 드라이브를 지원할 수 있습니다.

카세트 사용

원래 410은 XL 시대에 훨씬 더 작은 1010으로 대체되었습니다.

SIO가 된 설계는 적절한 음색을 내기 위해 사운드 하드웨어를 사용하여 카세트 레코더와 인터페이스하기 위한 시스템으로 시작되었습니다.Atari 410과 그 후속 제품들은 비교적 단순한 장치일 수 있도록 이 기능은 실제 버전에서도 유지되었다.

카세트를 작동하도록 설정하면 POKEY의 채널 1 및 2에서 나온 출력이 클럭 핀이 아닌 DATAOUT으로 전송되었습니다.두 채널은 테이프에 녹음하기에 안전한 톤을 생성하도록 설정되었습니다. 0은 POKEY 채널2에 3995Hz, 1은 채널1에 5326Hz입니다.이 모드에서는 POKEY가 SERIN에서 비트를 읽을 때 채널1이 데이터 핀으로 재생되고 0이 재생됩니다.이와 같이, 테이프상의 1바이트의 데이터가 톤으로 변환되었습니다.그러나 컴퓨터에는 A-to-D 변환기가 없었기 때문에 판독에는 다른 시스템이 사용되었습니다.대신 카세트 덱에는 두 주파수에 맞춰 조정된 두 개의 협대역 필터가 포함되어 있습니다.판독중에, 이러한 필터의 어느쪽인가의 출력은, 테이프로부터 비트를 읽어낼 때에 주장됩니다.이것들은 디지털 데이터로 호스트 컴퓨터로 [16]되돌려 보내졌습니다.

테이프가 늘어나거나 헤드를 통과하는 전송 속도가 빨라지거나 느려질 수 있는 기타 기계적 문제가 발생하기 때문에 시스템은 비동기식 읽기 및 쓰기를 사용했습니다.데이터는 레코드당 132바이트의 블록으로 작성되었으며, 처음 2바이트는 비트 패턴 "01010101 010101"입니다.톤이 없는 블록 사이에 레코드 간 간격이 있기 때문에 운영체제는 선두 0을 찾아 새로운 레코드가 언제 시작되는지 알 수 있었습니다.그런 다음 포트를 빠르게 읽어내고 타이밍 비트의 0에서1로의 이행과 복귀의 타이밍을 재어 정확한 데이터 레이트를 판단합니다.다음 바이트는 128 데이터 바이트의 일반 레코드인지, 짧은 블록인지, 파일 끝인지를 지정하는 제어 바이트입니다.최대 128바이트의 데이터가 뒤에 이어 체크섬 바이트가 이어지며 [16]체크섬 이전의 모든 데이터가 포함됩니다.

작동은 SIO 포트의 MOTOR 핀에 의해 추가로 제어되며, 이 용도로 사용됩니다.이 핀이 낮았을 때 갑판의 모터가 꺼졌다.이것에 의해, 테이프가 움직이지 않고 재생 또는 재생과 녹음을 누를 수 있게 되었습니다.컴퓨터에 적절한 명령을 입력하면 MOTOR가 주장되고 카세트가 [16]회전하기 시작합니다.

또 다른 전용 핀은 AUDIOIN으로, POKEY의 D-to-A 변환기와 최종 출력 사이의 사운드 출력 회로에 직접 연결되어 핀 상의 모든 신호가 POKEY의 사운드와 혼합된 후 텔레비전 스피커로 전송되었습니다.이 채널은 카세트의 왼쪽 사운드 채널에 연결되고 오른쪽 채널은 데이터 핀에 연결되었습니다.이것은 사용자들이 왼쪽 채널에서 정상적인 소리를 녹음하고 TV를 통해 재생하도록 허용했다.이것은 종종 대화형 언어 학습 테이프와 유사한 프로그램을 제작하기 위해 직접 모터 제어와 결합되었다.일부 소프트웨어 회사에서는 로드 프로세스를 [17]보다 즐겁게 하기 위해 이 채널에서 소리나 음악을 녹음합니다.

「 」를 참조해 주세요.

메모들

  1. ^ 또 다른 소식통은 이것이 1977년 7월이었다고 말한다.

레퍼런스

  1. ^ "Interview with Joe Decuir". Atari Museum.
  2. ^ Atari - Computer Systems, Atari, Inc., archived from the original on 2015-12-08, retrieved 2015-01-14
  3. ^ SIO 1980, 페이지 1
  4. ^ a b c d e f g h 데쿠아르
  5. ^ SIO 1980, 페이지 6-7.
  6. ^ a b SIO 1980, 페이지 13
  7. ^ SIO 1980, 페이지 8
  8. ^ a b SIO 1980, 페이지 7
  9. ^ a b c SIO 1980, 페이지 6
  10. ^ SIO 1980, 페이지 18
  11. ^ SIO 1980, 페이지 16
  12. ^ Atari 810 Disk Drive Operator's Manual (PDF) (Technical report). 1979. p. 6.
  13. ^ "Indus GT Installation".
  14. ^ SIO 1980, 페이지 25
  15. ^ SIO 1980, 페이지 28
  16. ^ a b c DeRe 1981, 페이지 부록 C.
  17. ^ Victor, John (October 1982). "Audio While You Cload". Antic.

참고 문헌