JP4581289B2 - ディスクドライブシステム、ドライブ装置、及び、システム制御装置 - Google Patents
ディスクドライブシステム、ドライブ装置、及び、システム制御装置 Download PDFInfo
- Publication number
- JP4581289B2 JP4581289B2 JP2001143600A JP2001143600A JP4581289B2 JP 4581289 B2 JP4581289 B2 JP 4581289B2 JP 2001143600 A JP2001143600 A JP 2001143600A JP 2001143600 A JP2001143600 A JP 2001143600A JP 4581289 B2 JP4581289 B2 JP 4581289B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- drive device
- message
- data
- system control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
Description
【発明の属する技術分野】
本発明は、ディスクドライブシステム、ドライブ装置、及び、システム制御装置に関するものである。
【0002】
【従来の技術】
従来より、ディスクドライブ用ICとシステムコントロール用ICとのディスクドライブインターフェースとして、ATAPI規格( Small Form Factor Committe ATA Packet Interface for CD-ROMs SFF8022i 参照)が普及している。
【0003】
ATAPI規格のインターフェースでは、ドライブから送出されるデータと、ホストからのコマンド等とのやり取りを、1つのバスで行う。そのため、ドライブからデータを送出中に、新たなコマンドを発行したり、ドライブからのメッセージの返信を行う場合には、一旦バスをリセットして、データ転送を中断しなければならない。
【0004】
また、ドライブが指定するタイミングでメッセージを発行することができないので、ホストはドライブの状態を定期的に読み出して監視しなければならない。
【0005】
また、ATAPI規格のインターフェースでは、その仕様がハードウェア、通信プロトコル、コマンド仕様が一体的に規定されている。そのため、その仕様の変更等をする場合には、全て一体的に変更しなければならなく、その自由度が小さい。
【0006】
また、ドライブを制御する場合、システムコントローラが常にディスクドライブの状態を管理し、その状態を把握する必要がある。しかしながら、ATAPI規格のインターフェースを用いて制御をする場合、ドライブの状態を常に的確に把握することが困難であり、例えば、システムコントローラと、ドライブとの動作状態の把握の違いにより、ドライブの動作が暴走してしまうといった問題が生じていた。
【0007】
また、近年、DVDを再生するDVD再生システムが普及している。DVDでは、複数のカメラアングルから撮影した映像を記録しておき、再生時にシームレスにアングルを切り換える、いわゆるマルチアングルと呼ばれる機能がある。このDVDでは、Cellと呼ばれる再生単位を設けられており、このCell単位でアングルを切り換えることによりシームレスに再生を行うことができる。また、各アングルが記録されているアドレスやCellの境界位置等の管理制御情報は、DVDデータストリーム中のナビパックのDSIに記述されている。
【0008】
このようなDVD再生システムでは、通常、DVDを再生するドライブ用ICと、このドライブ用ICを制御するとともにビデオデコード処理を行うシステムコントロール用ICとにより構成されている。そのため、アングルの切り換え処理を行う場合、システムコントローラがナビパックを抽出し、その中のDSIから切り換え先のアドレスを算出し、算出したアドレスをドライブ装置に対してコマンドで発行し、処理を行わなければならない。
【0009】
しかしながら、このような処理をシステムコントローラが行うのは、非常に処理負担が大きく、また、システムコントローラからコマンドを発行する場合には、その応答が遅くなることも考えられる。
【0014】
【発明が解決しようとする課題】
また、本発明は、DVDを再生する際に、Cellの境界でのアングルやストーリのシームレスな切り換え、可変速再生時におけるアドレスの算出をドライブ装置に負担させることができ、システム制御装置の処理負担を軽減させることができるディスクドライブシステム、ドライブ装置及びシステム制御装置を提供することを目的とする。
【0024】
【課題を解決するための手段】
本発明は、DVDの再生を行うドライブ装置と、上記DVDの記録データであるディスクデータに対するデータ処理並びに上記ドライブ装置の制御を行うシステム制御装置とを備え、上記ドライブ装置と上記システム制御装置とは、上記ディスクデータが転送されるデータバスと、上記ドライブ装置の動作を制御するコマンドがシステム制御装置から当該ドライブ装置へ送信され、上記ドライブ装置が有している情報が記述されたメッセージが当該ドライブ装置からシステム制御装置へ送信されるコマンドバスとにより接続され、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記DVDを再生制御する制御部を有するディスクドライブシステムであって、上記ドライブ装置と上記システム制御装置とは、上記ディスクデータを上記データバスを介して転送するデータインターフェースと、上記ドライブ装置の動作を制御するコマンドを当該システム制御装置から上記コマンドバスを介して当該ドライブ装置へ送信し、当該ドライブ装置が有している情報が記述されたメッセージを当該ドライブ装置から上記コマンドバスを介して当該システム制御装置へ送信するコマンドインターフェースとにより接続され、上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド/メッセージレイヤとで階層構造化されて構成されていることを特徴とする。
【0025】
本発明は、DVDの再生を行う再生部と、上記DVDの記録データであるディスクデータを、データバスを介して、上記DVDに対するデータ処理並びに上記再生部の制御を行うシステム制御装置との間で送受信するデータインタフェースと、上記再生部の動作を制御するコマンドをコマンドバスを介して上記システム制御装置から受信するとともに、上記再生部が有している情報が記述されたメッセージをコマンドバスを介して上記システム制御装置へ送信するコマンドインターフェースと、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記DVDを再生制御する制御部を備えるドライブ装置であって、上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド/メッセージレイヤとで階層構造化されて構成されていることを特徴とする。
【0026】
本発明は、DVDの記録データであるディスクデータに対するデータ処理を行うデータ処理並びに上記DVDの再生を行うドライブ装置の制御を行う制御部と、上記ディスクデータをデータバスを介して上記ドライブ装置との間で送受信するデータインタフェースと、上記ドライブ装置の動作を制御するコマンドをコマンドバスを介して当該ドライブ装置へ送信するとともに、上記ドライブ装置が有している情報が記述されたメッセージをコマンドバスを介して当該ドライブ装置から受信するコマンドインターフェースとを備え、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記DVDを再生制御し、上記制御部は、上記ドライブ装置に対応したコマンドを与えるシステム制御装置であって、上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド/メッセージレイヤとで階層構造化されて構成されていることを特徴とする。
【0030】
【発明の実施の形態】
本発明の実施の形態として、本発明を適用したディスクドライブシステムについて説明を行う。
【0031】
全体構成
本発明の実施の形態のディスクドライブシステムは、DVD(DVDspecification for Read-only-Disc)、VideoCD(White book)又はCD-Audio(Red Book)に記録されているデータを読み出し、読み出したデータのデコード処理を行ってビデオデータ、オーディオデータ、プログラムデータ等を出力する再生システムである。このディスクドライブシステムは、図1に示すように、ドライブ装置1と、ホストコントローラ2とから構成されている。ドライブ装置1及びホストコントローラ2は、例えばそれぞれ独立した半導体チップにIC化され、ハードウェア化される。
【0032】
ドライブ装置1は、DVD、VideoCD、CD-Audio(以下、総称する場合には単にディスクと呼ぶ。)からディスクデータを読み出し、各ディスクに対応したチャネルデコード処理(復調、誤り訂正)を行う。そして、ドライブ装置1は、チャネルデコード処理を行ったディスクデータを、ホストコントローラ2に転送する。
【0033】
ホストコントローラ2は、A/Vデコーダ2a、及び、システムコントローラ2b等を備えており、ドライブ装置1から転送されたデータのA/Vデコード処理(MPEGデコード処理,CD−ROMデコード処理等)、システム全体の管理、ドライブ装置1の再生制御、ドライブ装置1の操作等を行う。
【0034】
このようなドライブ装置1とホストコントローラ2とは、A/V(Audio/Video)バスインターフェース4とコマンドインターフェース5とによって接続されている。また、必要に応じて、これら2つのインターフェースに加え、LegacyCD−DSPインターフェース6でも接続される。
【0035】
A/Vバスインターフェース4は、ディスクから読み出されたディスクデータを、ドライブ装置1からホストコントローラ2へ転送するパラレルバスインターフェースである。
【0036】
コマンドインターフェース5は、ドライブ装置1の動作を制御するためのコマンド、及び、ドライブ装置1の状態やディスクの情報等が記述されたメッセージを転送するインターフェースである。
【0037】
LegacyCD−DSPインターフェース6は、再生対象となるディスクのうちのVideoCD及びCD-Audioから再生されたディスクデータを、ドライブ装置1からホストコントローラ2へ転送するシリアルバスインターフェースである。このLegacyCD−DSPインターフェース6は、ホストコントローラ2が、上記A/Vバスインタフェース4に対応していない場合に用いることが可能である。なお、VideoCD及びCD-Audioから再生されたディスクデータは、上記A/Vバスインターフェース4によっても転送可能であるため、本ディスクドライブシステムでは、このLegacyCD−DSPインターフェース6は、必要に応じて設ければよい。
【0038】
ドライブ装置の構成
つぎに、ドライブ装置1のブロック構成について図2を参照して説明をする。
【0039】
ドライブ装置1は、メカユニット11と、再生制御部12とから構成される。
【0040】
メカユニット11は、ディスクを回転駆動する回転駆動機構、ディスクを着脱自在に上記回転駆動機構に装填するディスクトレイ、ディスクにレーザ光を照射して再生信号を検出するピックアップ、ピックアップのスレッド制御を行うスレッド機構等を備えて構成される。
【0041】
再生制御部12は、RFアンプ13と、サーボコントローラ14と、DVDチャネルデコーダ15と、DVDエラー訂正回路16と、CDチャネルデコーダ17と、CDエラー訂正回路18と、トラックバッファコントローラ19と、トラックバッファ20と、システムコントローラ21とを備えて構成されている。
【0042】
RFアンプ13は、メカユニット11内のピックアップにより検出された電気信号から、再生信号、フォーカスエラー信号、トラッキングエラー信号を生成する。RFアンプ13により生成された再生信号は、DVDチャネルデコーダ15及びCDチャネルデコーダ17に供給される。また、RFアンプ13により生成されたフォーカスエラー信号やトラッキングエラー信号等は、サーボコントローラ14に供給される。
【0043】
サーボコントローラ14は、RFアンプ13から供給されたフォーカスエラー信号やトラッキングエラー信号等に基づき、サーボシステムの制御を行う。すなわち、サーボコントローラ14は、メカユニット11のピックアップ、スレッド機構、回転駆動機構等を駆動することによって、フォーカスサーボ制御、トラッキングサーボ制御、スレッドサーボ制御、スピンドルサーボ制御等の各種サーボ制御を行う。
【0044】
DVDチャネルデコーダ15及びDVDエラー訂正回路16は、DVDの再生を行う場合に動作する。DVDチャネルデコーダ15は、入力された再生信号に対して符号化処理や復調処理等を行って、デジタルデータを出力する。DVDエラー訂正回路16は、復調されたデジタルデータに付加されているパリティ(PI,PO)を用いてエラー訂正処理を行う。エラー訂正がされたデータは、DVDデータとしてトラックバッファコントローラ19及びシステムコントローラ21に供給される。
【0045】
CDチャネルデコーダ17及びCDエラー訂正回路18は、VideoCD及びCD-Audioの再生を行う場合に動作を行う。CDチャネルデコーダ17は、入力された再生信号に対して符号化処理や復調処理等を行って、デジタルデータを出力する。CDエラー訂正回路18は、復調されたデジタルデータに付加されているパリティ(C1,C2)を用いてエラー訂正処理を行う。エラー訂正がされたデータは、CDデータとしてトラックバッファコントローラ19に供給される。また、LegcyCD−DSPインターフェース6を用いる場合には、このエラー訂正がされたデータは、トラックバッファコントローラ19に供給されず、直接LegcyCD−DSPインターフェース6を介してホストコントローラ2に送出される。
【0046】
トラックバッファコントローラ19は、入力されたディスクデータをトラックバッファ20に一時的に格納する。そして、トラックバッファコントローラ19は、トラックバッファ20に格納したディスクデータを、A/Vバスインターフェース4を介して、ホストコントローラ2に送出する。
【0047】
システムコントローラ21は、このドライブ装置1のシステム制御を行う。このシステムコントローラ21は、ホストコントローラ2からコマンドインターフェース5を介して供給されるコマンド等に従いシステム制御を行う。また、システムコントローラ21は、DVDの再生を行う場合、DVDデータからDSIを抽出し、DSIテーブルを作成する。システムコントローラ21は、セル単位での再生命令や変速再生命令がホストコントローラ2から与えられたときには、DSIテーブルを参照して、読み出しアドレスを算出する。また、システムコントローラ21は、必要に応じて、ホストコントローラ2に対してコマンドインターフェース5を介してメッセージを供給する。なお、このコマンド、メッセージについては、その詳細を後述する。
【0048】
以上のように本発明の実施の形態のディスクドライブシステムでは、ディスクデータを転送するインターフェースと、コマンド及びメッセージを転送するインターフェースとを分離して構成している。このため、ディスクデータの転送状態に依存することなく、コマンドやメッセージを転送することが可能となる。従って、ディスクデータを転送している最中に別のコマンドを発行する場合などでも、バスリセットを行って転送を中断する必要がなくなり、効率的に処理を行うことができる。
【0049】
ドライブ装置1のステート
つぎに、ドライブ装置1の動作状態の制御について説明をする。
【0050】
ドライブ装置1は、本ドライブ装置1の振る舞いを定義する複数のステートから構成されるステートマシーンにより動作が管理及び制御される。ドライブ装置1内のシステムコントローラ21は、コマンドインターフェース5を介してホストコントローラ2から転送されてくるコマンド、或いは、ディスクの状態等に応じて、ステートを遷移させる。
【0051】
図3に、このドライブ装置1を管理及び制御するステートマシーンを示す。
【0052】
このステートマシーンは、リセットステートS1、クローズステートS2、オープンステートS3、レディーステートS4、プレイステートS5、スリープステートS6、No/BadディスクステートS7の7つのステートから構成される。なお、各ステートS1〜S7のうち、リセットステートS1は、ドライブ装置1を初期状態とした初期ステートであり、ステートS2〜S7は、ドライブ装置1の動作可能な状態とした動作ステートである。
【0053】
リセットステートS1は、本ドライブ装置1のハードウェアリセットがされた直後の初期状態である。このステートマシーンは、電源投入後、ホストコントローラ2からコマンドインターフェース5を介して、DRVRST信号がアサートされると、まず、このリセットステートS1へ遷移する。従って、このドライブ装置1は、電源を投入した直後やリセットボタン等を押した直後に、動作可能な状態となるのではなく、電源が投入され且つホストコントローラ2によって明示的に信号が与えられることにより、ハードウェアリセットされる。このディスクドライブシステムでは、ホストコントローラ2によって明示的にハードウェアリセット状態とされるので、ホストコントローラ2とドライブ装置1との動作状態の不整合を防ぐことが可能となり、安定した起動を行うことができる。なお、DRVRST信号は、コマンドインターフェース5のハードウェアレイヤで規定されている信号であるが、その詳細については後述する。
【0054】
また、ドライブ装置1は、このリセットステートS1で、ホストコントローラ2からSetModeコマンドが発行されることにより、動作ステート(具体的にはクローズステートS2)へ遷移する。このディスクドライブシステムでは、ホストコントローラ2からコマンドを与えられることによって明示的に初期ステートから動作ステートへ遷移するので、ホストコントローラ2とドライブ装置1との動作状態の不整合を防ぐことが可能となり、安定した起動を行うことができる。例えば、ドライブ装置1がホストコントローラ2より先に起動してしまい、コマンド不定によりドライブ装置1が暴走してしまうといった、不測の事態を防ぐことができる。
【0055】
また、このSetModeコマンドでは、ドライブのファームウェアの選択や、インターフェースの構成の選択(ハードウェアレイヤ、コミュニケーションレイヤ、コマンド&メッセージレイヤの選択)等の、ドライブの動作モードの選択を行う。従って、このディスクドライブシステムでは、ホストコントローラ2により、ドライブ装置1の動作モードが選択されるため、ドライブ装置1とホストコントローラ2との動作モードの不整合を防ぐことができる。なお、このSetModeコマンドについては、その詳細を後述する。
【0056】
クローズステートS2は、ディスクが載置されるディスクトレイが閉じた直後、或いは、リセットステートS1から遷移してきた直後に、或いは、Restartコマンドが発行されたのちに、遷移するステートである。クローズステートS2は、サーボシステムの起動、メディアタイプの検出、TOC等のディスクを再生するための管理データであるメディア情報の新たな読み込み、トラックバッファのクリア、インタフェースのリセットといった、ソフトウェアリセット処理を行うステートである。このクローズステートS2で、サーボシステムが起動できなかった場合やメディア情報が検出できなかった場合には、再生不可能なディスクがディスクトレイに装填されている(bad disc)、或いは、ディスクトレイにディスクが装填されていない(no disc)と判断する。No/Badディスクと判断した場合には、このクローズステートS2からNo/BadディスクステートS7に遷移する。また、ドライブ装置1に有効なディスクが装填されており、サーボシステムの起動及びメディア情報の検出が完了した場合には、このクローズステートS2からレディーステートS4に遷移する。
【0057】
オープンステートS3は、ディスクトレイが開いている状態、すなわち、ディスクトレイにディスクを装着、或いは、ディスクトレイからディスクを取り出しできる状態である。ドライブ装置1は、クローズステートS2,レディーステートS4,プレイステートS5,スリープステートS6,No/BadディスクステートS7の各ステートで、OpenTrayコマンドが発行された場合に、このオープンステートS3へ遷移する。
【0058】
レディーステートS4は、ディスクをすぐに再生することが可能な待機状態である。すなわち、サーボシステムが起動しており、且つ、システムコントローラ21がメディア情報を保持していて、再生コマンド(PlayDVDコマンド、PlayCDコマンド等)を受け付けることができる状態である。ドライブ装置1は、クローズステートS2で有効なディスクが装填されていると判断された場合、プレイステートS5でStopコマンドが発行された場合、プレイステートS5で再生が完了した場合、或いは、スリープステートS6でWakeUpコマンドが発行された場合、このレディーステートS4に遷移する。
【0059】
プレイステートS5は、ディスクを再生している状態である。なお、ここでは、バックワード再生や変速再生等の特殊再生やポーズ等も、このプレイステートS5で行われる。ドライブ装置1は、レディーステートS4で再生関連のコマンド(PlayDVDコマンド、PlayCDコマンド等)が発行されると、このプレイステートS5に遷移する。
【0060】
スリープステートS6は、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムが全てオフした状態である。ただし、このスリープステートS6では、ディスクトレイには再生可能なディスクが装填されており、また、そのディスクのメディア情報も保持している。ドライブ装置1は、レディーステートS4でSleepコマンドが発行されると、このスリープステートS6に遷移する。
【0061】
No/BadディスクステートS7は、ディスクを再生することができない動作状態である。すなわち、ディスクトレイにディスクが装填されていないか、或いは、再生できない無効なディスクが装填されている状態である。ドライブ装置1は、クローズステートS2で、サーボシステムが起動しなかったり或いはメディア情報を検出できずにNo/Badディスクと判断された場合に、このNo/BadディスクステートS7に遷移する。
【0062】
以上のようにドライブ装置1では、ドライブの各ステートを定め、そのステートにおける振る舞いを定めたステートマシーンにより動作を制御及び管理することによって、ホストコントローラ2側がドライブ装置1の状態を的確に把握することができる。そのため、ホストコントローラ2がドライブ装置1に対する次の制御を、容易且つ的確に行うことができる。
【0063】
また、このドライブ装置1では、初期ステートとしてリセットステートS1を設け、電源投入後、ホストコントローラ2からコマンドインターフェース5を介してDRVRST信号がアサートされたときに、初めてこのリセットステートS1に遷移するように状態を制御している。従って、ドライブ装置1は、電源を投入した直後やリセットボタン等を押した直後にハードウェアリセット状態とするのではなく、ホストコントローラ2によって明示的にハードウェアリセット状態とされる。このため、ホストコントローラ2によって明示的にハードウェアリセット状態に遷移するので、ホストコントローラ2とドライブ装置1との起動状態の不整合を防ぐことが可能となり、安定した起動動作を行うことができる。
【0064】
また、このドライブ装置1は、リセットステートS1のときにSetModeコマンドが発行されることにより、初期ステートから動作可能な動作ステートへ遷移する。このSetModeコマンドでは、ドライブのファームウェアの選択や、インターフェースの構成の選択(ハードウェアレイヤ、コミュニケーションレイヤ、コマンド&メッセージレイヤの選択)等の、ドライブの動作モードの選択を行う。従って、このディスクドライブシステムでは、ホストコントローラ2により、ドライブ装置1の動作モードが選択されるため、ドライブ装置1とホストコントローラ2との動作モードの不整合を防ぐことができる。
【0065】
インタフェースのレイヤ構造
つぎに、ドライブ装置1とホストコントローラ2との間のインタフェースについて説明をする。
【0066】
図4に、ドライブ装置1とホストコントローラ2との間のインターフェースのレイヤ構造を示す。
【0067】
AVインターフェース(A/Vバスインターフェース4及びLegacyCD−DSPインターフェース6)は、図4(A)に示すように、ハードウェアレイヤの1階層のみでその仕様が定められている。このAVバスインターフェースのハードウェアレイヤでは、信号の仕様、データの伝送タイミングの仕様、データの転送フォーマットの仕様が定められている。
【0068】
一方、コマンドインターフェースでは、図4(B)に示すように、ハードウェアレイヤ、コミュニケーションレイヤ、コマンド&メッセージレイヤの3階層で仕様が定められている。このコマンドインターフェースのハードウェアレイヤでは、信号の仕様、データ伝送タイミングの仕様などのハードウェア的な仕様が定められている。また、コミュニケーションレイヤでは、データの伝送フォーマット等の通信に関する仕様が定められている。また、コマンド&メッセージレイヤでは、コマンド及びメッセージの記述内容の仕様が定められている。
【0069】
ドライブ装置1及びホストコントローラ2は、それぞれ、ハードウェアレイヤで規定された仕様のモジュール、コミュニケーションレイヤで規定された仕様に対応したモジュール、コマンド&メッセージレイヤで規定された仕様に対応したモジュールをソフトウェア或いはハードウェア的に設けて、コマンドインターフェースを構成する。このように各階層毎にそれぞれ定義されたモジュールを設けてインターフェースを構成することにより、例えばインターフェースの仕様変更があった場合であっても、その仕様の変更があった階層のモジュールのみを交換すればよく、他のモジュールは交換せずに対応を図ることができる。例えば、コマンドやメッセージの内容を追加したり変更したりする場合には、コマンドやメッセージが記述された対応テーブル等のソフトウェアモジュールだけを書き換えれば、入出力用のインタフェースIC毎交換するといったことはしなくても、対応することができる。また、異なる信号の仕様のドライブ装置1とホストコントローラ2とを接続する場合には、例えば入出力用のインタフェースICだけを交換すれば、コマンドやメッセージが記述されたテーブルや伝送フォーマット生成用のモジュールを書き換えなくても、対応することができる。
【0070】
ハードウェアレイヤ
(コマンドインターフェースのハードウェアレイヤ)
つぎに、コマンドインターフェース5のハードウェアレイヤの構成について説明をする。
【0071】
コマンドインターフェース5では、図5に示すように、DRVRDY信号、DRVRX信号、DRVTX信号、DRVCLK信号、DRVRST信号、DRVIRQ信号が伝送される。
【0072】
DRVRDY信号は、ホストコントローラ2から発行されるコマンドを、ドライブ装置1が受信可能であることを通知する信号である。このDRVRDY信号は、ドライブ装置1からホストコントローラ2へアサートされる。ホストコントローラ2は、このDRVRDY信号がアサートされているときに、コマンドを伝送することが可能である。
【0073】
DRVRX信号は、コマンド等のホストコントローラ2からドライブ装置1へ伝送されるシリアルの伝送データである。
【0074】
DRVTX信号は、メッセージ等のドライブ装置1からホストコントローラ2へ伝送されるシリアルの伝送データである。
【0075】
DRVCLK信号は、ホストコントローラ2からドライブ装置1へ送出されるクロックである。
【0076】
DRVRST信号は、ホストコントローラ2側でドライブ装置1をハードウェアレベルでリセットする信号である。このDRVRST信号は、ホストコントローラ2からドライブ装置1へアサートされる。ドライブ装置1は、このDRVRST信号が一定期間アサートされ続けると、ハードウェア上の動作をリセットする。なお、上述したようにドライブ装置1は、このDRVRST信号がアサートされると、状態をリセットステートS1へ遷移させる。
【0077】
DRVIRQ信号は、ドライブ装置1がホストコントローラ2に割り込み要求を通知する信号である。このDRVIRQ信号は、ドライブ装置1からホストコントローラ2へアサートされる。このDRVIRQ信号は、例えば、非同期コマンド(詳細は後述する)に対する処理が完了したときや、予期しないエラー等が発生したときなど、ドライブ装置1がホストコントローラ2へ非同期にメッセージを発行する際に用いられる。
【0078】
(AVバスインターフェースのハードウェアレイヤ)
つぎに、A/Vバスインターフェース4のハードウェアレイヤの構成について説明をする。
【0079】
A/Vバスインターフェース4では、図6に示すように、HDRQ信号、XHAC信号、XSHD信号、DCK信号、VDT[7..0]信号、VEFG信号が伝送される。
【0080】
HDRQ信号は、読み出されたディスクデータの伝送要求を通知する信号であり、ホストコントローラ2からドライブ装置1へアサートされる。このHDRQ信号がアサートされているときに、ドライブ装置1は再生したディスクデータをホストコントローラ2へ送信する。
【0081】
XHAC信号は、VDT[7..0]信号の有効性を示す信号であり、ドライブ装置1からホストコントローラ2へ供給される。
【0082】
XSHD信号は、セクタの開始位置を示す信号であり、ドライブ装置1からホストコントローラ2へ供給される。
【0083】
DCK信号は、データクロックであり、ドライブ装置1からホストコントローラ2へ供給される。
【0084】
VDT[7..0]信号は、ディスクから読み出された8ビットのパラレルのディスクデータであり、ドライブ装置1からホストコントローラ2へ供給される。
【0085】
VEFG信号は、読み出されたデータがエラー訂正をできたか否かを示すエラーフラグであり、ドライブ装置1からホストコントローラ2へ供給される。
【0086】
なお、ホストコントローラ2は、再生関連のコマンド(PlayCDやPlayDVD等)を発行している最中、再生の一時停止(ポーズ)を行う場合、新たにポーズ用のコマンドを発行するのではなく、このハードウェアレイヤのHDRQ信号を無効とすることによって行う。ドライブ装置1は、ディスクの再生中に、HDRQ信号が無効とされた場合は、ホストコントローラ2へのデータの送出は停止するが、ディスクの再生自体は停止せずにトラックバッファへのデータを格納しておく。そして、トラックバッファの容量が一杯となったところで、ディスクの再生を停止するようにする。このようにポーズ動作を、HDRQ信号を用いて制御することによって、再生を復活した際には、すぐにデータの送出を開始することが可能となる。
【0087】
コミュニケーションレイヤ
つぎに、コマンドインターフェース5のコミュニケーションレイヤについて説明をする。
【0088】
コマンドインターフェース5のコミュニケーションレイヤでは、図7に示すように、コマンドを伝送するコマンドフェーズと、メッセージを伝送するメッセージフェーズの2つのフェーズでデータ伝送が行われる。
【0089】
コマンドフェーズでは、コマンド、並びに、そのコマンドを正しく受信できたことを示す承認(ACK)或いはそのコマンドを正しく受信できなかったことを示す非承認(NCK)が、コマンドプロトコルに従った伝送フォーマットで伝送される。メッセージフェーズでは、メッセージ、並びに、そのメッセージを正しく受信できたことを示す承認(ACK)或いはそのメッセージを正しく受信できなかったことを示す非承認(NCK)が、メッセージプロトコルに従った伝送フォーマットで伝送される。
【0090】
コマンドフェーズは、ホストコントローラ2がドライブ装置1へ対して何らかの動作制御命令を与える場合、或いは、割り込み要求を通知するDRVIRQ信号がドライブ装置1からホストコントローラ2へアサートされた場合に、発生する。また、メッセージフェーズは、コマンドフェーズが終了した後、一定時間内に、発生する。
【0091】
コマンドフェースの伝送プロトコルであるコマンドプロトコルについて説明をする。
【0092】
コマンドプロトコルでは、図8に示すように、“ Command Length ”と、“ Command ”と、“ Command Check Sum ”と、“ Acknowledgement ”とが、この順序で伝送される。
【0093】
“ Command Length ”は、次の“ Command ”のバイト長を示している。この“ Command Length ”は、1バイト長のデータで、ホストコントローラ2からドライブ装置1へ伝送される。この“ Command Length ”は、ドライブ装置1からホストコントローラ2へは伝送されない。
【0094】
“ Command ”は、コマンドの内容及びその引数を示している。この“ Command ”は、Nバイト長のデータで、ホストコントローラ2からドライブ装置1へ伝送される。具体的に、この“ Command ”は、図9に示すように、“ Command Code ”と“ Command Argument ”とで構成されている。“ Command Code ”は、1バイト長のデータで、コマンドの内容を特定するコードである。“ Command Argument ”は、Mバイト(M=(N−1)、Nは1以上の整数)長のデータで、コマンドの引数を示す値である。コマンドに引数が含まれるかどうか並びに引数のデータ長は、そのコマンドの内容によって異なる。この“ Command ”は、ドライブ装置1からホストコントローラ2へは伝送されない。
【0095】
“ Command Check Sum ”は、“ Command ”に記述されたデータのバイト毎の加算合計値を示している。この“ Command Check Sum ”は、1バイト長のデータで、ホストコントローラ2からドライブ装置1へ伝送される。ドライブ装置1では、受信した“ Command ”の加算合計値と、この“ Command Check Sum ”に記述された値とを比較し、エラーチェックが行われる。この“ Command Check Sum ”は、ドライブ装置1からホストコントローラ2へは伝送されない。
【0096】
“ Acknowledgement ”は、伝送された“ Command ”に伝送エラーが生じていたかどうかを通知するための承認(ACK)/非承認(NCK)を示している。この“ Acknowledgement ”は、1バイト長のデータで、ドライブ装置1からホストコントローラ2へ伝送される。ドライブ装置1は、エラーチェックの結果、受信した“ Command ”にエラーがなければ、すなわち、“ Command ”の加算合計値と“ Command Check Sum ”に記述された値とが一致すれば、“ Command Check Sum ”に記述された値の補数をこの“ Acknowledgement ”に記述し、ホストコントローラ2へ返信する。また、ドライブ装置1は、エラーチェックの結果、受信した“ Command ”にエラーが生じていれば、すなわち、“ Command ”の加算合計値と“ Command Check Sum ”に記述された値とが一致しなければ、“ Command Check Sum ”に記述された値の補数以外の値をこの“ Acknowledgement”に記述し、ホストコントローラ2へ返信する。この“ Acknowledgement ”は、ホストコントローラ2からドライブ装置1へデータは伝送されない。
【0097】
ホストコントローラ2は、“ Acknowledgement ”を受信して“ Command Check Sum ”の補数が記述されていれば、ドライブ装置1へ正しくコマンドが送信されたと判断し、コマンドフェーズの処理を完了する。一方、ホストコントローラ2は、“ Acknowledgement ”を受信して“ Command Check Sum ”の補数以外値が記述されていれば、ドライブ装置1へ正しくコマンドが送信なかったと判断し、同じコマンドフェーズをリトライする。
【0098】
以上のようにコマンドプロトコルでは、ホストコントローラ2からドライブ装置1へコマンドを送信することができる。そのため、ドライブ装置1では、そのコマンドに従った動作を行うことができる。
【0099】
また、このコマンドプロトコルでは、ホストコントローラ2からドライブ装置1へコマンドのエラーチェックデータも送信される。そのため、ドライブ装置1では、コマンドインタフェースで行われた通信にエラーが生じているかどうかを容易に判断することができ、通信エラーによる誤動作が生じなくなる。
【0100】
また、このコマンドプロトコルでは、伝送されたコマンドに通信エラーが生じていたかどうかを示す承認(ACK)/非承認(NCK)をドライブ装置1からホストコントローラ2へ返信する。そのため、通信エラーが生じた場合でも、ドライブ装置1とホストコントローラ2との間で動作の不整合が生じず、速やかに復帰処理を行うことができる。
【0101】
続いて、メッセージプロトコルについて説明をする。
【0102】
メッセージプロトコルは、図10に示すように、“ Message Length ”と、“ Message ”と、“ Message Check Sum ”と、“ Acknowledgement ”とで構成される。
【0103】
“ Message Length ”は、次の“ Message ”のバイト長を示している。この“ Message Length ”は、1バイト長のデータで、ドライブ装置1からホストコントローラ2へ伝送される。この“ Message Length ”は、ホストコントローラ2からドライブ装置1へは伝送されない。
【0104】
“ Message ”は、メッセージの内容及びその引数を示している。この“ Message ”は、Nバイト長のデータで、ドライブ装置1からホストコントローラ2へ伝送される。具体的に、この“ Message ”は、図11に示すように、“ Message Code ”と“ Message Argument ”とで構成されている。“ Message Code ”は、1バイト長のデータで、メッセージの内容を特定するコードである。“ Message Argument ”は、Mバイト(M=(N−1)、Nは1以上の整数)長のデータで、メッセージの引数を示す値である。メッセージに引数が含まれるかどうか並びに引数のデータ長は、そのメッセージの内容によって異なる。この“ Message ”は、ホストコントローラ2からドライブ装置1へは伝送されない。
【0105】
“ Message Check Sum ”は、“ Message ”に記述されたデータの加算合計値を示している。この“ Message Check Sum ”は、1バイト長のデータで、ドライブ装置1からホストコントローラ2へ伝送される。ホストコントローラ2では、受信した“ Message ”の加算合計値と、この“ Message Check Sum ”に記述された値とを比較し、エラーチェックが行われる。この“ Message Check Sum ”は、ホストコントローラ2からドライブ装置1へは伝送されない。
【0106】
“ Acknowledgement ”は、伝送された“ Message ”に伝送エラーが生じていたかどうかを通知するための承認(ACK)/非承認(NCK)を示している。この“ Acknowledgement ”は、1バイト長のデータで、ホストコントローラ2からドライブ装置1へ伝送される。ホストコントローラ2は、エラーチェックの結果、受信した“ Message ”にエラーがなければ、すなわち、“ Message ”の加算合計値と“ Message Check Sum ”に記述された値とが一致すれば、“ Message Check Sum ”に記述された値の補数をこの“ Acknowledgement ”に記述し、ドライブ装置1へ返信する。また、ホストコントローラ2は、エラーチェックの結果、受信した“ Message ”にエラーが生じていれば、すなわち、“ Message ”の加算合計値と“ Message Check Sum ”に記述された値とが一致しなければ、“ Message Check Sum ”に記述された値の補数以外の値をこの“ Acknowledgement ”に記述し、ドライブ装置1へ返信する。この“ Acknowledgement ”は、ドライブ装置1からホストコントローラ2へは伝送されない。
【0107】
ドライブ装置1は、“ Acknowledgement ”を受信して“ Message Check Sum ”の補数が記述されていれば、ホストコントローラ2へ正しくメッセージが送信されたと判断し、メッセージフェーズの処理を完了する。一方、ドライブ装置1は、“ Acknowledgement ”を受信して“ Message Check Sum ”の補数以外値が記述されていれば、ホストコントローラ2へ正しくメッセージが送信なかったと判断し、同じメッセージフェーズをリトライする。
【0108】
以上のようにメッセージプロトコルでは、ドライブ装置1からホストコントローラ2へメッセージが送信される。そのため、ホストコントローラ2では、そのメッセージに従った動作を行うことができる。
【0109】
また、このメッセージプロトコルでは、ドライブ装置1からホストコントローラ2へメッセージのエラーチェックデータも送信される。そのため、ホストコントローラ2では、メッセージインタフェースで行われた通信にエラーが生じているかどうかを容易に判断することができ、通信エラーによる誤動作が生じなくなる。
【0110】
また、このメッセージプロトコルでは、伝送されたメッセージに通信エラーが生じていたかどうかを示す承認(ACK)/非承認(NCK)をホストコントローラ2からドライブ装置1へ返信する。そのため、通信エラーが生じた場合でも、ドライブ装置1とホストコントローラ2との間で動作の不整合が生じず、速やかに復帰処理を行うことができる。
【0111】
なお、図12に示すように、コマンドフェーズにおいて“ Command Length ”、“ Command ”、“ Command Check Sum ”、メッセージフェーズ時の“ Acknowledgement ”を送信している最中に、ドライブ装置1から何らかのデータの送信があった場合(本来はドライブ装置1からのデータ伝送はないときに何らかのデータが伝送されてしまった場合)、ホストコントローラ2は、現在のコマンドプロトコルを中断し、再度新たにコマンドプロトコルをリトライし、エラーの回復を行う。同様に、メッセージフェーズにおいて“ Message Length ”、“ Message ”、“ Message Check Sum ”、コマンドフェーズ時の“ Acknowledgement”を送信している最中に、ホストコントローラ2から何らかのデータの送信があった場合(本来はホストコントローラ2からのデータ伝送はないときに何らかのデータが伝送されてしまった場合)、ドライブ装置1は、現在のメッセージプロトコルを中断し、再度新たなコマンドフェーズの要求を行い、エラーを回復する。
【0112】
コマンド&メッセージレイヤ
つぎに、コマンド&メッセージレイヤについて説明をする。
【0113】
コマンド&メッセージレイヤでは、コマンド及びメッセージの内容、そのコードの定義、引数の定義等が定められている。
【0114】
(コマンド&メッセージシーケンス)
本システムには、コマンド及びメッセージのシーケンスとして、同期コマンドシーケンスと、非同期コマンドシーケンスとがある。また、これらのシーケンスに対応して、コマンドには、同期コマンドと、非同期コマンドの2種類が定義されている。また、同様に、メッセージには、即時メッセージと、非同期メッセージの2種類が定義されている。
【0115】
同期コマンドシーケンスは、ホストコントローラ2が同期コマンドを送信し、その同期コマンドに応じてドライブ装置1が即時メッセージを返信するシーケンスである。同期コマンドは、ドライブ装置1側が即時的に応答をすることができる制御内容が記述されたコマンドである。また、即時メッセージは、ドライブ装置1が常に内部メモリ等に格納している情報を返信する場合など、ホストコントローラ2からの命令に対して即時に返答をすることができる情報が記述されたメッセージである。
【0116】
例えば、同期コマンドシーケンスは、図13に示すように、ホストコントローラ2がGetVersionコマンド(ドライブ装置のID情報の返信要求コマンド。詳細は後述する。)を送信し、ドライブ装置1がこのコマンドに対してVersionメッセージ(自己のID情報を記述したメッセージ。詳細は後述する。)を返信する、といったようなシーケンスである。
【0117】
ドライブ装置1は、同期コマンドを受信した場合には、即時コマンドを所定時間内(例えば、15m秒以内)に返信する。
【0118】
非同期コマンドシーケンスは、ホストコントローラ2が非同期コマンドを送信し、その非同期コマンドに対応した非同期メッセージをドライブ装置1が返信するシーケンスである。非同期コマンドは、ドライブ装置1側が即時的に応答ができない制御内容が記述されたコマンドである。例えば、トレイのオープン命令、トレイのクローズ命令、ディスクの再生命令等の、命令を受けてから一定の時間が経過しなければ動作が完了しないような制御命令が記述されている。また、非同期メッセージは、非同期コマンドに応じた動作が完了したことを示す情報、或いは、ドライブ装置1から一方的にホストコントローラ2へ通知する情報が記述されたメッセージである。例えば、トレイのオープンが完了した旨を示す情報、トレイのクローズが完了した旨を示す情報、再生しているディスクデータの最終セクタまでトラックバッファに格納したことを示す情報などが記述されたメッセージである。
【0119】
例えば、非同期コマンドシーケンスは、図14に示すように、ホストコントローラ2が非同期コマンドであるOpenTrayコマンド(ディスクトレイをオープンする動作制御コマンド。詳細は後述する。)を送信し、ドライブ装置1がこの命令に従い動作状態をレディーステートS4からオープンステートS3まで遷移させ、TrayOpenedメッセージ(ディスクトレイがオープンしたことを示す情報。詳細は後述する。)を返信する、といったようなシーケンスである。具体的に、この図14に示すシーケンスの場合、ホストコントローラ2がOpenTrayコマンドを送信すると、ドライブ装置1からそのコマンドを受信した旨を示すCMD_OKコマンド(即時メッセージ)が一旦返信される。続いて、ドライブ装置1は、レディーステートS4から各種サーボをストップさせ、スリープステートS6へ遷移する。このとき、ドライブ装置1は、割り込み要求を通知するDRVIRQ信号をホストコントローラ2にアサートする。DRVIRQ信号を受けたホストコントローラ2は、ドライブに非同期メッセージの返信要求を与えるGetMsgコマンドを送信する。このGetMsgコマンドを受けるとドライブ装置1は、スリープステートS6となったことを示す非同期メッセージであるSleptメッセージを返信する。続いて、ドライブ装置1は、スリープステートS6からディスクトレイをオープンさせオープンステートS3へ遷移する。このとき、ドライブ装置1は、割り込み要求を通知するDRVIRQ信号をホストコントローラ2にアサートする。DRVIRQ信号を受けたホストコントローラ2は、ドライブに非同期メッセージの返信要求を与えるGetMsgコマンドを送信する。このGetMsgコマンドを受けるとドライブ装置1は、オープンステートS3となったことを示す非同期メッセージであるTrayOpenedメッセージを返信する。
【0120】
(コマンドのプログラミングモデル)
つぎに、コマンド&メッセージレイヤでのコマンドインターフェース5のドライブ装置1側のプログラミング構成について説明をする。
【0121】
コマンド&メッセージレイヤにおけるコマンドインターフェース5のドライブ装置1側のプログラミング構成は、図15に示すように、コマンド及びメッセージの処理を行うコマンド&メッセージモジュール41と、PlayDVDコマンドを格納するコマンドキュー42と、非同期メッセージを格納するメッセージキュー43と、非同期メッセージと即時メッセージとを切り換えて出力するセレクタ44とを備えて構成される。
【0122】
コマンド&メッセージモジュール41は、例えばシステムコントローラ21内に備えられるソフトウェアモジュールであり、コマンドに対するデータ処理、メッセージの生成処理等を行う。
【0123】
コマンドキュー42は、例えばシステムコントローラ21内に備えられるソフトウェアモジュールである。コマンドキュー42は、プレイステートの時にホストコントローラ2から、コマンドキューに保持するモードのPlayDVDコマンド或いはコマンドキューに保持するモードのPlayDVDCellコマンドが発行された場合、このPlayDVDコマンド或いはPlayDVDCellコマンドを保持しておくキューである。なお、コマンドキューに保持するモードのPlayDVDコマンド及びコマンドキューに保持するモードのPlayDVDCellコマンド以外のコマンドは、コマンドキューに保持されず、コマンド&メッセージモジュール41に処理がされる。
【0124】
メッセージキュー43は、例えばシステムコントローラ21内に備えられるソフトウェアモジュールであり、コマンド&メッセージモジュール41から発行された非同期メッセージを格納するキューである。メッセージキュー43は、コマンド&メッセージモジュールから発行された非同期メッセージを格納するキューである。非同期メッセージは、コマンド&メッセージモジュール41によって発行されてから、DRVIRQ信号によりホストコントローラ2に割り込み要求し、GetMsgコマンドが返信されてから、送信される。そのため、メッセージキュー43では、GetMsgコマンドが返信されるまで、一時的に非同期メッセージを保持しておく。メッセージキュー43は、例えば5個の非同期メッセージの格納領域を有しており、発行順に順次非同期メッセージの送出を行う。
【0125】
セレクタ44は、例えばシステムコントローラ21内に備えられるソフトウェアモジュールであり、コマンド&メッセージモジュール41から発行された非同期メッセージと即時メッセージとを切り換えて送出する。
【0126】
ドライブ装置1では、以上のようなプログラミング構成によって、コマンド及びメッセージの伝送を行うこととなる。
(コマンド、メッセージ)
つぎに、コマンド及びメッセージの具体的な内容について説明をする。
【0127】
同期コマンドセット
図16に、同期コマンドのコマンドセットテーブルを示す。
【0128】
同期コマンドには、GetDiscTypeコマンド、GetTOCコマンド、GetTOC_ALLコマンド、GetStatusコマンド、GetLastErrコマンド、GetMsgコマンド、GetVesionコマンド、FlushPlayQueueコマンド、GetSubCodeコマンド、SynchronousStopコマンドがある。
【0129】
GetDiscTypeコマンドは、ドライブ装置1に装填されているディスクのメディアタイプの返信命令である。コードは、例えば0x01である。コマンドが有効なステートは、レディーステートS4、プレイステートS5、スリープステートS6、No/BadディスクステートS7である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、DiscTypeメッセージ、Err_Contextメッセージである。
【0130】
GetTOCコマンドは、ドライブ装置1に装填されているCD(CD-Audio,VideoCD)のTOC(Table of Contents)の一部の返信命令である。コードは、例えば0x02である。コマンドが有効なステートは、レディーステートS4、プレイステートS5、スリープステートS6である。コマンドが有効なメディアタイプは、CD(VideoCD,CD-Audio)である。また、引数は、例えば、特徴点のスタートポイント、第1トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等である。返信されるメッセージは、TOCメッセージ、Err_Contextメッセージである。
【0131】
GetTOC_ALLコマンドは、ドライブ装置1に装填されているCD(CD-Audio,VideoCD)のTOCの返信命令である。コードは、例えば0x03である。コマンドが有効なステートは、レディーステートS4、プレイステートS5、スリープステートS6である。コマンドが有効なメディアタイプは、CD(CD-Audio,VideoCD)である。また、引数は、例えば特徴点のスタートポイント、第1トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等である。返信されるメッセージは、TOC_ALLメッセージ、Err_Contextメッセージである。
【0132】
GetStatusコマンドは、ドライブ装置1の現在の各種状態(ドライブ装置のステート、コマンドキューの状態、ディスクトレイの状態、トラックバッファの内部状態等)の返信命令である。コードは例えば0x04である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Statusメッセージである。
【0133】
GetLastErrコマンドは、ドライブ装置1に発生した最後のエラー情報(トレイトラブル、フォーカスNG、ディスク判別不能、ディスクなし等の情報)の返信命令である。コードは、例えば0x05である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、LastErrメッセージメッセージである。
【0134】
GetMsgコマンドは、ドライブ装置1から送信される非同期メッセージの返信命令である。ドライブ装置1からアサートされたDRVIRQ信号に応じて、送信される。コードは、例えば0x06である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、全ての非同期メッセージである。
【0135】
GetVersionコマンドは、ドライブ装置1の設定情報、製造者ID、ファームウェアバージョン等の返信命令である。コードは、例えば、0x07である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Versionメッセージである。
【0136】
FlushPlayQueueコマンドは、ドライブ装置1のコマンドキュー43に保持されているPlayDVDコマンドの消去命令である。コードは、例えば、0x0Dである。コマンドが有効なステートは、プレイステートS5である。コマンドが有効なメディアタイプは、DVDである。また、引数はない。返信されるメッセージは、CMD_OKメッセージ、Err_CmQEmpメッセージである。
【0137】
GetSubCodeコマンドは、ドライブ装置1に装填されているCD(VideoCD,CD-Audio)のサブコードの返信命令である。コードは、例えば、0x0Eである。コマンドが有効なステートは、プレイステートS5である。コマンドが有効なメディアタイプは、CD(CD-Audio,VideoCD)である。また、引数には、アブソリュートMSF(A-Min,A-Sec,A-Frame)の返信命令、MSF(Min,Sec,Frame)の返信命令、TNO、Xの返信命令が記述される。返信されるメッセージは、AMSFメッセージ、MSFメッセージ、TNO_Xメッセージ、Err_Contextメッセージである。
【0138】
SynchronousStopコマンドは、ドライブ装置1のプレイ状態を中断させ、トラックバッファに格納されているディスクデータを消去する命令である。このSynchronousStopコマンドを与えると、ドライブ装置1は、再生を中断し、トラックバッファに格納されているディスクデータを消去するとともに、ステートをプレイステートS5からレディーステートS4に遷移させる。コードは、例えば、0x0Fである。コマンドが有効なステートは、プレイステートS5である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、CMD_OKメッセージ、Err_Contextメッセージである。
【0139】
非同期コマンドセット
つぎに、非同期コマンドについて説明をする。
【0140】
非同期コマンドは、図17に示すように、SetModeコマンド、Restartコマンド、OpenTrayコマンド、CloseTrayコマンド、PlayDVDコマンド、PlayCDコマンド、JumpResetコマンド、Sleepコマンド、WakeUpコマンド、AsynchronousStopコマンドがある。
【0141】
SetModeコマンドは、ドライブ装置1のステートをリセットステートS1からクローズステートS2に遷移させ、ドライブ装置1を初期状態から動作状態に遷移させる命令である。コードは、例えば、0x10である。コマンドが有効なステートは、リセットステートS1である。コマンドが有効なメディアタイプは、全てである。また、引数には、例えばファームウェアのバージョンが記述される。返信されるメッセージは、CMD_OKメッセージ、Err_Contextメッセージ、TrayClosedメッセージ、WokeUpメッセージである。
【0142】
なお、このSetModeコマンドを送信すると、ドライブ装置1は、初期化動作を行う。その初期化シーケンスは、図18に示すようになる。すなわち、ホストコントローラ2からSetModeコマンドが送信され、それに対してドライブ装置1がCMD_OKメッセージを返信する。続いて、ドライブ装置1は、ステートをクローズステートS2に遷移させ、ディスクトレイを閉じる。ディスクトレイが閉じると、ドライブ装置1は、DRVIRQ信号を送信し、ホストコントローラ2からGetMsgコマンドを受け、TrayClosedメッセージを返信する。続いて、クローズステートS2では、各種サーボループの引き込み動作が行われるとともに、メディア情報が取得される。ドライブ装置1に有効なディスクが装填されている場合には、クローズステートS2からレディーステートS4に遷移させる。レディーステートS4に遷移すると、ドライブ装置1は、DRVIRQ信号を送信し、ホストコントローラ2からGetMsgコマンドを受け、WokeUpメッセージを返信する。
【0143】
Restartコマンドは、サーボシステム、コマンドキュー、メッセージキュー、トラックバッファを全て初期化する命令である。Restartコマンドを受けたドライブ装置1は、ステートをクローズステートS2に遷移させる。コードは、例えば0x41である。コマンドが有効なステートは、リセットステートS1以外の全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、TrayClosedメッセージ、WokeUpメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。
【0144】
なお、このRestartコマンドによる初期化シーケンスは、図19に示すようになる。すなわち、ホストコントローラ2からRestartコマンドが送信され、それに対してドライブ装置1がCMD_OKメッセージを返信する。続いて、ドライブ装置1は、ステートをクローズステートS2に遷移させ、ディスクトレイを閉じる。ディスクトレイが閉じると、ドライブ装置1は、DRVIRQ信号を送信し、ホストコントローラ2からGetMsgコマンドを受け、TrayClosedメッセージを返信する。続いて、クローズステートS2では、各種サーボループの引き込み動作が行われるとともに、メディア情報が取得され、さらに、コマンドキュー、メッセージキュー、トラックバッファー等が初期化される。ドライブ装置1に有効なディスクが装填されている場合には、クローズステートS2からレディーステートS4に遷移させる。レディーステートS4に遷移すると、ドライブ装置1は、DRVRIQ信号を送信し、ホストコントローラ2からGetMsgコマンドを受け、WokeUpメッセージを返信する。
【0145】
OpenTrayコマンドは、ドライブ装置1のディスクトレイをオープンさせる命令である。コードは例えば0x42である。コマンドが有効なステートは、リセットステートS1及びオープンステートS3以外の全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Sleptメッセージ、TrayOpenedメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。このOpenTrayコマンドが発行されると、ドライブ装置1のステートが、レディーステートS4又はプレイステートS5の場合、一旦、スリープステートS6を経由して、オープンステートS3へ遷移する。クローズステートS2又はスリープステートS6の場合には、そのままオープンステートS3へ遷移する。
【0146】
CloseTrayコマンドは、ドライブ装置1のディスクトレイをクローズさせ、さらに、サーボシステム、コマンドキュー、メッセージキュー、トラックバッファを全て初期化する命令である。コードは、例えば0x43である。コマンドが有効なステートは、オープンステートS3である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、TrayClosedメッセージ、WokeUpメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。
【0147】
なお、このCloseTrayコマンドによる初期化シーケンスは、図20に示すようになる。すなわち、ホストコントローラ2からCloseTrayコマンドが送信され、それに対してドライブ装置1がCMD_OKメッセージを返信する。続いて、ドライブ装置1は、ステートをクローズステートS2に遷移させ、ディスクトレイを閉じる。ディスクトレイが閉じると、ドライブ装置1は、DRVIRQ信号を送信し、ホストコントローラ2からGetMsgコマンドを受け、TrayClosedメッセージを返信する。続いて、クローズステートS2では、各種サーボループの引き込み動作が行われるとともに、メディア情報が取得され、さらに、コマンドキュー、メッセージキュー、トラックバッファー等が初期化される。ドライブ装置1に有効なディスクが装填されている場合には、クローズステートS2からレディーステートS4に遷移させる。レディーステートS4に遷移すると、ドライブ装置1は、DRVIRQ信号を送信し、ホストコントローラ2からGetMsgコマンドを受け、WokeUpメッセージを返信する。
【0148】
PlayDVDコマンドは、DVDの再生命令である。PlayDVDコマンドでは、読み出しデータのスタートアドレス及びエンドアドレスを指定する。ドライブ装置1は、指定されたスタートアドレスからエンドアドレスまで、DVDからデータを読み出し、トラックバッファに格納する。コードは、例えば0x44である。コマンドが有効なステートは、レディーステートS4、プレイステートS5である。コマンドが有効なメディアタイプは、DVDである。また、引数には、スタートアドレス及びエンドアドレス、モード設定情報が記述される。スタートアドレス及びエンドアドレスは、ロジカルブロック番号(或いはフィジカルセクタ番号)で記述される。返信されるメッセージは、LastSectorメッセージ、ReturnedReadyメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。エンドアドレスまでトラックバッファにデータが読み込まれると、LastSectorメッセージが返信される。その後、トラックバッファにあるエンドアドレスまでのデータを全てホストコントローラ2が受信し、ドライブ装置1のステートがレディーステートS4に遷移したときにReturnedReadyメッセージが返信される。
【0149】
PlayCDコマンドは、CDの再生命令である。ドライブ装置1は、指定されたスタート位置からエンド位置まで、CDからデータを読み出す。また、PlayCDコマンドでCDを再生する場合、インターフェースにA/Vバスインターフェース4を用いるか、LegacyCD−DSPインターフェース6を用いるかをも選択する。A/Vバスインターフェース4を用いる場合には、トラックバッファが使用される。LegacyCD−DSPインターフェース6を用いる場合には、トラックバッファは使用されない。コードは例えば0x45である。コマンドが有効なステートは、レディーステートS4、プレイステートS5である。コマンドが有効なメディアタイプは、CD(CD-Audio,VideoCD)である。また、引数には、スタート位置及びエンド位置、モード設定情報が記述される。スタート位置及びエンド位置は、アブソリュートMSF(分、秒、フレーム番号)で記述される。返信されるメッセージは、LastSectorメッセージ、ReturedReadyメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。エンドアドレスまでトラックバッファにデータが読み込まれると、LastSectorメッセージが返信される。その後、トラックバッファにあるエンドアドレスまでのデータを全てホストコントローラ2が受信し、ドライブ装置1のステートがレディーステートS4に遷移したときにReturnedReadyメッセージが返信される。
【0150】
JumpResetコマンドは、ドライブ装置1のディスクトレイを閉じ、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムを停止した状態にさせ、ステートをリセットステートS1に遷移させる命令である。コードは、例えば0x46である。コマンドが有効なステートは、リセットステートS1以外の全てである。コマンドが有効なメディアタイプは全てである。また、引数はない。返信されるメッセージは、JumpedResetメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。ディスクトレイが閉じた状態でサーボシステムが停止し、リセットステートS1に遷移すると、JumpedResetメッセージが返信される。
【0151】
Sleepコマンドは、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムを停止させ、ステートをスリープステートS6に遷移させる命令である。なお、ドライブ装置1は、Sleepコマンドが発行されても、ディスクのメディア情報は保持したままとしておく。コードは例えば0x4Aである。コマンドが有効なステートは、レディーステートS4である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Sleptメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。サーボシステムが停止し、スリープステートS6に遷移すると、Sleptメッセージが返信される。
【0152】
WakeUpコマンドは、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムを起動させ、ステートをスリープステートS6からレディーステートS4に遷移させる命令である。コードは例えば0x4Bである。コマンドが有効なステートは、スリープステートS6である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、WokeUpメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。サーボシステムが起動し、レディーステートS4に遷移すると、WokeUpメッセージが返信される。
【0153】
AsynchronousStopコマンドは、このコマンドを受信したときに送信しているセクタデータを転送した後に、ドライブ装置のプレイ状態を中断させ、トラックバッファに格納されているディスクデータを消去するとともにステートをプレイステートS5からレディーステートS4に遷移させる。コードは、例えば0x4Fである。コマンドが有効なステートは、プレイステートS5である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ReturnedReadyメッセージ、CMD_OKメッセージ、Err_Contextメッセージである。転送中のセクタデータをホストコントローラ2に全て転送し、レディーステートS4に遷移すると、ReturnedReadyメッセージが返信される。
【0154】
つぎに、DVD再生用のエクステンションコマンドについて説明をする。
【0155】
DVDの再生用のコマンドには、通常の非同期コマンドであるPlayDVDコマンドの他に、エクステンションのコマンドセットがある。通常のPlayDVDコマンドは、ディスクデータをセクタ(或いはブロック)レベルで制御するコマンドである。例えば、セクタ単位で開始位置を特定して再生を行う、といった制御が行われる。それに対して、エクステンションコマンドは、DVDの再生をCellレベルで制御するためのコマンドである。例えば、DVDのアングルの切換、セル単位で切り換え位置を特定して再生を行うといった、Cellレベルでの制御が行われる。
【0156】
そのため、ドライブ装置1のシステムコントローラ21は、DVDの再生を行う場合、DVDストリームの中からDSIテーブルを抽出する。そして、アングルの切換の命令が与えられた場合には、DSIテーブルと与えられたアングル番号とを参照し、目的のアングルのアドレスを算出する。
【0157】
DVD再生用のエクステンションコマンドは、図21に示すように、AngleSetコマンド、ScanDVDコマンド、PlayDVDCellコマンドがある。
【0158】
AngleSetコマンドは、再生するアングルを切り換える命令である。DVDでは、複数のカメラアングルから撮影した映像を記録しておき、再生時にシームレスにアングルを切り換える、いわゆるマルチアングルと呼ばれる機能がある。このDVDでは、Cellと呼ばれる再生単位を設けられており、このCell単位でアングルを切り換えることによりシームレスに再生を行うことができる。AngleSetコマンドは、PlayDVDCellコマンドによってドライブ装置1がCell単位で再生制御を行っているときに、有効となる。このAngleSetコマンドのコードは、例えば0x0Aである。コマンドが有効なステートは、PlayDVDCell実行中のプレイステートS5である。コマンドが有効なメディアタイプは、DVDである。また、引数には、アングル番号が記述される。返信されるメッセージは、CMD_OKメッセージ、Err_Contextメッセージである。
【0159】
ScanDVDコマンドは、可変速順方向再生、可変速逆方向再生を行う命令である。ScanDVDコマンドを受けたドライブ装置1は、DVDデータに含まれているナビパック内のDSIを参照し、再生方向及び再生速度に応じて、次に読み出すVOBU(Video Object Unit)を算出する。そして、算出したVOBUをDVDから順次読み出していくことによって、可変速再生を行うことができる。このScanDVDコマンドのコードは、例えば0x0Bである。コマンドが有効なステートは、PlayDVDCellコマンド実行中のプレイステートS5である。コマンドが有効なメディアタイプは、DVDである。また、引数には、速度、方向、ピクチャの再生枚数等の情報が記述される。返信されるメッセージは、CMD_OKメッセージ、Err_Contextメッセージである。
【0160】
PlayDVDCellコマンドは、Cellレベルで再生制御をする命令である。ドライブ装置1には、上述したようにシステムコントローラ21がDVDデータのナビパックからDSIを抽出する。そのため、ドライブ装置1は、セルレベルでオペレーションを行うことができる。
【0161】
このようにドライブ装置1がナビパック内のDSIを抽出して管理することにより、ホストコントローラ2からCellレベルでの再生命令を与えることができる。このため、アングル切り換えやマルチストーリ等のDVD特有の機能に対応した処理を、ドライブ装置1に負担させることができ、ホストコントローラ2の処理負担を軽減させることができる。
【0162】
即時メッセージ
図22に、即時メッセージのメッセージセットテーブルを示す。
【0163】
即時メッセージには、DiscTypeメッセージ、TOCメッセージ、TOC_ALLメッセージ、Statusメッセージ、LastErrメッセージ、Versionメッセージ、AMSFメッセージ、MSFメッセージ、TNO_Xメッセージ、SubQメッセージ、CMD_OKメッセージ、Err_CMDメッセージ、Err_ARGメッセージ、Err_Contextメッセージ、Err_COMメッセージ、Err_ComQEmpメッセージがある。
【0164】
DiscTypeメッセージは、ドライブ装置1の装填されているディスクのメディアタイプを通知する。コードは例えば0x01である。関連するコマンドは、GetDiscTypeコマンドである。引数には、ディスクが装填されていない、判別不能、シングルレイヤのDVD、デュアルレイヤパラレルトラックのDVD、デュアルレイヤ対向トラックのDVD、VideoCD、CD-Audio等の情報が記述される。
【0165】
TOCメッセージは、ドライブ装置1に装填されているCD(VideoCD,CD-Audio)のTOCの内容の一部を通知する。コードは例えば0x02である。関連するコマンドは、GetTOCコマンドである。引数には、特徴点のスタートポイント、第1トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等が記述される。
【0166】
TOC_ALLメッセージは、ドライブ装置1に装填されているCDのTOC内容を通知する。コードは、例えば0x03である。関連するコマンドは、GetTOC_ALLコマンドである。引数には、特徴点のスタートポイント、第1トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等が記述される。
【0167】
Statusメッセージは、ドライブ装置1の現在の各種状態を通知する。コードは、例えば0x04である。関連するコマンドは、GetStatusコマンドである。引数には、ドライブ装置のステート、コマンドキューの状態、ディスクトレイの状態、トラックバッファの状態等が記述される。
【0168】
LastErrメッセージは、ドライブ装置1に発生した最後のエラー情報を通知する。コードは、例えば0x05である。関連するコマンドは、GetLastErrコマンドである。引数には、トレイトラブル、フォーカスNG、ディスク判別不能、ディスクなし等の情報が記述される。
【0169】
Versionメッセージは、ドライブ装置1の現在の各種設定情報を通知する。コードは、例えば0x06である。関連するコマンドは、GetVersionコマンドである。引数には、ファームウェアのバージョン、製造者ID、ドライブ装置1の設定情報が記述される。
【0170】
AMSFメッセージは、ドライブ装置1で再生されているCDの現在のアブソリュートMSFデータを通知する。コードは、例えば0x07である。関連するコマンドは、GetSubCodeコマンドである。引数には、現在のアブソリュートの分、秒、フレームが記述される。
【0171】
MSFメッセージは、ドライブ装置1で再生されているCDの現在のMSFデータを通知する。コードは、例えば0x08である。関連するコマンドは、GetSubCodeコマンドである。引数には、現在のトラックにおける分、秒、フレームが記述される。
【0172】
TNO_Xメッセージは、ドライブ装置1で再生されているCDの現在のTNO及びXデータを通知する。コードは、例えば0x09である。関連するコマンドは、GetSubCodeコマンドである。引数には、TNO、Xが記述される。
【0173】
SubQメッセージは、ドライブ装置1で再生されているCDの現在のCTL/ADL、TNO、X、MSF、AMSF等のデータを通知する。コードは、例えば0x0Aである。関連するコマンドは、GetSubCodeコマンドである。引数には、コントロール/アドレスデータ、現在のトラックナンバー、インデックス、現在のアブソリュートの分、秒、フレーム、現在のトラックにおける分、秒、フレーム等が記述される。
【0174】
CMD_OKメッセージは、コマンドを受信したことを通知する。コードは、例えば0x21である。
【0175】
Err_CMDメッセージは、送信されたコマンドのコードのエラーを通知する。コードは、例えば0x22である。
【0176】
Err_ARGメッセージは、送信されたコマンドの引数のエラーを通知する。コードは、例えば0x23である。
【0177】
Err_Contextメッセージは、送信されたコマンドのコンテクストエラーを通知する。コードは、例えば0x24である。
【0178】
Err_COMメッセージは、送信されたコマンドの通信エラーを通知する。
コードは、例えば0x27である。
【0179】
Err_ComQEmpメッセージは、FlushPlayQueuコマンドが送信された場合、すでにコマンドキューが空であったときに通知する。コードは、例えば0x28である。
【0180】
非同期メッセージ
図23に、非同期メッセージのメッセージセットテーブルを示す。
【0181】
非同期メッセージには、TrayPushedメッセージ、TrayOpenedメッセージ、TrayClosedメッセージ、JumpedResetメッセージ、WokeUpメッセージ、Sleptメッセージ、ReturnedReadyメッセージ、LastSectorメッセージ、ErrFatalFailureメッセージ、MsgNullメッセージがある。
【0182】
TrayPushedメッセージは、開いているディスクトレイがユーザにより押されたことを通知する。コードは、例えば0x41である。
【0183】
TrayOpenedメッセージは、ディスクトレイが開き、オープンステートS3となったことを通知する。コードは、例えば0x42である。関連するコマンドは、OpenTrayコマンドである。
【0184】
TrayClosedメッセージは、ディスクトレイが閉じ、クローズステートS2となったことを通知する。コードは、例えば0x44である。関連するコマンドは、CloseTrayコマンド、SetModeコマンド、Restartコマンドである。
【0185】
JumpedResetメッセージは、JumpResetコマンドによりリセットステートS1に遷移したことを通知する。コードは、例えば0x46である。関連するコマンドは、JumpResetコマンドである。
【0186】
WokeUpメッセージは、レディーステートS4となったことを通知する。
コードは、例えば0x47である。関連するコマンドは、WakeUpコマンド、CloseTrayコマンド、SetModeコマンド、Restartコマンドである。
【0187】
Sleptメッセージは、スリープステートS6となったことを通知する。コードは、例えば0x48である。関連するコマンドは、Sleepコマンド、OpenTrayコマンドである。
【0188】
ReturnedReadyメッセージは、再生しているディスクのデータをホストコントローラ2に転送完了し、レディーステートS4に遷移したことを通知する。コードは、例えば0x49である。関連するコマンドは、AsynchronousStopコマンド、PlayDVDコマンド、PlayCDコマンド、playDVDCellコマンドである。
【0189】
LastSectorメッセージは、再生しているディスクデータの最後のセクタ(ブロック)がトラックバッファに格納されたことを通知する。コードは、例えば0x4Cである。関連するコマンドは、PlayDVDコマンド、PlayCDコマンド、playDVDCellコマンドである。
【0190】
ErrFatalFailureメッセージは、復活不能のエラーが発生したことを通知する。コードは、例えば0x4Eである。
【0191】
MsgNullメッセージは、GetMsgコマンドを受信した場合に、返信するメッセージがないこと、すなわち、メッセージキューに非同期メッセージがないことを通知する。コードは、例えば0x4Fである。
【0192】
具体的な伝送例
(同期コマンドシーケンスの伝送例)
図24に、ホストコントローラ2がGetVersionコマンドを送信し、それに応じてドライブ装置1がVersionメッセージを返信する際の具体的なハードウェアレイヤ上の伝送例を示す。
【0193】
DRVRX信号は、ホストコントローラ2からドライブ装置1へ送信されるデータを伝送する。また、DRVTX信号は、ドライブ装置1からホストコントローラ2へ送信されるデータを伝送する。DRVRX信号、DRVTX信号に伝送されるデータは、DRVCLK信号に同期して伝送され、さらに、DRVRDY信号が有効(0)となっているときに、データの1バイト伝送を開始できる。
【0194】
まず、GetVersionコマンドがコマンドプロトコルに従い、ホストコントローラ2からドライブ装置1へ伝送される。
【0195】
コマンドプロトコルでは、まず、ホストコントローラ2からドライブ装置1へ、“ Command ”のバイト長を示す“ Command Length ”が伝送され(0x01)、続いて、GetVersionコマンドのコマンドコードである“ Command”が伝送され(0x07)、続いて、“ Command ”の加算合計値“ Command Check Sum ”が伝送される(0x07)。つぎに、ドライブ装置1からホストコントローラ2へ、“ Command Check Sum ”の補数が“ Acknowledgement ”として伝送される(0xF8)。
【0196】
ここで、コマンドプロトコルが完了する。コマンドプロトコルが完了した後、所定時間内(例えば15ms以内)に、Versionメッセージがドライブ装置1からホストコントローラ2へ伝送される。
【0197】
メッセージプロトコルでは、まず、ドライブ装置1からホストコントローラ2へ、“ Message ”のバイト長を示す“ Message Length ”が伝送され(0x05)、続いて、Versionメッセージのメッセージコードである“ Message Code ”が伝送され(0x06)、続いて、Versionメッセージの引数である“ Arg.1 ”〜“ Arg.4 ”が伝送され(0x01,0x02,0x03,0x04)、続いて、“ Message Code ”及び“ Arg.1 ”〜“ Arg.4 ”の加算合計値“ Message Check Sum ”が伝送される(0x10)。つぎに、ホストコントローラ2からドライブ装置1へ、“ Message Check Sum ”の補数が“ Acknowledgement ”として伝送される(0xEF)。
【0198】
(非同期コマンドシーケンスの伝送例)
図25に、ホストコントローラ2がOpenTrayコマンドを送信し、それに応じて、ドライブ装置1がSleptメッセージ、TrayOpendメッセージを返信する際の際の具体的なハードウェアレイヤ上の伝送例を示す。
【0199】
DRVRX信号は、ホストコントローラ2からドライブ装置1へ送信されるデータを伝送する。また、DRVTX信号は、ドライブ装置1からホストコントローラ2へ送信されるデータを伝送する。DRVRX信号、DRVTX信号に伝送されるデータは、DRVCLK信号に同期して伝送され、さらに、DRVRDY信号が有効(0)となっているときに、データの1バイト伝送を開始できる。
【0200】
まず、OpenTrayコマンドがコマンドプロトコルに従い、ホストコントローラ2からドライブ装置1へ伝送される。
【0201】
コマンドプロトコルでは、まず、ホストコントローラ2からドライブ装置1へ、“ Command ”のバイト長を示す“ Command Length ”が伝送され、続いて、OpenTrayコマンドのコマンドコードである“ Command ”が伝送され、続いて、“ Command ”の加算合計値“ Command Check Sum ”が伝送される。つぎに、ドライブ装置1からホストコントローラ2へ、“ Command Check Sum ”の補数が“ Acknowledgement ”として伝送される。ここで、コマンドプロトコルが完了する。
【0202】
コマンドプロトコルが完了した後、所定時間内(例えば15ms以内)に、CMD_OKメッセージがメッセージプロトコルに従いドライブ装置1からホストコントローラ2へ伝送される。
【0203】
メッセージプロトコルでは、まず、ドライブ装置1からホストコントローラ2へ、“ Message ”のバイト長を示す“ Message Length ”が伝送され、続いて、CMD_OKメッセージのメッセージコードである“ Message Code ”が伝送され、続いて、“ Message Code ”の加算合計値“ Message Check Sum ”が伝送される。つぎに、ホストコントローラ2からドライブ装置1へ、“ Message Check Sum ”の補数が“ Acknowledgement ”として伝送される。ここで、メッセージプロトコルが完了する。
【0204】
ドライブ装置1は、CMD_OKメッセージを送信すると、スピンドルサーボ等の各種サーボシステムを停止し、ステートをスリープステートS6に遷移させる。
【0205】
スリープステートS6への遷移が完了すると、DRVIRQ信号をアクティブ(0)として、ホストコントローラ2へ割り込み要求を行う。
【0206】
ホストコントローラ2は、ドライブ装置1から割り込み要求があると、GetMsgコマンドをコマンドプロトコルに従い、ドライブ装置1へ送信する。
【0207】
コマンドプロトコルでは、まず、ホストコントローラ2からドライブ装置1へ、“ Command ”のバイト長を示す“ Command Length ”が伝送され、続いて、GetMsgコマンドのコマンドコードである“ Command ”が伝送され、続いて、“ Command ”の加算合計値“ Command Check Sum ”が伝送される。つぎに、ドライブ装置1からホストコントローラ2へ、“ Command Check Sum ”の補数が“ Acknowledgement ”として伝送される。ここで、コマンドプロトコルが完了する。
【0208】
コマンドプロトコルが完了した後、所定時間内(例えば15ms以内)に、Sleptメッセージがドライブ装置1からホストコントローラ2へ伝送される。
【0209】
続いて、ドライブ装置1は、ディスクトレイをオープンさせ、ステートをオープンステートS3に遷移させる。
【0210】
オープンステートS3への遷移が完了すると、DRVIRQ信号をアクティブ(0)として、ホストコントローラ2へ割り込み要求を行う。
【0211】
ホストコントローラ2は、ドライブ装置1から割り込み要求があると、GetMsgコマンドをコマンドプロトコルに従い、ドライブ装置1へ送信する。
【0212】
コマンドプロトコルが完了した後、所定時間内(例えば15ms以内)に、TrayOpenedメッセージがドライブ装置1からホストコントローラ2へ伝送される。
【0213】
DVDのCell単位での再生動作
DVD(DVD−Videoディスク)には、記録されているコンテンツを再生するために必要となる制御データ(DSI( Data Search Information ))が記述されている。DVDを再生する場合、通常、DSIを検出してDSIテーブルを作成し、このDSIテーブルに基づき、DVDデータの読み出し制御を行う。
【0214】
ここで、本システムでは、このDSIテーブルをドライブ装置1側で作成して、DVDデータの読み出し制御が可能となっている。具体的には、ドライブ装置1内のシステムコントローラ21がDSIテーブルを作成することによって、ホストコントローラ2から与えられるPlayDVDCellコマンド、ScanDVDコマンド、AnglSetコマンドに対応した、Cell単位での通常再生処理、可変速順方向再生、可変速逆方向再生、アングル切り換え処理を行う。なお、可変速順方向再生及び可変速逆方向再生を以下まとめて可変速再生と呼ぶ。
【0215】
以下、上記の各処理について説明をする前に、まず、DVDのフォーマット(DVD−Videoディスクのフォーマット)について簡単に説明をする。
【0216】
DVDでは、図26に示すように、記録されている映画や番組等のプログラムがPGC( Program Chain )と呼ばれる一連のシーケンスで管理されている。PGCは、Videoデータの実体であるVOBSと、VOBSを再生する手順及びその他の制御手順を記述したPCGIにより構成されている。
【0217】
PGCで管理されている各プログラムは、複数のCellで構成されている。Cellは、例えば映画における1シーンや1カット等の再生単位となり、1Cellが数分から10数分という時間の単位となる。DVD−Videoでは、例えば、1つの映画を複数のストーリー展開で見ることができるマルチストーリといった機能を備えており、このような機能は、複数Cellの組み合わせにより作成される。
【0218】
各Cellは、図27に示すように、複数のVideo Object Unit(VOBU)により構成されている。VOBUは、動画像で0.4から1.2秒程度の単位であり、VOBUの中に通常MPEG2のフォーマットにおける1以上のGOP( Group Of Pictures )が含まれることになる。
【0219】
VOBUは、当該VOBUの管理情報を有するパックであるNV_PCK(ナビパック)と、ビデオデータが格納されるパックであるV_PCKと、音声データが格納されるパックであるA_PCKと、副映像データが格納されるパックであるSP_PCKとが含まれている。
【0220】
NV_PCKは、各VOBUの先頭位置に配置されている。従って、VOBUの先頭アドレスからデータを読み出せば、当該VOBUの管理情報を有するNV_PCKをまず読み出すこととなる。NV_PCKは、ヘッダと、PCI_PKT( Presentation Control Information )と、DSI_PKT(Data Serch Information )から構成されている。そして、NV_PCK内のDSI_PKTにDSI( Data Seachi Information )が含まれている。
【0221】
DSIは、図28に示すように、全般の制御情報が含まれるDSI General Information(DSI_GI)と、シームレス再生をする際の再生制御情報が含まれるSeamless Playback Information(SML_PBI)と、シームレスにアングル切り換えを行う際の他のインタリーブユニットのアドレス情報が含まれるAngle Information for seamless(SML_AGLI)と、VOBU間の時間間隔等の検索情報が含まれるVOB Unit Search Information(VOBU_SRI)と、音声データ及び副映像データと時間的な一致を示すシンクロ情報が含まれるSynchronous Information(SYNCI)とが含まれている。
【0222】
DSI_GIには、図29に示すように、NV_PCK_SCRと、NV_PCK_LBNと、VOBU_EAと、VOBU_1STREF_EAと、VOBU_2NDREF_EAと、VOBU_3RDREF_EAと、VOBU_VOB_IDNと、VOBU_C_IDNと、C_ELTMとが含まれている。
【0223】
NV_PCK_SCRには、システムクロックの基準が示されている。NV_PCK_LBNには、当該NV_PCKのアドレスが示されている。VOBU_EAには、当該VOBUのエンドアドレスが示されている。VOBU_1STREF_EAには、当該VOBU内の最初のI−Pictureのエンドアドレスが示されている。VOBU_2NDREF_EAには、当該VOBU内の最初から2番目のI−Picture又はP−Pictureのエンドアドレスが示されている。VOBU_3RDREF_EAには、当該VOBUの最初から3番目のI−Picture又はP−Pictureのエンドアドレスが示されている。VOBU_VOB_IDNには、当該VOBUのID番号が示されている。VOBU_C_IDNには、当該VOBUが含まれるCellのID番号が示されている。C_ELTMには、当該VOBUが含まれるCellの先頭からの経過時間が示されている。
【0224】
SML_AGLIには、図30に示すように、アングル番号1〜9に対応する各インタリーブユニットのアドレス及びデータサイズが示されている。各インタリーブユニットは、図31に示すように、再生開始点及び終了点が、各アングル毎全てで同時刻となっている。ユーザによりアングル切換操作が行われたときに、DVDシステムでは、インタリーブユニットの切れ目の時刻までまってにアングルの切換を行う。このことによって、シームレスにアングル切換をすることができる。
【0225】
VOBU_SRIには、図32に示すように、FWDNextと、FWDInと、FWDIVideoと、BWDprevと、BWDInと、BWDVideoとが記述されている。
【0226】
FWDInには、当該VOBUから所定時間先のVOBUのアドレスが示されている。ここで、添字のnは、時間を表しており、実際には、n×0.5秒の単位である。例えば、0.5秒先のVOBUのアドレスはFWDI1に示されており、5秒後のVOBUのアドレスはFWDI10に示されており、30秒先のVOBUのアドレスはFWDI60に示されている。同様に、BWDInには、当該VOBUから時間軸方向に前のVOBUのアドレスが示されている。添字のnは、FWDIと同一である。なお、同一のCell内に、所定時間以降の或いは所定時間以前のVOBUが無い場合は、このアドレスを示すデータの下30bitはすべて1となる(なお、当該VOBUのアドレスを示すデータは、4Biteで示されている。)。例えば、Cellの一番最初のVOBUであれば、それ以前のVOBUはこのVOBU_SRIには示されないため各BWDIのアドレスを示すデータは、全て1となる。また、Cellの一番最後のVOBUであれば、各FWDIのアドレスを示すデータは、全て1となる。
【0227】
FWDINextには、このVOBUの直後のVOBUのアドレスが示されている。また、BWDIPrevには、このVOBUの直前のVOBUのアドレスが示されている。
【0228】
FWDIVideoには、当該VOBUの次のビデオデータがあるVOBUのアドレスが示されている。例えば、ビデオデータが存在しないVOBUが連続して続く場合は、当該VOBUの次にビデオデータが存在するVOBUのアドレスを示している。また、BWDIVideoには、当該VOBUの直前のビデオデータがあるVOBUのアドレスが示されている。例えば、当該VOBU以前のVOBUにビデオデータが存在していないVOBUが続いていれば、最後にビデオデータが存在したVOBUのアドレスである。
【0229】
なお、以上説明したVOBU_SRIのアドレスは、VOBUの先頭からの距離を示した相対アドレスである。すなわち、このVOBU_SRIに示されるアドレスのVOBUのデータを取得するときは、このVOBU_SRIが含まれる当該VOBUのアドレス(NV_PCK_LBN)に例えばFWDInを加えることとなる。
【0230】
(Cell単位での通常再生処理)
一般的にDVDを再生する場合には、Cell単位で再生処理が行われる。例えば、あるCellが、図33に示すように、所定の開始アドレス(address_A)から所定の終了アドレス(address_B)までに格納されているとする。このCellに対して再生を行う場合、従来のシステムでは、図34に示すように、ホストコントローラ側がDSIを解析して、読み出し開始アドレス(address_A)と終了アドレス(address_B)とを指定し、ドライブ装置に再生命令を与えなければならなかった。例えば、本システムにおける通常のDVD再生命令であるPlayDVDコマンドは、このような処理となる。
【0231】
しかしながら、本システムでは、ドライブ装置1側にDSIを検索する機能が設けられているため、図35に示すように、ホストコントローラ2が読み出し開始アドレス(address_A)のみを指定してドライブ装置1に再生命令を与えれば、このドライブ装置1が読み出し開始アドレスが含まれるCellを自動的に最後まで再生することができる。すなわち、ドライブ装置1は、読み出し開始アドレスで指定されたVOBUのDSIをまず読み出して、そのVOBUのDSIテーブルを作成し、そのDSIテーブルから続くVOBUを順次検索していくので、Cellの終了位置まで自動的に再生することができる。本システムでは、上述したPlayDVDCellコマンドがこのような処理命令となる。
【0232】
また、Cellは、物理的に不連続にディスク上に記録されている場合もある。例えば、ある1つのCellが、図36に示すように、address_A〜address_B、address_C〜address_D、address_E〜address_Fといったようにディスク上に離散的に配置されている場合がある。このような場合、従来のシステムでは、図37に示すように、ホストコントローラ側がDSIを解析して、アドレス(address_A)とアドレス(address_B)とを指定してドライブ装置に再生命令を与え、続いて、アドレス(address_C)とアドレス(address_D)とを指定してドライブ装置に再生命令を与え、続いて、アドレス(address_E)とアドレス(address_F)とを指定してドライブ装置に再生命令を与えなければならなかった。図34で示したように、ホストコントローラ2が読み出し開始アドレス(address_A)のみを指定してドライブ装置1に再生命令を与えれば、このドライブ装置1が読み出し開始アドレスが含まれるCellを自動的に最後まで再生することができる。
【0233】
(再生速度可変処理)
DVDでは、DSIのVOBU_SRI内に、現在再生しているVOBUから所定時間先のVOBUのアドレスが示されている(FWDIn)。また、現在再生しているVOBUから所定時間前のVOBUのアドレスも示されている(BWDIn)。そのため、逆方向への再生を含めて、速度を可変させて再生することができる。すなわち、図38及び図39に示すようにシーケンシャルなプログラムに対して、所定時間間隔のジャンプと所定秒数の再生を繰り返せば、任意倍速の順方向再生や逆方向再生を行うことができる。
【0234】
このような可変速再生をする場合、従来のシステムでは、図40に示すように、ホストコントローラ側がDSIを解析して、まず、読み出し開始アドレス(address_A)と終了アドレス(address_B)とを指定してドライブ装置に再生命令を与える。続いて、再生停止命令を与えて、当該Cellの再生を停止する。続いて、所定秒数の再生を行う再生部分の開始アドレスと終了アドレスを順次与えていくことにより、可変速再生を行わなければならなかった。例えば、本システムにおける通常のDVD再生命令であるPlayDVDコマンドは、このような処理となる。
【0235】
しかしながら、本システムでは、ドライブ装置1側にDSIを検索する機能が設けられているため、図41に示すように、読み出し開始アドレス(address_A)のみを指定してドライブ装置1に再生命令を与え、続いて、再生方向の情報(順方向/逆方向)と、ジャンプする距離(再生速度)と、再生部分の長さ(再生するピクチャ枚数)を指定すれば、ドライブ装置1がVOBU_SRIを参照して読み出すVOBUを抽出して、速度を可変して再生することができる。本システムでは、上述したScanDVDCellコマンドがこのような処理命令となる。
【0236】
(アングル切換)
DVDでは、いわゆるマルチアングルという機能が設けられている。マルチアングルは、最大9個までの異なるカメラアングルから撮影した映像をディスクに記録しておき、再生中に見たいアングルからの映像を切り換えることができる。特に、このマルチアングルでは、図42に示すように、同時進行している複数のアングルの映像を、アングルの切換操作に伴い、切れ目なしにシームレスにつなぎあわせながら再生を行うことができる。そのため、DVDでは、DSIのSML_AGLIを参照し、アングル毎に時間的な同期を取ったインタリーブユニットの切れ目で、アングルの切換が行われる。
【0237】
このようなアングル切換を行う場合、従来のシステムでは、図43に示すように、ホストコントローラ側がDSIを解析して、まず、読み出し開始アドレス(address_A)と終了アドレス(address_B)とを指定してドライブ装置に再生命令を与える。続いて、ユーザからのアングル切換操作に伴い、ホストコントローラ側がDSIを解析して、インタリーブユニットの切れ目を検出し、切換先のアングルの読み出し開始アドレスと終了アドレスとを指定してドライブ装置に再生命令を与えなければならなかった。
【0238】
しかしながら、本システムでは、ドライブ装置1側にDSIを検索する機能が設けられているため、図44に示すように、読み出し開始アドレス(address_A)のみを指定して所定のアングルの再生命令をドライブ装置1に与え、続いて、アングル切換操作があったときに、アングル切換命令とともにアングル番号のみを与えれば、アングル切換を行うことができる。本システムでは、上述したAngleSetコマンドがこのような処理命令となる。
【0239】
(ドライブ装置1の具体的な処理フロー)
つぎに、ドライブ装置1のシステムコントローラ21によるCellレベルの再生処理手順について説明をする。
【0240】
図45にCellレベルでの再生処理フローを示す。
【0241】
ドライブ装置1のシステムコントローラ21は、ホストコントローラ2からセルレベルでの再生命令(PlayDVDCellコマンド)が与えられると、以下のステップS11からの処理を開始する。ホストコントローラ2は、PlayDVDCellコマンドを発行する際に、引数として読み出し開始位置を示す読み出し開始アドレスを指定する。
【0242】
ステップS11において、ドライブ装置1は、指定された読み出し開始アドレスから、DVDデータの読み出しを開始する。
【0243】
続いて、ステップS12において、ドライブ装置1は、読み出したDVDデータから所定のVOBUのDSIを取得する。
【0244】
続いて、ステップS13において、ドライブ装置1は、読み出しアドレスで指定されるVOBUの再生処理を行う。このVOBUレベルでの再生処理の内容についてはその詳細を後述する。
【0245】
続いて、ステップS14において、ドライブ装置1は、ステップS13で再生した当該VOBUがCellの終末のVOBUであるかどうかを判断する。判断した結果、Cellの終末のVOBUである場合には、このCellレベルでの再生処理フローを終了する。また、判断した結果、Cellの終末のVOBUでない場合には、続くステップS15に進む。なお、このCellの終末のVOBUであるかどうかの判断処理についてはその詳細を後述する。
【0246】
続いて、ステップS15において、ステップS13で再生したVOBU内のDSIを参照することによって、次に読み込むVOBUのスタートアドレスを算出する。そして、再度ステップS12に進み、次のVOBUにして同様の処理を繰り返していく。なお、この次に読み込むVOBUのスタートアドレスの算出処理についてはその詳細を後述する。
【0247】
次に上記ステップS13のVOBUレベルでの再生処理フローについて図46を参照して説明をする。
【0248】
まず、ステップS21において、ドライブ装置1は、可変速再生命令(ScanDVDコマンド)が与えられているかどうかを判断する。判断した結果、ScanDVDコマンドが与えられていない場合には、ステップS22に進む。また、判断した結果、ScanDVD命令が与えられている場合には、ステップS23に進む。
【0249】
続いて、ステップS22において、ドライブ装置1は、当該VOBUの先頭から当該VOBUの終末までのデータを再生し、この再生処理フローを終了する。なお、VOBUのエンドアドレスは、DSI_GI内のVOBU_EAに記述されている。また、当該VOBUのスタートアドレスは、最初に再生するVOBUに関してはホストコントローラ2から与えられており、2番目以降に再生するVOBUに関しては、上述したステップS15で前のVOBUのDSIを参照して求められている。
【0250】
一方、ステップS23において、ドライブ装置1は、当該VOBUを、第1のリファレンスピクチャまで再生をするか、第2のリファレンスピクチャまで再生をするか、第3のリファレンスピクチャまで再生をするかを判断する。これらは、ScanDVDコマンドにより引数として与えられる再生ピクチャ数の情報に基づき判断する。当該VOBUを第1のリファレンスピクチャまで再生を行う場合にはステップS24に進み、当該VOBUを第2のリファレンスピクチャまで再生をする場合にはステップS25に進み、当該VOBUを第3のリファレンスピクチャまで再生をする場合にはステップS26に進む。
【0251】
続いて、ステップS24において、ドライブ装置1は、当該VOBUの先頭から第1のリファレンスピクチャの終末までのデータを再生し、この再生処理フローを終了する。なお、第1のリファレンスピクチャのエンドアドレスは、DSIのDSI_GI内のVOBU_1STREF_EAに記述されている。
【0252】
続いて、ステップS25において、ドライブ装置1は、当該VOBUの先頭から第2のリファレンスピクチャの終末までのデータを再生し、この再生処理フローを終了する。なお、第2のリファレンスピクチャのエンドアドレスは、DSIのDSI_GI内のVOBU_2NDREF_EAに記述されている。
【0253】
続いて、ステップS26において、ドライブ装置1は、当該VOBUの先頭から第3のリファレンスピクチャの終末までのデータを再生し、この再生処理フローを終了する。なお、第3のリファレンスピクチャのエンドアドレスは、DSIのDSI_GI内のVOBU_3RDREF_EAに記述されている。
【0254】
次に上記ステップS14での当該VOBUがCellの終末であるかどうかの判断処理フローについて図47を参照して説明をする。
【0255】
まず、ステップS31において、ドライブ装置1は、可変速再生命令(ScanDVDコマンド)が与えられているかどうかを判断する。判断した結果、ScanDVDコマンドが与えられていない場合には、ステップS32に進む。また、判断した結果、ScanDVD命令が与えられている場合には、ステップS33に進む。
【0256】
ステップS32において、ドライブ装置1は、当該VOBUの次のVOBUが存在するかどうかを判断する。DVD−Videoでは、当該VOBUがCellの終末である場合には、当該VOBUの次のVOBUが存在しないため、VOBU_SRI内のFWDINextにはアドレスの代わりに“3FFF FFFh”と記述されることが規定されている。従って、ドライブ装置1は、VOBU_SRI内のFWDINextを参照し、そこに記述されているアドレスが、“3FFF FFFh”であるか否かを判断することにより、当該VOBUの次のVOBUが存在するかどうかを判断することができる。ドライブ装置1は、FWDINextに“3FFF FFFh”と記述されていればCellの終末であると判断し、FWDINextに“3FFF FFFh”と記述されていなければCellの終末ではないと判断する。
【0257】
ステップS33において、ドライブ装置1は、所定の間隔で可変速再生をした際に当該VOBUの次に読み出されるVOBUが当該Cell内に存在するかどうかを判断する。すなわち、可変速再生をしてCellの終末を通り越してしまうかどうかを判断する。なお、次に読み込むVOBUのアドレスは、ScanDVDコマンドの引数として与えられる再生速度に基づき判断する。DVD−Videoでは、Cell内にFWDIn(又はBWDIn)で読み出されるVOBUが存在しない場合、そのFWDIn(又はBWDIn)にはアドレスの代わりに“3FFF FFFh”と記述されることが規定されている。従って、ドライブ装置1は、VOBU_SRI内のFWDInを参照し、そこに記述されているアドレスが、“3FFF FFFh”であるか否かを判断することにより、当該VOBUの所定秒数先のVOBUが存在するかどうかを判断することができる。ドライブ装置1は、FWDInに“3FFF FFFh”と記述されていればCellの終末を通り過ぎたと判断し、FWDInに“3FFF FFFh”と記述されていなければCellの終末ではないと判断する。
【0258】
つぎに、上記ステップS15での次のVOBUのスタートアドレスの算出処理について図48を参照して説明をする。
【0259】
まず、ステップS41において、ドライブ装置1は、可変速再生命令(ScanDVDコマンド)が与えられているかどうかを判断する。判断した結果、ScanDVDコマンドが与えられている場合には、ステップS42に進む。また、判断した結果、ScanDVD命令が与えられていない場合には、ステップS43に進む。
【0260】
続いて、ステップS42において、ドライブ装置1は、現在のVOBUから、ScanDVDコマンドで引数で与えられる再生速度と方向情報とにより、当該VOBUから次に再生するVOBUとの時間間隔を求める。そして、その時間間隔のDSI_SRIのFWDIn(BWDIn)を検出し、次に再生するVOBUのスタートアドレスを読み出す。例えば、時間間隔が50秒であればFWDI10のアドレスを検出し、また、時間間隔が−100秒(100秒前のVOBU)であればBWDI20のアドレスを検出して、処理を終了する。
【0261】
一方ステップS43において、ドライブ装置1は、ホストコントローラ2からアングル切換命令(AngleSetコマンド)があったかどうかを判断する。
AngleSetコマンドがあった場合には、ステップS44に進み、AngleSetコマンドがない場合には、ステップS45に進む。
【0262】
続いて、ステップS44において、当該VOBUがILVUの終末かどうかを判断する。当該VOBUがILVUの終末であるかどうかは、DSIのSML_PBI内のVOBU_SML_CATの4ビット目にあるUnitEndflagを参照することにより判断することができる。当該VOBUがILVUの終末であると判断した場合には、ステップS46に進み、当該VOBUがILVUの終末でないと判断した場合には、ステップS44に進む。
【0263】
続いて、ステップS45において、ドライブ装置1は、DSI_SRIのFWDINextからアドレスを検出して、処理を終了する。
【0264】
続いて、ステップS46において、ドライブ装置1は、AngleSetコマンドの引数として指定されるアングル番号のSML_AGL_Cn_DSTAからアドレスを検出して、処理を終了する。
【0265】
【発明の効果】
本発明にかかるディスクドライブシステム、ドライブ装置及びシステム制御装置では、ディスクデータを転送するデータインタフェースと、コマンド及びメッセージを転送するコマンドインタフェースとを分離している。
【0266】
このことにより、本発明では、データバスを用いてディスクデータを転送している最中でも、転送中断することなく、コマンドやメッセージの転送を行うことができ、効率的に処理を行うことができる。
【0267】
また、本発明では、ドライブ装置が割り込み要求ラインを用いてシステム制御装置に割り込み要求を通知し、システム制御装置がその割り込み要求を取得すると、メッセージの取得が可能であることを示すコマンドをドライブ装置に送信する。そしてドライブ装置は、システム制御装置からメッセージの取得が可能であることを示すコマンドを受信すると、非同期メッセージを上記システム制御装置に送信する。
【0268】
このことにより、本発明では、システム制御装置がドライブ装置の状態を常に監視しなくても、ドライブ装置からのメッセージを受信することができる。そのため、演算処理の負荷の軽減や、トラフィックの低減をすることができ、さらに、ドライブ装置からのメッセージを時間差なく得ることができる。
【0269】
本発明にかかるディスクドライブシステム、ドライブ装置、システム制御装置では、ディスクデータを転送するデータインタフェースと、コマンド及びメッセージを転送するコマンドインタフェースとを分離しており、さらに、コマンドインターフェースを、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド/メッセージレイヤとで階層構造化されて構成されている。
【0270】
このことにより本発明では、1つの階層のみを入れ替えて、インタフェースの仕様を変更することが可能となり、インターフェースの仕様の自由度が大きくなる。従って、例えば、ハードウェア構成が異なるインターフェースと接続する場合には、ハードウェアレイヤの構成のみを変更すればよく、また、コマンドやメッセージの内容が異なるインターフェースと接続する場合には、コマンド/メッセージレイヤの構成だけを変更すればよい。
【0271】
また、本発明では、上記コミュニケーションレイヤで、エラーチェックデータを含む伝送データを伝送する。
【0272】
このことにより本発明では、コマンドインターフェースでエラーが生じた場合でも、速やかにエラーを検出することができる。
【0273】
本発明にかかるディスクドライブシステム及びドライブ装置では、振る舞いを定義する複数のステートが定められたステートマシーンに応じてドライブ装置が管理される。
【0274】
このことにより本発明では、システム制御装置がドライブ装置の動作状態を的確に把握することができ、そのためコマンドを供給することによって次の制御を容易且つ的確に行うことができる。
【0275】
また、本発明は、ステートマシーンが、ドライブ装置をハードウェアリセットがされた初期状態に制御する初期ステートを有しており、ハードウェアリセット信号がシステム制御装置から与えられた場合に、初期ステートへ遷移する。
【0276】
このことにより本発明では、電源を投入した直後やリセットボタン等を押した直後にハードウェアリセット状態とするのではなく、システム制御装置によって明示的にハードウェアリセット状態とされる。このため、システム制御装置とドライブ装置との起動状態の不整合を防ぐことが可能となり、安定した起動動作を行うことができる。
【0277】
また、本発明は、初期ステートのときに起動を指示するコマンドがシステム制御装置から与えられた場合には、ステートマシーンが、上記初期ステートから本装置の動作が定義された動作ステートに遷移することを特徴とする。
【0278】
このことにより本発明では、ドライブ装置の動作モードの選択をシステム制御装置と不整合なく安定的に行うことができる。
【0279】
本発明にかかるディスクドライブシステム、ドライブ装置及びシステム制御装置では、ドライブ装置がDVDデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるDVDデータのサーチ情報を抽出し、このサーチ情報に基づき上記DVDを再生制御し、システム制御装置が、ドライブ装置に対して対応したコマンドを与える。
【0280】
このことにより本発明では、再生するデータのアドレスをドライブ装置が算出することができるので、例えば、Cellの境界でのアングルやストーリのシームレスな切り換え、可変速再生時におけるアドレスの算出をドライブ装置に負担させることができ、システム制御装置の処理負担を軽減させることができる。
【0281】
本発明にかかるディスクドライブシステム、ドライブ装置及びシステム制御装置では、パラレルデータインターフェースとシリアルデータインタフェースとの2つのインターフェースによって、ディスク状記録媒体のデータが転送される。
【0282】
このことにより、ディスクタイプや転送要求するデータタイプに応じて適応的にバスを選択することができ、用途に適応したシステムをフレキシブルに構成することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のディスクドライブシステムのシステム構成図である。
【図2】上記ディスクドライブシステムのドライブ装置のブロック構成図である。
【図3】ドライブ装置を管理及び制御するステートマシーンを示す図である。
【図4】ドライブ装置1とホストコントローラ2との間のインターフェースのレイヤ構造を示す図である。
【図5】コマンドインタフェースのハードウェア構成を示す図である。
【図6】AVバスインタフェースのハードウェア構成を示す図である。
【図7】コマンドインターフェースのコミュニケーションレイヤのフェーズを示す図である。
【図8】コマンドプロトコルのデータ構成を示す図である。
【図9】コマンドプロトコル内の“ Command ”のデータ構成を示す図である。
【図10】メッセージプロトコルのデータ構成を示す図である。
【図11】メッセージプロトコル内の“ Message ”のデータ構成を示す図である。
【図12】コマンドフェーズ及びメッセージフェーズにおけるエラー回復について説明する図である。
【図13】同期コマンドシーケンスの一例を示す図である。
【図14】非同期コマンドシーケンスの一例を示す図である。
【図15】コマンド&メッセージレイヤにおけるコマンドインターフェースのドライブ装置側のプログラミング構成を示す図である。
【図16】同期コマンドのコマンドセットテーブルを示す図である。
【図17】非同期コマンド(ベーシックコマンド)のコマンドセットテーブルを示す図である。
【図18】SetModeコマンドによるドライブ装置の初期化シーケンスを示す図である。
【図19】Restartコマンドによるドライブ装置の初期化シーケンスを示す図である。
【図20】CloseTrayコマンドによるドライブ装置の初期化シーケンスを示す図である。
【図21】非同期コマンド(エクステンションコマンド)のコマンドセットテーブルを示す図である。
【図22】即時メッセージのメッセージセットテーブルを示す図である。
【図23】非同期メッセージのメッセージセットテーブルを示す図である。
【図24】ホストコントローラがGetVersionコマンドを送信し、それに応じてVersionメッセージを返信する際の具体的なハードウェアレイヤ上の伝送例を示す図である。
【図25】ホストコントローラがOpenTrayコマンドを送信し、それに応じて、ドライブ装置がSleptメッセージ、TrayOpendメッセージを返信する際の際の具体的なハードウェアレイヤ上の伝送例を示す図である。
【図26】DVD−Videoフォーマットで規定されるPCGについて説明をするための図である。
【図27】DVD−Videoフォーマットで規定されるCell及びVOBUについて説明をするための図である。
【図28】DVD−Videoフォーマットで規定されるDSIについて説明をするための図である。
【図29】DVD−Videoフォーマットで規定されるDSI_GIについて説明をするための図である。
【図30】DVD−Videoフォーマットで規定されるAML_AGLIについて説明をするための図である。
【図31】アングル切換動作ついて説明をするための図である。
【図32】DVD−Videoフォーマットで規定されるVOBU_SRIについて説明をするための図である。
【図33】Cell単位での再生処理について説明するための図である。
【図34】Cell単位での再生処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図35】Cell単位での再生処理を行う場合のドライブ装置に与えられる本システムでの命令を説明するための図である。
【図36】ディスク上に離散的に配置されたCellの再生処理について説明するための図である。
【図37】ディスク上に離散的に配置されたCellの再生処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図38】順方向の可変速再生処理について説明するための図である。
【図39】逆方向の可変速再生処理について説明するための図である。
【図40】可変速再生処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図41】可変速再生処理を行う場合のドライブ装置に与えられる本システムでの命令を説明するための図である。
【図42】アングル切換処理について説明するための図である。
【図43】アングル切換処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図44】アングル切換処理を行う場合のドライブ装置に与えられる本システムでの命令を説明するための図である。
【図45】ドライブ装置によって行われるCellレベルでの再生処理手順を示すフローチャートである。
【図46】ドライブ装置によって行われるVOBUレベルでの再生処理手順を示すフローチャートである。
【図47】ドライブ装置によって行われるCellの終末判断手順を示すフローチャートである。
【図48】ドライブ装置によって行われる次のVOBUのアドレス検出処理手順を示すフローチャートである。
【符号の説明】
1 ドライブ装置、2 ホストコントローラ、4 A/Vバスインターフェース、5 コマンドインターフェース、6 LegacyCD−DSPインターフェース、11 メカユニット、12 再生制御部、13 RFアンプ、14 サーボコントローラ、15 DVDチャネルデコーダ、16 DVDエラー訂正回路、17 CDチャネルデコーダ、18 CDエラー訂正回路、19 トラックバッファコントローラ、20 トラックバッファ、21 システムコントローラ、41 コマンド&メッセージモジュール、42 コマンドキュー、43 メッセージキュー、44 セレクタ
Claims (12)
- DVDの再生を行うドライブ装置と、上記DVDの記録データであるディスクデータに対するデータ処理並びに上記ドライブ装置の制御を行うシステム制御装置とを備え、上記ドライブ装置と上記システム制御装置とは、上記ディスクデータが転送されるデータバスと、上記ドライブ装置の動作を制御するコマンドがシステム制御装置から当該ドライブ装置へ送信され、上記ドライブ装置が有している情報が記述されたメッセージが当該ドライブ装置から上記システム制御装置へ送信されるコマンドバスとにより接続され、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記DVDを再生制御する制御部を有するディスクドライブシステムであって、
上記ドライブ装置と上記システム制御装置とは、
上記ディスクデータを上記データバスを介して転送するデータインターフェースと、上記ドライブ装置の動作を制御するコマンドを当該システム制御装置から上記コマンドバスを介して当該ドライブ装置へ送信し、当該ドライブ装置が有している情報が記述されたメッセージを当該ドライブ装置から上記コマンドバスを介して当該システム制御装置へ送信するコマンドインターフェースとにより接続され、
上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド/メッセージレイヤとで階層構造化されて構成されているディスクドライブシステム。 - 上記ハードウェアレイヤは、少なくとも、
伝送データを上記システム制御装置から上記ドライブ装置へ伝送する第1の伝送ラインと、
伝送データを上記ドライブ装置から上記システム制御装置へ伝送する第2の伝送ラインと、
上記ドライブ装置を起動させる起動信号を上記システム制御装置から上記ドライブ装置へ伝送する起動信号ラインと、
上記ドライブ装置の割り込み要求を上記ドライブ装置から上記システム制御装置へ通知する割り込み要求ラインとを有している請求項1記載のディスクドライブシステム。 - 上記コミュニケーションレイヤでは、少なくとも、
コマンド又はメッセージを特定するコードと、
コマンド又はメッセージの引数と、
エラーチェックデータとを含む伝送データを伝送する請求項1記載のディスクドライブシステム。 - 上記コミュニケーションレイヤでは、さらに、エラーチェックデータに基づき行われたエラーチェック結果に応じて、伝送されたコマンド又はメッセージの承認/非承認を示すアクノーレッジを返信する請求項3記載のディスクドライブシステム。
- DVDの再生を行う再生部と、上記DVDの記録データであるディスクデータを、データバスを介して、上記DVDに対するデータ処理並びに上記再生部の制御を行うシステム制御装置との間で送受信するデータインタフェースと、
上記再生部の動作を制御するコマンドをコマンドバスを介して上記システム制御装置から受信するとともに、上記再生部が有している情報が記述されたメッセージをコマンドバスを介して上記システム制御装置へ送信するコマンドインターフェースと、
上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記DVDを再生制御する制御部を備えるドライブ装置であって、
上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド/メッセージレイヤとで階層構造化されて構成されているドライブ装置。 - 上記ハードウェアレイヤは、少なくとも、
伝送データを上記システム制御装置から当該ドライブ装置へ伝送する第1の伝送ラインと、
伝送データを当該ドライブ装置から上記システム制御装置へ伝送する第2の伝送ラインと、
当該ドライブ装置を起動させる起動信号を上記システム制御装置から当該ドライブ装置へ伝送する起動信号ラインと、
当該ドライブ装置の割り込み要求を当該ドライブ装置から上記システム制御装置へ通知する割り込み要求ラインとを有している請求項5記載のドライブ装置。 - 上記コミュニケーションレイヤでは、少なくとも、
コマンド又はメッセージを特定するコードと、
コマンド又はメッセージの引数と、
エラーチェックデータとを含む伝送データを伝送する請求項5記載のドライブ装置。 - 上記コミュニケーションレイヤでは、さらに、エラーチェックデータに基づき行われたエラーチェック結果に応じて、伝送されたコマンド又はメッセージの承認/非承認を示すアクノーレッジを返信する請求項7記載のドライブ装置。
- DVDの記録データであるディスクデータに対するデータ処理を行うデータ処理並びに上記DVDの再生を行うドライブ装置の制御を行う制御部と、上記ディスクデータをデータバスを介して上記ドライブ装置との間で送受信するデータインタフェースと、上記ドライブ装置の動作を制御するコマンドをコマンドバスを介して当該ドライブ装置へ送信するとともに、上記ドライブ装置が有している情報が記述されたメッセージをコマンドバスを介して当該ドライブ装置から受信するコマンドインターフェースとを備え、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記DVDを再生制御し、上記制御部は、上記ドライブ装置に対応したコマンドを与えるシステム制御装置であって、
上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド/メッセージレイヤとで階層構造化されて構成されているシステム制御装置。 - 上記ハードウェアレイヤは、少なくとも、
伝送データを当該システム制御装置から上記ドライブ装置へ伝送する第1の伝送ラインと、
伝送データを上記ドライブ装置から当該システム制御装置へ伝送する第2の伝送ラインと、
上記ドライブ装置を起動させる起動信号を当該システム制御装置から上記ドライブ装置へ伝送する起動信号ラインと、
上記ドライブ装置の割り込み要求を上記ドライブ装置から当該システム制御装置へ通知する割り込み要求ラインとを有している請求項9記載のシステム制御装置。 - 上記コミュニケーションレイヤでは、少なくとも、
コマンド又はメッセージを特定するコードと、
コマンド又はメッセージの引数と、
エラーチェックデータとを含む伝送データを伝送する請求項9記載のシステム制御装置。 - 上記コミュニケーションレイヤでは、さらに、エラーチェックデータに基づき行われたエラーチェック結果に応じて、伝送されたコマンド又はメッセージの承認/非承認を示すアクノーレッジを返信する請求項11記載のシステム制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001143600A JP4581289B2 (ja) | 2000-12-12 | 2001-05-14 | ディスクドライブシステム、ドライブ装置、及び、システム制御装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000-377881 | 2000-12-12 | ||
JP2000377881 | 2000-12-12 | ||
JP2001143600A JP4581289B2 (ja) | 2000-12-12 | 2001-05-14 | ディスクドライブシステム、ドライブ装置、及び、システム制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002245714A JP2002245714A (ja) | 2002-08-30 |
JP4581289B2 true JP4581289B2 (ja) | 2010-11-17 |
Family
ID=26605694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001143600A Expired - Fee Related JP4581289B2 (ja) | 2000-12-12 | 2001-05-14 | ディスクドライブシステム、ドライブ装置、及び、システム制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4581289B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100498451B1 (ko) | 2002-10-17 | 2005-07-01 | 삼성전자주식회사 | 하드디스크 드라이브의 에러 정보 제공 방법 및 이에적합한 하드디스크 드라이브 그리고 이를 적용한 정보처리 장치 |
JP2006004583A (ja) * | 2004-05-19 | 2006-01-05 | Sony Corp | オーディオビジュアル装置 |
CN100361203C (zh) * | 2005-01-12 | 2008-01-09 | 广明光电股份有限公司 | 光驱的控制系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997014147A1 (fr) * | 1995-10-09 | 1997-04-17 | Matsushita Electric Industrial Co., Ltd. | Support, appareil et procede d'enregistrement d'informations |
WO1999028902A1 (en) * | 1997-11-29 | 1999-06-10 | Koninklijke Philips Electronics N.V. | Method and device for recording audio, a record carrier and playback device |
JP2000105967A (ja) * | 1998-06-19 | 2000-04-11 | Samsung Electronics Co Ltd | ネットワ―クを通した情報伝送装置及び方法 |
JP2000105973A (ja) * | 1998-06-17 | 2000-04-11 | Matsushita Electric Ind Co Ltd | ディスク装置、映像音声デ―タ処理装置及び映像音声制御方法 |
JP2000508792A (ja) * | 1996-03-29 | 2000-07-11 | マイクロソフト コーポレイション | Pcと民生用電子装置とのデジタル相互接続 |
JP2000285086A (ja) * | 1999-03-30 | 2000-10-13 | Matsushita Electric Ind Co Ltd | データ転送方法およびシステム |
-
2001
- 2001-05-14 JP JP2001143600A patent/JP4581289B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997014147A1 (fr) * | 1995-10-09 | 1997-04-17 | Matsushita Electric Industrial Co., Ltd. | Support, appareil et procede d'enregistrement d'informations |
JP2000508792A (ja) * | 1996-03-29 | 2000-07-11 | マイクロソフト コーポレイション | Pcと民生用電子装置とのデジタル相互接続 |
WO1999028902A1 (en) * | 1997-11-29 | 1999-06-10 | Koninklijke Philips Electronics N.V. | Method and device for recording audio, a record carrier and playback device |
JP2001510619A (ja) * | 1997-11-29 | 2001-07-31 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | オーディオの記録方法及び装置、記録担体、及び再生装置 |
JP2000105973A (ja) * | 1998-06-17 | 2000-04-11 | Matsushita Electric Ind Co Ltd | ディスク装置、映像音声デ―タ処理装置及び映像音声制御方法 |
JP2000105967A (ja) * | 1998-06-19 | 2000-04-11 | Samsung Electronics Co Ltd | ネットワ―クを通した情報伝送装置及び方法 |
JP2000285086A (ja) * | 1999-03-30 | 2000-10-13 | Matsushita Electric Ind Co Ltd | データ転送方法およびシステム |
Also Published As
Publication number | Publication date |
---|---|
JP2002245714A (ja) | 2002-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100209846B1 (ko) | 네비게이션 데이타를 구비한 재생 데이타를 전송하는 통신시스템 | |
KR100709167B1 (ko) | 디스크 매체를 위한 재난 복구 방법 | |
JP4066576B2 (ja) | データ再生装置及び方法 | |
JP4581289B2 (ja) | ディスクドライブシステム、ドライブ装置、及び、システム制御装置 | |
JP4363671B2 (ja) | データ再生装置及びデータ再生方法 | |
JP3607630B2 (ja) | 複数の記録メディアの映像記録再生方法及び装置 | |
JP5216865B2 (ja) | Bd再生システム、bd再生装置、表示装置及びコンピュータプログラム | |
JP3938649B2 (ja) | Dvdビデオシナリオ再生装置 | |
JP2000137948A (ja) | 記録媒体、記録方法及び装置、再生方法及び装置 | |
JP3631454B2 (ja) | 映像記録再生方法及び装置 | |
JP3833951B2 (ja) | 情報記録再生装置 | |
JPH11259957A (ja) | 記録媒体と記録再生装置 | |
JP3814928B2 (ja) | データ再生装置及びデータ再生方法 | |
JPH10271450A (ja) | 符号化データの再生方法及び再生装置 | |
JP3787944B2 (ja) | 記録媒体の再生装置及び記録媒体の再生方法 | |
JP3657787B2 (ja) | データ処理生方法及び装置 | |
JP3858999B2 (ja) | 光ディスク再生装置 | |
JP2007235543A (ja) | 光ディスク装置 | |
KR20080072925A (ko) | 정보 재생 장치, 정보 재생 방법, 및 컴퓨터 프로그램 | |
JP3882430B2 (ja) | 情報記録媒体再生方法、情報記録媒体記録方法、情報記録媒体再生装置、情報記録媒体記録装置、情報記録媒体再生システムにおける再生方法、情報記録媒体記録システムにおける記録方法 | |
JPH10334589A (ja) | 記録媒体再生装置および方法 | |
JP3987513B2 (ja) | 記録メディアの映像記録再生装置及び方法 | |
JP2000187965A (ja) | 記録媒体、記録方法及び装置、再生方法及び装置 | |
JP3679332B2 (ja) | ディスク再生装置および再生制御方法 | |
JPH10126743A (ja) | 画像再生装置及び画像再生方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090303 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090430 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100803 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100816 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130910 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |