⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 106.htm

📁 尝试使用有意义的结构与组织
💻 HTM
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->Linux HowTo 中译版-->Linux Serial HOWTO 中译版 : 11,12</TITLE>
<META NAME="keywords" CONTENT=" Linux HowTo 中译版 Linux Serial HOWTO 中译版 : 11,12">
<META NAME="description" CONTENT=" - Linux HowTo 中译版 - Linux Serial HOWTO 中译版 : 11,12">

<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋体"}
.tt2 {font: 12pt/15pt "宋体"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD CLASS="tt3" VALIGN="top" width="8%"  bgcolor="#e0e0e0"><strong><A HREF="107.htm">后一页</A><BR>
<A HREF="105.htm">前一页</A><BR>

<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">Linux Serial HOWTO 中译版 : 11,12</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
姓名:Greg Hankins greg.<br>
Email:hankins@cc.gatech.edu<br>
地址 :<br>
转摘 :http://member.netease.com/</p>
<BR>
<BR>
<hr SIZE="0">
<BR>
<p>11. 串列使用秘诀 <br>
这里有一些你可能发现很有用的串列□诀... <br>
<br>
11.1. kermit 以及 zmodem <br>
要在 kermit 下使用 zmodem 的话,将下列内容加到你的 .kermrc 里去: <br>
<br>
define rz !rz &lt; /dev/ttyS3 &gt; /dev/ttyS3 <br>
define sz !sz \%0 &gt; /dev/ttyS3 &lt; /dev/ttyS3 <br>
<br>
要确定正确地放入你数据所在的串列埠.然後,要使用的话,只要在
kermit 的提示符号下键入 rz 或 sz &lt;档名&gt; 即可. <br>
<br>
11.2. 自动设定终端机型式 <br>
要在当你签入的时候自动设定你的终端机形式的话,把终端机的形式加到
/etc/inittab 的项目里去.如果我有一台 vt100 终端机在 ttyS1 上
,我要对 getty 指令加上 ``vt100'': <br>
<br>
S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 <br>
<br>
<br>
你也可以使用 tset,可以在你签入的时候建立终端机的特性,而且不需要依赖任何的预设值.
<br>
<br>
11.3. 在串列连线下的彩色 ls <br>
如果 ls 因为彩色特性而扰乱了你的终端机模拟,把它关掉. ls --color
以及 ls --colour 都使用彩色特性.有些安装方式使得 ls
预设为使用彩色.检查 /etc/profile 以及 /etc/csh.cshrc 里的 ls
别名.如果你不想修改系统预设值的话,你也可以设给 ls 别名 ls
--no-color. <br>
<br>
11.4. 从终端机所连接的印表机进行列印 <br>
有一个叫做 vtprint 的程式可以做得到,在 ftp://ftp.sdsu.edu/pub/vtprint 及
http://www.sdsu.edu/~garrett 可取得. <br>
<br>
另外一支叫 xprt 的程式也能做到.它可在
ftp://sunsite.unc.edu/pub/Linux/system/printing 找到. <br>
<br>
11.5. Linux 能不能够自动地配置串列设备? <br>
可以.要让 Linux
在启动的时候自动地侦测并且设定串列设备的话,把这一行: <br>
<br>
/sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig <br>
<br>
加到你的 /etc/rc.d/rc.local 或是 /etc/rc.d/rc.serial
档案里面.对每一个你希望自动配置的串列埠都要做.要确定所给的是一个真正存在於你电脑上的设备名称.
<br>
<br>
11.5.1. 多埠卡的注意事项 <br>
对於卡的位址,以及 IRQs 查阅 setserial 程式随附的 rc.serial.它有很多关於多埠卡的细节,包括输出入位址以及设备名称.
<br>
<br>
11.6. 使用串列控制台 <br>
在第三十六期的 Linux Journal 在 http://www.ssc.com/lj/issue36/index.html
有篇文章解释如何使用串列控制台(serial console).不幸的是,寄电子邮件给作者都被退回.我希望这篇文章会很快地上述
URL 的 Linux Journal 网站中. <br>
<br>
11.7. 更高的串列流量 <br>
如果在一部使用 (E)IDE
磁碟机的系统上你发现流量很慢而且串列埠常溢满,你可以取得
hdparm.这是一个可以修改 (E)IDE 参数,包含让一磁碟 IRQ
动作期间其它 IRQs
仍可工作.这会改善反应速度并帮助消除溢满.确定小心地读过了线上手册,因为某些磁碟/控制卡组合不喜欢它并且可能损毁档案系统.
<br>
<br>
也可以看一下一个叫 irqtune 的工具,可以改变一个装置 IRQ
的优先顺序,例如你数据机所在的串列埠.这也可能改善你系统的串列流量.
irqtune 的常见问题解答(FAQ)可在 http://www.best.com/~cae/irqtune 找到. <br>
<br>
<br>
12. 更进一步... <br>
这一节并不需要阅读,但是可能带给你一些对於 Unix
以及电子通讯世界更进一步的了解. <br>
<br>
12.1. 什麽是锁定档案(lock files)? <br>
Lock files
只是单纯的一个档案用来表示某个特定的设备正在使用中.它们保存在
/usr/spool/uucp 或是 /var/lock 里面. Linux 的 lock files 名字都是 LCK..name,其中的
name 不是设备名称就是一个 UUCP 节点名称.有些程序建立这些 locks
以便让它们自己可以独占该设备的存取权.例如如果你从你的数据机拨号出去,将会出现一个
lock 告诉其它程序现在已经有人正在使用数据机. Lock files
里面主要是包含锁住该设备的程序的行程号码(PID).大部份的程式会查阅
lock,然後检查行程表(process table)中锁定该设备的行程来试著决定这个
lock 是否仍然有效.如果发现这个 lock 是有效的话,这个程式(应该)要结束.如果不是,某些程式会删除过时的
lock,然後使用该设备,并在行程执行时建立他们自己的 lock.其它的程式就只好结束并告诉你该设备正在使用中.
<br>
<br>
12.2. ``baud'' 对 ``bps'' <br>
``baud'' 跟 ``bps'' 可能是电脑/电子通讯这个领域里最常被错用的术语之一.当它们事实上并不相同的时候,很多人仍交替使用这些术语.
<br>
<br>
鲍率(baud) <br>
鲍率是每秒钟数据机(调变解调器,modulator-demodulator)送出多少次讯号改变的度量.例如,鲍率为
1200 的含意是信号每隔 833 微秒(microsecond)即改变一次.普遍的鲍率有
50, 75, 110, 300, 600, 1200 以及 2400.大部份的高速数据机所使用的鲍率为
2400.因为语音级(voice-grade)电话线路的频宽限制,超过 2400
的鲍率很难达的到,而只能在非常纯净的电话线品质下才能运作.
``baud''一词在 Emile Baudot 之後才有,他是非同步电报印表机(asynchronous
telegraph printer)的发明者. <br>
<br>
每秒传输位元(bps) <br>
每秒位元传输率是每秒钟传输多少位元的度量.普遍每秒位元传输率有
50, 75, 110, 300, 1200, 2400, 4800, 9600, ... 115200.在使用 V.42bis 压缩(压缩最大率
4:1)的数据机下,理论上每秒位元传输率可以高达 115200.这是许多人在错用
``baud'' 这个字时所指的意思. <br>
<br>
<br>
所以,如果高速数据机以 2400 baud 运作,它们如何能够传送 14400 bps?
数据机对每个 baud 编码来表示某一数量的位元而使得 bps 能大於 baud.这样一来,当二个或更多位元编码成一个
baud 的时候,bps 就会超越 baud.如果你的数据机是以 14400 bps
连线的话,它将会以 2400 baud 的速度每个 baud 传送六个位元. <br>
<br>
这个混淆是怎麽样开始的?
嗯,回到今天的低速数据机还是昨天的高速数据机那个时代,每秒位元传输率跟信号改变率实际上是完全相等的.每个
bit 编码成一个 baud.人们交替使用 bps 以及 baud
是因为它们的数字相同.例如一台 300 bps 的数据机其信号改变率也是
300.当高速数据机普及後一切都改变了,而且每秒位元传输率超过了信号改变率.
<br>
<br>
12.3. 什麽是 UARTs? 它们如何影响效能? <br>
UARTs (通用非同步接收转换器,Universal Asyncronous Receiver Transmitter)是你
PC
串列卡上的晶片.它们的功用是把资料转成位元,将这些位元送上串列线路,然後在另一端重新建立资料.
UARTs 是以位元组为单位处理资料,很方便地也是美国标准交换码(ASCII)的字元大小.
<br>
<br>
假定是你有一台连接到你 PC
的终端机.当你键入一个字元时,终端机把它交给它的转换器(也是
UART 的一种).该转换器以指定的速率把这个位元组送到串列线路上,每次一个位元.在
PC 这一端,接收位元的 UART
拿走所有的位元,然後重新组成位元组并且放到缓冲区里去. <br>
<br>
有两种不同的 UARTs 类型.你可能有听过愚蠢的(dumb)UARTs - 8250 还有
16450,以及先进先出式 UARTs - 16550A.要了解它们的不同,首先让我们来检验当
UART 送出或接收一个位元组时所发生的事. <br>
<br>
这 UART
本身并不能对资料做什麽处理,它只是送出以及接收它.每次送出或接收一个位元组时,CPU
都会从串列设备接到一个中断.然後 CPU 就把接收到的位元组从 UARTs
的缓冲区搬到记忆体的某处,或是提供另一个位元组给 UART 传送.
8250 以及 16450 UARTs
只有一个位元组的缓冲区.这个意思是,每送出或接收一个位元组就会中断
CPU 一次.在低速的情况下这样没有问题.但是在高速的传输率下,CPU
会忙於处理 UART 而没有时间照料其它工作.在某些情况下,CPU
没有足够的馀裕及时处理中断服务,该位元组将因资料如此快速地传入而被覆写.
<br>
<br>
这就是 16550A UARTs 有用的地方.这些晶片具有 16
个位元组的先进先出伫列.这个意思是它在必须中断 CPU
之前可以接收或转换达 16 个位元组.它不仅是能等,而且 CPU
现在也可以同时传送全部 16 个位元组的资料.虽然中断界限(threshold)很少有设到
16 的,这对於其它只有一个位元组缓冲区的 UARTs
而言仍然是一个重要的优点. CPU
收到较少的中断,因此可以自由地做其它事情.资料不会漏失,每个人都很高兴.
(也有 16550 这个 UART,但是它跟 16450 一样因为它有问题.) <br>
<br>
一般来说, 8250 以及 16450 UARTs 应该能够胜任高达 38400 bps
的工作速率.在高於 38400 bps
的速率下,你可能开始见到资料漏失.其它的 PC 作业系统(这里的定义很宽松),像
DOS 并非是多工的,所以它们有可能可以用 8250 或 16450s
却应付的更好.这就是为什麽有些人并没有看到资料漏失,直到他们改用
Linux 才发生. <br>
<br>
无-UART(Non-UART)以及智慧型多埠卡使用数位处理机(DSP)晶片来处理额外的缓冲以及控制,如此更能减轻
CPU 的负担.例如,Cyclades Cyclom 及 Stallion EasyIO 这些卡使用 Cirrus Logic
CD-1400 RISC 晶片,还有许多卡使用 80186 CPU 或更特别的 RISC CPU
来处理串列输出入. <br>
<br>
心里要记得,这些愚蠢型的 UART
并非是坏的,只是它们不适合做高速传输.当你将终端机或滑鼠连接到这些
UARTs 时应该不会遭遇困难.但是对高速数据机而言,16550A
可以说是必须的. <br>
<br>
你可以花多一点点的钱购买有 16550A UARTs
的串列卡,只要询问电脑商该卡所使用的是什麽型号的 UARTs
即可.或者你想升级你现在的卡,你可以只要简单地购买 16550A
晶片并且置换你现在的 16450 UARTs 晶片.它们的脚位相容(pin-to-pin
compatible).有些卡有 UARTs
插槽来作这个用途使用.如果不是的话你可以焊接.注意,如果你有钱,买一张新卡将可能会省掉你许多麻烦,它们在
$50 元美金以下. </p>
<BR>
<hr color="#EE9B73" size="1" width="94%">

</TD>
<TD CLASS="tt3" VALIGN="bottom" width="8%"  bgcolor="#e0e0e0"><strong><A HREF="107.htm">后一页</A><BR>
<A HREF="105.htm">前一页</A><BR>

<A HREF="index.html">回目录</A><BR>
<A HREF="../../../../index.htm">回首页</A><BR>
</strong>
</TD>
</TR>
</table>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -