QNX Neutrino x86 ターゲットのシリアル(RS-232/422/485 等)ドライバには次の2つがあります。
1) devc-ser8250
レガシーな PC/AT 互換のCOM ポート用ドライバ
仕様がこれに準じていれば PCI のシリアル拡張ボードでも動作する場合あり
2) devc-serpci
PCI シリアル拡張ボード用ドライバ
対象製品:
・Sealevel 社の一部の製品
・SIIG 社の一部の製品
・Oxford Semiconductor 社(現 PLX Technology 社)の OX16PCI954, OX9160 を採用した製品
この2つのドライバで実際に動作を確認した製品の一例を紹介します。
1) AREA SD-PCI9820-1SL
PCI バスのシリアル1ポート拡張ボードで、デバイスは 16C550 互換の MOSCHIP MCS9820 を使用しています。
QNX 6.5.0 にて下記のコマンドで送受信確認しました。他のバージョンでも同様に動作すると思います。
この例では、割り込み番号は 9 ですが、実際は PCI BIOS によって割り当てられた番号を使用して下さい。
# devc-ser8250 -u1 9400,9
クロックは PC/AT オリジナルと同じ 1.8432 MHz なので、ボーレートは最大 115.2 kbps までです。
MOSCHIP には MCS9835 (2S1P), MCS9845 (4S1P) もありますが、動作は未確認です。
2) MOXA CP-114 シリーズ
PCI バスのシリアル4ポート拡張ボードで、基本は RS-422/485 の4ポートですが、
そのうち2ポートは RS-232C としても使用可能な製品です。
チップは 16C550 互換の MU860 で、今回は CP-114IS を使用しました。
QNX 6.3.2/6.4.1/6.5.0 にて下記のコマンドで送受信を確認しました。
# devc-ser8250 -c14745600/16 -u1 b880,11 b888,11 b890,11 b898,11
クロックは 14.7456 MHz なので、ボーレートは最大 921.6 kbps まで可能です。
MOXA の oem enum ファイルやコンフィグレーションユーティリティを使用する事により
自動認識およびドライバ起動が可能です。
MOXA のドキュメントには CP-114 の他にも下記の製品が QNX6 でサポートされると記載されています。
---
Support product list:
2/4/8 Ports PCI Express:
CP-102E, CP-102EL, CP-132E, CP-132EL-I, CP-104EL, CP-104EL-A, CP-114EL,
CP-114EL-I, CP-118EL, CP-118EL-A, CP-168EL, CP-168EL-A
2 Ports PCI and UPCI:
CP-102U, CP-102UL, CP-132U-I, CP-132UL, CP-132, CP-132I, CP-132S,
CP-132IS, CP-102, CP-102S, CP-102UF, CP-112UL.
4 Ports PCI and UPCI:
CP-104UL, CP-104JU, CP-134U, CP-134U-I, C104H/PCI, C104HS/PCI, CP-114,
CP-114I, CP-114S, CP-114IS, CT-114I, CP-114UL, POS-104UL
8 Ports PCI and UPCI:
CP-118U, CP-168U, C168H/PCI, CP-118U-I, CP-138U, CP-138U-I
PC/104-Plus
CB-108, CB-114, CB-134I
---
3) I-O データ RSA-PCI2 シリーズ
PCI バスのシリアル(2 - 8)ポート拡張ボードで、デバイスは Oxford Semiconductor の OX16PCI954 を使用しています。
ただし、8 ポート版は OX16PCI954 に加えて OX16C954 も使用しているので、動作するかどうかは未確認です。
実際の動作確認は RSA-PCI2R を使用し、QNX 6.4.1/6.5.0 にて下記のコマンドで送受信を確認しました。
# devc-serpci vid=0x0x1415,did=0x950a -c14745600/16 -u1
クロックは 14.7456 MHz なので、ボーレートは最大 921.6 kbps まで可能です。
このボードは起動時に自動的に認識されて devc-serpci が起動されますが、クロックをデフォルトの 1.8432 MHz として
起動してしまいますので、起動後に devc-serpci をいったん slay して上記のコマンドで devc-serpci を再起動するか、
enumeration (自動認識)のスクリプトを変更する必要があります。