发布日期:2015-09-18 15:39 来源: 标签: Linux教程 串行硬件 Linux串行硬件 Linux
目前,L i n u x对采用RS-232标准的串行卡提供了广泛的支持。 RS-232是当前PC领域内最常用的串行通信标准。
       目前,L i n u x对采用R S - 2 3 2标准的串行卡提供了广泛的支持。 R S - 2 3 2是当前P C领域内最常用的串行通信标准。它利用大量回路来同步传送单一的信息位。新增的线路将用于标示载波(供m o d e m所用)和握手的存在。 
       尽管硬件握手是可选的,但它非常有用。它允许通信的任何一方标示是否已准备接收数据,或另一方是否应该在接收方处理完接收到的数据之后,再继续发送数据。用于这些用途的线路分别称作“清除发送”(Clear to Send ,C T S )和“准备发送”(Ready to Send ,RT S), 它们代表硬件握手名,即RT S / C T S 。 
       在P C领域内,R S - 2 3 2接口通常是一颗U A RT芯片(源于国家半导体1 6 4 5 0芯片)或新版本的NSC 16550A   (以前,有过NSC 16550 芯片,但其F I F O一直未能起过任何作用)。其他牌子(全球最引人注意的是装备R o c k w e l l芯片组的m o d e m )也采用了完全不同的另类芯片,可以模拟1 6 5 5 0芯片。 
       1 6 4 5 0和1 6 5 5 0芯片之间的主要区别是后者有 1 6个字节的F I F O缓冲,而前者只有 1字节的缓冲。这样一来, 1 6 4 5 0适用于9 6 0 0波特以下的数据传送速率,而高速率则要求 1 6 5 5 0芯片。 除了前面提到的芯片外,L i n u x还支持8 2 5 0芯片,该芯片是最初的U A RT  (通用异步收发机), 用于P C - AT 。 
        默认配置方案中,内核会对C O M 1到C O M 4之间的四个标准串行端口进行查看。就像前面描述的那样,这些端口将分配到6 4到6 7之间的设备副编号。如果打算正确配置自己的串行端口,你应该随r c . s e r i a l脚本一起,安装Ted Ts o的s e t s e r i a l命令。 
应该在系统启动时间,从/ e t c / r c调用这个脚本。典型的r c . s e r i a l脚本像下面这样: 

关于s e t s e r i a l命令的参数说明,请参考相应文档。 
       如果内核没有侦测到你的串行卡,或s e t s e r i a l - b g命令显示出一个错误的设置,你必须清楚提供正确的参数值,实施整个配置。对使用装备 R o c k w e l l芯片组的内置m o d e m 的用户,经常会碰到这个问题。比如,将 U A RT芯片认作是NSC 16450 芯片,而事实上,它是兼容于 N S C 1 6 5 5 0的芯片,面对这种情况,你只有将配置命令改为 
/sbin/setserial /dev/cua1 auto irq skip test autoconfig 
uart 16550 
    类似的情况也发生在C O M端口、基础地址和I R Q设置上。详情参阅s e t s e r i a l ( 8 )手册。 如果你的m o d e m支持硬件握手,就应该确定启用这一特性。奇怪的是,默认情况下,多数通信软件都不会启用它;所以你必须自行手动设定。这一过程最好利用 s t t y命令,在 r c . s e r i a l脚本内进行: 
$ stty crtscts < /dev/cua1 
要想查看硬件握手是否开始起作用,则采用 
$ stty -a < dev/cua1 
这样,就能看到该设备的所谓状态标记了;前面带有负号-的标记(比如- c r t s c t s ),表示该标记已关闭。 

相关评论

专题信息
    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。