精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>网络书籍>>《FreeBSD使用大全》>>FreeBSD连载(35):串口和modem

主题:FreeBSD连载(35):串口和modem
发信人: Hopper()
整理人: hahalee(2000-02-28 20:02:14), 站内信件
http://www.sina.com.cn 1999年12月7日 11:30 王波

拨号网络
  局域网上的FreeBSD要和Internet(或其他广域网)连接,就需要使用广域网
界面。对于一般用户,采用普通电话线进行拨号的方式,是比较常见的做法。这
就需要首先使用计算机的串口连接到modem(调制解调器)上,再通过modem连接
到Internet上。


串口和modem

  因此如果采用拨号方式连接一台计算机到远端,则必须配置好计算机的串口
和modem。

  个人计算机一般有两个串口,在DOS下称为COM1、COM2,FreeBSD使用Unix的
习惯从0开始排列数字,相应的串口硬件为sio0、sio1。启动时系统将自动检测这
些硬件,检测结果显示在屏幕上,可以在登录后使用dmesg来查看这些启动信息,
判断硬件是否真的被检测到了。如果串口被检测到,就能使用连接到相应串口上
的外置 modem进行连接。

  如果使用内置modem卡,卡上将包括一个串口设备,根据这个卡的设置,这个
串口设备可以为sio2或sio3 ,因此必须保证内核支持第三、第四个串口设备sio
2和sio3。但与DOS不同的是,modem卡使用的IRQ不能与已有串口共享硬件资源。
由于DOS是单任务操作系统,不可能同时使用两个串口,共享IRQ是可以的,因此
COM1 与COM3共享IRQ 4,COM2与COM4共享IRQ 3。但是对于多用户操作系统FreeB
SD来讲,同时会有多个进程访问设备,每个设备必须单独占有IRQ,因此必须在内
核中将modem卡的IRQ设为另外的空闲值。

  要更改卡上的跳线或在DOS下运行设置程序更改卡上的设置,以使硬件上设置
与内核配置相一致。通常PNP的 modem卡能正确设置硬件资源,也可以通过UserC
onfig重新设置。

  当FreeBSD的内核检测到串口设备之后,就能够通过相应的设备文件来访问这
些串口了。对应第一个串口sio0 的设备文件为/dev/ttyd0和/dev/cuaa0,对应第
二个串口sio2的设备文件为/dev/tty d1和/dev/cuaa1,依次类推。

  FreeBSD对一个串口提供了两个设备文件,事实上它们对应同样的硬件,只是
属性略有不同。cuaa0主要用来拨出,ttyd0主要用于拨入和直接连接。设置这两
个设备文件的原因是计算机与modem相互通信的数据有两类,一种为计算机通过串
口发送给modem的控制指令,常用的为Hayes的AT指令,这些数据是发送给modem的
,而另一种数据是计算机通过modem发送到电话网上的传输数据,这些数据只需要
让modem进行调制解调即可。而对于应用程序来讲,要想非常简单的来区分这两种
数据,就可以使用两个初始状态不同的设备文件。

  当外部拨入内部时,电话连接已经设置好了,数据传输是在计算机与电话网
之间,modem只进行调制解调,此时就使用ttyd0。而当向外拨号时,modem还没有
建立连接,计算机应该向modem发送指令,控制modem执行拨号等操作,此时就使
用设备文件cuaa0。一旦连接建立之后,系统将重置设备文件的属性,使得cuaa0
同样也是将数据发送向电话网上。

  因此ttyd0和cuaa0这两个设备文件,只是初始状态不同,而并没有本质的差
别。事实上大多数拨号软件会重置设备文件的状态,使用哪个设备都可以正确完
成拨号过程。然而习惯的做法仍然是使用cuaa0用于拨出,ttyd0 作为拨入,这样
能避免某些软件不能正确重置设备文件的状态的问题。 

未完,待续。。。  



--
小多子:你知道我们佟家百年不衰的道理么?
        那就是,不要一条路走到黑!

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.190.123]

[关闭][返回]