Linux系统下PCI转串口卡驱动安装方法

Linux系统下PCI转串口卡驱动安装方法,第1张

以下答案是我从我爱买电脑配件批发网上摘过来的,希望能帮到你。

由于公司产品要做行业市场,而产品与行业用户间PC的通讯为RS232串口方式。而行业用户那里的PC都没有串行口,而且行业用户PC *** 作系统为Turbo Linux。怎么办?

办公室内有台机器是RedHat Linux 9.0 一个是 Fedora Core 5 。就先在这两个系统上试验吧。这两台电脑上各自本身就有2个RS232串口。

一、PCI转串口卡安装 型号NetMos Nm9835CV

1、插入PCI卡到主机

2、启动 Linux,打开终端

3、输入命令:#setserial /dev/ttyS0 -a (COM-1)

显示内容:/dev/ttyS0, Line 0, UART: 16550A, Port: 0x3f8, irq: 4

Baud_base: 115200, clos_delay: 50, divisor: 0

closing_wait: 3000, closing_wait2: infinite

Flags: spd_normal skip_test

4、输入命令:#setserial /dev/ttyS2 -a (COM-3)

显示内容:/dev/ttyS2, Line 2, UART: unknown, Port: 0x3e8, irq: 4

Baud_base: 115200, clos_delay: 50, divisor: 0

closing_wait: 3000, closing_wait2: infinite

Flags: spd_normal skip_test

第3、4步 *** 作的目的主要是对主机自带串口及PCI扩展串口的区别。区别在于4显示的内容中UART:未unknow。不过若您检测这一步的时候 UART为16550A而不是unknow,证明你的系统已经认识了扩展的串口,不需要进一步设置,直接跳入第8步测试就可以了。

5、需要输入命令查看一下您当前PCI检测的状态,以便对扩展串口进行设置

#more /proc/pci

会显示出一堆的信息,不要因为看不懂而吓坏了。只要看到类似于这个PCI的信息,比如:PCI communication。。。或者Board with Nm9835CV part。。。 可能就是这个卡了,主要看看它的终端是多少,即irq多少及分配的地址是多少。例如:(不一定完全一样)

Board with Nm9835CV part irq:11

I/O at 0xc000 [0xc001] serial port 1

I/O at 0xc400 [0xc401] serial port 2

I/O at 0xc800 [0xc801] not used

I/O at 0xd000 [0xd001] not used

I/O at 0xd400 [0xd401] not used

I/O at 0xd800 [0xd801] not used

6、知道PCI扩展卡的终端为11 串口1地址为0xc000 串口2地址为0xc400..

就可以设置扩展的串口了。输入命令:

setserial /dev/ttyS2 port 0xc000 UART 16550A

irq 11 Baud_base 115200

另一个串口也类似的这么 *** 作

7、设置完毕后,就可以看看设置的情况了,输入第2步的命令看看,UART是否就是16500A 而不是 unknow了,如果是16500A恭喜,可能设置好咯,如果不是那就再检查一下吧。

8、设置好了后是不是需要测试一下是否能够通讯呢?最好的办法是两台pc相连。如果pc为windows *** 作系统就用超级终端,是linux呢就用minicom吧

9、装有linux的机器,首先需要设置一下监听的串口参数,输入命令

#minicom -s

进入界面后有个框d出来,如果你还认识点英文单词的话,就回知道选择哪个的。应该是第三个吧,串口设置。

将第一行更改为 /dev/ttyS2

波特率也更改您所需要的。

更改完后保存,保存的那个菜单应该是 save ... df1

最后 exit

10、在另外一台机器发送数据,这台机器minicom界面就能够收到信息了,成功后觉得挺有意思。另外不要把两个COM顺序弄翻了,如果弄错了哪个是COM3 COM4测试可就不灵便咯。

Linux发行版自带usb to serial驱动,以模块方式编译驱动,在内核源代码目录下运行Make MenuConfig选择Devces

drivers-->USB seupport--><M>USB Serial Converter support

--><M>USB driver for GSM and CDMA modems [*]USB Generic

Serial Driver,保存退出。运行make

modules,编译成功后可找到usbtoserial.ko及option.ko两个驱动(2.6以上内核版本模块驱动用.ko表示)。

@ toc

可在控制台输入

也可以用stty设置串口参数

使用后相当于串口回传,发什么回什么

发送数据

可以对串口发送数据比如对com1口

一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;

如果有ttyS设备,再看/dev/有没有ttyS*,如没有就建立一个:

如果板子的设备中没有标准串口设备ttyS0,也没有ttySAC0。/dev下应该有一个USB串口:/dev/ttyUSB0.

当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2),这完成看原已内建的串口数目。ttyS*设备会被报告在/var/run/stab内。

PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC

可能是linux下的串口设备没有打开,需要改变串口设备

的权限,或者根据文章头添加用户到组处理

可以通过以下命令 查看 板子上的硬件端口的内核设备名

该条命令会将 ttyUSB0所对应的硬件端口的kernel设备名 显现出来, 得到KERNEL== '1-5.5.4', 而不是之前的ttyUSB0

cmd.sh如下:

./getUSB.py 调用当前路径下的getUSB.py这个Python语言,明确此次是哪个,ttyUSB0,或者ttyUSB1挂载在端口3-1.1上

getUSB.py:

完成之后 ,设置开机启动cmd.sh(在/etc/rc.local中设置)则每次开机之后,会从/dev/ttydata获取到固定端口的数据

方式一

写入内容如下:

方式二

我的硬件序列号:ATTRS{serial}=="FTSYWCXZ"这个号是唯一的

可以通过/dev/usb_0打开串口设备

常用的匹配类型:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8780974.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存