新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 操作系统 > Unix系统 > FreeBSD教程 > 正文:FreeBSD连载35:串口和modem

FreeBSD连载35:串口和modem

新客网 XKER.COM 2008-01-17 来源:新客网编辑整理 王波 收藏本文

  【新客网FreeBSD教程】拨号网络

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

  • 串口和modem

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

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

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

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

  当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 作为拨入,这样能避免某些软件不能正确重置设备文件的状态的问题。

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐