我有一台车载电脑,里面有一个3G PCIe卡,用于蜂窝通讯,但我不知道我要用哪个串口来发送AT命令。
这台计算机还包括一个全球定位系统在飞机上,我可以很好地访问通过/dev/ttyS5的速度为9600。我一直在看一些文件,我看到3G卡的速度应该是115200。这个3G PCI卡是一个"Telit HE910迷你PCIe数据卡“,我在Ubuntu14.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请帮助弄清楚如何通过串口访问这张3G卡发送AT命令。
发布于 2015-09-19 01:27:17
您可以使用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“。151 f是供应商id,而000是从"lspci -n -v“或/proc/bus/pci或从"scanpci -v”获得的设备id。"command=101“意味着将101放入命令寄存器,这与"lspci”显示的“控制”寄存器相同。101h设置两位: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_司机_UserGuide_r2.pdf
其中,只能使用以下设备:/dev/ttyACM3 0: PPP连接的数据端口;AT命令/dev/ttyACM3: AT命令的通用端口
https://unix.stackexchange.com/questions/230650
复制相似问题