如何在 FreeBSD 上使用 UPS

  •   2009-07-28/15:33
  • 作者: 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      电话铃响。

    --
      今天的美丽  明天别忘记

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多