欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


在Linux下用Smbmount命令挂载Windows共享
Linux操作系统中Samba服务介绍
Linux操作系统上摄像头的使用小技巧
CentOS如何安装iftop来查看网络流量
vps重装相关步骤记录
linux查看磁盘io的几种方法
linux iftop网卡流量监控工具命令大全
linux打包压缩命令大全
Windows Server 2008系统自带的磁盘分区进行无损分区教程
怎么把安全模式加入WinXP系统启动菜单
Linux操作系统下的四个串口
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   最有有个项目,用到了PC104的板子(PCM-3341),Linux的系统。

  但是在项目中至少要用到3个RS232,看datasheet,够用。板子有3个独立的RS232和一个RS232/485复用口。但是在实际测试用,遇到个问题。1口和2口都能正常工作(后来发现也是有问题的,读传感器数据的时候,读不完全),但是3口和4口却出现了很奇怪的现象。

  主要表现为:

  1.可以输入输出

  2.输入输出速率很慢

  3.发现数据在缓存里头,每次大概只能输出12个字符左右(不确定的长度)。

  开始一直没有找到原来,后来咨询别的技术人员,估计是中断问题。

  以google发现了下面的文章:原始出处,问题解决了,很感谢高手的指点。可惜还没来得及去深入。

  LINUX默认支持四个串口:COM1(ttyS0),COM2(ttyS1),COM3(ttyS2),COM4(ttyS3)(较新的linux中已不使用cuaX来区分拨入拨出),通常情况下,COM1和COM3共同使用IRQ4,COM2和COM4共同使用IRQ3。

  虽然LINUX支持共享中断技术,但它无法发现实际的物理中断冲突。在上述情况下,COM3和COM4因为中断冲突而无法正常使用。本文介绍了如何在Red Hat 8.0环境下使用COM3和COM4。

  由于当前开发项目需要同时使用四个串口,而所用的开发用工控机恰好有四个,省去了买多口卡的麻烦,直接编程使用了COM3和COM4。当进行测试时,问题出现了:COM3和COM4收发数据非常的慢,几个BYTES的数据在115.2K的通讯速率下要一二十秒才能发出或收到,完全不能满足对应用的要求。

  通过查检资料,确认这是一种典型的中断冲突故障,使用方法如下:

  setserial /dev/ttyS2 irq 0

  再使用通讯程序,现在数据传输就看不到有明显的延迟了。这是由于将COM3设置为irq0中断时,设备实际上并未使用中断,而是使用了polling技术,从而证明了故障是由于中断机制造成的,有冲突发生。

  主板上COM3和COM4的跳线表明可使用IRQ5和IRQ7,于是设置好跳线并运行

  setserial /dev/ttyS2 irq 5

  setserial /dev/ttyS2 irq 7

  使用通讯程序,发现故障依然,怀疑仍有冲突。查阅资料知,IRQ5和IRQ7通常为并口使用,但当前系统未使用并口啊。进入BIOS发现里面设置了并口并占用IRQ7,将该项DISABLE掉。似乎和IRQ5没多大关系,发现设置中IRQ5和7为"PCI/ISA PnP",改为"Legacy ISA"方式后,重启,COM1--COM4均可正常使用。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站