如何在 FreeBSD 上使用 UPS
发布时间:2006-10-14 8:47:01   收集提供:gaoqian
作者: Louis (Louis) 看板: 386BSD
标题: 如何在 FreeBSD 上使用 UPS ....
时间: Wed Oct 28 15:04:01 1998

  UPS 在跳电之时大约能撑个十来分钟以上,但是如果你人不在电脑旁,
  最後还是面临 UPS 没电,电脑被迫 shutdown 的情形。
  飞瑞的 UPS 有贩卖一种叫电掌柜的软体来帮你自动 shutdown,
  但是电掌柜是 for Win95 的,而 FreeBSD 或是 Linux 都还没有类似的软体,
  我想到一个方法,实作上也已经成功了。兹将步骤列在以下,
  有需要的网友自己动手做吧!!  ^_^

  目前就同学手边有的 UPS,已经做出 飞瑞 和 Upsonic 的。
  底下是给飞瑞的 A-8941 500VA 用的。
  我们这边的测试目前是没发现问题,如果你在使用上有问题,欢迎向我们提出。

【 零件清单 】
        9公             一个
        25母            一个
        单心线          四条
        电阻 1K         二只


【 飞瑞 UPS 的 output 规格 】
  可迳自参考飞瑞 UPS 手册的 第 6 页 -- 1-5 介面通讯埠。
  Pin   Meaning
  -----------------------------------------------------------------------
 2    市电异常时 ON (close)
   3    市电正常时 ON (close)
 5    Battery Low 时 ON (close)  距 Shutdown 剩一分钟
   6    Remoto ShutDown 用
 7    Common 共接点 (以上接脚接和这个共接)

  =======================================================================

【 实作 】
  其中,我选接 UPS 的 2、5、7 三条线,
  分别对应 COM2 的 DSR、CTR、Vcc 脚。
  而 COM2 的 DTR 脚(20) 则维持 High 提供 Vcc 的讯号。
   (RS-232规格上是写 3~15V,实测为 10V 左右)。

  将 9公的 pin7 连 Com2 的 pin 20,
  pin 2 连 pin 6,pin 5 连 pin 5 (见下图)。
  其中再将 COM2 的 pin 7 (Gnd) 和 COM2 的 pin 6 和 pin 5 跨接 1 K 的电阻。

    UPS                             COM2
   output( 9公)                     Input(25母)
  =========================================
    Pin 7 ------------------------ 20 Vcc

    Pin 2 -----+------------------  6 DSR (跳电时为 1 )
                >
               <  R (电阻 1K)
                +-----------------  7 Gnd
               <
                > R (电阻 1K)
    Pin 5 -----+------------------  5 CTR (Battery Low 时为 1 )

【 source 何处寻 】

  您可以到 ftp://kavalan.csie.nctu.edu.tw/pub/UNIX/source/UPS_deamonPT.tar.gz
  抓回来,直接打 make 就可以执行。
  目前只做 for FreeBSD 的。Linux 应该很好 port。

【 How To Run it 】
  将 9公接 UPS 後方的 output, 25母接主机後面的 COM2,然後执行这个程式,
  执行时,请用 sudo,否则 access COM2 时会 permission denied。
  目前预设的情形,只有显示 UPS 的状态,如果你要加入 shutdown 的功能,
  在 source 中第 52 行 :

                        case 2:
                        case 3:
                                printf("UPS 电力不足 ......\n");

                                <<< ---------insert here

                                break;

  把 system("shutdown -h now"); 加入 insert here 的地方,再重新 make 就可以了
  这程式直接跑就可以用了,不用加参数,
  % sudo serial_port
  这样就可以了。

  附上一些东西给 COM1 用的,更详细的资料,如果有人需要,我们再贴出来。

【 Device Name 】
  在 FreeBSD 中,device 的名称如下:
        /dev/cuaa0      COM1 port
        /dev/cuaa1      COM2 port

【 COM Port 接脚名称 】
  接脚名称                   9 pins   25 pins   讯号意义
  ---------------------------------------------------------------------------
  DCD (Data Carrier Detect)     1       8       载波侦测。表示modem和对方连上
  RxD (Received Data)           2       3       接收资料的接脚。
  TxD (transmit Data)           3       2       传送资料的接脚。
  DTR (Data Terminal Ready)     4       20      告诉 modem,PC 已经备妥。
  GND (Signal Ground)           5       7       接地脚。
  DSR (Data Set Ready)          6       6       Modem 已经开启且准备好。
  RTS (Reguest To Send)         7       4       叫 Modem 准备接收资料。
  CTS (Clear to Send)           8       5       Modem 已经准备好接收资料。
  RI  (Ring Indicator)          9       22      电话铃响。

--
  今天的美丽  明天别忘记
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50