以下に、本発明の好適な実施形態を図面に基づいて説明する。
図1に示すように、本発明が適用された実施形態の複合機1は、電話機機能、ファクシミリ機能、印刷機能、コピー機能、及びスキャナ機能などの複数種類の機能を備えたものであり、CPU(メインCPU)11、ROM12、RAM13、フラッシュメモリ14、操作部15、表示部16、回線I/F部17、モデム18、音声処理部19、ハンドセット検出回路21、画像読取部22、画像記録部23、DCL無線制御部24、及びアンプ26を備え、これらがバス30を介して相互にデータ通信可能に接続されている。
メインCPU11は、図6〜図7に示す各処理(詳細は後述)を含む各種制御プログラムを実行する。ROM12は、メインCPU11にて実行される各種制御プログラム等が記憶されており、RAM13は、メインCPU11が各種演算等を行う際の一時記憶領域として使用される。フラッシュメモリ14は、電話帳データや留守応答メッセージ、ファクシミリ送受信データなどの各種データが記憶される、電気的に書き換え可能な不揮発性メモリである。操作部15は、各種メニュー操作や設定等を行うための複数のボタン等(図示略)からなる。表示部16は、各種操作メニューや設定値、複合機1の動作状態などの各種情報が表示される。
回線I/F部17は、公衆の電話回線100に接続され、その電話回線100側との間で(詳しくは加入者線交換機との間で)通話音声信号や各種データの送受信などを行ったり、電話回線100の閉結・開放を行ったりする他、本実施形態では、電話回線100の極性反転検出にかかわる機能も備えている。この回線I/F部17の具体的構成や機能については、後で図2を用いて詳述する。尚、電話回線100は、図10と同様、一対の電話線(第1電話線L1,第2電話線L2)からなるものである。回線I/F部17と電話回線100との具体的接続構成についても、図10の従来の電話装置120における回線I/F部123と電話回線100との接続構成と同じである。
モデム18は、画像情報や各種通信データを変調・復調する機能や、音声処理部19との間で通話音声信号の送受を行う機能を備えている他、本実施形態では、電話回線100の極性反転検出にかかわる機能も備えている。その極性反転検出にかかわる機能については、後で図2を用いて詳述する。
音声通話時における、電話回線100側からのアナログ音声信号は、回線I/F部17のDAA31(図2参照)によってデジタルデータ(通話音声データ)に変換され、モデム18を介して音声処理部19に入力される。音声処理部19は、モデム18から入力された通話音声データをアナログ音声信号に変換してハンドセット20へ送出する。また、音声処理部19は、ハンドセット20から入力されたアナログ音声信号をデジタルデータ(通話音声データ)に変換してモデム18へ送出する。そのモデム18へ送出された通話音声データは、モデム18を介して回線I/F部17へ送出され、回線I/F部17のDAA31でアナログ音声信号に変換されて、電話回線100へ送出される。
ハンドセット20は、送話用のマイク及び受話用のスピーカを備えた送受話器であって、図示しないフック上に載置されており、通話時にはフックから取り上げられて使用される。ハンドセット20がフック上に載置されているか否か(即ちオンフック状態かオフフック状態か)は、ハンドセット検出回路21により検出される。
画像読取部22は、図示しないイメージセンサや原稿搬送機構(或いはイメージセンサ搬送機構)、画像メモリ等を備え、原稿の画像を読み取る。画像記録部23は、図示しない記録ヘッドやこれを搬送する搬送機構等を備え、印刷用紙等に画像を印刷(記録)する。
画像読取部22で読み取られたファクシミリ送信データは、RAM13に一旦保存され、モデム18にて所定の変調処理が行われた後、回線I/F部17を介して電話回線100へ送出される。また、外部端末装置等から電話回線100を経て回線I/F部17にて受信されたファクシミリ受信データは、モデム18を介してフラッシュメモリ14に一旦記憶され、必要に応じて(ユーザ操作等によって)表示部16に表示されたり画像記録部23によって印刷出力されたりする。
また、複合機1は、デジタル方式のコードレス電話機能における親機としての機能を備え、図示しない子機との間で通話音声データを送受信可能である。この機能実現のために、子機と無線通信を行うDCL無線制御部24及びアンテナ25が備えられている。
次に、本実施形態の複合機1における、電話回線100との接続制御にかかわる接続制御回路部(メインCPU11、モデム18、及び回線I/F部17)の各構成や機能、相互関係について、図2を用いてより詳しく説明する。尚、図2において、図10と同じ構成要素については、図10と同じ符号を付し、図10を用いて既に説明した構成要素についてはその詳細説明を省略する。
図2に示すように、回線I/F部17は、半導体化(IC化)されたDAA31を備えている。このDAA31は、電話回線100との間の信号送受及びその電話回線100の閉結・開放を行うものであり、DCIN端子、ACIN端子、DCOUT端子、ACOUT端子、IO端子、及びGND_DAA端子を備えている。
電話回線100を構成する一対の電話線L1,L2は、周知の通り一方が地気で他方が約−48Vに印加されている。そのため、複合機1においてこの電話回線100と接続される一対の接続ラインL11,L12の各電圧Va,Vbも、何れか一方が地気、他方が約−48Vの電圧となっている。この両者の極性は常に一定ではなく、交換機側にて適宜反転される。尚、ラインコード110は、電話装置120の回線接続端子131,132に対して着脱可能であり、壁面105の接続端子107に対しても着脱可能である。
回線I/F部17において、一対の接続ラインL11,L12は、4つのダイオードからなる整流ブリッジ回路125に接続され、この整流ブリッジ回路125の出力側の一方がDAA31のDCIN端子及びACIN端子に接続され、他方がDAA31のGND_DAA端子に接続されている。電話回線100側からの電流は、この整流ブリッジ回路125により整流されてDAA31に入力される。そのため、DCIN端子には、各接続ラインL11,L12の各電圧Va,Vb(即ち電話回線100の各電話線L1,L2の各電圧Va,Vb)のうち高い電圧値の電圧が入力されることとなる。
DAA31は、DCIN端子に入力されるDCIN電圧をモニタして、そのモニタした値を、後述するようにモデム18に入力したり回線閉結時の開閉用トランジスタT1の制御に用いたりする。尚、以下の説明では、第1接続ラインL11の電圧Vaを第1電話線電圧Vaとも言い、第2接続ラインL12の電圧Vbを第2電話線電圧Vbとも言う。
GND_DAA端子は、DAA31を含む回線I/F部17の回路全体の基準電位(グランド電位)となる端子であり、回線I/F部17はこのGND_DAA端子の電位を基準電位として動作する。ACIN端子には、整流ブリッジ回路125の出力が直流カット用のコンデンサC1を介して入力される。電話回線100からの各種入力信号はこのACIN端子に入力され、適宜処理されてモデム18へ出力される。
当該複合機1から電話回線100側へ送出するファクシミリデータや通話音声信号などの各種出力信号は、ACOUT端子から出力される。ACOUT端子は、出力用トランジスタT2のベースに接続されている。この出力用トランジスタT2のコレクタは整流ブリッジ回路125の一方の出力側に接続され、エミッタは抵抗R2を介してGND_DAA端子及び整流ブリッジ回路125の他方の出力側に接続されている。この出力用トランジスタT2をオン・オフすることで、所望の信号を出力することができる。
DCOUT端子は、電話回線100を閉結・開放するための開閉用トランジスタT1のベースに接続されている。開閉用トランジスタT1のコレクタは整流ブリッジ回路125の一方の出力側に接続され、エミッタは抵抗R1を介してGND_DAA端子及び整流ブリッジ回路125の他方の出力側に接続されている。DAA31は、電話回線100を開放させるべき期間は開閉用トランジスタT1をオフさせ、電話回線100を開放する。一方、電話回線100を閉結させるべき期間は開閉用トランジスタT1をオンさせ、電話回線100を閉結する。閉結中、DAA31は、DCIN端子に入力されたDCIN電圧をモニタして、その電圧が所定の範囲内の電圧となるよう、DCOUT端子の出力電圧を制御(即ち開閉用トランジスタT1のベース電圧を制御)する。
更に、本実施形態の回線I/F部17は、第1接続ラインL11の電圧(第1電話線電圧)Vaを検出するための電話線電圧検出回路を備えている。この電話線電圧検出回路は、アノードが第1接続ラインL11に接続されたダイオードD1と、一端がダイオードD1のカソードに接続されて他端がDAA31のIO端子に接続された抵抗R11と、一端がDAA31のIO端子及び抵抗R11の他端に接続されて他端がDAA31のGND_DAA端子に接続された抵抗R12と、アノードが抵抗R12の他端(即ちGND_DAA)に接続されてカソードが抵抗R12の一端(即ちDAA31のIO端子)に接続されたツェナーダイオードD2と、からなる。第1電話線電圧Vaは、抵抗R11及び抵抗R12からなる分圧回路により分圧され、その分圧値がDAA31のIO端子に入力される。尚、ダイオードD1での電圧降下分はここでは無視する。
この電話線電圧検出回路は、その目的からすれば、第1電話線電圧VaをそのままDAA31に入力するような構成としてもよいが、DAA31のIO端子に入力できる電圧の許容範囲を考慮して、許容範囲内の適度な電圧が入力されるよう、分圧回路にて分圧した分圧値をDAA31に入力するよう構成されている。ツェナーダイオードD2は、DAA31のIO端子に過電圧が入力されるのを防ぐために設けられている。
ダイオードD1(本発明の逆流阻止手段に相当)は、抵抗R11から第1接続ラインL11への通電を阻止するために設けられている。DAA31は、IO端子に入力される電圧であるIO電圧V_POLがGND_DAA端子の電圧であるGND_DAA電圧よりも低くなることは基本的には許容されていない。仮にこのダイオードD1がないと、第2電話線電圧Vbが第1電話線電圧Vaよりも高くなっている場合に、GND_DAA端子に接続された基準ライン(基準電位)から分圧回路を経て第1接続ラインL11に電流が流れ、これによりIO電圧V_POLは基準電位よりも低くなってしまう。そのため、電話線電圧検出回路を構成するにあたっては、IO電圧V_POLがGND_DAA電圧(即ち基準電位)より低くならないようにする必要があり、それを実現すべく、ダイオードD1が設けられている。
このような構成により、電話回線100の閉結時にその極性がVa<Vbとなっている場合は、図3(a)に示すように、IO電圧V_POLはGND_DAA電圧と同じである。尚、DCIN電圧は第2電話線電圧Vbよりも若干低くなっているが、これは整流ブリッジ回路125のダイオードによる電圧降下分によるものである。同様に、GND_DAA電圧は第1電話線電圧Vaよりも若干高くなっているが、これも整流ブリッジ回路125のダイオードによる電圧降下分によるものである。
そして、Va<Vbの状態から電話回線100の極性が反転してVa>Vbとなると、IO電圧V_POLは、GND_DAAよりも高い所定の値となる。このIO電圧V_POLの値は、分圧回路の各抵抗R11、R12の抵抗比により決定されるものである。Va>Vbの状態から電話回線100が極性反転してVa<Vbとなると、図3(b)に示すように、IO電圧V_POLは再びGND_DAA電圧と同じになる。
モデム18は、DAA31と同様、IC化されて構成されており、DAA31との間でトランス127によって直流的には絶縁された状態で接続され、このトランス127を介してDAA31との間で相互にデータ通信を行う。DAA31の動作用電源はモデム122からトランス127を介して供給される。モデム18は、CPU41を備えており、当該モデム18が有する各種機能はこのCPU41によって制御される。尚、モデム18は、図示しない電源回路で生成される制御電圧Vcを電源電圧として動作する。
モデム18の基本的機能は既述の通りだが、本実施形態では更に、DAA31で検出された第1電話線電圧Va(厳密にはその分圧値であるIO電圧V_POL)を周期的に読み出し、その変化(レベル反転)の有無を判断する。レベル反転が生じたと判断した場合、メインCPU11の割込(INT)端子に割込信号(反転割込)を送信する。
図3(a)において、Va<Vbの状態から極性反転してVa>Vbとなると、IO電圧V_POLはGND_DAA電圧よりも高い一定レベルに上昇する。そこで、この一定レベルのIO電圧V_POLよりも所定量低い値を第1の閾値として予め設定しておき、モデム18のCPU41は、IO電圧V_POLがその第1の閾値を超えたら、IO電圧V_POLがHigh(Hi)レベルに反転したものと判断して、メインCPU11へ反転割込を送信する。また、図3(b)において、Va>Vbの状態から極性反転してVa<Vbとなると、IO電圧V_POLはGND_DAAと同じレベルに低下する。そこで、その極性反転前の一定レベルのIO電圧V_POLよりも所定量低い値(第1の閾値よりも低い値)を第2の閾値として予め設定しておき、モデム18のCPU41は、IO電圧V_POLがその第2の閾値を下回ったならば、IO電圧V_POLがLow(Lo)レベルに反転したものと判断して、メインCPU11へ反転割込を送信する。
また、モデム18は、メインCPU11からの要求に応じ、DAA31から取得したIO電圧V_POLやDCIN電圧をメインCPU11のモデムI/F端子に入力する。
電話回線100の極性が反転する際、図3に示すように、DCIN電圧も一瞬低下する。そのため、このDCIN電圧の瞬間的な低下をもって極性反転を検出することも理論的には不可能ではない。しかし、実際には、ノイズや接触不良などの種々要因によってDCIN電圧が瞬間的に変化することがある。そのため、DCIN電圧の瞬間的な低下をもって極性反転を検出することは、検出精度上、現実的ではない。
また、極性が反転されたわけではないものの、何らかの要因で電話回線100の極性が図4に示すように瞬間的に変化するおそれがある。即ち、図4(a)は、Va<Vbの状態において、何らかの要因で第1電話線電圧Vaが瞬間的に上昇して第2電話線電圧Vbが瞬間的に低下した例を示している。図4(b)は、Va>Vbの状態において、何らかの要因で第1電話線電圧Vaが瞬間的に低下して第2電話線電圧Vbが瞬間的に上昇した例を示している。図4(a),(b)のいずれも、その瞬間的な低下によって、DCIN電圧も瞬間的に低下する。この例からも、DCIN電圧の瞬間的な低下をもって極性反転を検出することが検出精度上現実的ではないことがいえる。
それ故、従来は図10に示したようにフォトカプラ126を用いて極性反転を検出していたのである。これに対し、本実施形態では、第1電話線電圧Vaを分圧してDAA31に取り込み、DAA31経由でモデム18,メインCPU11に伝達することで、フォトカプラを用いることなく極性反転を精度良く検出できるようにしている。
メインCPU11は、モデム18と同様に制御電圧Vcを電源電圧として動作する。メインCPU11の基本的な機能は既述の通りだが、本実施形態では更に、モデム18を介してDAA31のIO電圧V_POLやDCIN電圧を取得したり、モデム18からの反転割込を受けたりすることによって、電話回線100の極性反転を検出する。また、ラインコード110が正常に接続されているか否か(即ち当該複合機1がラインコード110を介して電話回線100に正常に接続されているか否か)も判定する。但し、本実施形態における極性反転の検出は、後述するように留守録機能の実行時に行われる。
本実施形態の複合機1は、留守録機能を備えており、着信時に一定時間内にオフフックされなかった場合は、電話回線100を閉結して、発呼側の相手の音声を録音(フラッシュメモリ14へ記録)する。録音開始後、発呼側の相手からの音声メッセージが終了して発呼側でオンフックされると、交換機にて電話回線100の極性が反転される。メインCPU11は、その極性反転を検出することで、相手側が電話を切った(オンフックした)ものと判断し、録音の停止や電話回線100の開放などの所定の処理を行う。
また、メインCPU11は、ハンドセット20がオフフック、又は図示しない子機にてオフフック操作がなされると、メインCPU11は回線閉結指令をモデム122を介してDAA31へ出力する。これによりDAA31が開閉用トランジスタT1をオンして電話回線100を閉結する。その後オンフック操作がなされたら、メインCPU11は回線開放指令をモデム122を介してDAA31へ出力する。これによりDAA31が開閉用トランジスタT1をオフして電話回線100を開放する。
メインCPU11による極性反転の検出は、基本的にはモデム18からの反転割込を受けて判断するのであるが、単にモデム18からの反転割込を受けて極性反転を検出するようにすると、例えば図4に例示したように電話回線100の瞬間的な電圧変動によってIO電圧V_POLが瞬間的にレベル変化した場合にも誤って極性反転したものと判断してしまうおそれがある。そこでメインCPU11は、モデム18から反転割込があった場合は、再度、モデム18経由でIO電圧V_POLを取得し、その再取得した値もやはり極性反転したことを示す値(レベル)であった場合に、極性反転したものと判断する。
また、第1電話線電圧Vaの極性によっては、IO電圧V_POLをモニタするだけでは極性反転を正確に判断できない場合がある。具体的には、ラインコード110が抜かれて複合機1と電話回線100との接続が遮断されてしまった場合である。図5(a)に示すように、Va>Vbの状態において、ラインコード110が抜かれてしまうと、IO電圧V_POLはGND_DAAまで低下してしまう。つまり、極性が反転したわけではないにもかかわらず、極性が反転した場合と同じようにIO電圧V_POLがLoレベルに変化してしまう。
そのため、IO電圧V_POLをモニタするだけでは、図5(a)のようなケースの場合は誤って極性反転と判断してしまうことになる。一方、ラインコード110が抜かれた場合は、IO電圧V_POLがLoレベルに変化するだけでなく、DCIN電圧もGND_DAAと同レベル(Loレベル)に低下する。
そこでメインCPU11は、IO電圧V_POLがHiレベルからLoレベルに反転した場合は、DCIN電圧も取り込み、DCIN電圧が正常なレベルを維持しているかそれともGND_DAAレベル(Loレベル)にまで低下しているかを判断して、正常なレベルならば極性反転が生じたものと判断し、Loレベルならばラインコード110が抜かれたものと判断する。尚、本実施形態では、DCIN電圧についてLoレベルであるか否かを判断するための、Loレベル電圧より所定値高い電圧(正常時なレベルよりは十分小さい所定電圧)を閾値(本発明の所定の電圧レベルに相当)として設定し、その閾値を下回ったならばLoレベルと判断し、その閾値以上ならば正常なレベルであるものと判断するようにしている。
更に、メインCPU11は、DCIN電圧をモニタすることで、図5(b)のようにIO電圧V_POLのレベル変化が生じない期間中でも、ラインコード110が抜かれた場合にはそれを検出するようにしている。即ち、IO電圧V_POLがLoレベルの場合にDCIN電圧もLoレベルならば、ラインコードが抜かれたものと判断する。
次に、メインCPU11が実行する各種制御処理のうち、特に上記の極性反転検出及びラインコード110の接続状態判断を行う処理である判定処理と、この判定処理に繋がる前提となる処理である留守録制御処理について説明する。
まず、留守録制御処理について、図6のフローチャートを用いて説明する。メインCPU11は、この留守録制御処理を周期的に実行する。メインCPU11は、この処理を開始すると、まずS110にて、着信があるか否か判断する。着信がなければこの留守録処理を終了するが、着信があった場合は、S120にてスピーカ27の鳴動(呼出音出力)を開始し、S130で、ハンドセット20が取り上げられたか否か(即ちオフフックされたか否か)を判断する。ハンドセット20が取り上げられた場合は通常の音声通話処理に移行するため、この留守録制御処理を終了する。
尚、着信及び発信のいずれもない状態では、複合機1は、消費電力の少ないスタンバイモードにて動作しているが、S110にて着信があった場合は、通常の動作モードに移行して以後の処理を続ける。
S130でハンドセット20が取り上げられない場合は、S140にて、スピーカ27の鳴動が設定回数行われたか否か判断し、設定回数行われない場合はS130に戻るが、ハンドセット20が取り上げられないままスピーカ27の鳴動が設定回数行われた場合は、S150にてスピーカ27の鳴動を停止し、続くS160にて回線閉結指令を出力する。この回線閉結指令は、モデム18を介してDAA31に入力され、これによりDAA31は、電話回線100を閉結する。
S160の回線閉結指令の出力によって電話回線100が閉結されると、S170に進むが、それと同時に、図7に示す判定処理も実行開始される。つまり、回線閉結後、留守録制御処理(図6)と判定処理(図7)とが並行して実行されるようになる。図7の判定処理については後で説明することとし、ここでは図6の留守録制御処理の説明を続ける。
回線閉結後、S170にて、相手側(発呼側)へ応答メッセージの送出を開始する。この応答メッセージは、例えば「ただいま留守にしています・・・」といった、着信側が不在であることを相手側へ伝えるものである。応答メッセージの送出を開始すると、S180にて、電話回線100の極性反転の検出、又はラインコードの非接続(即ちラインコード110が抜かれたこと)判定が行われたか否かを判断する。これらは何れも、図7の判定処理にて行われるものであり、図7の判定処理で何れかが検出・判定された場合にはS240に進むが、何れもまだ検出・判定されない場合はS190に進む。
S190では、S170で送出開始した応答メッセージの送出が終了したか否かを判断し、送出が終了するまではS180に戻るが、送出が終了した場合は、S200に進み、相手側のメッセージの録音を開始する。その後、S210にて、S180と同様に、図7の判定処理で電話回線100の極性反転検出又はラインコードの非接続判定がなされたか否かを判断する。いずれもまだ検出・判定されない場合は、S220でタイムアウトの判断、即ちS200の録音開始から所定のタイムアウト時間が経過したか否かを判断し、タイムアウトしていない間はS210に戻る。
S220でタイムアウト判断した場合、又はS210で極性反転検出又はラインコード非接続判定がなされたと判断した場合は、S230に進んで相手メッセージの録音を停止し、続くS240にて、回線開放指令を出力する。この回線開放指令は、モデム18を介してDAA31に入力され、これによりDAA31は、電話回線100を開放する。
回線開放後、S250にて、S180又はS210において極性反転の検出又はラインコード非接続判定のどちらがなされたか、或いはどちらもなされることなくS220でタイムアウトしたかを判断し、極性反転が検出された場合又はタイムアウトとなった場合にはS260に進んで動作モードをスタンバイモードに移行させ、ラインコード非接続判定がなされた場合にはS270に進んでラインコード110の挿入(接続)を促す表示を行う。具体的には、例えば「ラインコードを挿して下さい・・・」といった表示を行う。
次に、図7の判定処理について説明する。メインCPU11は、この判定処理を開始すると、S310にてIO電圧V_POLを取得する。即ち、モデム18に対してIO電圧V_POLの取得要求を行うことによりモデム18経由でDAA31から取得する。S320では、その取得したIO電圧V_POLがLoレベルかHiレベルかを判断する。
IO電圧V_POLがLoレベルの場合は、S330にてタイムアウトの判断が行われる。このS330及び後述するS380のタイムアウトの判断は、いずれも、図6のS220のタイムアウト判断の結果に依存するものであり、図6のS220でまだタイムアウトしていない間は図7のS330及びS380でもタイムアウトしていないと判断し、図6のS220でタイムアウトしたと判断された場合は図7のS330及びS380でもタイムアウトしたと判断する。
S330でタイムアウトしたと判断された場合はそのままこの判定処理を終了するが、タイムアウト判断されていない場合は、S340に進み、IO電圧V_POLがHiレベルに反転したか否かを判断する。具体的には、モデム18からの反転割込が入力されたか否かに基づいて判断する。S320でIO電圧V_POLがLoレベルであると判断した後、モデム18から反転割込が入力されたならば、IO電圧V_POLがLoレベルからHiレベルに反転したものと判断できるため、その場合はS350に進む。
S350では、S310と同じ要領でIO電圧V_POLを再取得する。S360では、S350で再取得したIO電圧V_POLがHiレベルであるか否かを判断する。IO電圧V_POLがHiレベルであった場合、即ちS340でHiレベルへの変化を示す反転割込があって且つS350で再取得してもHiレベルであった場合は、S370にて、極性反転が起こったものと正式に判断して、この判定処理を終了する。
S360で、S350で再取得したIO電圧V_POLがHiレベルではなかった場合、即ちS340でHiレベルへの変化を示す反転割込があったもののS350で再取得したらHiレベルではなかった場合は、極性反転ではなくノイズ等の何らかの他の要因によって瞬間的にIO電圧V_POLがHiレベルに変化したものとして、S330に戻る。
S340で反転割込がなかった場合は、S450に進み、回線I/F部17におけるDCIN電圧を取得する。具体的には、モデム18に対してDCIN電圧の取得要求を行うことにより、モデム18経由で取得する。S460では、その取得したDCIN電圧がLoレベルであるか否か判断し、LoレベルでなければS330に戻るが、Loレベルならば、S470に進む。
S470では、S450と同じ要領でDCIN電圧を再取得し、S480で、その再取得したDCIN電圧もLoレベルであるか否か判断する。その再取得したDCIN電圧もLoレベルならば、S490に進み、ラインコード非接続と判定して、この判定処理を終了する。S480で、再取得したDCIN電圧がLoレベルではなかった場合は、ラインコード110が抜かれたわけではなくノイズ等の何らかの要因で瞬間的にDCIN電圧がLoレベルに変化したものとして、S330に戻る。
S320にて、IO電圧V_POLがHiレベルの場合は、S380にて、S320と同様にタイムアウトの判断が行われる。このS380でタイムアウトしたと判断された場合はそのままこの判定処理を終了するが、タイムアウト判断されていない場合は、S390に進み、IO電圧V_POLがLoレベルに反転したか否かを判断する。具体的には、モデム18からの反転割込が入力されたか否かに基づいて判断する。S320でIO電圧V_POLがHiレベルであると判断した後、モデム18から反転割込が入力されたならば、IO電圧V_POLがHiレベルからLoレベルに反転したものと判断できるため、その場合はS400に進む。S390にて反転入力がなかった場合はS380に戻る。
S400では、S350と同様にIO電圧V_POLを再取得する。続くS410では、S400で再取得したIO電圧V_POLがLoレベルであるか否かを判断する。IO電圧V_POLがLoレベルであった場合、即ちS390でLoレベルへの変化を示す反転割込があって且つS400で再取得してもLoレベルであった場合は、極性反転が生じたものとの一応の仮判断をした上で、S420にて、S450と同様にDCIN電圧を取得して、S430に進む。S410にて、再取得したIO電圧V_POLがLoレベルではなかった場合、即ちS390でLoレベルへの変化を示す反転割込があったもののS400で再取得したらLoレベルではなかった場合は、極性反転ではなくノイズ等の何らかの他の要因によって瞬間的にIO電圧V_POLがLoレベルに変化したものとして、S380に戻る。
S430では、S420で取得したDCIN電圧がLoレベルであるか否か判断し、Loレベルでなければ、S370に進んで極性反転が起こったものと正式に判断して、この判定処理を終了する。S430で、S420で取得したDCIN電圧がLoレベルならば、S440に進み、ラインコード110が抜かれている(ラインコード非接続)と判定して、この判定処理を終了する。
次に、モデム18のCPU41が実行するIO電圧監視処理及びDCIN電圧送信処理について、図8を用いて説明する。モデム18のCPU41は、図8に示す各処理をそれぞれ周期的に且つ並行して実行する。まず、IO電圧監視処理について、図8(a)を用いて説明する。
モデム18のCPU41は、IO電圧監視処理を開始すると、S510にて、DAA31からIO電圧V_POLを読み出す。このS510の読み出しタイミングが本発明の入力タイミングに相当する。S520では、メインCPU11からIO電圧の取得要求があるか否か判断し、なければS540に進み、取得要求があった場合は、S530にて、S510で読み出したIO電圧V_POLをメインCPU11へ送信する。
S540では、前回のこのIO電圧監視処理実行時にS510で読み出したIO電圧V_POL(前回値)と、今回S510で読み出したIO電圧V_POL(今回値)とを比較する。S550では、その両者間でレベル反転が起こっているか否か判断する。即ち、前回値のレベルと今回値のレベルが同じならばそのままこのIO電圧監視処理を終了するが、前回値のレベルに対して今回値のレベルが反転していたならば、S560にて、メインCPU11へ反転割込を送信する。
次に、DCIN電圧送信処理について、図8(b)を用いて説明する。モデム18のCPU41は、このDCIN電圧送信処理を開始すると、S610にて、メインCPU11からDCIN電圧の取得要求があるか否かを判断する。S610で取得要求がなければそのままこのDCIN電圧送信処理を終了するが、取得要求があった場合は、S620にてDAA31からDCIN電圧を読み出し、S630にてその読み出したDCIN電圧をメインCPU11へ送信する。
以上説明した本実施形態の複合機1によれば、電話回線100の片側(第1電話線L1)の電圧VaをDAA31にて検出し(IO電圧V_POL)、且つ整流ブリッジ回路125から入力されるDCIN電圧をDAA31にて検出する。モデム18は、DAA31から周期的にIO電圧V_POLを読み出し、前回値からレベル反転が生じたか否か判断して、レベル反転が生じたならばその旨を示す反転割込をメインCPU11へ送信する。また、モデム18は、メインCPU11からの要求に応じてIO電圧V_POL及びDCIN電圧をメインCPU11へ送信する。
そして、メインCPU11は、モデム18からの反転割込に基づいて、電話回線100の極性反転を検出する。そのため、従来のようにフォトカプラを用いることなく、また複合機1の大型化・コストアップを抑えつつ、少なくとも電話回線100の閉結中において、電話回線100と直流的に絶縁されたメインCPU11にて、電話回線100の極性反転を検出することができる。
しかも本実施形態では、単にモデム18からの反転割込をもって極性反転を判断するのではなく、反転割込があった場合、更にIO電圧V_POLを再取得し、その再取得した結果もなおレベル反転を示すものである場合に、正式に極性反転が生じたものと判断する。尚、この再取得回数(本例では1回)は本発明の再確認回数に相当するものである。
更に、本実施形態では、IO電圧V_POLがHiレベルからLoレベルに反転した場合は、DCIN電圧もみて、DCIN電圧がHiレベルならば極性反転、DCIN電圧がLoレベルならば極性反転ではなくラインコード110の非接続と判断するようにして、ラインコード110が抜かれたことによってIO電圧V_POLがレベル反転した場合に誤って極性反転と判断しないようにしている。そのため、高い精度で極性反転を検出することができる。
また、IO電圧V_POLがLoレベルを維持している間にも、DCIN電圧をモニタし、DCIN電圧がLoレベルとなった場合には、ラインコード110が抜かれたものと判断する。そのため、高精度な極性反転検出機能に加え、ラインコード110の非接続判定機能をも必要十分に備えた、付加価値の高い複合機1の提供が可能となる。
[変形例]
以上、本発明の実施の形態について説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。
例えば、上記実施形態では、第1電話線電圧Vaを検出する具体的構成として、ダイオードD1,分圧回路,及びツェナーダイオードD2からなる電話線電圧検出回路にて第1電話線電圧Vaを分圧し、その分圧値(IO電圧V_POL)をDAA31へ入力する構成を示したが、このような構成はあくまでも一例であり、第1電話線電圧Vaを示す検出値をDAA31へ入力できる限り、具体的回路構成等は種々考えられる。
また、図7の判定処理において、モデム18から反転割込があった場合(S340、S390)、IO電圧V_POLを再取得するようにしたが(S350、S400)、この再取得回数は1回に限らず複数回であっても良い。
また、上記実施形態では、各電話線電圧Va,Vbのうち一方の第1電話線電圧Vaを検出してそれに基づいて極性反転を判断するようにしたが、他方の第2電話線電圧Vbに基づいて極性反転を判断するようにしてもよいし、各電話線電圧Va,Vbの双方を検出して双方に基づいて極性反転を検出するようにしてもよい。このように双方に基づいて極性反転を検出する場合の回線I/F部の具体的回路構成例を図9に示す。
図9に示す回線I/F部50は、図1に示した回線I/F部17に対し、第2電話線電圧Vbを検出するための電話線電圧検出回路が追加されている。この回路は、第1電話線電圧Vaを検出するための回路構成と同じである。即ち、ダイオードD6,抵抗R21及び抵抗R22からなる分圧回路,及びツェナーダイオードD7からなる回路であり、分圧回路による分圧値が、第2電話線電圧Vbを示す検出値(第2IO電圧V_POL2)としてDAA51のIO2端子へ入力される。第1電話線電圧Vaの検出値(第1IO電圧V_POL1)は、DAA51のIO1端子へ入力される。
このような回線I/F部50を備えている場合、極性反転の検出は、次のように行うことができる。即ち、例えば第1IO電圧V_POL1がHiレベルからLoレベルに反転して且つ第2IO電圧V_POL2がLoレベルからHiレベルに反転した場合に、極性反転が生じたものと判断できる。逆に、第1IO電圧V_POL1がLoレベルからHiレベルに反転して且つ第2IO電圧V_POL2がHiレベルからLoレベルに反転した場合も、極性反転が生じたものと判断できる。また、第1IO電圧V_POL1及び第2IO電圧V_POL2の双方がLoレベルの場合にはラインコード110が抜かれているものと判断することができる。
また、上記実施形態では、モデム18がIO電圧V_POLのレベル反転を検出してその検出結果を反転割込としてメインCPU11へ伝達する構成を示したが、このようにモデム18でレベル反転を検出する構成はあくまでも一例である。即ち、例えばモデム18も単にIO電圧V_POL及びDCIN電圧をメインCPU11へ伝達するだけとして、上記レベル反転の検出から最終的な極性反転の判断に至るまでの処理を全てメインCPU11で行うようにしてもよい。
また、上記実施形態では、留守録機能実行中に極性反転を検出する例について説明したが、本発明の適用は留守録機能実行中に限定されるものではない。複合機1への適用もあくまでも一例に過ぎない。