  The Linux Serial HOWTO
  David S.Lawyer   bf347@lafn.org original by Greg Hankins
  v2.00 May 1999
  The Linux Japanese FAQ Project
  v2.00j June 1999

  ̓̕VA|[g̋@\̂AModem-HOWTO, PPP-HOWTO, Serial-
  Programming-HOWTO, Text-Terminal-HOWTO ňĂȂ͈͂
  B}`|[gVA|[gJ[hɊւЉ܂B̕
  ́AVA|[ĝ̂ɊւZpɂĂL HOWTO 
  ڂĂ̂ŁAVA|[g̖肪N̉ɂ
  ͂łBPnP ̃VA|[g͂܂Ă܂񂪁Aɂ
  Ă Modem-HOWTO BMpdem, PPP (dbŃC^[lbg
  ɃANZX邽߂Ɏg܂), eLXg[Ăꍇɂ́A
  ɑΉ HOWTO ɂB
  ______________________________________________________________________

  Table of Contents

  1. ͂߂
     1.1 쌠AƐӎANWbg
        1.1.1 쌠
        1.1.2 Ɛӎ
        1.1.3 NWbg
     1.2 [Xm[g
     1.3  HOWTO ̍ŐVłɂ
     1.4 VA|[g֘Ȃ HOWTO 
     1.5 tB[hobN
     1.6 VA|[gƂ͉?

  2. VA|[g̓̊Tv
     2.1 M
     2.2 M
     2.3 VA|[g̑傫ȃobt@

  3. VA|[g̊b
     3.1 VA|[gƂ͉?
        3.1.1 ͂߂
        3.1.2 sƔz
        3.1.3 RS-232  EIA-232 
     3.2 I/O AhX IRQ
     3.3 荞
     3.4 f[^t[ (x)
     3.5 t[
        3.5.1 Ŏt[
        3.5.2 t[䂪Ȃ̏Ǐ
        3.5.3 n[hEFAt[΃\tgEFAt[
     3.6 f[^t[̃pXƃobt@
     3.7 Gȃt[̗

  4. VA|[g͎xȂ̂?
     4.1 ͂߂
     4.2 ᑬŋZ EIA-232 P[u
     4.3 Rs[^ւ̃C^tF[X̔

  5. }`|[gVA{[h/J[h
     5.1 PC W̃VA{[h
     5.2 _}`|[gVA{[h (8250/16450/16550A UART 𓋍)
     5.3 CeWFg}`|[gVA{[h

  6. I/O AhXAIRQ, O̐ݒ
     6.1 ͂߂
     6.2 I/O AhX IRQ ̐ݒ
     6.3 ̃VAfoCXg܂? 荞݂Փ˂̂ł
        6.3.1 VA|[g IRQ ̑I (o[W 2.2 ȑÕJ[lł̂ݕKv)
        6.3.2 VAfoCX̃AhX̐ݒ
        6.3.3 setserial ւ IRQ  I/O AhX̎w
     6.4 Linux ̓VAfoCXIɂ܂ݒł܂?
     6.5 }`|[g{[hɊւ钍
     6.6 foCX: fA}EX
     6.7 cua foCX
     6.8 /dev fBNgɂVA|[g̃foCXƃfoCXԍ
        6.8.1 /dev fBNgɂfoCX̍쐬@
     6.9 _}`|[g{[hɊւ钍
     6.10 CeWFg}`|[g{[hɊւ钍

  7. mĂƂ悢֗ȃvO
     7.1 VA|[g̊Ď/ffp̃vO
     7.2 荞݂̗Dx̕ύX
     7.3 setserial Ƃ͉?
        7.3.1 ͂߂
        7.3.2 T
        7.3.3 N̐ݒ
        7.3.4 IRQ
     7.4 isapnp Ƃ͉?
  8. x (t[[g)
     8.1 \ɑxݒł܂
     8.2 VÃX[vbǧ

  9. ʐMvOƃ[eBeB
     9.1 \tgEFÄꗗ
     9.2 kermit  zmodem

  10. VAɊւ邿ƂeNjbNȂ
     10.1 ChCo
     10.2 וiƂĒmĂn[hEFA
        10.2.1 IBM 8514 x[X̃rfI{[hgۂ̖
        10.2.2 AMD Elan SC400 CPU (PC-on-a-chip) ł̖
     10.3 bNt@CƂ͉ł?

  11. guV[eBO
     11.1 VA̓dCIȐffs
        11.1.1 pRlN^̏
        11.1.2 d̑
        11.1.3 d𖡂Ă݂
     11.2 VA|[g̊ĎƐff
     11.3 VA|[g͕IɕtĂ̂łAo܂
     11.4 x: eLXgxĂʂɕ\܂
     11.5 VXeN̉ʂŁAVA|[g IRQ ԈĂƕ\܂

  12. 荞݂̖Ɋւڂ
     12.1 荞݂̐ݒ~X
     12.2 荞݂̏Փ
     12.3 荞݂̖̉

  13. UART Ƃ͉ł?
  14. szuƐM
     14.1 szu
     14.2 M͌܂ӖĂȂƂ܂
     14.3 VA|[gԂ̃P[uڑ
     14.4 RTS/CTS  DTR/DSR ̃t[
        14.4.1 DTR  DSR ̃s
     14.5 |[g̃I[v֎~@

  15. d̔g`
     15.1 rbg 1 \d
     15.2 oCgf[^\dV[PX
     15.3 peB
     15.4 oCgf[^̍\ (t[)
     15.5 u񓯊vʐMœs@

  16. ̑̃VAfoCX (񓯊 EIA-232 ȊÔ)
     16.1 EIA-232 ̌p
     16.2 EIA-422-A (t^)  EIA-423-A (񕽍t^)
     16.3 EIA-485
     16.4 EIA-530
     16.5 EIA-612/613
     16.6 ėpVAoX (Universal Serial Bus, USB)
     16.7 ʐMƓ
        16.7.1 񓯊Ɠ̒`
        16.7.2 ʐM

  17. ̏
     17.1 
     17.2 VA|[gp\tgEFA
     17.3 Linux p̕
     17.4 Usenet ̃j[XO[v:
     17.5 VA|[gɊւ郁[OXg
     17.6 C^[lbg̏
     17.7 {ɂ

  ______________________________________________________________________

  1.  ͂߂

  ́̕AVA|[gƃ}`|[gVAJ[hɂĂ̊{I
  ȏĂ܂BfeLXg[ɌŗL̏́A Modem-HOWTO
   Text-Terminal-HOWTO Ɉړ܂Bgetty Ɋւ
  HOWTO Ɉړ܂BƂ̂Amgetty  uugetty ̓fƑgݍ
  킹ĎgƂAagetty ̓eLXg[Ƒgݍ킹Ďg邱
  łBIɂ́Agetty ̃gu邽߂̈ʓIȏ
  ͂ HOWTO Ɉڂ\łBAVA|[gʂ̃foC
  XƑgݍ킹ĎgꍇA}`|[gVAJ[hgꍇAVA
  |[ĝ̂ɊւꍇAVA|[gɊւZp
  Iȏڂm肽ꍇɂ́A HOWTO Ƌɂ HOWTO QƂ
  Kv邩܂ (``֘A HOWTO '' )B
   HOWTO ͊e}`|[gVAJ[hɊւڂĂ
  BƂ̂A̓fłeLXg[łg邱Ƃ邩
  łB HOWTO  Intel x86 A[LeN`œ삷 Linux 
  ۂɂĂ܂ÃA[LeN`̏ꍇɂKpł邩܂
  B

  1.1.  쌠AƐӎANWbg

  1.1.1.  쌠

  Copyright (c) 1993-1997 by Greg Hankins, 1998-1999 by David S. Lawyer.
  This document may be distributed under the terms set forth in the LDP
  license at http://metalab.unc.edu/LDP/COPYRIGHT.html.  This document
  may not be distributed in modified form without consent of the author
  (unless after a good faith effort the author can't be contacted).

  1.1.2.  Ɛӎ

  While I haven't intentionally tried to mislead you, there are likely a
  number of errors in this document.  Please let me know about them.
  Since this is free documentation, it should be obvious that I cannot
  be held legally responsible for any errors.

  1.1.3.  NWbg

  IWi Serial-HOWTO ̑啔 Greg Hankins 
  gregh@cc.gatech.edu ܂B Greg ͂܂A̕񋟂
  ͂̏𕶑̂╶̗͂̌qۂ߂ɍsĂ܂BޞH
  uvĂꂽXAӌX̑SĂɊӂ܂Bꂼ
  ̖OƒȂ肷̂ŏȗ܂(100 lzĂ܂)BV
  AhCoɂĂ̎ɓĂ Ted ɂ͓Ɋӂ
  vƂƂłBo[W 2.00 ̂񔼕 Greg Hankins 
  HOWTO ̓epAc̕ David Lawyer Vɏ܂B

  1.2.  [Xm[g

  ͑啝ȉsAÂ Serial-HOWTO ɂ[ƃfɊւ
  ͂Ȃ܂B͈̏ȉ̕ɈړĂ܂:

  o  Text-Terminal-HOWTO

  o  Modem-HOWTO

     M҂̓}`|[gJ[hɊւ񂪍ŐVǂ܂`FbN
     Ă܂BVA|[g̓AVA|[g̓dCIȓAg
     uV[eBOARS-232 gȂVA|[gɊւȒP
     ǉ܂B̏́AL HOWTO 炻̂
     ܎荞݂܂B HOWTO ͐FXȏ񌹂̏W߂
     ƂAꐫɌĂ镔܂B̓_ɂ
     Ă͏oo[WŉP܂B

  1.3.   HOWTO ̍ŐVłɂ

  Serial-HOWTO ̍ŐVł LDP Ƃ̃~[TCgŉ{Eł܂B~
  [TCg̃Xg  <http://metalab.unc.edu/LDP/mirrors.html> ɂ
  ܂B͐FXȌ`œł܂BŐVł̓tmFȂ
  <http://metalab.unc.edu/LDP/HOWTO/Serial-HOWTO.html> ĂB

  1.4.  VA|[g֘Ȃ HOWTO 

  fAeLXg[Aꕔ̃v^⑼̎Ӌ@̓VA|[gg
  ܂Bɐ~[TCĝAł߂TCgȉ HOWTO
  肵ĂB

  o  Modem-HOWTO f̃CXg[Ɛݒɂ

  o  Printing-HOWTO VAv^̎gpɊւ

  o  Serial-Programming-HOWTO VA|[g C ̃vO
     ߂̎QlłB"stty ..." Ɠ̃vOAVA|[
     g̊e탂[hł̃I[vvOł悤ɂȂ܂B

  o  Text-Terminal-HOWTO eLXg[̓ACXg[Eݒ̕@A
     eLXg[̏C̕@ɂ

  1.5.  tB[hobN

  AӌAāAǉ͕̏M҂ɑĂBM҂́Aǎ҂̊F
  񂪂 HOWTO ɂĂǂvĂ邩ϒm肽ƎvĂ܂B
  M҂͉P_ɒTĂ܂! łȂƂA͂肵
  ͂ƕM҂ɋĂBM҂ɘAɂ
   name="bf347@lafn.org (David Lawyer)"> ܂Ń[𑗂ĂB

  1.6.  VA|[gƂ͉?

  (V USB |[głȂ)]̃VA|[ǵAɌÂ I/O |[g
  łBVA|[g͂قƂǑSĂ PC ɕtĂ܂Bł 1998 N
  Έȍ~ Macintosh (Ft̃P[X̂)ɂ USB |[gĂ
  ܂BłʓIȋKi RS-232C (EIA-232 ƂĂ΂܂)łBV
  A|[g̃RlN^́APC ̗ɂ 1 ܂ 2  9 s̃RlN
  ^(25 s̏ꍇ܂)łBłAVA|[g͂ꂾ̂
  ̂ł͂܂BVA|[gɂ́AEIA-232 KiɏM𐶐
  Ȃ΂ȂȂ֘AdqZp܂܂܂B``d̔g`'' ̏͂
  Bs̓f[^̃oCg𑗂邽߂ɎgAʂ̃s̓oCg
  󂯎邽߂Ɏg܂BMʂɎgڒnd̃s܂B
  ́u֗ȁvs͎ɁAuItv\̒dƁuIv\
  ̒dgĐM\߂Ɏg܂B

  UART (Universal Asynchronous Receiver-Transmitter) `bvقƂǂ
  s܂Bŋ߂͕ʁÃ`bv̋@\͕ʂ̃`bvɑgݍ܂
  ܂Bu``UART Ƃ͉ł?''vQƂĂBUART ͎Ԃo
  ɂǂĂA݂͌Âf(NÕf)͎x
  ȂĂ܂B

  VA|[g͌X̓fڑ邽߂ɐ݌vꂽ̂łA}EX
  eLXg[Ãv^̐FXȃfoCXRs[^ɐڑ
  邽߂ɂgĂ܂B̃foCX́AK؂ȃP[ug
  VA|[gɌqłBf̑͑gݍ݂̃VA|[
  gĂ̂ŁAf PC ɒǉƁAʂ̃VA|[g
  PC ɉ悤Ɍ܂B

  2.  VA|[g̓̊Tv

  2.1.  M

  M(transmitting)Ƃ́AVA|[gʂăRs[^oCg
  𑗂邱ƂłBȉɎ̂́AÂĎx̃VA|[g(n[h
  EFAobt@ 1 oCgĂ܂)̓̐łBÂV
  A|[g̓삪킩΁Aŋ߂̂̂̓𗝉̂͗eՂłBR
  s[^VA|[g 1 oCg̃f[^𑗂낤Ƃ鎞ACPU
  ̓Rs[^̃oXɂ邻̃f[^VA|[g I/O Ah
  Xɑ܂BVA|[g͂̃f[^󂯎AVA[q̑
  MsgĂ 1 rbg܂(VArbgXg[)B
  rbg(ƃoCg)dCIɂ͂ǂ̂ɂẮA``d̔g
  `''̏͂B

  L̐ڂ(łSł͂܂)JԂ܂B
  VA|[gōs鏈̂قƂǂ UART (܂͓̂)s
  ܂BCPU œ삷foCXhCóA1 oCg̃f[^VA|
  [g I/O AhXɑ܂B̃f[^̓VA|[g̑Mob
  t@ (傫 1 oCg)ɓ܂BVA|[g̑MƁA
  VA|[g͂̃f[^𑗐MVtgWX^ɈڂAMs 1
  rbg܂BőMobt@ɂȂ̂ŁAX̃oCg
  MVtgWX^瑗MĂԂɁÃf[^ 1 oCgobt@
  ɓ܂B1 oCgSĂMƁAVA|[g͎ 1 oCg
  ]obt@󂯎A 1 rbg܂B̓́A
  Mobt@ɃoChf[^^A̓삪JԂs
  B

  őSĂł͂܂BM₦ԂȂs߁ACPU  1 o
  Cg̑傫̑Mobt@ɃoCg^Ȃ΂Ȃ܂B
  ͊荞݂𗘗pčs܂B1 oCg̑傫̑Mobt@ 1
  oCg̃f[^očs(͑MVtgWX^oRőM܂)x
  ɑMobt@͋ɂȂÃf[^KvƂȂ܂B̎AVA
  |[g͊荞݂𔭍sÃf[^󂯎邱Ƃ錾܂B
  荞݂͎ۂɂ́AVA|[gp̔z̐Mł(A
  ̃|[gœzL邱Ƃ܂)B

  foCXhCo͊荞݂Ɋւʒm󂯂ƁAVA|[g I/O
  AhX̃WX^𒲂ׁAN𒲂ׂ܂BăVA|[
  g̑Mobt@łÃoCg҂Ă邱Ƃm܂B
  āA܂ׂoCgf[^cĂƁÃoCgVA|[g
   I/O AhXɑ܂Bɑ邱̃oCǵAÕoCg]
  VtgWX^ɂĂ܂ 1 rbgĂ邤ɓȂ
  ΂Ȃ܂B̐VoCg͑Mobt@ɓ܂AMVtg
  WX^ɓĂÕoCgSđo܂ł́AMVtgW
  X^ɓ邱Ƃ͂ł܂BŌ̃rbgƁAȉ 3 ̂
  ƂقړɋN܂:

  1. ̐VoCgMobt@瑗MVtgWX^ɓ
     B

  2. ̐VoCg 1 oCg̑Mn܂܂B

  3. ̊荞݂sÃoCg𑗐Mobt@ɑ悤ɃfoC
     XhCoɎw܂B

  ̂悤ɁAVA|[g͊荞݋쓮(interrupt driven)ƌ
  BVA|[g荞݂𔭍sxɁACPU ͎̃oCg𑗂
  B CPU  1 oCg𑗐Mobt@ɑƁÅ荞݂󂯎
  ŁACPU ͑̏RɍsƂł܂BVA|[g̓[U
  IŒ̑xŃrbg𑗐M܂B̑x̓{[[gƌĂ΂
  邱Ƃ܂BVA|[g̓oCgƂɒǉ̃rbgt
  ̂ŁȀꍇA1 oCgƂ 10 rbg̃f[^܂B
  āAʐM[g(xƂ܂) 19,200 rbgb(bps, bit per
  second) 1,920 oCg/b(1,920 荞/b)ƂƂɂȂ܂B

  ̏SčsƂ CPU ɂƂĂdSłB͐FXȗR
  猾܂B܂́A32 rbg(64 rbĝƂĂ܂)̃oX
  ň 1 oCg(8 rbg)̃f[^Ȃ̂ŁAoX܂L
  ɎgĂƂ͌܂B܂A荞݂𑗂xɑ傫ȃI[o[
  wbh܂B荞݂󂯎ꍇłAfoCXhCoɕ
  邱Ƃ͉VA|[gŊ荞݂NƂłA
  ꂽƂRł邱Ƃ܂ł͕܂BN𒲂ׂ
  ɂ́AfoCXhCo͐FXȃ`FbNsȂ΂Ȃ܂B
  荞݂NĂA󂯎̂܂񂵁ȀԂ
  ω̂܂B

  ̂悤Ȗ̉@̈́AVA|[g̃obt@̑傫
  ₷ƂłB݂̃VA|[g̑啔́A1 oCgł͂ȂA
  18 oCg̃obt@Ă܂B܂ACPU ͊荞݂󂯎
  ƁAVA|[g 16 oCg܂ł̃f[^Vɑ邱Ƃł܂B
  ɂ芄荞݂̔s͌܂AoXɂ炸 1 oCg
  f[^𑗂Ȃ͂̂܂܂łB

  2.2.  M

  VA|[gɂoCg̎M͑MƂقړłAt
  ȂĂ邾łBM荞݋쓮łBMobt@ 1 oCg
  ȂÂ^̃VA|[gł́A1 oCg̃f[^Ŝ󂯎
  ƁÃf[^(傫 1 oCgł)Mobt@ɓ܂B
  ƃVA|[g CPU Ɋ荞݂Ẵf[^荞܂A
  M̃f[^i[łꏊ󂭂悤ɂ܂B16 oCg̃obt@
  ĂVVA|[g̏ꍇ́Å荞݂̓obt@ 14
  oCg̃f[^~ς_Ŕs܂B CPU ݂͌̏
  U~߁A14 oCg邢͂ȏ̃f[^VA|[go
  ܂B荞݂sꂽɃf[^Vɓ͂ꍇɂ́Ao
  f[^ 14 oCg葽Ȃ܂BAV͂f[^ 3
  oCgȏ̏ꍇɂ́A16 oCg̃obt@͈܂BƂ̂A
  obt@ɂ 17 (14 + 3) oCg̃f[^͓ȂłB

  2.3.  VA|[g̑傫ȃobt@

  ܂ł̓VA|[gn[hEFAIɎĂ鏬(1 ܂ 16
  oCg)obt@ɂĐ܂ACɂ͂Ƒ傫
  obt@܂BVA|[g 1 oCg(邢 14 oCg)
  n[hEFA̎Mobt@荞񂾎ACPU ͂̃f[^C
  ̑傫(Ⴆ 8K oCg)obt@ɓ܂BāAVA
  |[gf[^󂯎vÓȂ傫ȃobt@(v
  O "read" p)f[^o܂BMf[^ɂ
  ĂƂ܂BCPU f[^炩KvꍇA
  CPU ̓Cɂ傫(8K oCg)Mobt@f[^
  oAn[hEFA(1 ܂ 16 oCg)Mob
  t@ɓ܂B

  3.  VA|[g̊b

  VA|[ggȂb𗝉Kv͂܂񂪁Ab
  Ă΁A肪NۂɌ肷ɗ܂B
  ̏͂͐Vbɂďqׂ邾łȂAȌ(``VA|[g̓
  ̊Tv'')̓eJԂ܂BȀ͂ł͂Əڂ
  s܂B

  3.1.  VA|[gƂ͉?

  3.1.1.  ͂߂

  VA|[g I/O (o)foCXłBI/O foCX̓Rs[^
  Ƀf[^oꂷ邽߂̕@łBI/O foCXɂ̓VA|[g
  p|[gAfBXNhCuRg[AC[Tlbg{[hAėp
  VAoX̂̎ނ܂BقƂǂ PC ̓VA|[
  g 1 邢 2 Ă܂Be|[g̓Rs[^̗ 9
  s(25 ŝƂ܂)RlN^Ă܂BRs[^̃v
  O͑MsɃf[^(oCg)𑗂邱Ƃł܂AMs
  f[^󂯎邱Ƃł܂B̃s̓t[Ɛڒn̂߂Ɏg
  ܂B

  VA|[g͒PȂRlN^ł͂܂BVA|[g͕̃f
  [^𒼗ɕϊAf[^̓dCIȕ\ς܂BRs[^
  ́Af[^\rbgQ͕ɗ܂(ɕ̔zp܂)B
  f[^𒼗ɗƂ́A1 {̔z(VARlN^̑MsMs
  ) Ƀrbg̃Xg[𗬂ƂłBVA|[gł̂悤Ƀf
  [^𗬂߁AVA|[g̓f[^(Rs[^̌`)
  璼ɕϊłȂ΂Ȃ܂(̋t̕ϊKvł)B

  VA|[g̓dqĤقƂǂ́AUART ƌĂ΂`bv(邢
  `bv̈ꕔ)łBUART ̏ڍׂɂẮA``UART  ł? \
  ǂȉe^܂?''̏͂ĂBA܂͂̏͂
  ǂނƂ悢ł傤BŜɂ UART ̈ʒuÂ邩łB

  3.1.2.  sƔz

  Â PC ł 25 s̃RlN^gĂ܂ÂۂɎg
  Ă̂ 9 {̃słBāA݂ł͂قƂǂ̃RlN
  ^ 9 słB9 {̃s͂ꂼzɌqĂ܂Bf[^̑
  MƎMp 1 {̔zgAM̐ڒnp 1 {̃s(z)
  g܂Bez̓d́A̐ڒndɑ΂Čv܂Bɂz
  ܂A͐p(VOiO)Ɏg邾łAf[
  ^̑Mɂ͎g܂BSނ̐M𓯂ő邱Ƃł܂A
  VA|[g͂ȂĂ炸AM̎ނƂɕʁX̐ppӂ
  Ă܂B̐pz̈ꕔ(邢͑S)́uf
  (modem control line)vƌĂ΂܂Bf̏Ԃ́A +12 {
  g̗L(on)ԂA-12 {g̖(off)Ԃ̂ǂ炩łB
  f 1 ́ARs[^ɃVA|[g̃f[^M
  ~߂M̂߂̂̂łB̔΂ɁAVA|[gɐڑꂽ
  foCXRs[^ւ̃f[^M~߂邽߂̐
  B̑ɂAڑĂfoCXf̏ꍇɃfɓdb
  悤ɎwAڑmĂ邱ƂdbĂ (Nd
  bĂĂ)Ԃł邱ƂRs[^ɋ邽߂̐
  ܂Bڂ ``szuƐM'' ̏͂B

  3.1.3.  RS-232  EIA-232 

  (USB ł͂Ȃ)VA|[g̋Ki͕ RS-232-C, EIA-232-D,
  EIA-232-E ̂ꂩłB 3 ͂قƂǓ̂łBX̓
  ɕtĂ RS(Recommended Standard) EIA (Electronics Industries
  Association)ƂȂAEIA  TIA (Telecommunications Industries
  Association)  EIA/TIA ƂȂ܂BEIA-232 ̎dlɂ͓
  ʐMĂ܂AقƂǂ̑S PC ɂ͓ʐMT|[g
  n[hEFA͕tĂ܂łB RS ̎dl͉̂ߋ̂̂ƂȂ
  ܂AłLgĂ܂B{ HOWTO ł EIA g܂B
  ɂĂ͊S EIA/TIA dlgĂ̂܂BȊO
  (EIA-232 ȊO)VA|[gɂẮA ``̃VAfoCX
  (񓯊 EIA-232 łȂ)'' ̏͂B

  3.2.  I/O AhX IRQ

  Rs[^͂ꂼ̃VAfoCXƒʐMKv̂ŁA OS
  ͂ꂼ̃VA|[g݂邱ƂƂ炪ꏊ (I/O Ah
  X)mĂȂ΂Ȃ܂B OS ́AVA|[g CPU ɃT[r
  Xv鎞ɂǂ̐(IRQ ԍ)gmĂKv܂BV
  A|[g͂̐Ɋ荞݂𑗂邱ƂɂăT[rXv܂B
  āAꂼ̃VA|[gfoCX I/O AhX IRQ
  (Interrupt ReQuest number)̗sɕۑĂȂ΂
  ܂B ``荞'' ̐߂QƂĂBPCI oX̏ꍇ́AS
  ̂悤ɓ삷킯ł͂܂BƂ̂APCI ɂ͓Ǝ̊荞
  ݃VXe邩łBAPCI Ή BIOS ̓`bv̐ݒs
   PCI ̊荞݂ IRQ Ƀ}bsO邽߁A͐̐̒ʂ
  ɓ삵܂B

  VA|[gɂ ttyS0, ttyS1 ̂悤Ƀxt܂(
  DOS/Windows ɂ COM1, COM2 ɑΉ܂)B̖OI
  ȃVA|[gɂǂ̂悤ɑΉ̂́A|[g̃n[hEFA
  `bvɊi[Ă I/O AhXɂČ܂܂BO(ttyS1
  ) I/O AhX IRQ ւ̂̂悤ȃ}bsO "setserial" R}
  hɂčsƂł܂B ``setserial Ƃ͉?'' QƂĂ
  B̓n[hEFAg I/O AhX IRQ ̐ݒ͍s܂
  (̓WpݒvO&vC̃\tgEFAs܂)B

  I/O AhX̓̃AhXƂ͈قȂ܂BI/O AhXRs[
  ^̃AhXoXɐݒ肳ƁA̔zɐM܂B̐ḾA
  CɃAhX𖳎邱ƂƁAI/O AhXĂS
  ̃foCX(VA|[g)ɂ̃AhX}b`邩ǂ𒲂ׂ
  邱Ƃw܂BAhX}b`΁A I/O foCX
  f[^oX̃f[^ǂݍ݂܂B

  3.3.  荞

  VA|[g 1 oCg̃f[^󂯎(8 ܂ 14 oCg
  ̂Ƃ܂)ƁA荞݂ƌĂ΂dCMp̔z
  邱ƂɂÃf[^荞ނ悤 CPU ɐM𑗂܂B
  f[^͂̂҂ۂɗ\ȂxꂪꍇɂAVA|[g
  ͂̊荞݂𑗂܂(̓^CAEgƌĂ΂܂)B

  ꂼ̊荞ݐ(Rs[^)ɂ͔ԍ(IRQ)tĂAV
  A|[g͐M𑗂邽߂ɂǂ̐ĝmĂȂ΂Ȃ܂
  BႦ ttyS0 ͒ʏAIRQ ԍ 4 g܂B IRQ4(܂ IRQ
  4)Ə܂BIRQ ԍ̃Xg "man setserial" ɏĂ܂(
  uVA|[g̃RtBM[V̒ӎ (Configuring
  Serial Ports)v̏͂Ă)BVA|[g CPU ̒ӂ
  Kv鎞ɂ͕K荞݂s܂B荞݂̔sK؂ȃ^C
  ~OōsƂ͏dvłBƂ̂AVA|[g̃obt@͓
  Ăf[^ 16 oCg(Âfł 1 oCg)ێłȂ
  łB̂悤ȎMf[^obt@炤܂oƂ CPU 
  sƁAȏ̃f[^ꏊȂȂĂ܂AI[o[t
  [(I[o[)NĂ܂܂(f[^͖Ȃ܂)B
  ``t[''ŖhƂ͂ł܂B

  荞݂́AVA|[g 16 oCg̃f[^Mobt@
  OP[uɑSđoɂs܂B̑Mobt@
  ́Aof[^p 16 oCg̋󂫂ł܂B荞݂͂̎
  CPU ɓ`AMobt@ɑMׂVf[^ꂳ邽
  ɗp܂B܂Af䃉C̏Ԃωɂ荞݂s
  ܂B

  荞݂͑̏`܂A͊ԐړIɂs܂B荞
  ݂̂̂́Ã|[gӂ߂Ă邱Ƃ荞݃Rg[
  ƌĂ΂`bvɒm点邾łB荞݃Rg[͂󂯂
  CPU ɐM𑗂܂BCPU ̓VA|[gɃT[rX񋟂ȃv
  O(VAfoCXhCöꕔ)s܂B̃vO
  荞݃T[rX[`(܂͊荞݃nh)ƌĂ΂܂B荞
  T[rX[`̓VA|[gŋNo𒲂ׁA̖ (VA
  |[g̃n[hEFAobt@̃f[^o͂Ȃ)܂B̃
  [`̓VA|[gŋNƂȒPɒm邱Ƃł܂BƂ
  AVA|[g̃WX^̓VAfoCXhComĂ I/O
  AhXɂ邩łB̃WX^́AVA|[g̏ԂɊւ
  ێĂ܂BfoCXhCo͂̃WX^ǂł̓e
  ׂ邱ƂɂAVA|[gŋNƂmAK؂ȓs
  ł܂B

  3.4.  f[^t[ (x)

  VA|[gł̓f[^(A摜Ȃǂ\oCg)̓o͂s
  ܂Bf[^鑬xłt[[g(56k (56000) rbg/b
  )(smł)uxvƌĂ΂܂Bł̐ĺut[[
  gvł͂Ȃuxv̕g܂B

  ϑx͎dlŌ߂Ă鑬xxꍇƂ𗝉Ă
  Ƃ؂łB҂(邢̓ACh)ƁAϑx͒
  Ȃ܂B̂悤ȑ҂Ԃɂ́A``t[''ɂ 1 bx
  钷҂Ԃ܂܂܂Bʂ̋ɒ[ȗƂẮAoCgf[^𑗂
  ̐~bƂɒZ҂Ԃ܂BVA|[gɐڑ
  foCX(fȂ)VA|[g̍ōxɕtĂȂꍇ
  ́AϑxႭȂ΂Ȃ܂B

  3.5.  t[

  t[Ƃ́Az𗬂oCgf[^~߂@\̂ƂłB
  ́AoCgf[^ƂȂf[^Ăїn߂@\܂܂܂B
  t[́Aft[[gAIɕς悤ɂ邽
  ɕKvłB

  3.5.1.  Ŏt[

  ƂāA33.6k fVA|[gɐڑāAdbł傤
  33.6k bps(rbgb)Ńf[^̑MĂꍇlĂB
  f[^kG[͑SsȂ̂Ƃ܂BVA|[g̑x
   115.2k bps ɐݒ肵ĂAf[^Rs[^dbɑ
  BƁARs[^烂fւ 115.2k bps Ńf[^܂B
  Afdbւ͍őł 33.6k bps łf[^
  Bf[^očsf[^Ă̂ŁAf͒ߕ
  ̃f[^(115.2k -33.6k = 81.6k bps)obt@ɕێȂ΂Ȃ܂
  B115.2k bps ̃f[^̗ꂪ~܂ȂAǂ͂̃obt@͈
  (󂫗eʂȂȂ)܂܂B

  łAŃt[䂪𗧂܂Bf̃obt@ꂻɂȂ
  ƁAf̓VA|[gɒ~M𑗂܂BVA|[g͂̒
  ~MfoCXhCoɓnA115.2k bps ̃f[^̗͒~
  Bf́A܂(f)obt@ɒ~f[^oȂA
  ̂܂ 33.6k bps Ńf[^𑗂葱܂Bƃobt@ɂ͉
  ĂȂ߁Aobt@̃f[^ʂ͌n߂܂Bobt@̃f[^
  قƂǂȂȂƁAf͊JnMVA|[gɑARs[
  ^烂f֍Ă 115.2k bps Ńf[^n߂܂Bt[ɂ
  AϓIȃt[x(̏ꍇ 33.6k bps)̓f[^Ă鎞
   115.2k bps ƒxȂ܂BꂪuJn-~vt[
  łB

  ̗̓Rs[^烂fւ̗̃t[łAΌ
  (fRs[^ւ̌)ɑ΂ėpt[
  B̓t[̖{łA邱Ƃ͂Ƃ񂠂
  B

  ɏqׂ悤ɁAVA|[g 2 ̑Mobt@(ȃn[hEF
  Aobt@ƃC̑傫ȃobt@)ɉăfɂMob
  t@܂Bt[́Ãobt@Ȃ悤ɕی삵
  Bȃn[hEFAobt@͂̂悤ȕی󂯂܂񂪁Ȃ
  ɁAVA|[gs銄荞݂ւ̉Ƃ҂ē
  ܂B

  3.5.2.  t[䂪Ȃ̏Ǐ

  t[̗ĂƁAۂɖ𗧂Ƃ܂Bt[
  䂪ȂɏoǏ́At[̉b󂯂ɑꂽt@C
  f[^̈ꕔĂ܂ƂłB̓I[o[t[N邽
  łAʂ̓I[o[t[NďĂ܂f[^͐oCgł
  ς݂܂BSAoCgf[^A̍ۂɑSẴf[^ꑱ
  ł邱Ƃ΂΋N܂B

  3.5.3.  n[hEFAt[΃\tgEFAt[

  f̏ꍇ́un[hEFAṽt[gƗǂł傤B
  ṕufv 2 {gAu~(stop)vƁuJn(start)v̐M
  𑗂̂łBڂ ``RTS/CTS, DTR, DTR/DSR ̃n[hEFAt
  ['' B\tgEFÃt[́Af[^̎Mp
  ƑMp̐gAJnE~̐M𑗂܂B\tgEFÃt[
  ́AM𑗂邽߂ ASCII 䕶 DC1(Jn) DC3(~)g
  B̐䕶͒PɁAʏ̃f[^Xg[ɑ}܂B\tg
  EFÃt[͔xłȂAfgăoCif[^
  𑗂邱Ƃł܂BƂ̂AoCif[^ɂ͑̏ꍇAt
  [p̐䕶 DC1, DC3 Ă邩łB

  3.6.  f[^t[̃pXƃobt@

  (n[hEFA)16 oCg̃VA|[gobt@̑΂ɉāA
  ɂobt@̑΂܂BCɂ傫( 8kB)ob
  t@AVA|[g̃obt@ƌĂ΂܂BAvP[V
  vOf[^VA|[gɑƁÃf[^͂܂C
  ̕(VA|[g)Mobt@Ɋi[܂Bobt@̑
  ́Af[^̗̌΂ł鑗Mobt@ƎMobt@̑gݍ
  łB

  VA|[g̃foCXhCóAႦ 16 oCg̃f[^ 1 oC
  gMobt@oAVA|[g̃n[hEFA
  MpɎĂ鑗Mobt@ɓ܂Bxf[^Mobt@ɓ
  ƁȂM~߂@͂܂BẴf[^̓VA|[g
  瑗o܂BfoCXhCo(t[̎w󂯂)R
  s[^瑗Mf[^̗~߂AۂɎ~߂̂̓C
  ̑傫ȑMobt@瑗of[^̗łBf[^
  ~߂Aof[^̗ꂪ~܂łĂAAvP[
  VvÓA8kB ̑Mobt@ςɂȂ܂ł́AɃf
  [^𑗂葱邱Ƃł܂B̃obt@ςɂȂƁAAv
  P[VvO͂ȏ̃f[^𑗂(C ł "write" g
  ܂) ƂłȂȂAAvP[V̎sꎞIɒ~
  obt@ɋ󂫂ł̂҂܂B̂悤ɁAt[ "stop" M
  ͌ǁAf[^𑗂vO~߂邱Ƃł܂B̃vO
  ~܂ĂARs[^͌vZ~߂Kv͂܂Bt[
  stop M󂯂đ҂ĂԂ́Aʂ̃vZXɐؑւ΂悢̂łB
  ȏ̐͑ȗĂ܂A"write" ҂ĂԂɂ
  ̓AvP[VvÔɕʏ@Ƃ͕ʂɂ
  łB

  3.7.  Gȃt[̗

  ̏ꍇA`oH̃NÂꂼꂪƎ̃t[
  sƂ܂BႦ΁AfoR BBS ɃANZXĂ PC
  ɐڑĂeLXg[ŕ^CvƂ܂B̏ꍇAg
  ĂAvP[VvO "minicom" ̓VA|[g 2 
  ƂɂȂ܂BeLXg[œ͂ꂽ́A܂VA|[g
   minicom ɑA minicom 玟̃VA|[goRŃf
  ɑo܂BčŌɁA͓̕dbʂ BBS ɑ
  ܂BeLXg[ʂɕ\ł鑬xɂ͌ÊŁA
  x𗎂߂Ƀt[ "stop" MXs܂B"stop" M
  sƈ̉N̂ł傤? "stop" M BBS ܂œ͂A
  BBS zXgŃf[^𑗂oĂvO~߂܂łɒԂ
  ꍇlĂ݂܂傤B

   "stop" M̗ǐՂĂ݂܂傤(Nɂă\tgEFA
  ŏꂽAn[hEFAŏꂽ肵܂)B܂ BBS 傫
  ȃt@Cu擾vꍇl܂B̍ۂɂ́AeLXg[ƃn[
  hfBXÑt@C̗ɓɃf[^܂BeLXg[
  \xf[^Ă̂ŁAeLXg[ PC  1 
  ڂ̃VA|[g "stop" M𑗂܂BfoCXhCo͂
  oA(Cɂ)8kB ̃VAobt@[ւ̃f[^
  M~܂B̎_ł͂܂Aminicom ͒[֑邽߂̃f[^
  8kB ̃obt@ɑ葱Ă܂B

  (1 ߂̃VA|[g) 8kB ̑Mobt@ςɂȂƁA
  minicom ͂ւ݂̏~߂Ȃ΂Ȃ܂Bminocom ̓f[^
  ̂~߂đ҂Ԃɓ܂BłɂēɁAfɐ
  Ă 2 Ԗڂ̃VA|[g 8kB ̎Mobt@̓ǂݍ
  ~܂Ă܂܂Bf̃f[^́A8 KB ̃obt@ς
  ɂȂAfɑ΂ "stop" MV܂ŗꑱ܂B
  f(G[͗Lł̂Ƃ܂) "stop M"  BBS ̃f
  ɑ܂B̃f̓obt@f[^𑗂ô~߁Ãob
  t@ςɂȂƁABBS zXg̃VA|[g stop M𑗂
  BBBS zXgł́A8kB(Ȃ)̃obt@ςɂȂABBS zXg
  ̃vO珑݂łȂȂƁÃvOꎞIɒ~
  ܂B

  ̂悤ɂāAeLXg[瑗ꂽ stop M BBS zXg̃v
  O~߂܂BƂĂʓ|Ȏdg݂ł! stop M̓VA|
  [g 4 ʂAf 2 ʂAAvP[VvO 1 
  (minicom)ʉ߂̂łBeVA|[g(ɂ)obt@
  2 (8kB ̃obt@ƁAn[hEFA 16 oCg̃obt@)
  BAvP[VvO C ̃R[hłobt@
  Ăł傤B܂߂ƁAf[^ 11 ̕ʁX̃obt@ʂ
  ܂BVAn[hEFȀobt@̓t[𒼐ڂ͎ʂ
  _ɂ͒ӂĂB

  BBS [փf[^ۂɒ[̑̌E{glbNɂȂ
  ꍇAt[ "stop" M͎ۂɂ BBS f[^𑗂v
  O~߂邱ƂɂȂ܂B͐ʂłBł
  u"stop" MȂɎԂHĂA11 ̃obt@(傫ob
  t@ꕔ܂)Ŝł?vƎv邩܂BeL
  Xg[ "stop" M𑗂ɑSẴobt@eʂςɋ߂
  ꍇɂ́Aۂɂ̂悤ɂȂ邱Ƃ܂B

  łsĂ݂΁AƐGɂȂ邱Ƃ
  ɂȂƎv܂BuԂɃf[^𗬂Ă郊N܂
  A(t[ɂ)~܂Ă郊N܂B[
  "stop" MAɐ悤ɂ܂ BBS zXgɓ`邱Ƃ͖ő
  ܂BBBS  "stop" M 1 ͂ɂ́A[ "stop"
  MȂ΂ȂȂƂ܂Bۂ̓𗝉
  ɂ́AɃRCučsȒPȎĂ݂Ƃł傤Bob
  t@̐ 2, 3 ŁAeobt@̗eʂRC 2, 3 ɂĂ
  B

  ǎ҂̊F́AȂȂƂ̂Ǝv邩
  ܂BłM҂́ABBS 擾eLXgȂȂ錴ŗ
  Ƃ̂łB̎̏󋵂͂傤ǑO̗ƓłAf
  ΃f̃t[䂪ɂȂĂ܂Bn[hfBXNɂۑ
  ͂́A擾eLXgf[^ۂɂ͕ۑȂ̂łA
  ̌͒[̃t[ "stop" M̂߂Ƀf̃obt@
  I[o[t[ĂƂłB{glbNȂf[^̌oH BBS
  n[hfBXN܂łĂA[ƂȂI[o[t[̌o
  HŋN߁AeLXgf[^Ȃăn[hfBXNɕۑł
  łBfoRŃn[hfBXNɃf[^n͂AfŃI
  [o[t[NĂ߂ɁAn[hfBXNɑׂf[^
  Ă̂łB

  4.  VA|[g͎xȂ̂?

  4.1.  ͂߂

  _猾ƎxłBAVA|[g͊mɎxł
  ݂łKvłA Linux ł͕KvłBVA|[gɂ͌_
  񂠂܂AV PC ̂قƂǂɃVA|[gtĂ
  BLinux T|[gĂʏdbp̃f́AVA|[go
  Rœ̂łB

  VA|[ǵARs[^ԂOP[uʂ`Ńf[^n
  Ȃ΂Ȃ܂BāAVA|[g 2 ̃C^tF[X
  Aǂ̃C^tF[XᑬłB܂͊OP[uʂOE
  Ƃ̃C^tF[XlĂ݂܂傤B

  4.2.  ᑬŋZ EIA-232 P[u

  ] EIA-232 VA|[ǵAǂĂᑬŁAɂ
  ܂BLł͂悭uv搂܂AۂɁuvɓ
  ̂́APC ׂ̂Ƀf悤ȔɋZꍇ
  B܂lbg[NJ[hƔׂƁÁuvƂ̂ᑬɉ߂
  ܂BVAP[u͑Sċʂ̐ڒngzpĂ̂ŁA
  n[hEFAǉȂ(ȓ`ŕKvƂȂ)cCXgyAZp
  gƂł܂BVA|[gp̍ŐVZp݂܂A
  ܂蕁yĂ܂BɂĂ ``EIA-232 ̌p''
  B

  1962 Nɍꂽ RS-232 KicCXgyAZpgĂȂƂ͂
  ӖߌłBgĂ 100 {ɓł͂Ȃ̂ł
  BcCXgyA͓dbɂ 1800 NI肩gĂ܂B
  1888 N(110 NȏO)́uP[uc(Cable Conference)v́AcCX
  gyA(dbVXeւ)xƂ̗_񍐂Ă܂BłAuP
  [ucvł̍ӂ́A80 Nȏ RS-232 ł͐܂ł
  BRS-232 ͌XA[ׂ̗ɒuᑬfƐڑ邽߂ɐ݌v
  ꂽ̂ŁAE̓`ɊւKv͗Ȃ悤
  B

  4.3.  Rs[^ւ̃C^tF[X̔

  Rs[^gĒʐMɂ́Aǂ I/O foCXłĂR
  s[^ǂݏłAhXKvłB̖ړÎ߂ɑ I/O
  foCX(VA|[g) I/O AhXƌĂ΂ȃAhX
  Ă܂(I/O |[gƌĂ΂邱Ƃ܂)B͎ۂɂ́A
  AhX͈̔͂łAԒʂ̃AhXx[XAhXɂȂ܂BP
  ɁuAhXvƌꂽ(ꂽ)ꍇ́Aۂ͑ux[XAhXv
  wĂ܂B

  I/O AhXgɁAꕔ(VAłȂ) I/O foCXɂ͒
  ڃC̓ǂݏŝ܂BpƑ傫ȑш
  𗘗pł܂BƂ̂AVA I/O VXeł͓ 1 oCg
  ]łȂłB̕@̈͋L I/O ƌĂ΂
  ł(L͕ʁAI/O foCXƓJ[hɂ܂)B̕@
  ƂĂ ISA oX DMA(direct memory access, ڃANZX)A
  PCI oXł DMA Ɠl̎dg(x͂Ƒ)łuoX}X^
  Ov܂B̕@́AVA|[g̕ƍ
  łBāA(14 oCgƂ)荞݋쓮C^tF[XA
  oX̂ 4(܂ 8)oCg܂Ƃ߂ďł̂ 1 oCg
  MłȂ̂Ȃ̃VA|[ǵA I/O ɂ͌Ă܂
  B

  5.  }`|[gVA{[h/J[h

  5.1.  PC W̃VA{[h

  PC W̃VA{[h(COM1 - COM4)͊Ot̃VAfoCX(f
  AVA}EX)ɐڑ邱Ƃł܂B݂ PC ɃVA{
  [htĂ邱Ƃ͂Ȃ̂(̖ړĨ`bv}U[{[hɍڂ
  Ă̂ł)AXŃ{[hƂČ邱Ƃ͓ł傤BISA
  oXp̓fɂ́Agݍ݂̃VA|[gtĂ܂B

  : AhXՓ˂邽߁ACOM4  IBM8514 rfI{[h(т
  ݊{[h)𓯎ɎgƂ͂ł܂B IBM8514 {[h̃oO
  łB

  5.2.  _}`|[gVA{[h (8250/16450/16550A UART 𓋍)

  ȉ̃{[huVAA_v^vƌĂ΂܂B
  * =>  "setserial" sƏڍׂȐݒ肪\܂B

  o  AST FourPort т̌݊J[h (4 |[g) *

  o  Accent Async-4 (4 |[g) *

  o  Arnet Multiport-8 (8 |[g)

  o  Bell Technologies HUB6 (6 |[g)

  o  Boca BB-1004 (4 |[g), BB-1008 (8 |[g), BB-2016 (16 |[g;
     mini-howto ܂) *

  o  Boca IOAT66 邢? ATIO66 (6 |[gAm߂Ă܂ Linux 
     IRQ LɑΉĂ܂BRJ45 ɎA 10-sRlN^
     g܂)

  o  Boca 2by4 (4 VA|[gA2 p|[g)

  o  Byterunner (ቿi搂Ă܂)

  o  Computone ValuePort V4-ISA (AST FourPort ݊) *

  o  Digi PC/8 (8 |[g)

  o  GTEK BBS-550 (8 |[g; mini-howto ܂)

  o  HUB-6 (Bell Technologies ɖ₢킹Ă)

  o  Longshine LCS-8880, Longshine LCS-8880+ (AST FourPort ݊) *

  o  Moxa C104, Moxa C104+ (AST FourPort ݊) *

  o  PC-COMM (4 |[g)

  o  Sealevel Systems <http://www.sealevel.com> COMM-2 (2 |[g),
     COMM-4 (4 |[g), COMM-8 (8 |[g)

  o  SIIG I/O Expander 2S IO1812 (4 |[g)

  o  STB-4COM (4 |[g)

  o  Twincom ACI/550

  o  Usenet Serial Board II (4 |[g) *

  ʓIɂ́ALinux  8250, 16450, 16550, 16550A, 16650 UART(܂͂
  ݊`bv)gĂSẴ{[hɑΉĂ܂B܂A
  UART ̂ꂩG~[głfɂΉĂ܂B

  : BB-1004  BB-1008  DCD, RI CT|[gĂ炸Â
  ߃_CACp̃fɂ͎g܂B̖ړIł͖Ȃ삵
  B Hayes ESP ̓o[W 2.1.15 ȍ~̃J[lŃT|[gĂ
  B

  5.3.  CeWFg}`|[gVA{[h

  Linux ̌݊hCog邱Ƃm߂ĂB̃Xg̓e
  ÂȂĂ܂B

  o  Comtrol RocketPort (36MHz ASIC; 4, 8, 16, 32 |[g)
     A: info@comtrol.com ܂ http://www.comtrol.com
     hCõXe[^X: Comtrol ЂT|[gĂ܂
     hCo̓: ftp://tsx-11.mit.edu/pub/linux/packages/comtrol

  o  Computone IntelliPort II (16MHz 80186; 4, 8, 16 |[g),
     IntelliPort II EXpandable (20MHz 80186; 16 - 64 |[g)
     A: Michael H. Warfield , mhw@wittsend.atl.ga.us
     hCõXe[^X: pre-ALPHA

  o  Computone IntelliPort II (16MHz 80186; 4, 8, 16 |[g),
     IntelliPort II EXpandable (20MHz 80186; 16 - 64 |[g)
     A: Michael H. Warfield , mhw@wittsend.atl.ga.us
     hCõXe[^X: pre-ALPHA

  o  Decision PCCOM8 (8 |[g)
     A: pccom8@signum.se
     hCo̓: ftp://ftp.signum.se/pub/pccom8

  o  Digi PC/Xi (12.5MHz 80186; 4, 8, 16 |[g),
     PC/Xe (12.5/16MHz 80186; 2, 4, 8 |[g),
     PC/Xr (16MHz IDT3041; 4, 8 |[g),
     PC/Xem (20MHz IDT3051; 8 - 64 |[g)
     A: sales@dgii.com ܂ http://www.dgii.com
     hCõXe[^X: Digi ЂT|[gĂ܂
     hCo̓: ftp://ftp.dgii.com/drivers/linux łł܂
     Ao[W 2.0 ȍ~̃J[l͊܂܂Ă܂B

  o  Digi COM/Xi (10MHz 80188; 4, 8 |[g)
     A: Simon Park , si@wimpol.demon.co.uk
     hCõXe[^X: ALPHA
     : Simon ͎d̂߁A1 dq[gȂȂ邱
     X܂B hCoKvȂ΁AMark Hatle 
     (fray@krypton.mankato.msus.edu) ӂœł悤ɂĂ
     Ă܂BMark ̓hCõeiXT|[g͍s܂
     B

  o  Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 |[g)
     A: sales@equinox.com or http://www.equinox.com
     hCõXe[^X: Equinox ЂT|[gĂ܂
     hCo̓: ftp://ftp.equinox.com/library/sst

  o  GTEK Cyclone (16C654 UART; 6, 16, 32 |[g),
     SmartCard (24MHz Dallas DS80C320; 8 |[g),
     BlackBoard-8A (16C654 UART; 8 |[g),
     PCSS (15/24MHz 8032; 8 |[g)
     A: spot@gtek.com ܂ http://www.gtek.com
     hCõXe[^X: GTEK ЂT|[gĂ܂
     hCo̓: ftp://ftp.gtek.com/pub

  o  Hayes ESP (COM-bic; 1 - 8 |[g)
     A: Andrew J. Robinson , arobinso@nyx.net ܂
     http://www.nyx.net/~arobinso
     hCõXe[^X: Linux J[lT|[g\
     (1998N)B҂T|[gĂ܂B
     hCo̓: http://www.nyx.net/~arobinso ł܂A
     o[W 2.1.15 ȍ~ Linux J[lɂ܂܂Ă
     Bsetserial ̓o[W 2.15 ȍ~őΉĂ܂B

  o  Maxpeed SS (Toshiba; 4, 8, 16 |[g)
     A: info@maxpeed.com ܂ http://www.maxpeed.com
     hCõXe[^X: Maxpeed ЂT|[gĂ܂
     hCo̓: ftp://maxpeed.com/pub/ss

  o  Moxa C218 (12MHz 80286; 8 |[g),
     Moxa C320 (40MHz TMS320; 8 - 32 |[g)
     A: info@moxa.com.tw ܂ http://www.moxa.com.tw
     hCõXe[^X: Moxa ЂT|[gĂ܂
     hCo̓: ftp://ftp.moxa.com.tw/drivers/c218-320/linux

  o  SDL RISCom/8 (Cirrus Logic CD180; 8 |[g)
     A: sales@sdlcomm.com ܂ http://www.sdlcomm.com
     hCõXe[^X: SDL ЂT|[gĂ܂
     hCo̓: ftp://ftp.sdlcomm.com/pub/drivers

  o  Specialix SX (25MHz T225; 8? - 32 |[g),
     SIO/XIO (20 MHz Zilog Z280; 4 - 32 |[g)
     A:  <mailto:R.E.Wolff@BitWizard.nl>
     hCõXe[^X: BETA / Specialix ЂT|[gĂ܂
     hCo̓:  <http://www.BitWizard.nl/specialix/>
     ÂhCo̓:
     ftp://metalab.unc.edu/pub/Linux/kernel/patches/serial

  o  Stallion EasyIO-4 (4 |[g), EasyIO-8 (8 |[g),
     EasyConnection (8 - 32 |[g) - ɂ Cirrus Logic CD1400
     UART ڂĂ܂B
     Stallion (8MHz 80186 CPU; 8, 16 |[g),
     Brumby (10/12 MHz 80186 CPU; 4, 8, 16 |[g),
     ONboard (16MHz 80186 CPU; 4, 8, 12, 16, 32 |[g),
     EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 |[g)
     A: sales@stallion.com ܂ http://www.stallion.com
     hCõXe[^X: Stallion ЂT|[gĂ܂
     hCo̓: ftp://ftp.stallion.com/drivers/ata5/Linux 
     ł܂B܂Ao[W 1.3.27 ȍ~ Linux J[lɊ܂܂
     ܂B

  Comtrol , Cyclades , Digi , Stallion Ђ̐ĩr[ Linux
  Journal  1995 N 6 ɌfڂĂ܂B̋L
  http://www.ssc.com/lj/issue14 œǂނƂł܂B

  6.  I/O AhXAIRQ, O̐ݒ

  6.1.  ͂߂

  ݒ 2 ̍Ƃɕ܂B჌x̐ݒł́A|[g I/O Ah
  XAIRQ ԍAfoCX(ttyS1 )蓖Ă܂B̐ݒ̓W
  p(vO&vCgƂ܂) "setserial" vOōs
  B̏͂ł́A̕@ɂĐ܂B

  x̐ݒɂ́A"stty" vOg܂(̏AvP[
  VvOsꍇ܂)B̓VA|[g̑x({[
  [g)̐ݒAVA|[gɑꂽ̕̕ϊ̐ݒȂǂ
  s܂B̐(ڂ͂܂) "stty" ̃IC}jA
  ɏĂ܂Bstty R}hgꕔ̐ݒ̈ӖɂẮA
  "termios" ̃IC}jA̐̕ڂƂ܂B

  ȒPȏꍇɂ́AVA|[g̓[UȂĂgŐݒ
  s܂BVA|[ggʐMvO͕ʁAx̐ݒs
  ܂BVA|[gɗLȃfoCX(/dev/ttyS1 )Ă
  ΁A჌x̐ݒ͊ɂłĂ͂łBݒ́ARs[^N
  鎞ɎsNXNvg "setserial" vOIɌ
  яočsƂ܂BL͂ Linux ̃fBXgr[V
  ɂ́Â悤ȃt@C "setserial" pӂĂ̂܂B
  ڂ ``N̐ݒ''B

  6.2.  I/O AhX IRQ ̐ݒ

  I/O AhX IRQ ̐́A ``I/O AhX IRQ'' ɂ܂BeV
  A|[g I/O AhXƊ荞(IRQ)Ȃ΂Ȃ܂B
  COM1  COM4 ɑΉ 4 ̃VA|[gȉɎ܂:

       ttyS0 (COM1) address 0x3f8 IRQ 4
       ttyS1 (COM2) address 0x2f8 IRQ 3
       ttyS2 (COM3) address 0x3e8 IRQ 4
       ttyS3 (COM4) address 0x2e8 IRQ 3

  Linux ̋NɁAJ[l͏ȂƂŏ 2 ̃VA|[g
  oǍʂNbZ[WƂĕ\܂BftHgł́Â
  ȃfoCX IRQ ͏dȂĂ_ɒӂĂBJ[l 2.2 
  ~gȂ΁ÃftHgݒł͑SẴVA|[gg
  ͂łAʂ IRQ 蓖ĂȂ΂Ȃ܂BIRQ ̐ݒɂ
  ́A ``̃VAfoCXg܂?''̏͂B

  6.3.  ̃VAfoCXg܂? 荞݂Փ˂̂ł

  3 ȏ̃VAfoCXĝłȂ΁Ȁ͂ǂޕKv͂
  (}`|[g{[h͎gĂȂ̂Ƃ܂)B

  gpłVA|[g̐́Ap\ I/O AhX̐ɂ鐧
  󂯂܂(2.2 ÕJ[lł͗p\ IRQ ɂ鐧ɉ
  ܂)B̐ Linux ̐ł͂ȂAPC A[LeN`̐
  BeVAfoCXɂ́Aj[N I/O AhX͈̔(2.2 O
  J[lł͂Ƀj[N IRQ)蓖ĂȂ΂Ȃ܂B荞
  ݋Lł悤ɐ݌vĂ}`|[g{[hgA 2.2 
  ~̃J[lgȂALinux ł͊荞݂L邱Ƃ͂ł܂
  BׂłȂ̂Ɋ荞݂L悤ƂƁA 2 ̃foCX
  ɓ삵Ȃ΁A܂삷邩܂BłȂ΁AЕ
  ̃foCX͂܂삷邩܂񂪁ÃfoCX삹A
  gvOnOĂ܂(邢͓삪ɒxȂ)
  ܂B

  }`|[gVA{[h(ȂƂuCeWFgvȂ)́A
  ̃VA|[gASĂ IRQ Lł悤ɓ
  ɐ݌vĂ܂B́A}`|[gVA{[hȃhCo
  KvƂ(Linux ɃhCogݍ܂Ă̂܂)R̈
  łBLinux ͈قȂ I/O AhXgƂɂA{[h̊e|[
  gf[^擾܂B

  6.3.1.  VA|[g IRQ ̑I (o[W 2.2 ȑÕJ[lł
  ݕKv)

  J[l̃o[W 2.2 ȍ~łĂÃfoCXƂ̏Փ˂
  邽߂AIRQ ̋L邱Ƃɂďグ邽߂ IRQ
  ݒ肷Ɨǂ܂BPC ͕ʁAttyS0  ttyS2  IRQ 4
  ŁAttyS1  ttyS3  IRQ 3 ̏ԂŏoׂĂ܂BhCol
   IRQ ̊蓖ẮA "setserial -g /dev/ttyS*" Ɠ͂ƒm邱
  ł܂B͕Kn[hEFA̐ݒƓł͂܂B

  /proc/interrupts ƁAݎs̃vOgpĂ IRQ 
  \܂B̃VA|[ggɂ́A荞݂蓖ĒK
  v܂B̕@̈́Ap|[g̊荞݂蓖Ē
  Ƃł(܂TEhJ[hɎgĂȂꍇ)BPC ͕ʁA IRQ 5 
  IRQ 7 p|[gp̊荞݂ƂĐݒ肳Ă܂Ap|
  [g 2 Ƃgl͂قƂǂ܂BāAЕ̃p|
  [gVAfoCXɊ蓖ĒĂAp|[gȂg
  Ƃł܂B̐ݒsɂ setserial KvłBɁA{[
  h̃Wpݒ肷邩AvO&vCgKv܂B

  J[l 2.2 Õo[W̏ꍇAeVAfoCX傤
  1 ̊荞݂悤ɐݒ肵Ȃ΂Ȃ܂Bł Greg 
   /etc/rc.d/rc.serial ̐ݒグ܂B̓VXeNɎ
  st@CōsȂ΂Ȃ܂B

       /sbin/setserial /dev/ttyS0 irq 3        # my serial mouse
       /sbin/setserial /dev/ttyS1 irq 4        # my Wyse dumb terminal
       /sbin/setserial /dev/ttyS2 irq 5        # my Zoom modem
       /sbin/setserial /dev/ttyS3 irq 9        # my USR modem

  W IRQ 蓖Ă܂:

          IRQ  0    ^C}`l 0 (u荞ݖvӖ邱Ƃ܂Bڂ͌q܂)
          IRQ  1    L[{[h
          IRQ  2    Rg[ 2 ւ̃JXP[h
          IRQ  3    VA|[g 2
          IRQ  4    VA|[g 1
          IRQ  5    p|[g 2, TEhJ[h
          IRQ  6    tbs[fBXN
          IRQ  7    p|[g 1
          IRQ  8    A^CNbN
          IRQ  9    IRQ2 Ƀ_CNg
          IRQ 10    蓖Ė
          IRQ 11    蓖Ė
          IRQ 12    蓖Ė
          IRQ 13    lRvZbT
          IRQ 14    n[hfBXNRg[ 1
          IRQ 15    n[hfBXNRg[ 2

  IRQ 0 ̓VA|[gɂƂĂ͓ʂȈӖ܂BIRQ 0 ͊荞
  ƂhCoɓ`AƃhCo̓|[Ogs
  ܂B|[O͔Ɍ̂łA荞݂Փ˂ꍇ
  A荞݂̐ݒ~Xꍇɂ͎Ƃ悢ł傤BIRQ 0 ݒ
  闘_́An[hEFAɐݒ肳Ă銄荞ݔԍmKvȂ_
  łB IRQ 0 ́AۂɎg銄荞݂܂ł̋}̂
  ɎgׂłB

  荞݂IԂ߂̌Iȕ@͂܂B荞݂}U[{[h
  Ã{[hgĂȂƂm߂邵܂B2, 3, 4, 5,
  7 IԂƂ悢ł傤B̕\́u蓖Ėv́A IRQ W
  IɎĝݖƂ\Ă܂BIRQ 2  IRQ 9 Ɠł
  _ɂӂĂBIRQ 2  9 ̂ǂgĂAVAh
  Co͂܂F܂B16 rbgoX̃RlN^VA{
  [hgĂꍇɂ́AIRQ 10, 11, 12, 15 gƂł܂B

  IRQ 1, 6, 8, 13, 14 ͎gȂł!  IRQ ̓}U[{[h
  głB}U[{[hgĂ IRQ グƁAƂĂ
  ƂɂȂ܂Bݒ肪IA荞݂gvOs
  鎞 /proc/interrupts ĊmFAIRQ ̏Փ˂NĂȂƂm
  ߂ĂB

  6.3.2.  VAfoCX̃AhX̐ݒ

  ̓|[g̃AhXݒ肵Ȃ΂Ȃ܂B{[h̃}jA
  ăWp̐ݒsAvO&vCŐݒs悤ɂĂ
  (Plug-and-Play-HOWTO Q)BAhX 1 ƂɁAVAfoCX
   1 ݂ł܂BVA|[g͒ʏAȉ̂悤ɐݒ肳
  ĂƎv܂B

       ttyS0 address 0x3f8
       ttyS1 address 0x2f8
       ttyS2 address 0x3e8
       ttyS3 address 0x2e8

  ꂼ̃VAfoCXɐݒ肵AhXIсAWp̐ݒ
  K؂ɍsĂ(܂̓vO&vCgĂ)BGreg 
  f ttyS2 gA}EXƃv^ ttyS1 gAeLXg[
  ttyS0 gĂ܂B

  6.3.3.  setserial ւ IRQ  I/O AhX̎w

   "setserial" R}hҏWKv܂B̃R}h
  Linux NxɎs܂BݒIvVgĂ΁A
  setserial ͌o UART ̃^Cv\܂B"unknown" ƕ\ꂽ
  ꍇ́AUART ܂BċNƁAVAhCo
  ƍlĂ Linux  IRQ  I/O AhX\͂ł(
  ԈĂ邱Ƃ܂)B

  Nɉʂɕ\郁bZ[WƁALinux ŏɕ\ IRQ
   setserial ɐݒ肵 IRQ ƈvȂƂ܂B̏ꍇɂ͂
  ΂炭҂āǍɕ\铯bZ[W IRQ ŕ\
  邩ǂmFĂBŏ̃bZ[ẂAsetserial t@C
   setserial R}hł͂ȂAJ[lɂČĂ΂ꂽɕ\
  ܂BLinux ͕ʁANɂ IRQ ̌o͑Ss܂BȂȂA
  IRQ ̌o͊댯smłBLinux ̋Nɂ́Aݎs
  vZXgĂ I/O |[gAhX́A/proc/ioports Œׂ邱
  ł܂B
  6.4.  Linux ̓VAfoCXIɂ܂ݒł܂?

  ł܂B̂悤Ȑݒ肪܂łĂȂ(邢́Aɋ߂ݒ肪
  łĂȂ)ꍇɂ́AVAfoCX̌oƐݒNɎI
  s悤ɐݒ肷邱Ƃł܂BKvȂΈȉ̍s
  /etc/rc.d/rc.serial t@C邢 /etc/rc.boot/0setserial t@C
  ɐݒ肵Ă:

       /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig

  Iɐݒ肵SẴVA|[gɂĂ̐ݒsĂ
  BKAVXeɎۂɑ݂foCXw肵ĂB

  6.5.  }`|[g{[hɊւ钍

  {[h̃AhX IRQ ɂẮArc.serial ܂
  /etc/rc.boot/0setserial ĂB҂̃t@C setserial v
  OɕtĂ܂B̃t@C̓}`|[g{[hɊւڍ
  Ȑݒs܂Bݒɂ I/O AhXfoCX܂܂܂B

  6.6.  foCX: fA}EX

  ꕔ̃CXg[ 2 ̒ǉfoCX܂BȂ킿fp
  /dev/modem ƃ}EXp /dev/mouse łBǂ /dev fBNg
  K؂ȃfoCXւ̃V{bNNłB̃ÑfoCX
  CXg[ɑIĂ܂ (oX}EX̏ꍇ͂̌ł
  ȂA/dev/mouse ̓oX}EX̃foCXւ̃NƂȂ܂)B

  /dev/mouse  /dev/modem ̗_ɂẮAߋɉxc_܂
  BM҂͂̃NgȂƂ߂܂BɁAf_
  CACpɎgƍlĂꍇɂ́A /dev/modem pƃbN
  t@C삵ȂƂ̂ŁA肪N邩܂B
  gΎgĂ悢̂łANKfoCXw悤
  ɂĂBAN𒣂蒼폜ꍇɂ́Aꕔ̃A
  vP[V(minicom )͍Đݒ肪KvɂȂ邩܂B

  6.7.  cua foCX

  ttyS foCXɂ͂ꂼAΉ cua foCX܂Bcua ͔p~
  \ɂȂĂ̂ŁA(cua KvłȂ) cua ł͂Ȃ ttyS
  g܂傤Bcua  ttyS ɂ͑_܂AƂvO
  }Ȃ ttyS |[g cua Ɠ悤ɓ삳邱Ƃł̂ŁAcua
  ͂͂ۂɂ͕Kv܂BAꕔ̌ÂAvP[Vł
  cua gKv邩܂B

  ҂̈ႢƂ͉ł傤? cua  ttyS ̎ȈႢ́AC ̃vO
  ̒ʏ "open" R}hŃ|[gI[v悤Ƃ̓Ɋ֌W
  ܂Bcua |[gfM`FbN悤ɐݒ肳Ă
  ƁAf DCD MI[vłȂƂĂĂA|[g
  I[v邱Ƃł܂B܂vO΁AttyS |[g
  邱Ƃł܂BāAƂf DCD M
  Lɂ邱ƂɎs(Nfɑ΂ēdbĂ炸Af
  ڑĂȂ)ĂAcua |[g̓_CAAEg̎ɂ͊ȒP
  I[v邱Ƃł܂B̂ cua _CAAEgɎgAttyS 
  _CACɎgĂ̂͂ꂪRłB

  6.8.  /dev fBNgɂVA|[g̃foCXƃfoCXԍ

       /dev/ttyS0 W[ԍ 4, }Ci[ԍ 64      /dev/cua0 W[ԍ 5, }Ci[ԍ 64
       /dev/ttyS1 W[ԍ 4, }Ci[ԍ 65      /dev/cua1 W[ԍ 5, }Ci[ԍ 65
       /dev/ttyS2 W[ԍ 4, }Ci[ԍ 66      /dev/cua2 W[ԍ 5, }Ci[ԍ 66
       /dev/ttyS3 W[ԍ 4, }Ci[ԍ 67      /dev/cua3 W[ԍ 5, }Ci[ԍ 67

  ǂȃfBXgr[VłĂAttyS foCX͊ɐ쐬
  Ă͂ł(Acua foCX쐬ĂƎv܂)B
  m߂ɂ͈ȉ̃R}h͂Ă:

       linux% ls -l /dev/cua*
       linux% ls -l /dev/ttyS*

  6.8.1.  /dev fBNgɂfoCX̍쐬@

  foCX݂Ȃ΁Amknod R}hgĂ쐬Ȃ΂
  Ȃł傤BႦ ttyS0 ɑ΂foCX쐬KvƂ
  ܂:

       linux# mknod -m 666 /dev/ttyS0 c 4 64
       linux# mknod -m 666 /dev/cua0 c 5 64

  MAKEDEV XNvggƂł܂B̃XNvg /dev fBN
  gɂ܂B̃XNvggƁAfoCXȒPɍ쐬邱Ƃ
  ł܂BႦ ttyS0 ɑ΂foCX쐬Kvꍇɂ́A
  ȉ̃R}hs܂:

       linux# cd /dev
       linux# ./MAKEDEV ttyS0

  ̃XNvg͐p[~bV̐ݒs͂łB

  6.9.  _}`|[g{[hɊւ钍

  }`|[g{[hgfoCX́A{[h̎ނɂĈقȂ܂B
  ̃J[hɂẮArc.serial t@C 0setserial t@CɋLq
  ܂B̃t@C setserial pbP[WɊ܂܂Ă܂B
  }`|[g{[hۂɂ́AŐVo[W setserial g
  ߂܂BԂ񂱂̃foCX͍쐬Kvł
  B쐬ɂ mknod R}h MAKEDEV XNvgg܂B}`|[
  g{[hp̃foCX̃}Ci[ԍ́Au64 + |[gԍvƂZ
  ŋ߂܂BāAttyS17 p̃foCX肽΁Aȉ̃R}
  hs܂:

  linux# mknod -m 666 /dev/cua17 c 5 81
  linux# mknod -m 666 /dev/ttyS17 c 4 81

  u64 + 17 = 81vł_ɒӂĂBMAKEDEV XNvgg
  ɂ́Aȉ̂悤ɍs܂:

       linux# cd /dev
       linux# ./MAKEDEV ttyS17

  : SIIG Ђ IO1812 ̃}jÁACOM5  COM8 ɊւLq
  Ă܂B COM5=0x250, COM6=0x258, COM7=0x260, COM8=0x268
  ̂͂łB

  : Digi Ђ PC/8 ̊荞ݏԃWX^̃AhX 0x140 łB

  : AST Ђ Fourport ̏ꍇɂ́Arc.serial  skip_test w肷
  Kv邩܂B

  6.10.  CeWFg}`|[g{[hɊւ钍

  hCot̎ĂB̃{[h́AW̃foCXł
  ȂȃfoCXg܂BɊւ́An[hEFAɂ
  قȂ܂B

  7.  mĂƂ悢֗ȃvO

  getty Ɋւ̂قƂǂ Modem-HOWTO Ɉړ܂B[ɒ
  ڑ getty ̎gp@Ɋւ Text-Terminal-HOWTO ɏ
  Ă܂B

  7.1.  VA|[g̊Ď/ffp̃vO

  fĎAꂪ(1)ł邩(0)ł邩vO
  ܂B

  o  statserial

  o  modemstat (Linux  PC R\[ł삵܂BR}hC
     Ƌ܂)

  o  serialmon (RTS, CTS, DSR ̊Ď͍s܂񂪁A̋@\̃Oc
     ܂)

     ̃vÔ͊Ɏg悤ɂȂĂ邩
     BłȂꍇɂ́AVAp\tgEFA
     <http://metalab.unc.edu/pub/Linux/system/serial/> 肵Ă
     B1998 N 6 ̎_ł́AM҂ Linux p̃VA|[gĎv
     Om܂B

  7.2.  荞݂̗Dx̕ύX

  o  irqtune ̓VA|[g̊荞݂̗DxA\コ
     ܂B
  o  n[hfBXÑ`[jOs hdparm ̖ɗł
     B

  7.3.  setserial Ƃ͉?

  7.3.1.  ͂߂

  setserial ́AVA|[g I/O AhX|[g̃n[hEFAɐ
  肳Ă IRQ AfoCXhCõ\tgEFAɋ邱Ƃ
  \ɂvOłBK؂ȃIvV^΁Asetserial (w
  ꂽ I/O AhX)VA|[g̒TsƂł܂AI/O
  AhX̂͐Ȃ΂Ȃ܂(setserial ́A /dev/ttySx 
  ݂ƃhColĂAhXSĎgƂł
  )Bsetserial ́AVA|[g̃n[hEFÂ̂ IRQ  I/O
  AhX̐ݒ͍s܂Bsetserial ɂ́An[hEFAɊɐݒ肳
  Ă̂Ɠlw肵Ȃ΂Ȃ܂Bn[hEFA̐ݒ́AW
  p܂̓vO&vCōs܂BgƎvAhXɂł
  Ă͂܂BAI/O AhXĂ邯 IRQ 
  Ȃꍇɂ́Asetserial  IRQ 𒲂ׂ悤Ɏw邱Ƃł
  B

  gp\ȃR}ḧꗗ́A setserial sΕ\
  ܂(̃R}h́Aڍו\s킹 -v ̂悤 1 IvV
  ł͂܂B̓gu̍ۂɎg܂)Bsetserial ł
  I/O AhX̂Ƃu|[gvƌĂԓ_ɒӂĂB setserial
  ւ̈(Ⴆ) /dev/ttyS1 Ȃ΁Ã|[gɊւfoCX
  hCo̐ݒ󋵂\܂BA setserial ̓n[hEFA
  ݒ肳Ăۂ̒l͕\܂BہAsetserial sđSR
   I/O AhX IRQ, UART ݒ肷邱Ƃł܂Bȍ~
  "setserial ..." sƁẢR̒lG[bZ[WȂɕ\
  ܂Bsetserial ɂݒ PC ̓d؂Ə̂ŁAʂ
  Linux N鎞ɎI setserial s悤ɂ܂B

  7.3.2.  T

  ̃VAn[hEFAĂ邩ǂ𒲂ׂ邽߂ɂ́A
   I/O AhXmȂ΂Ȃ܂(邢̓foCXhCo I/O
  AhXݒ肳ĂȂ΂Ȃ܂B̒l͑ setserial 
  Oɐݒ肵̂ł傤)BIȃn[hEFǍoꍇ
  ́Asetserial  -v IvV(ڍו\) autoconfig R}hg
  Bo͂ 16550A Ƃ UART ̎ނłΐłB
  t URAT ̎ނɂ "unknown" ƕ\ꂽꍇɂ́A I/O Ah
  Xɂ̓VA|[g͑SȂƎv܂Bꕔ̈̃VA|[
  g͂܂FȂ̂ŁA"unknown" ƕ\ĂɃVA|[
  g݂邱Ƃ܂BN "setserial" ĂяoĂt@
  CĂBUART ̎ނ̎oȊOɂA setserial  IRQ
  oł܂AK삷Ƃ͌܂B

  7.3.3.  N̐ݒ

  VXe̋NɁAVA|[ggǂ̃vZXO
  setserial st@C͂łBN setserial s
  Ȃ΁ALinux VXéAftHg IRQ ł 4  3 g
   ttyS{0-3} p悤Ɏݒ肳܂(ftHg IRQ ͏
  ˂܂)B1998 Nɂ(ꎞI?) ttyS{0-1} p悤ɕύX
  ܂BāA3 ȏ̃VA|[gꍇAVA|[
  g̐ݒ𐧌䂵ꍇɂ́Asetserial gĐݒsȂ΂Ȃ
  ܂BہAfBXgr[VɂẮAVXeN
  setserial vOIɎs悤ɂȂĂ邩܂
  BRedHat 6.0 ͂̐ݒ˂ĂƂƂłB

  N setserial st@ĆA/etc fBNgc[̉
  uĂ邱Ƃ܂Brc.serial  0setserial (Debian) 
  Õt@C "locate" R}hŒTĂB̂悤
  t@C݂Ȃ΁A쐬AVXeNɕKs
  悤ɂKv邩܂Bt@CɗpӂĂ΁A
  ̐ݒႪRgAEgꂽԂŏĂ͂łB
  ̈ꕔ̃RgOC邱ƂɂAݒsƂ
  ͂łBsetserial ̃pXƂƁAfoCXƂ
  m߂ĂB̃t@C蓮Ŏs(X[p[[UɂȂ
  t@C͂邾ł)A삷邩ǂmF邱Ƃ
  āAeXgsƂłł傤B̂悤ɃeXgA
  s܂ŉxċNƑł傤BAR}h
  C setserial R}h͂邱ƂɂĂeXgsƂ
  ł܂B

  N setserial sۂɍłǂgĂt@C
  /etc/rc.d/rc.serial łBDebian fBXgr[Vł
  /etc/rc.boot/0setserial gĂ܂BȊOɂ͈ꕔ̃fBXg
  r[V /etc/rc.d/rc.local gĂ܂A͂܂K
  ؂ł͂܂BƂ̂Ãt@Cŝ͔rIx
  łBrc.local ̎sOɑ̃vZXVA|[gI[v
  悤ƂƁAVAʐMsƕ񍐂Ă܂B

  7.3.4.  IRQ

  ftHgł́AttyS0  ttyS2  IRQ 4 LAttyS0  ttyS3 
  IRQ 3 LĂ܂BAJ[l 2.2 ȍ~łȂ΃VA
  荞݂̋L͂ł܂B̐VJ[lgĂȂĂA
  ttyS0  ttyS1  2 ̃VA|[ggĂȂΖ肠܂
  BƂ̂A݂ȂfoCXɂĂ͋L IRQ ̏Փ˂N
  ȂłB

  AVA|[g 3 ȏ゠AJ[l̃o[W 2.2
  Â΁A IRQ  2 ̃foCXɎgꍇɂ͂̂
   IRQ ̋L͊댯܂BfǉAttyS0 
  ttyS1 ̂܂܎gꍇɂ́Agp IRQ ăfJ[h(܂
  ̓VA|[g)ɐݒ肵Asetserial gĂƓlfoCXh
  Coɂ蓖ĂȂ΂Ȃ܂BIRQ 5 TEhJ[hɎg
  Ȃ΁AfpɎgĂ悢ł傤Bn[hEFA IRQ
  ݒ肷ɂ́Aisapnp  PnP BIOS, 邢 Linux  PnP ɂ邽߂
  pb`gKv邩܂B]Ă IRQ 𒲂ׂQlƂ
  āA"man setserial" s "IRQ 11" ȂǂĂ݂ĂB

  7.4.  isapnp Ƃ͉?

  isapnp ́Af܂߂ ISA oXp̃vO&vC (PnP)foCX
  ݒ肷邽߂̃vOłB̃vO "isapnptools" ƌĂ
  pbP[Wɑ̃vO("pnpdump")ƈꏏɓĂ
  B"pnpdump" ͑SĂ ISA PnP foCXSČÃfoCX
  ݒ肷IvVo͂܂B̏o͂́APnP ̐ݒt@Cł
  /etc/isapnp.conf ɒǉł`łBRs[^̋Nɖs
  AISA PnP foCXݒł悤ɁAisapnp R}h̓VXe
  Nt@Cɏ܂BBIOS  PnP T|[gĂȂĂA
  sƂ͉\łBڂ Plug-and-Play-HOWTO ĂB

  8.  x (t[[g)

  Ō "x" ͖{́uf[^t[[g(data flow rate)vƂ
  ӖȂ̂łA̐l͂𑬓xƌpĂ܂Bx̒Pʂ̓rb
  g/b(邢̓{[)łBx "stty" R}h܂̓VA|[g
  gvOŐݒ肵܂B

  8.1.  \ɑxݒł܂

  n[hEFAT|[gĂő呬xmKv܂B1998 N
  ̎_ł́AقƂǂ̃n[hEFA 115.2K bps ܂ł̑xT|[g
  Ă܂Bg̃AvP[V̐ݒ胁j[ɏ\x\
  Ȃ΁Asetserial ɂIvV^ĎsAʐMvO
  ̑xxĂۂɂ͍œ삷悤ɂł܂B̂悤ȃIv
  VgƁAx 38400 ɐݒ肵ĂĂAۂ̑x͂葬
  Ȃ܂Bڂ "setserial" ̃IC}jA "speed_hi",
  "spd_cust", "baud_base", "divisor" ƂĂ݂Ă
  B"baud_base" ̓n[hEFA̎ۂ̍ōxɐݒ肵Ȃ΂ȂȂ
  _ɒӂĂB̑x̓n[hEFA̐U̎g
  x̂ʂłBȂȂAU̎g̓n[hEFA 16
  ărbgpX̍őNbNxƂȂ邱ƂłBU
  ̎g̕ȂĂ͂ȂȂŔAő呬x̎łSȃN
  bNMgāA1 ̃rbg\pX̃Tv_𕡐
  ΂ȂȂłB\tgEFA̗RŃAvP[VvO
  ɑx 230400 bps œ͂łȂǁAIȃVA|[ĝ
  230400 bps T|[gĂꍇɂ́Aȉ̃R}hĂ:

  setserial /dev/ttyS2 spd_cust baud_base 230400 divisor 1
  x 230400 bps ɂ邽߂ɂ́AɃAvP[VvȎx
  ݒ 38400 bps ɂȂ΂Ȃ܂BɊւڂɂ
  ẮAsetserial ̃IC}jAQƂĂB

  setserial ̃eXgR}hCōŏɍsAŐ삵
  A̐ݒ /etc/rc.d/rc.serial ܂ /etc/rc.boot/0setserial ɉ
  AVXe̋NɎs悤ɂ܂Bsetserial ̃pXfoC
  XƂm߂ĂBVA|[g̐ݒ̊mF͈ȉ
  R}hōsƂł܂:

       setserial -a /dev/ttyS3

  8.2.  VÃX[vbǧ

  (E)IDE ̃n[hfBXNgĂVXełAX[vbg
  ăVA|[gI[o[ꍇ hdparm ĂB
   (E)IDE ̃p[^(fBXN IRQ sĂԂ͑ IRQ
  A}XN铙)ύX\ɂ郆[eBeBłB̃[eB
  eBgƉǂȂăI[o[𖳂ɗł傤B
  AIC}jA͕K悭ǂłBƂ̂Aꕔ̃h
  CuƃRg[̑gł͂̃[eBeB܂삹A
  t@CVXe󂵂Ă܂ȂłB

  irqtune ƌĂ΂郆[eBeBĂB̓foCX(Ⴆ
  ΃fqĂVA|[g) IRQ ̗DxύX郆[eB
  eBłBɂAg̃VXẽVA|[g̃X[vbg
  シ邩܂Birqtune  FAQ 
  http://www.best.com/~cae/irqtune ɂ܂B

  9.  ʐMvOƃ[eBeB

  9.1.  \tgEFÄꗗ

  ȉɒʐMvOЉ܂Bg̃fBXgr[V
  ɕtĂȂ΁AFTP œ肷邱Ƃł܂B

  o  ecu - ʐMvO

  o  C-Kermit <http://www.columbia.edu/kermit/> - ڐAAXNv
     gLqłAt@C]EWϊE zmodem ɑΉĂV
     AETCP/IP p̒ʐMvOB

  o  minicom - telix ɎʐMvO

  o  procomm - procomm Ɏ zmodem ΉʐMvO

  o  seyon - X x[X̒ʐMvO

  o  xc - xcomm ʐMpbP[W

  o  term  SLiRP ́AVFAJEgg TCP/IP @\񋟂
     B

  o  screen ̓}`ZbVvOłB͉zR\[̂悤
     ɓ삵܂B

  o  callback gƁA[gfɓdbÃfɓdb
     Ă炢R[obNĂ炤Ƃł܂(dbߖł
     )B

  o  mgetty+fax ̓t@bNX܂Bps_getty ̑ɎgƂ
     ܂B

  o  ZyXEL  ZyXEL U-1496 f𐧌䂷vOłB̃vO
     ̓_CACA_CAAEgAR[obNɂZLeB@
     \At@bNXA[{bNX܂B

  o  SLIP  PPP Ɋ֘A\tgEFA
      ftp://metalab.unc.edu/pub/Linux/system/network/serial œł
     B

  9.2.  kermit  zmodem

  kermit  zmodem gɂ́A.kermrc Ɉȉ̋Lqǉ܂:

       define rz !rz < /dev/ttyS3 > /dev/ttyS3
       define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3

  fڑĂ鐳|[gKw肵ĂBzmodem g
  ɂ́Akermit ̃vvgŒP rz ܂ sz <filename> Ɠ͂Ă
  B

  10.  VAɊւ邿ƂeNjbNȂ

  ɗƎvVA֘ÂƂeNjbNЉ܂B

  10.1.  ChCo

  eLXg[ł EIA-232 ͏\łAP[uZ
  邱Ƃ͂悭܂B̖͕t^`Zpɂ܂BeLX
  g[ŕt^`s߂̈ʓIȕ@́AVA 2 ̃
  ChCoCXg[āA񕽍t^畽t^ւ̕ϊ(ыt
  )sƂłB͓ȋ@łAVƂȂƍ
  傤B

  10.2.  וiƂĒmĂn[hEFA

  10.2.1.  IBM 8514 x[X̃rfI{[hgۂ̖

  ̃{[h(ь݊{[h)̃AhX͐MȂƂ 0x2e8 ł
  AttyS3 ƓAhXłB̃AhX ttyS3 gƂĂ
  lɂ͈m点łBƂ͕ʂ̖ Linux  ttyS3 ɂf
  oł܂񂪁Asetserial gẴAhX ttyS3 u
  ΁Af͂܂삷ł傤B

  10.2.2.  AMD Elan SC400 CPU (PC-on-a-chip) ł̖

  ͊荞݂ UART ̏ԃWX^ƂłBUART 
  gX~b^oCgf[^̑MIAUART ̑Mobt@ɂ
  Ɗ荞݂s܂(Ď̃oCgf[^҂܂)B
  UART ̏ԃWX^͂̍XVx́Aꂪ\fقǑ
  B̌ʁA荞݃T[rX[`ȃ`FbNsƁA
  NĂȂ(Ԉ)f܂BāAɓ]ׂoCg
  f[^̓VA|[gɑꂸAUART ̃gX~b^͓͂Ƃ̂
  oCgf[^҂邱ƂɂȂ܂B荞݃T[rX
  WX^`FbN܂ł̑҂Ԃ΁Aۂ̏Ԃ
  fASĂ܂s͂Ȃ̂łcB

  VAhCoɃpb`𓖂Ă邱ƂɂA̖悤Ƃ
  Ă܂BA׃n[hEFAɑΉ邽߂ Linux Ƀpb
  `𓖂Ăׂł傤? Ȃn[hEFAł̐\邩
  Ȃ̂ɁB

  10.3.  bNt@CƂ͉ł?

  bNt@C͒PɁÃfoCXgpł邱Ƃt@C
  B̃t@C /var/lock ɒu܂BȑO /usr/spool/uucp ɒu
  Ă܂BLinux ł́AbNt@C̖O LCK..name ̂悤
  Ȃ܂B name ̓foCXAUUCP ̃TCgłBvZ
  X̃bNt@CƁÃfoCXɔrIɃANZXł
  ɂȂ܂BႦ΁Afgă_CAAEgsƁANf
  ɎgĂ邱Ƃ̓bNt@C̃vZXɓ`܂BbN
  t@C̓e͎ɁAfoCXbNĂvZX ID łBق
  ǂ̃vO̓bNt@CQƂAvZXe[uẴf
  oCXbNĂ邻̃vZX𒲂ׂ邱ƂɂÃbN܂
  Lǂ𒲂ׂ悤Ƃ܂BbNt@CLł邱Ƃ
  ΁ÃvO͏I܂(I͂ł)BbNȂ΁A
  ȃbNt@C폜ẴfoCXgAVƎ̃bN
  t@CvO܂BPɂ̃foCXgpłƕ\
  ďIvO܂B

  Iɂ͓VA|[gقȂ 2 ̖O(: ttyS0 
  cua0)Ă邽߂ɖ肪N邱Ƃ܂BbN`FbN
  \tgEFA ttyS  bua 𒲂ׂ܂Acua gȂƂɂ
  ̓_Ɋւb͊ȒPɂȂ܂BȊOɂAfoCXɕ̖
  Ot邱ƂNƂȂ܂B

  11.  guV[eBO

  fсAfɑ΂ėp getty ɊւẮAModem-HOWTO ̃g
  uV[eBȌ͂B

  11.1.  VA̓dCIȐffs

  11.1.1.  pRlN^̏

  [Ȃ΃eX^(dvƂĎg܂)Ώ\ł傤
  AVA|[g̔z𒲂ׂ邽߂̊ȒPȓ܂B̒
  ɂ́upRlN^(breakout)vƌĂ΂̂܂Bubreakoutv
  t́AP[uoƂӖłB̂悤ȏ
  ɂ 2 RlN^tĂAVAP[uq悤ɂȂĂ
  Bdvq[qĂ̂܂B̃fI
  ɂȂĂƓ_ LED vĂ̂܂BCӂ
  Ɛڑł悤ɃWpĂ̂܂BXCb`
  Ă̂܂B

  Radio Shack ̓d퉮ŁuRS-232 Troubleshooterv܂uRS-232 e
  X^v𔄂Ă܂(1998 N)B TD, RD, RTS, CTS, DTR, DSR 
  `FbN܂B΂̃v̓I(+12 V)\AԂ̃v̓It(-12
  V)\܂B̓Xł́uRS-232 VAWp{bNXvƂA
  sRɑIׂ鑕uĂ܂B

  11.1.2.  d̑

  ǂȓdveX^(10 hŔĂ悤Ȉ)ł܂g
  ͂łBȊO̊mF@̓gbL[ɂȂ܂BR𒼗Ɍq
  LED ɂdȂALED gĂ͂܂B 20 mA 
  LED ł 470 ̒RgĂ(SĂ LED  20 mA Ƃ͌
  ܂)BLED ͌܂ɐłȂ̂ŁA+  - ̓d𒲂ׂ
  Ƃł܂BIɉH邱̂悤ȏN܂
  ? _v[ugƂƁA󂵂Ă܂܂B
  ̂ATTL z肵Ăd͂ 5 V łB12 V ̔M
  dĝ͂߂ł傤Bdł͋ɐ͂킩܂
  AUART ̏o͓d͌Ă邽߁AԂ邱ƂȂł
  B

  X̃RlN^̓d𑪒肷ɂ́AȂy[p[Nbv𒲂ׂ
  ɍނƂ悢ł傤By[p[Nbv̒a̓s͂
  Ȃ̂ŁAڐG邱Ƃ͂܂Bڑ邽߂ɂ́AjN
  bv()Ńy[p[Nbv݂܂傤B

  11.1.3.  d𖡂Ă݂

  eXgɎgAdCVbN󂯂(d)o傪
  ΁AŌ̎iƂēd𖡂키Ƃ@܂Bׂ铱
  Ȃ߂Oɂ́AdĂȂƂm߂܂傤B̓
  ()ŐGAVbN󂯂邩ǂmF܂BVbN
  ȂΐڐG̔Ȃ߂ĔG炵AĂѓɐGĂ݂܂傤B
  VbN󂯂΁AȂ߂Ă݂C͂ƂȂȂł傤B

  12 V 𒲂ׂɂ́AwȂ߂āA̎wŒׂ铱܂݂܂B
  āAʂ̓ɐŐG܂BŐGꂽɐ̓dĂ΁A
  ͂Ƃł傤BǂȖ邩OĒmĂ
  ΁Ad̓drȂ߂Ă݂Ƃł傤B

  11.2.  VA|[g̊ĎƐff

  fĎA̓d(1)ł邩(0)ł邩 Linux
  p̃vO܂B ``VA|[g̊Ď/ffp̃v
  O'' ̏͂B

  11.3.  VA|[g͕IɕtĂ̂łAo܂

  PCI oX̏ꍇ /proc/pci ĂBBIOS j[`FbN
  BVA|[g PnP Ȃ "pnpdump --dumpregs" A
  Plug-and-Play-HOWTO QƂĂB
  (: Plug-and-Play-HOWTO ɂ͓{󂪂܂B
  <http://www.linux.or.jp/JF/JFdocs/Plug-and-Play-HOWTO.html> 
  B) 肪ȌȉɎ܂:

  o  setserial: setserial ("autoconfig" IvV)s邩A
     setserial Nɉʂɕ\郁bZ[WāAsetserial ̕\
     ۂ̃n[hEFAݒłƊႢĂB

  o  /proc/interrupts: VAfoCXgĂȂɂ́Ãfo
     CX /proc/interrupts ɂ͌ȂB̂߁AVA|[g
     ołȂ(邢͊荞݂ݒ肳ĂȂ)ƊԈ_o
     ĂB

  o  /proc/ioports: ̃t@C setserial Ɠ(Ă炭Ԉ
     Ă)f[^\Ȃ̂ɁAꂪn[hEFA̐ݒ肾Ǝv
     B

  "setserial" Ɉ "autoconfig" tĎsƁAVA|[g
  ݂ƃ[UlĂ I/O AhXT邱Ƃł܂B
  UART ̎ނƂ "unknown" \ꂽꍇ́Aɂ͉Ȃ
  ܂Bڂ ``setserial Ƃ͉?'' ̏͂B

  11.4.  x: eLXgxĂʂɕ\܂

  ̌ۂ̓fA[Av^ŋN邱Ƃ܂B̏ꍇ́A
  Pꂪ\ꂽA̒P̂܂Ƃ܂肪\܂łɉb
  ̒҂Ԃ܂Bx̌ÂVA|[gł́APꉽ
  ł͂Ȃ 1 ł̌ۂN܂B͂邱Ƃ͂ł
  A͉͂ʂɂ͕\܂BbxĂA͂
  (܂͂̈ꕔ)\邱Ƃ܂B

  x悤Ȃ̂͊荞݂삵ĂȂłB̌ ``荞
  ̏Փ''܂ ``荞݂̐ݒ~X''łBՓ˂Ƃ 2 ̃foCX
   IRQ gƂ邱ƂłBIRQ ̐ݒ~XƂ́AfoCXhCo
   IRQ ĎĂ邱ƂłBǂ̏ꍇɂA͂ƂĂx
  Ȃ܂(邢͑S삵ĂȂ悤Ɍ܂)B̂悤ȏꍇ
  ́Au̓I[o[(input overrun)vG[bZ[W\(
  邢̓OɋL^)܂B

  sɋLĂ IRQ ȂƂm߂ĂBSẴ{[h(V
  AAC[TlbgASCSI )𒲂ׂĂBWp(܂) PnP
  ̐ݒƁASẴVAfoCXɂ setserial ̃p[^
  ƂmFĂB܂A /proc/ioports, /proc/interrupts,
  /proc/pci āAՓ˂NĂȂƂmFĂB

  11.5.  VXeN̉ʂŁAVA|[g IRQ ԈĂƕ\
  ܂

  Linux J[l̓VXe̋N IRQ ̌o͑Ss܂BJ[l
  ŝ̓VAfoCX̌ołBāAJ[l IRQ
  Ɋւčs\͖ĂBȂȂA̎_ł͕W IRQ
  ߑłĂ邩łB̂悤ɂȂĂ̂́A IRQ o͓
  ɂȂ炸AԈႤƂ邩łBAsetserial  IRQ ύX
  ɁANʂɃbZ[W\͂łB

  āAIRQ 5 ɐݒ肳Ă ttyS2 ꍇłĂALinux ̋N
  ɂ

       tty02 at 0x03e8 (irq = 4) is a 16550A

  ƕ\܂BۂɎg IRQ  Linux ɒm点ɂ́Asetserial g
  Ȃ΂Ȃ܂B

  12.  荞݂̖Ɋւڂ

  ``guV[eBO''̏͂ł͏Ǐʂɖ_Ă܂A
  ͂ł͊荞݂̐ݒĂꍇɉN̂܂B
  ͂́ȀǏN̂Aő̂ǂȏǏ󂪏ôA
  ɂǂΏׂȂ̂𗝉鏕ɂȂł傤B

  12.1.  荞݂̐ݒ~X

  荞݂̖Ȃ΁A ``荞''̏͂ĂB
  VA|[g̃n[hEFAɂ IRQ  1 ݒ肳Ă邯ǁAfo
  CXhCoɂ͂ƈقȂ IRQ ݒ肳ĂꍇAfoCXhC
  o̓VA|[g瑗銄荞݂S󂯎܂BVA|
  [gT[rX(16 oCg̎Mobt@̃oCgf[^̎󂯎
  A16 oCg̑Mobt@ւ̃oCgf[^̏)KvƂ鎞
  ́A荞݂găfoCXhCoɒm点̂ŁAVA|[g͑S
  삵ȂƎv܂B

  ł--邢͓Ă悤Ɍ邱Ƃ܂B
  ͂ǂĂł傤? ܂AVA|[gɃT[rX񋟂@
  ́A荞݈ȊOɂ|[Og@̂łB̕@͊荞
  ݂KvƂ܂B|[OƂ́AfoCXhCoXVA|[
  g𒲂ׂāAKvƂĂ邩ǂ(Ⴆ΁AMobt@荞
  ޕKvoCgf[^݂邩ǂ)@łB荞݂
  gȂ΁AVAhCo͂̃|[O@ŏIIɎg܂B
  Ã|[O@͊荞݂̕ςɎg߂̂̂ł͂܂
  B|[O͒x̂ŁApIł͂܂񂵁Aobt@I[o[
  NƂ邩łB|[O̖ړÍA荞݂ 1 
  Ȃ邩A삪ȂƂɁAJԂs킹邱
  Ǝv܂B荞݂sƂۂɂ֗łB

  16 oCg̑Mobt@̏ꍇɂ́A16 oCg]ƁA 16 o
  CgOɂ́Ã|[O(b)N܂ő҂
  BāA]͔ɒxA܂א؂ɂȂ܂BMxȂ
  ܂BȂȂAMobt@󂯎oCgf[^́A|[Os
  ܂ł̐bԂ̓obt@ɗ܂邩łB

  ͂\܂łɔɎԂ̂́AꂪRłB
  Ⴆ΁uATvƂfɑƁAuATv̓VA|[go
  fɑ܂Bf̓VA|[gʂāuATvXN[
  GR[obN܂B̂悤ɁAuATvƂ̓VA|[g 2
  ʂȂ΂Ȃ܂Bʂ͂̓삪ɍȂ̂ŁAL[{[h
  œ͂̂ƓɁuATvƂ񂪕\悤Ɍ܂B|[
  Ô߂ɃVA|[gxꍇɂ́A͉͂b҂
  ƕ\܂B

  16 oCg̎Mobt@̃I[o[ɂĂ͂ǂł傤? 
  OtfgĂꍇɋN܂BƂ̂Af̓VA
  |[gɍɃf[^𑗂邾Ȃ̂ŁA16 oCg̃obt@I[o[
  Ă܂܂Bf̏ꍇɂ̓VA|[g̓fƓ
  J[hɂ̂ŁAMoCgf[^̎Mobt@ɓO
  Ƀobt@ɋ󂫂邩ǂ`FbN܂B̏ꍇɂ́A
  Mobt@I[o[邱Ƃ͂܂񂪁AeLXg16 oCg
  ܂Ƃ܂育Ƃɐb̊Ԋuuĕ\܂B

  OtfłĂI[o[NȂƂ܂B
  (16 ȉ)ĂȂꍇɂ̓I[o[͋N܂B
  obt@ɂ͑Aꂾ̋󂫂邩łB葽oC
  gf瑗낤ƂƁAʂł̓I[o[N܂B
  A^C~Oǂ 16 oCg(Ԗ)ȏオʂ邱Ƃ
  BႦ 32 oCgMꍇ(̌ɂ̓f[^͑܂)AO
   16 oCgMł傤ǃ|[ON邩܂B
  ƌ㔼 16 oCg󂯎邾̋󂫂ł̂ŁA32 oCg
  邱ƂɂȂ܂Bl̏ɂA16  31 oCgʂ邱Ƃ
  ܂BAX 16 oCg̃f[^̂܂肵ʂȂ
  Af[^̑傫Ȑ؂ڂȂ邱Ƃ悭܂B

  1 oCg̃obt@ȂÂVA|[g̏ꍇ(邢͐ݒ
   1 oCg̃obt@̂悤ȓɂȂĂꍇ)ɂ́AOɏ
  󋵂ɂȂ܂B܂A1 XVA|[gʂ
  ƂԂɂȂ܂BŌɎ󂯎ƁA󂯎
  SăI[o[N܂(Ď܂)B̍Ō͒̕PȂ
  sł邱Ƃ悭܂BƂ̂As͉ʂɈCɑ
  镶̒ōŌ̕ƂȂ邱ƂłBāA
  AT<return> ƃfɓ͂ĂAʂɂ AT ƕ\ȂƂ
  ܂BĐbɋN̂́AJ[\sɈړ(s)
  ƂłBM҂ɂ́A16 oCg FIFO obt@ 1 oCg̃obt@
  悤ɓ삵o܂B

  ʐMvO͋N̎ɁA荞݂삵Ă邱Ƃ҂܂B|
  [OIȃ[h̒xg悤ɂ͂ȂĂ܂BāA
  VA|[g⃂f̐ݒ~XȂǂ̑SĂ̎ނ̌肪NĂ\
  ܂Bڑmƃ~X𖾂炩ɂłȂ܂B
  OC邽߂ɃXNvggĂꍇɂ́A|[O̒x̂
  ɃOC(^CAEgɂ)s邩܂B

  12.2.  荞݂̏Փ

  2 ̃foCX IRQ ԍgĂƁA͊荞݂L
  ƌ܂BɂẮA̋L͂܂삵܂Bo[W
   2.2 ȍ~̃J[lł́AVA|[g͑̃VA|[gƊ荞
  ݂L邱Ƃł܂BPCI oX̃foCX́APCI oX̑̃f
  oCX IRQ L邱Ƃł܂BȊOŏՓ˂̉\
  łA IRQ 𓯎ɁugvfoCXȂ΁A͋NȂ
  łBmɏƁAugvƂ(vO}p)uI[vv
  ӖłBȏ̗OƁA(荞݋L\ɂȃ\t
  gEFAgȂ)L͋Ă炸ALsƂƏՓ
  N܂B

  IRQ Փ˂Ă 2 ̃vZXɎsꂽꍇłĂA
  ̃foCX̓foCXhCoɊ荞݂𑗂邱ƂA炾
  ͂܂삷邱Ƃ܂B̃foCX͐hCoɊ荞
  ݂𑗂Ȃ̂ŁA荞݂̐ݒ~X鎞̃vZXƂ傤Ǔ
  ɓ삷ł傤Bڂ ``荞݂̐ݒ~X'' ̏͂
  B

  12.3.  荞݂̖̉

  L̐̂悤ɔɒxȂꍇɂ́Aȉ̐
  B

  13.  UART Ƃ͉ł?

  UART (Universal Asynchronous Receiver Transmitter) Ƃ́APC ̃}U[{
  [h(邢͓fJ[h)ɍڂĂVAp`bv̂Ƃ
  BUART ̋@\́A̗pr̃`bvpŎĂ邱Ƃ
  B 486 }V̂悤ȌÂRs[^ł́Ã`bv̓fBX
  N I/O Rg[J[hɍڂĂ܂BrIÂRs[^̒
  ɂ́A܂p̃VA{[hڂĂ̂܂B

  UART ̖ړÍAPC ̃poXĂoCgf[^VA
  rbgXg[ɕϊ邱ƂłBVA|[goĂP[u
  ̓f[^VAɑ悤ɂȂĂAf[^ꂼ
   1 ܂BVA|[g͈x 1 rbgrb
  gXg[𑗂܂BtɁAOtP[uoRăVA|[g
  ĂrbgXg[́ARs[^łpȃoCg
  f[^ɕϊ܂BUART ̓f[^oCgPʂň܂B̒Pʂ
  sƂ ASCII ̑傫ł܂B

  PC ɂԂ牺Ă[̂Ƃ܂B[U͂
  ƁA[͂̕gX~b^(UART ɂ)܂BgX~b
  ^͂̃oCgf[^VAɑAM 1 oCgA
  xōs܂BPC ł́AMs UART rbgSĎ󂯎
  A(p)oCgf[^ɕAobt@ɓ܂B

  UART ̊{IȎނ 2 (_ UART  FIFO UART)܂B_ UART
   8250, 16450, ^ 16550, ^ 16650 łB͎x̂
  ̂łA̓̎dg݂킩΁AFIFO UART(ŋ߂ 16550,
  16550A, 16c552, ŋ߂ 16650, 16750, 16950)̓𗝉̂eՂ
  B

  16550 ɂĂ͕킵_܂Bfɂ̓oO
  A16450 ƂĂ삵܂BoOCꂽŋ߂̃f
   16550A ƂOtĂ܂Ã[J[͖OύXĂ
  炸A16550 ƌĂёĂ܂BݎgĂ 16550 ̑啔
  16550 ̂悤łBn[hEFÃ}jA 16550 łƏĂ
  Ă(邢̓xɂ̂悤ɍ󂳂ĂĂ)ALinux  16550A ł
  ƔFĂ܂Bl̎ 16650 ɂ܂(̕[
  łBƂ̂Abł̓[J[oOF߂Ȃ
  )BLinux ͍ŋ߂ 16650  16650V2 ƂĔF܂B16650 ƔF
  ꂽꍇɂ͎cOȂA1 oCg̃obt@ĂȂ悤ɓ삵
  ܂B

  _ FIFO(L[̓삪t@[XgCEt@[XgAEg(First In,
  First Out)ł)̈Ⴂ邽߂ɁA܂ UART  1 oCg̃f[
  ^𑗎Mꍇ̂Ƃ𒲂ׂĂ݂܂傤BUART {͎̂ʂf[
  ^ɊւĂ͉s킸APɃf[^𑗎M邾łBX̃_
  UART ̏ꍇ́AoCgf[^Mx CPU VAfoCX
  犄荞݂󂯎܂BCPU ͂󂯂āAMoCgf[^
  UART ̃obt@oă̂ǂɒuAMׂ
  oCgf[^ UART ɓn̂ǂ炩s܂B8250  16450
  UART ɂ 1 oCgobt@܂B܂A1 oCg̃f[^
  Mx CPU Ɋ荞݂܂B]xႯ΂ł
  vłB]xłꍇɂ́AUART ׂ̏̕
  CPU ɂ肷邽߁Ȁ܂s邾̎ԂȂȂĂ
  ܂܂BꍇɂẮACPU ̊荞ݏԂɍȂȂĂ
  AoCgf[^㏑Ă܂܂BȂȂAf[^Ă
  ̂߂邩łB́uI[o[(overrun)v邢́uI[o
  [t[(overflow)vƌĂ΂܂B

  ꂪ FIFO UART 𗧂RłB16550A(邢 16550) FIFO `b
  vɂ 16 oCg FIFO obt@tĂ܂B܂ACPU Ɋ荞
  ܂ł 16 oCg܂ł󂯎()Ƃł̂łB
  ̃oCgf[^҂Ƃł邾ł͂ȂACPU  14 oCg(܂
  ͂ȏ)̃oCgf[^𓯎ɓ]邱Ƃł܂B荞݂
  l(gKx) 14 ł͂Ȃ 8 ɐݒ肳Ă邱Ƃ܂A
  ł UART (1 oCg̃obt@Ȃ)͖炩ɗD
  Ă܂BCPU 󂯂銄荞݂đ̏s܂Bf[^Ȃ
  Ȃ邱Ƃ܂񂵁AƂÂ߂łB

   PC ɂ 16 oCg̃obt@ 16550 tĂ܂񂪁A
   UART ɂ͂Ƒ傫ȃobt@܂B荞݂̓obt@
  ςɂȂ钼O(16 oCg̃obt@ł 14 oCĝugK
  xv̎_)ɔs_ɒӂĂB邱ƂɂA
  荞݃T[rXsԂɂoCg̃f[^󂯎]T
  c܂B̃gKxɂ́AJ[l̃\tgEFAFX
  lݒ肷邱Ƃł܂BgKx 1 ɂƁA_ UART Ƃ
  ړɂȂ܂(A荞݂𔭍sɂ 15 oCg
  󂫂cĂ_قȂ܂)B

  BBS ɓĂ鎞ɉ͂ꍇA͂̓VA|[
  goRőo܂B͂ʂɕ\̂́A̕
  dbEfEVA|[goRŉʂɃGR[obNĂ邩
  łBVA|[g 16 oCg̃obt@tĂꍇ( 14
  oCgW܂܂ŕ𑗂Ă܂)A͂\܂
  ɂ͕͂Ȃ΂ȂȂł傤BƂĂ킵̂
  Ah߂́u^CAEgv܂BāAʂ͕
  ͂ƁA͂̕ɉʂɕ\܂B

  UART ̎Mobt@̏ꍇÁu^CAEgv ȉ̂悤ɓ삵
  : XƂĂĂA荞݂͔ŝ́Aobt@ɗႦ
   14 ܂łBA镶͂ɂ΂炭
  ͂̕ȂĂ荞݂s܂B̊荞݂͂Ƃob
  t@ 14 ĂȂĂs܂(1 łĂ
  s܂)BāÃobt@ʂĕ͂ƁAob
  t@̑傫ۂɂ 16 oCgłĂ(Ȃłޑ
  ʂ 100 {łȂ) 1 oCg̃obt@̂悤ɓ삵܂Bl
  ́u^CAEgvMobt@ɂ܂B

  ȉ UART ̈ꗗ܂BTL ̓gKx(Trigger Level) łB

  o  8250, 16450,  16550: obt@̑傫 1 oCgł鎞x
      UART ł

  o  16550, 16550A, 16c552: 16 oCg̃obt@܂ (TL=1,4,8,14)

  o  16650:  32 oCg̃obt@܂B460.8 Kbps ܂ł̑xɑΉ
     Ă܂

  o  16750:  64 oCg̑Mobt@A56 oCg̎Mobt@
     B921.6 Kbps ܂ł̑xɑΉĂ܂

  o  Hayes ESP: 1K oCg̃obt@܂

  x UART ܂삷̂ 14.4k xf(DTE x
  38400 bps ܂)̏ꍇłBŋ߂̃fł́AȂƂ 16550 (
  ^ 16550 ͊܂݂܂)KvłBV.90 Ki 56k f̏ꍇ
  ́A16650 gƐp[ZgȂ邱Ƃ܂(ɈkĂ
  Ȃt@C_E[h鎞)B16650 gȗ_̓obt@̃T
  CY傫ƂłAf̈k䂪ȂΕKvȏ̑xK
  vȂ_łBꕔ 56k fɂ 16650 ڂĂȂ̂
  ܂(M҂͊m߂Ă܂)B

  UART łȂCeWFgȃ}`|[g{[hł́ADSP `bvg
  ĂȂobt@OƐsĂ܂BāACPU ׂ̕
  ɌyȂĂ܂BႦ΁ACyclades  Cyclom  Stallion 
  EasyIO {[h Cirrus Logic CD1400 RISC UART gāAȊȎ
  ̃{[h 80186 CPU  RISC CPU găVA I/O 
  ܂B

  ŋ߂ PC ̂قƂ(486, Pentium ȍ~̃}V)ɂ 16550A (ʂ͒P
  16550 ƌĂ΂܂)ڂĂ܂B͌Â`bvڂĂƂ
  ɂ́A 16450 `bvOāAV 16550A `bvƒu
  邱ƂɂAAbvO[h邱Ƃł܂B̃^Cṽ`bv
  ڂĂꍇ́AcOȂ炠߂ĂBUART \Pbg`
  Ȃ΁A(u`bv)AbvO[h͊ȒPł傤BV
  `bvƌÂ`bṽszu͌݊łBVVA{[hC^
  [lbgōw邱Ƃł邩܂(݂̓VA{[h
  Ă鏬X͂قƂǂ܂)B

  14.  szuƐM

  14.1.  szu

          VA|[g̃szu   (-->  PC 猩̂ł)
                  (DCD  CD ƋLڂ邱Ƃ܂)
  sԍ sԍ                       삨іړI
  9s    25s
   3        2       TxD    Transmit Data        -->       PC oCgf[^𑗐M
   2        3       RxD    Receive Data        <--        PC oCgf[^󂯎
   7        4       RTS    Request To Send      -->       RTS/CTS t[
   8        5       CTS    Clear To Send       <--        RTS/CTS t[
   6        6       DSR    Data Set Ready      <--        ʐM\ɂȂƂm点
   4       20       DTR    Data Terminal Ready  -->       ʐM\ɂȂƂm点
   1        8       DCD    Data Carrier Detect <--        fƌqĂ邱Ƃ
   9       22       RI    Ring Indicator       <--        db̃xĂԂ
   5        7             Signal Ground

  14.2.  M͌܂ӖĂȂƂ܂

  9 {̃ŝA蓖ĂŒ肳Ă̂ 3 ł
  (transmit(M), receive(M), signal ground(ڒn))B̓n[hEF
  AɌŒ肳ĂAύX邱Ƃ͂ł܂B̐M̓\tg
  EFAŐ䂷邱ƂłAقƂǉɂłgƂł܂B
  Az 2 ̏Ԃł܂BȂ킿(+12 {g)ƕ(-12 {
  g) łB́uIvłÁuItvłBႦ΁ALinux p̃\
  tgEFA DTR ɕɂȂ悤ɖ߂oƁAn[hEFA͒Pɂ
  ߂sADTR s̓d -12 {gɂ܂BDTR M󂯎
  f(邢͑̃foCX)͐FXȓ܂Bf̐ݒɂ
  ́ADTR ̏ԂɂȂƓdb܂BDTR (It)ɂȂƂ
  A̓邱Ƃ܂B

  悤ȂƂ 6 {̐SĂɂČ܂Bn[hEFA͐M
  M邾łAɂĂǂȓ삪ŝ́ALinux ̃\
  tgEFAVA|[gɐڑĂfoCX̐ݒ/݌vłB
  ܂AقƂǂ̃sɂ͒ʏs̋@\܂A OS
  foCXhCo̐ݒɂĕςĂ܂BLinux ̏ꍇ́A\[X
  R[hύX΁A̐M̓ς邱Ƃł܂(
  Ăl܂)B

  14.3.  VA|[gԂ̃P[uڑ

  VA|[g̃P[úAKʂ̃VA|[gɐڑ܂B
  f́AVA|[gɐڑfoCXɂ́AɃVA|[g
  gݍ܂Ă܂Bf̏ꍇAP[u͕KXg[gP[u
  (smڑ)łBf DCE (Data Communications
  Equipment) ƌARs[^ DTE (Data Terminal Equipment)ƌ
  ܂B̂悤 DTE  DCE qꍇɂ̓Xg[gP[ug
  ܂BDTE mqɂ̓NXP[ugȂ΂Ȃ܂B
  悤ȃP[ǔɂ͂̎ނ܂(Text-Terminal-HOWTO
  ɏĂ)B

  ̂悤ɐFXȃP[uĝɂ͗R܂B 1 ́AM
  ЕłBs 1 M𑗂ꍇ́A(s 1 ͐M
  󂯎邱Ƃ͂łȂ̂)s 1 𓯂ނ̃foCX̃s 1 ɐڑ
  łȂ͖̂炩łBڑĂ܂ƁÃsɌ݂ɐM
  𑗂̂ɁAǂM󂯎ȂƂԂɂȂĂ܂܂B
  @ 2 ܂B1 ڂ̕@́A2 ނ̈قȂ@
  g@łAŏ̋@̃s 1  2 Ԗڂ̋@̃s 1 (͐M
  Mł܂)ɐM𑗂Ƃ̂łB PC(DTE)f
  (DCE)Ɍq̕@łB2 ڂ̕@́AقȂނ̋@g킸ɐ
  s@łBȂ킿s 1(Ms)𓯂ނ̋@̎Ms
  (s 1 ȊO)Ɍq܂B 2  PC ڑ鎞APC [
  q̕@ł(DTE m̐ڑ)B̖ړIŎgP[u̓NXP
  [uƌĂ΂܂B

  VÃsw͌XA_[fɐڑ邽߂̂̂łB
  [ DTE (Data Terminal Equipment)ŁAf DCE (Data
  Communication Equipment)łB݂ PC ͕ʁA[ł͂Ȃ DTE 
  Ĉ܂({̒[͍ł̂悤Ɉ܂)Bs̖
  O DTE ł DCE łłB̏ꍇɂ́uM(receive)vu
  M(transmit)vƂt PC (DTE) 猩Ŏ܂BPC ̑
  Ms̓f́uMvsɃf[^܂(ۂɂ́A
  f͂̃sf[^󂯎̂ŁAf̗ꂩ猩Ƃ
  Msƌ܂)B

  VA|[g͌XADTE  DCE ɐڑ邽߂̂̂łȀꍇ
  ɂ̓P[uz͒PłBXg[gP[ugĂB
  ăfgꍇɂ́Aǂ̃sǂꂩCɂKv͂قƂǂ
  ܂BADTE m(Ⴆ΃Rs[^ƒ[)qꍇAFX
  Ȍqsꍇɂ́AFXȎނ̓ȃP[uȂ΂Ȃ
  B̏ꍇɂ́Aǂ̃sǂɌq邩dvɂȂ܂B

  14.4.  RTS/CTS  DTR/DSR ̃t[

  ́un[hEFAṽt[łBt[͊ ``t[
  ''̏͂ŐĂ܂AsƓdɊւ͂Ă܂
  BLinux ͌_ł RTS/CTS ɂt[䂵T|[gĂ܂
  (̃AvP[Vp̓hCoł DTR/DSR t[T|
  [gĂ̂܂)Bł RTS/CTS t[䂵܂
  BȂȂ DTR/DSR t[̓lłBRTS/CTS t[
  sɂ́AAvP[VvOŃn[hEFAt[I
  邩A邢́ustty crtscts < /dev/ttyS2vƂR}h(邢
  l̃R}h) gKv܂BɂALinux ̃foCXh
  CoɂAn[hEFAɂ RTS/CTS t[䂪LɂȂ܂B

  ꂩ DTE (PC )Ăf[^~߂ɂ́ARTS Itɂ
  ܂BRTS(uRequest To Sendv)It(-12 {g)ɂ̂́uf[^
  ɑȂłƂv(Request NOT To Send to me)v(M~)
  ƂӖłBPC ̃oCgf[^󂯎鏀ł́ARTS
  I(+12 {g)ɂƁAoCgf[^ĂїĂ悤ɂȂ
  Bt[M͏ɈłA䂳ĂoCg
  f[^̗̋tłBDCE @(f)lɓ삵܂A~M
   CTS s瑗܂B̂悤ɁARTS/CTS t[ł͐ 2 {
  g܂B

  ̒~M͂ǂ̃sŎM̂ł傤?  DCE-DTE ڑ
  DTE-DTE ڑňقȂ܂BDCE-DTE ڑ̏ꍇɂ́AXg[gP[u
  ĝŁAMM͖̂炩ɐMꂽsƓO
  ̃słB̏ꍇ RTS-->RTS (PC 烂f̌)
  CTS<--CTS(f PC ̌)ƂȂ܂BDTE m̐ڑ̏ꍇ
  ͊ȒPłB RTS sMsACTS sMs܂B 2 
   PC (PC1  PC2)VA|[goRŐڑꍇlĂ݂܂
  B̏ꍇ RTS(PC1)-->CTS(PC2)  CTS(PC2)<--RTS(PC2) ƂȂ
  B΁ARTS  CTS Ă܂B̂悤ȃP[u(
  ̐MĂ܂)AuNXvP[uƌĂ΂܂Bڂ ``V
  A|[gԂ̃P[uڑ''̏͂B

  X킵̂́AX RTS ̎g͐̐Ɣ΂łB̌
  X̎gƂ́uf[^ɑƂv(I Request To Send to
  you)vłB̗v͒[(܂̓Rs[^)烂fɑ邱Ƃz
  肵̂ŁA̗v󂯓ƁAf CTS sR
  s[^ CTS s CTS MԂ܂(CTS ́uf[^
  ɑĂ悢(You are Cleared To Send to me)vƂӖł)Bŋ߂
  RTS/CTS ot[ƈقȂA͕Е̃t[(Rs[^(
  ͒[) 烂f̕)ی삵܂B̖{̎gp@́A(f
  ܂) ݂̋@ł͂قƂǎgĂ܂B

  14.4.1.  DTR  DSR ̃s

  RTS  CTS ̑gƓlɁÃs΂ɂȂĂ܂BDTE m
  ̐ڑ̏ꍇA͌܂B̃s̎gp@ 2 ʂ肠
  B1  RTS/CTS t[̑ƂĎg@łBDTR s
  RTS sƓlɎg܂ADSR s CTS ŝ悤ɓ삵܂B
  Linux  DTR/DSR t[̓T|[gĂ܂񂪁APC  RTS/CTS s
   DTR/DSR t[gfoCX DSR/DTR sɐڑ邱Ƃɂ
  Â悤ȃt[sƂł܂BDTR t[ DTR/DSR
  t[ƂقړłAЕʐMłADSR sgȂ_
  قȂ܂B̃eLXg[ꕔ̃v^ł͂̎̃t[䂪
  gĂ܂B

  DTR, DSR ̒ʏ̎gp@ȉɎ܂BDTR IɂȂĂfoC
  X́AdĂ蓮쏀łĂ邱Ƃ܂Bf̏ꍇ
  ́APC fɑ DTR M̈Ӗ̓f̐ݒɂĕςĂ
  BDTR M PC  stty R}hgĎ蓮őɂ́A{[[g
   0 ɐݒ肵ĂBDTR Itɂ邱Ƃ́unOAbvvƌĂ
  邱Ƃ܂Aɂꂪs킯ł͂܂B

  14.5.  |[g̃I[v֎~@

  "stty -clocal" s(邢 "local" tO𖳌ɂ getty 
  p)ƁADCD I(+12 {g)ɂȂ܂ł̓VA|[gI[v
  邱Ƃł܂B

  15.  d̔g`

  15.1.  rbg 1 \d

  EIA-232 ̃VA|[gł́Ad͓Ɏ(ڒndɑ΂Đ܂
  ͕)łȂ傫 12 {gł(5 ܂ 10 {ĝ̂
  ܂)BMsƎMsł +12 {g 0 \rbg(uspacev
  Ă΂邱Ƃ܂)ŁA-12 {g 1 \rbgł(umarkv
  Ă΂邱Ƃ܂)B͔]_ƂĒmĂ܂BƂ
  Aʂ 0 \rbg͋UłA1 ͐^Ɛ\̂ʂ
  łBMsƎMs͔]_łÃs(f)
  ͒ʏ̘_pĂA̓d^(܂́uIv)łA̓d
  U(܂́uItv)\܂Bd 0 ͈Ӗ܂(̋@̓d
  ؂ĂƂӖ͎܂)B

  dɔ͈͂邱Ƃł܂BdlɂẮAMM̋
   5 {g 15 {g̊ԂłȂ΂Ȃ炸A25 {gzĂ͂Ȃ
  ܂B3 {g̓d͖`ł([ɂĂ͓dႭ
  ĂLłƂĎ󂯕t܂)Bd͈ʓIɂ 5 {g(܂ 3
  {ĝƂ܂)Ȃ̂ɁA 11-12 {gʂɎgĂƂ
  邱Ƃ܂B Macintosh  EIA-422 |[g EIA-232
  (ȃP[uKv) EIA-423 ƂĂgȂ΁Ad͎ۂ 5 V
  ܂Bł̐ł 12 V ĝƂ܂B

  ʏ̃Rs[^̘_H͐{g(Ă 5 {gW
  Ƃ܂)gȂ̂ŁA3-5 {g̃Rs[^H(TTL)̎
  pɐ݌vꂽeXg@12 {g̃VA|[gɑ΂ėp
  ƁAeXg@킪Ă܂Ƃ܂B

  15.2.  oCgf[^\dV[PX

  Ms(TxD)́AĂȂAChԂ̎ɂ -12 V (mark 
  )ێĂ܂BoCgf[^𑗂ۂɂ́AMs̓X^[grb
  g𑗂邽߂ +12 V (space )ƂȂAX^[grbg𑗂()
   +12 V ۂ܂BɃoCgf[^̉ʃrbg܂B0 \
  rbg̏ꍇ́AωÃoCgԂ̊Ԃ͑Ms +12 V
  ̂܂܂łB1 \rbg̏ꍇ́Ad +12 V  -12 V ɕς
  B̃rbgȍ~lɑ܂BŌɁApeBrbg -12 V
  (mark )̃Xgbvrbg邱Ƃ܂B̌́ÃX
  ^[grbg܂ł͑Ms -12 V(ACh)̂܂܂łB 0 {g
  ԂĂ邱ƂȂƂƁÂߓɐrbg 2 
  ꍇ(0 A邢 1 ꍇ)ɂ́ArbgIĎ
  rbgn܂邱Ƃ\ȒPȕ@(MȊOɂ)Ȃ_ɒӂ
  B

  2 Ԗڂ̃Xgbvrbg -12 V ɂȂ܂B͍ŏ̃Xgbvrbg
  ƓłB̃rbgԂ̋EM߁A2 Ԗڂ̃Xgb
  vrbg̉éAMsĂ -12 V ̃AChԂ̒ 2
  {ɂȂȊOɂ͂܂B2 Ԗڂ̃XgbvrbgƃoCgԂ̒AC
  hԂ̋ʂt@́AMɂ͂܂BāA܂
  ʐMł̂́AʐM̕БXgbvrbg 1 pA̔Α
  gbvrbg 2 pꍇłBA1 Xgbvrbgp
  Ȃ炩ɍłBHłA1 1/2 ̃Xgbvrbgg
  邱Ƃ܂B͑Ms 1 1/2 Ԃ̊ -12 V ۂƂ
  ł(Xgbvrbg̒ʏ 5 ɂȂ悤ɂȂ܂)B

  15.3.  peB

  ͕ʁA7 rbg܂ 8 rbg(̃f[^)őM܂BɃp
  eBrbgǉ(ǉȂƂ܂) 1 oCg̒ 7,
  8, 9 rbĝꂩƂȂ܂Bꕔ̒[G~[^Â[
  ́A9 rbg͎g܂BXgbvrbg 2 g 9 rbgg
  Ȃ[܂(Ƃ̂Aṽrbg 12 rbgƑȂ
  邩ł)B

  peBɂ́u(odd)vAu(even)vAuȂ(none)v̂ꂩ
  ݒ肵܂(ꕔ̒[ł́Amark peB space peBIvV
  ƂĎg܂)BpeBgƁAoCgf[^Œl 1 ɂȂ
  rbg̐(peBrbg܂߂)ƂȂ悤ɃpeBrbg
  ߂܂BrbgЂԂāÂ悤ȃoCgf[^ꂽ
  ꍇAf[^͕sȋpeB̃f[^ƂȂ܂B̃G[
  ͌ôŁAꂪ[󂯎oCgf[^łꍇɂ́A
  \Lʂɕ\ł܂BpeB̓lł
  ALȃoCgf[^ 1 łrbg(peBrbg܂
  )ƂȂ悤ɂ܂Bݒ莞ɂ͒ʏÃrbg̓oC
  g̃f[^rbg̐Ӗ܂( ASCII ̏ꍇɂ 7
  łAe ISO W̏ꍇɂ 8 ł)B

  "mark" ͒l 1 łrbg(܂_l 1)łA"space" ͒l 0
  łrbg(܂_l 0)łBmark peB̏ꍇɂ́ApeB
  rbg͏ɒl 1 łrbgłBspace peB̏ꍇɂ́A
  ɒl 0 łrbgłBmark peB space peB͒PɃo
  h𖳑ʂɂ邾Ȃ̂ŁAłgȂ悤ɂׂłBup
  eBv́ApeBrbgǉȂƂӖłB9 rbg
  oCgf[^󂯕tȂ[gꍇA8 rbgWgȂ
  ΁upeBvIȂ΂Ȃ܂B̓peBrbg
  󂫂łB

  15.4.  oCgf[^̍\ (t[)

  EIA-232 goCgf[^̃VA`ł́Aɒʂ̃rbg
  ɑ܂BPC ̃VA|[g͔񓯊ʐMs܂B̔񓯊
  Mł́Astart rbg stop rbgoCgf[^̎n߂ƏI
  B̂悤ȋ؂̓t[ƌĂ΂At[ꂽoCg
  f[^̓t[ƌĂ΂邱Ƃ܂BʂƂāA1 oCgƂ 9
   邢 10, 11 ̃rbgf[^܂B̒ōłʓI
  ̂ 10 łB8-N-1 Ƃ́Af[^rbg 8 ApeBAstop rb
  g 1 ƂӖłBstart rbg𐔂ɓƍv 10 rbgɂȂ
  ܂Bstop rbg 1 ͂قڗOȂg܂B 110 rbg/b(300
  rbg/b̎܂)ł́Astop rbg 2 gĂƂ
  ܂A݂ 2 ڂ stop rbgĝ͂O̎(邢
  ́A̐ݒł܂삵Ă悤Ɍ邽߂ɊԈĂ
  )łB

  15.5.  u񓯊vʐMœs@

  PC Ă EIA-232 ̃VA|[g͔񓯊łB܂ۂ
  ́Aꂼ̃rbg𑗂鎞ɁuԂށv߂́uNbNvM
  ȂƂƂłBM(M)p̐ɂ 2 Ԃ܂
  BȂ킿 mark (-12 V)  space (+12 V)łB0 V ̏Ԃ͂
  ܂B 1 rbg̃V[PX́Arbgƃrbg̊Ԃ
  }[J[I -12 V gđ܂BMŌX
  rbgʂ邽߂ɂ́AM̃NbNƓĂNbNM
  KKvłB̂悤ȃNbN͑M(M)erbgƓĂ
  uԂ̍݁v𐶐܂B

  񓯊̓`ɂẮAstart rbg stop rbggĊeoCgt
  [邱Ƃɂē܂(̓n[hEFAs
  )BM͐p̐ő start rbgĎÃrbgo
  ƃNbNݎn߂܂BM͂̃NbN݂gāA
  7, 8, 9 ̃rbgǂݍގԂv܂(ۂɂ͂
  GłBƂ̂A̃rbgTvO邱ƂA
  ̂߂ɕʂ̃^C~O݂KvɂȂ邩ł)B stop rbg
  ǂݍ܂ƁAM̓NbN~߂āA start rbg҂
  B̂悤ɁAPƂ̃oCgf[^󂯎ۂɂ͔񓯊`ۂɂ
  `ɂȂ܂ÃoCgf[^̊Ԃł͍̓s܂B

  16.  ̑̃VAfoCX (񓯊 EIA-232 ȊÔ)

  16.1.  EIA-232 ̌p

  cCXgyA(t^`)ZppčE邽߂ɁA
   EIA Ki܂łɍ܂Bt^̓`́AꍇɂĂ
  񕽍t^ EIA-232 S{Ƃ܂B鑬x̏ꍇA
  (őP[u)̓cCXgyAg{ł܂Bł
  PC ł́uxȁvEIA-232 gꑱĂ܂BƂ̂Af
  }EX̓P[uZ߁Aŏ\łB HOWTO 
  ŐVłłAȉɎ EIA-232  Linux T|[gĂ΁A
  M҂ɂm点B

  16.2.  EIA-422-A (t^)  EIA-423-A (񕽍t^)

  EIA-423 ͔񕽍t^ EIA-232 ƂقƂǓłAd 5 {g
  Ȃ_قȂ܂B EIA-232 KiɊ܂܂̂ŁAEIA-423 
  EIA-232 |[gɐڑ邱Ƃł܂B̎dl EIA-232 葽
  x߂Ă܂(łԓ삷Ɣ񕽍t`Փ˂N
  ŁA͂قƂǖɗ܂)B

  Apple  Macintosh ̂A1998 N̒Â̂ɂ
  EIA-232/EIA-422 |[gtĂAcCXgyA(t^)𑗎M(422
  ƂĎg)ɎgƂł܂B(dl) EIA-423(ꎩ
  ̂ EIA-232 葽ł) ̂傤 100 {łB Macintosh
  ͏Ċۂ "~j DIN-8" RlN^gĂ܂B] EIA-232
  |[gtĂ܂A 5 {głg܂ł(
   EIA-232 ł)B EIA-232 Ɠ悤Ɏgɂ́A RxD+ (
  tyA̕Е̒[)ڒnȃP[ugA RxD- MsƂ
  ĎgȂ΂Ȃ܂B TxD- ͑MsƂĎg܂A
  ̗Rɂ TxD+ ͐ڒnĂ͂Ȃ܂BMacintosh Communications
  FAQ <http://www.modemshop.com/csm-comm-faq.html> QƂĂB
  AMacintosh (тǂ) PC li
  ߁ALinux p̃zXgRs[^ƂĂ͂܂gĂ܂B

  16.3.  EIA-485

   EIA-422 (t^) ɎĂ܂BdłB point-to-
  point ڑłȂA}`hbv LAN (32 m[h܂)ɂgƂ
  ł܂BRlN^̎dl݂͑܂B

  16.4.  EIA-530

  2M rbg/b(t^)  EIA-530-A (t^łA񕽍t^ƂĎg
  Ƃł܂) EIA-232 u邽߂̂̂łAقƂǎg
  ܂łBEIA-232 Ɠ 25 sRlN^g܂B

  16.5.  EIA-612/613

  VAC^tF[X (High Speed Serial Interface, HSSI =
  EIA-612/613)ł 50 s̃RlN^g܂B 50 M rbg/b̑x
  o܂A[g̋łg܂B

  16.6.  ėpVAoX (Universal Serial Bus, USB)

  ėpVAoX(USB)́APCI `bvɑgݍ܂Ă܂BV PC 
  USB Ă܂B USB  4 sRlN^cCXgyAP[u
  g 12M rbg/b̑xŒʐMł܂BŒ 5 [g(̐
  ͍\ɂĕω܂)ƂZłڑł܂B

  USB ɂ͕ʂ HOWTO KvłBLinux  USB T|[g
  邽߂̍Ƃ͌ݐisł( HOWTO ͂܂܂)BUSB
  ͓ʐMsAlbg[NƓlɓȃpPbggđMs
  ܂B傤ǃlbg[NƓ悤ɁAUSB ɂ͕̃foCXڑ
  邱Ƃł܂BUSB ̊efoCXɂ́ArIȎgps߂̒Z
  Ԃ̃^CXCX^܂BfoCX́AoXŒ̎ԊԊu
  gpł邱Ƃۏ؂܂B̃foCX USB oXgƂȂ
  ΁A1 ̃foCX USB oXƐ肷邱Ƃł܂BUSB ڂ
  邱Ƃ͗eՂł͂܂B

  16.7.  ʐMƓ

  EIA-232 ̔񓯊ʐM(Ȃ)ȊOɂAVA|[gʐM̋Ki͂
  񂠂܂Bۂ EIA-232 ɓʐM̎dl܂A͕
   PC ̃VA|[gɂ͕tĂ܂B܂͓ʐMǂ
  ̂܂傤B

  16.7.1.  񓯊Ɠ̒`

  񓯊(async, asynchronous)Ƃ́uIłȂvƂӖłBۂ
  ͔񓯊ḾA񓯊VA|[gMf[^łAX^[g
  rbgƃXgbvrbgɂĔ͈͂߂ꂽoCg̃Xg[
  B(sync)Ƃ́A񓯊łȂ̂قƂǑSĂłBłAł
  {IȊTO̐ɂȂ܂ˁB

  _Iɂ́AʐMƂ͈̑x(NbNM݂̍ɍ킹)oC
  g񂪏ɑ邱ƂłB񓯊ʐM̏ꍇɂ́AoCgf[^̊Ԃ̎
  Ԃ(L[{[hŕłޏꍇ̂悤)sKɕωĂM
  ܂B

  ʐM邢͔񓯊ʐM̂ǂ炩ւ̕ނKvƂȂꍇ
  B񓯊VA|[głȀꍇ͈葬x̃Xg[𑗂
  B͓ʐM̂悤Ɏv邩܂񂪁AłX^[g
  rbgXgbvrbĝ(ɂf[^sKȑxőM
  ł܂)񓯊ʐMƌĂ΂܂Bʂ̏ꍇƂẮA(X^[grbgX
  gbvrbg܂܂Ȃ)oCgf[^AsKȃpPbgԊu
  pPbgɓ邱Ƃ܂B͓ʐMłBƂ
  AepPbgɓĂoCg͓đMȂ΂ȂȂ
  łB

  16.7.2.  ʐM

  ǎ҂̊F́AVA|[gp 25 sRlN^̖gp̃s
  Ȃ̂^ɎvƂ͂Ȃł傤? gp̃ŝقƂǂ͓
  ʐMp̂̂łAꂪtĂ PC ͂قƂǂ܂B^
  C~OM⓯]`l̂߂̃s܂B EIA-232 ̎dl
  ɂ͓ʐMƔ񓯊ʐM̗`Ă܂APC ł UART
  (Universal Asynchronous Receiver/Transmitter)`bvgĂ܂B
  ̃`bvɂ 16450, 16550A, 16650 ܂AʐM͈
  ł܂BʐMsɂ USART `bv邢͂Ɠ̃`b
  vgKv܂BUSART  S ͓(synchronous)\Ă܂B
  ʐM͂܎sȂ̂ŁAVA|[g͑̏ꍇȂ荂
  ܂B

  EIA-232 ̓Ɋւ镔̑ɂAEIA ɂ͓ɊւKiFX
  ܂BEIA-232 ł́ARlN^ 3 ԃs̓NbN(邢̓^C~O)
  M̂߂ɗ\񂳂Ă܂B炩̃^C~OM𐶐̂f
  ̎dłǍʁAf(邢́ufG~l[
  ^vƌĂ΂A^C~OM𐶐foCX)gȂƓʐM
  łȂƂ΂΂܂B

  VA|[gΉł邱Ƃ͂قƂǂȂ̂łA V.42 G[
  gfpAdbł̓ʐM͂悭s܂B
  G[̓X^[grbgƃXgbvrbg菜ApPbgɓt
  oCĝŁǍʂƂēdbœ܂B

  17.  ̏

  17.1.  

  1. Axleson, Jan: Serial Port Complete, Lakeview Research, Madison, WI,
     1998.

  2. Black, Uyless D.: Physical Layer Interfaces & Protocols, IEEE
     Computer Society Press, Los Alamitos, CA, 1996.

  3. Campbell, Joe: The RS-232 Solution, 2nd ed., Sybex, 1982.

  4. Levine, Donald:   POSIX Programmer's Guide
     <http://www.ora.com/catalog/posix/>, (ISBN 0-937175-73-0; O'Reilly)

  5. Putnam, Byron W.: RS-232 Simplified, Prentice Hall, 1987.

  6. Seyer, Martin D.: RS-232 Made Easy, 2nd ed., Prentice Hall, 1991.

  7. Stevens, Richard W.: Advanced Programming in the UNIX Environment
     <http://heg-
     school.aw.com/cseng/authors/stevens/advanced/advanced.nclk>, (ISBN
     0-201-56317-7; Addison-Wesley)

  8. Tischert, Michael & Bruno Jennrich: PC Intern, Abacus 1996.
     Chapter 7: Serial Ports

  ЂɊւ郁:

  1. "... Complete" (WX^܂)n[hEFAɂĂ͏ڂ
     Ă܂AvO~OɂĂ Windows ɏĂ܂B

  2. "Physical Layer ..."  EIA-232 ȊO̘bĂ܂B

  17.2.  VA|[gp\tgEFA

  ł߂~[TCgĝD܂̂łAł̓C̃TCg
  Љ܂:
  Serial Software <ftp://metalab.unc.edu/pub/Linux/system/serial/> 
  ́Agetty |[gj^܂ރVA|[gp̃\tgEFA(Linux
  p)܂B
  Serial Communications
  <ftp://metalab.unc.edu/pub/Linux/apps/serialcomm> ɂ͒ʐMvO
  ܂B

  o  irqtune ̓VA|[g̊荞݂̗DxA\コ
     ܂Bhdparm gn[hfBXÑ`[jOɗƎv
     B

  o  modemstat  statserial ͊e탂f䃉Č݂̏Ԃ\
     ܂B``VA|[g̊Ď/ffp̃vO''̏͂Ă
     B

  17.3.  Linux p̕

  o  setserial(8) stty  ̃IC}jA

  o  Modem-HOWTO: VA|[gɐڑ郂fɂ

  o  PPP-HOWTO: PPP ̎(VA|[gɐڑ郂fg܂)

  o  Printing-HOWTO: VAv^̐ݒ

  o  Serial-Programming-HOWTO: VA|[ggvO~OɊւ
     b

  o  Text-Terminal-HOWTO: eLXg[̓ƃCXg[Eݒ@

  o  UPS-HOWTO: VA|[gɐڑ UPS ZT̐ݒɂ

  o  UUCP-HOWTO: UUCP ̐ݒɊւ

  17.4.  Usenet ̃j[XO[v:

  o  comp.os.linux.answers

  o  comp.os.linux.hardware:  Linux Ŏgn[hEFAɂ

  o  comp.os.linux.networking:  Linux ɂlbg[NƒʐMɂ

  o  comp.os.linux.setup:  Linux ̃CXg[ƃVXeǗ

  17.5.  VA|[gɊւ郁[OXg

  Linux VA[OXg܂BQɂ́A[{
  ``subscribe linux-serial'' ł郁[ majordomo@vger.rutgers.edu
  ɑĂB[{ ``help'' ł郁[𑗂ƁAwv
  bZ[WĂ܂B̃T[óAɂ Linux ֘A[
  OXgǗĂ܂B[OXg̈ꗗ肷
  ́A``lists'' R}h𑗂ĂB

  17.6.  C^[lbg̏

  o  Vern Hoxie 񂪏W߂Ă Serial Suite
     <ftp://scicom.alphacdc.com/pub/linux> ́A Linux ̃VA|[g
     Ɋւ鎑ƁAȒPȃvO̗W߂̂łB

  o  VAʐMƃ}`|[gVA{[h̋c_s
     Cyclades  WWW y[W http://www.cyclades.com ł܂B

  17.7.  {ɂ

  { Linux Japanese FAQ Project s܂B|Ɋւ邲ӌ
   JF vWFNg JF@linux.or.jp ɘAĂB

  ȉɎ܂B

     v1.10j, 30 June 1997
        |: icl (nagata-y@bnn-net.or.jp)

     v2.00j, 30 June 1999
        |: P (fujiwara@linux.or.jp), Z & eNjJ`Fb
        N: ݗǎ (kawagisi@yk.rim.or.jp), Kc͍G
        (coda@post.kek.jp)

  ȏ

