セルラー通信用の3GPCIeカードを内蔵した車両用コンピューターを持っていますが、ATコマンドを送信するために使用する必要のあるシリアルポートがわかりません。
このコンピューターにはGPSも搭載されており、/dev/ttyS5
を介して9600の速度で非常によくアクセスできます。いくつかのドキュメントを読んでいて、3Gカードの速度は115200である必要があることがわかりました。この3GPCIカードは"Telit HE910 Mini PCIeデータカード"そして私はbuntu 14.04で実行しています。
また、以下のようにn(0 ... 5)ポートでシリアルcomを開こうとしましたが、結果はありませんでした。
stty -F /dev/ttySn ispeed 115200 && cat </dev/ttySn
Sudo setserial -g /dev/ttyS[012345]
を実行すると、次のようになります。
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: 16550A, Port: 0x03e8, IRQ: 5
/dev/ttyS3, UART: 16550A, Port: 0x02e8, IRQ: 7
/dev/ttyS4, UART: 16550A, Port: 0x02f0, IRQ: 11
/dev/ttyS5, UART: 16550A, Port: 0x02e0, IRQ: 10
ATコマンドを送信するために、シリアルポートを介してこの3Gカードにアクセスする方法を理解するのを手伝ってください。
lspci -v
を使用して、PCIデバイス情報とそのIRQを一覧表示できます。 lspci
を介してリストされたIRQをすでに収集したsetserial
情報と相関させると、どのttyがどのPCIカードに一致するかがわかります。
また、ポートが無効になっている場合は、setpci
を使用して有効にできます。それを決定する方法とそれを有効にする方法の詳細については、ここを参照してください: http://www.tldp.org/HOWTO/Serial-HOWTO-8.html#ss8.7
ポートがIOアドレスを介して通信する場合、「lspci -vv」は「Control:I/O + ...」を表示し、+はIOアドレスが有効になっています。「I/O-」(および「... [無効]のI/Oポート」)が表示されている場合は、setpciコマンドを使用して有効にする必要があります。例:「setpci-d 151f: 000 command = 101 "。151fはベンダーID、000は" lspci -n-v "または/ proc/bus/pciまたは" scanpci-v "から取得したデバイスIDです。" command = 101 "これは、101が「lspci」によって表示される「制御」レジスタと同じコマンドレジスタに配置されることを意味します。101hは2ビットを設定します。1はI/Oを+に設定し、100部分はSERR#を+に設定します。この場合、lspciコマンドの実行時に制御レジスタのSERR#ビットのみが最初に+であることが観察されたため、最初にビット8(ビット0はI/O)を1に設定することにより、+を有効にしたままにしました。 101分の1。一部のシリアルカードはSERR#を使用しないため、SERR#が表示された場合は有効にする必要がないため、command = 1を使用します。次に次のようにします。 「setserial」を設定して、ドライバーにIOおよびIRQを通知します。
Telitのドキュメントによると、3GモデムがACMを実行しているように見えます。/dev/ttyACM *デバイスがあるかどうかを確認します。その場合、ドキュメントに従って、それらを使用してATコマンドを送信できます。ドキュメントには、カーネルモジュールがまだロードされていない場合は、ロードする方法についての説明もあります。 http ://teleorigin.com/file_upl/pliki/1/Telit_HE910_HE863_GE910_UL865_Linux_Driver_UserGuide_r2.pdf
これらのうち、使用できるのは次のデバイスのみです。
/ dev/ttyACM0:PPP接続およびATコマンドのデータポート
/ dev/ttyACM3:ATコマンドの汎用ポート