シリアルポートとは、情報を(パラレルポートとは異なり)1度に1ビットずつ送受信するシリアル通信物理インタフェースである。
GBAのシリアルポートは、様々な通信モードを持っており、状況に応じて適した通信モードを使用することができます。
注:ニンテンドーDSにはシリアルポートは搭載されていません。
- 通常モード: 2台のGBA間でデータを交換することができます。または、マスターGBAから複数のスレーブGBAに一方通行でデータを転送することができます。
- マルチプレイモード: 最大4台のGBA間でデータをやり取りします。
- UARTモード: UARTモードは、RS232インターフェースのように動作します。
- JOYバスモード: 任天堂の標準的なプロトコルであるJOYバスプロトコルを使用した転送です。
- 汎用モード: シリアルポートを双方向の4ビットパラレルポートとして誤使用(?)して転送を行います。
通信ポートの制御レジスタは、モードによって使い方が変わってきます。
ここでは概要について説明します。
RCNTのbit15-14, SIOCNTのbit13-12を適切な値に設定することで、転送モードを選択できます
モード | R.15 | R.14 | S.13 | S.12 |
---|---|---|---|---|
通常 8bit | 0 | x | 0 | 0 |
通常 32bit | 0 | x | 0 | 1 |
マルチプレイ | 0 | x | 1 | 0 |
UART | 0 | x | 1 | 1 |
汎用 | 1 | 0 | x | x |
JOYバス | 1 | 1 | x | x |
Bit 0 1 2 3 4 5 6 7 8 9 10 11
Normal Master Rate SI/In SO/Out - - - Start - - - -
Multi Baud Baud SI/In SD/In ID# Err Start - - - -
UART Baud Baud CTS Parity S R Err Bits FIFO Parity Send Recv