I2Sインターフェースのデータフォーマットについて知りたい

このQ&Aのポイント
  • I2Sインターフェースの仕様とデータフォーマットを調べていますが、詳しい情報が見つかりません。
  • I2Sフォーマット、右詰め、左詰め、DSPフォーマット、TDMフォーマットについての規格書はありますか?
  • 現在入手しているPhilipsのI2S bus specificationにはデータフォーマットの詳細が記載されていません。
回答を見る
  • ベストアンサー

I2Sインターフェースのデータフォーマット

I2Sインターフェースの回路設計を行うにあたり、I2Sインターフェースの仕様 およびデータフォーマットを調べているのですが、データフォーマットについて 詳しい情報が記載されている資料を見つける事が出来ておりません。 I2Sフォーマット、右詰め、左詰め、DSPフォーマット、TDMフォーマットの それぞれについて記載されている規格書はありますでしょうか? あるようでしたら、入手方法を教えて頂けませんでしょうか? また、上記について詳しく説明されているWebサイトをご存知でしたら、 こちらもを教えて頂けませんでしょうか? なお、現在Philips(現NXP Semiconductors)のI2S bus specificationは入手済み ですがデータフォーマットについては詳しい事は記載されていません。 現状分かっている事は 1.I2SではTransmitterのワード長とReceiverのワード長が同じとは限らない。 2.I2S:WSの変化点の次のサイクルでMSBが出力される。 3.左詰め:WSの変化点でMSBが出力される。 4.右詰め:WSの直前のサイクルでLSBが出力される。 5.TDM:複数チャネルのデータを特定サイズに分割して各チャネルのデータを  順番に出力する事により複数チャネルのデータを1つの信号で送信する。 6.I2S、右詰め、左詰めは左チャネル→右チャネルの順で出力される。 7.I2Sは左チャネルの時WS=0で右チャネルの時WS=1になる。 8.右詰めと左詰めは左チャネルの時WS=1で右チャネルの時WS=0になる。 具体的に知りたい事は Q1.I2Sフォーマットの場合Transmitterのワード長がReceiverのワード長より  大きい場合、Transmitterが送信したデータのLSBはReceiverで削られてしまう  のではないか?  (PhilipsのI2S bus specificationに記載されている内容より。) Q2.1の認識が正しい場合、Transmitterのワード長はReceiverのワード長を  超えては行けない事になると思うのですが、Philipsの仕様書では  TransmitterはReceiverが何ビット処理できるかを知る必要が無いと記載  されていますが、これは何故なのか? Q3.左詰めはReceiverのカウンタでLSBを検出できると思いますが、右詰めは  MSBをどの様にして検出するのか? Q4.DSPフォーマットとは具体的にはどの様な仕様のフォーマットなのか? Q5.TDMフォーマットの詳細な仕様はどの様になっているのか? 以上、上記に関しまして情報をお持ちの方がいらっしゃいましたらご教授 願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • DCI4
  • ベストアンサー率29% (448/1540)
回答No.1

I2Sフォーマット、右詰め、左詰め、DSPフォーマット、TDMフォーマットの それぞれについて記載されている規格書はありますでしょうか? ★回答  検索キーワードは DSP IIS ペリフェラル たとえば http://www.tij.co.jp/jp/lit/ug/jaju036/jaju036.pdf 具体的に知りたい事は TiのDSPのペリフェラルズ・リファレンスガイド などを参照すりゃいいでしょ もともと PhilipsのI2S bus specification がリファレンスではない IISは オーディオ用デジタルフィルタの シリアルポートあたりから始まり 製品の進歩とともに じょじょに拡張された仕様で きちっと もともと 決まったものではないと記憶している 製品が進化し 最後のほうに 高機能DSPのペリフェラル仕様としてまとめられるようになった 高機能汎用DSPはなんでも付いてる高級チップ そのへんの製品の仕様書 リファレンス ガイドなど を参考にすればよい 昨今は 検索すればごろごろ出てくる

A-MASAK
質問者

お礼

お礼が遅くなり済みません。 I2Sおよびデータフォーマットについての規格書は特に存在しないという 事ですね。 I2Sの入手済み資料にはPhilipsのI2S準拠と言う趣旨の記載があった為、 PhilipsのI2S bus specificationがI2Sの規格書と誤解していました。 DSP製品の仕様書、リファレンスガイド等はまだ調査中ですが、 教えて頂いた「DSP IIS ペリフェラル」のキーワードで検索して 色々な資料を確認していきたいと思います。

関連するQ&A

  • CRC32のデータ送りの方向について

     送信されてくるethernetフレームを受信しながらCRC32を計算し、 FCSチェックを実施するハード(VHDLによる)を作成しようとしています。  ハードの構成は、下記URL(の中程)のような、1bit単位でのxorにより実施しようと考えています。 http://homepage3.nifty.com/izushi/OTN/tn2/index.html  ethernetフレームで計算されるCRC32が、下記パラメータ、 (1)ビットシフト方向:右 (2)生成多項式:0xEDB88320 (3)初期値(0xFFFFFFFF) (4)出力XOR(0xFFFFFFFF) (5)フレームのLSB側(FCSデータが格納されている方)からデータ送り と一致することは判明し、検証も終わったのですが、 フレームはFCS側からではなく、MSB側(MACアドレス側)から転送されてくるため、 (5)と相反し、実装できません。 フレームのLSB側(FCSデータ側)からではなく、MSB側(MACアドレス側)から データを送り、(1)~(5)の条件で求めたCRC32の値を再現することはできるのでしょうか? 「CRC32」、「左送り」などで調べてみたのですが、 下記URLのように、MSB側(格納データのアドレス0側)から計算している例も あったのですが、CRC32の値が(1)~(5)パラメータで求めたものとCRC32の値が異なりました。 http://okwave.jp/qa/q5183760.html  要約すると、同一のデータを使用して、MSB側、LSB側から計算し、 同じCRC32の値となるようなパラメータの組み合わせが有るか無いか、 ということになると思うのですが・・・ よろしくお願いします。

  • I2S AUDIOについて

    I2S AUDIOのインターフェース回路を設計したいのですが、 I2S AUDIOに関するデータフォーマットがわかりません。 参考になる資料や規格書の所在がありましたら教えてください。

  • iPhone4SをBluetoothレシーバーに…

     先日、パソコンとiPhone4Sの両方の音声を受信できるBluetoothヘッドホンを探していてふと思ったのですが、いっそのことパソコンの音声をBluetooth経由でiPhone4Sに送り、iPhone4S自体をオーディオレシーバーやヘッドセットとして使えないかと思った次第です。  iPhone4Sは普段胸ポケットに入れっぱなしですので、ヘッドホンをつないでBluetoothレシーバーに出来れば、通話着信もパソコンの音声も両方それで完結するのではないかと思ったわけです。  自分で色々探して見た限りではデータ通信のペアリングやiPhone4S→パソコンへ音声を送出するやり方は見つけたのですが、iPhone4S側をレシーバーにする設定が見当たりません。他にはBluetoothオーディオトランスミッターなどが見つかりました。  そこで質問です。 1、iPhone4Sをレシーバーにできるようにするパソコンの設定は存在するのでしょうか。 2、Bluetoothオーディオトランスミッターを使ってやれば、iPhone4Sをレシーバーとして機能させることができるのでしょうか。(レシーバーとしての機能がiPhone4Sに備わっているか否か)  よろしくお願い致します。

  • SCIENCEを横一列に並べるときsがiより左にあ

    SCIENCEを横一列に並べるときsがiより左にあり、nがiより右にあるような並べ方は何通りありますか? 解説お願いします。

  • (VBA)FORMATを変換して書き出したい

    以下のようなテキストファイルを CHAPTER01=0:00:00.000 CHAPTER01NAME=test_001 CHAPTER02=0:04:02.719 CHAPTER02NAME=test_456 CHAPTER03=0:08:33.859 CHAPTER03NAME=test_741 下記のようなフォーマットにEXCELのVBAを利用して変更してテキストファイルで書き出したい 最初のモデルになるようなマクロコードを教えてください。 1 00:00:00,000 --> 00:00:10.000 test_001 2 00:04:02,719 --> 00:04:12.719 test_456 3 00:08:33,859 --> 00:08:43.859 test_456 このように、番号、開始時間と終了時間、テキストの3つの要素があります。 時間は時:分:秒,ミリ秒の形式で表されます。 各要素は空白行で区切られます。 終了時間=開始時間+10秒(00:00:10.000) ’---------------------------- 一応、何とか自前でコードは完成しましたが 運用上は問題なのですが算数的にはおこしな事になっています。 以下でDtime(10秒)を加算していますが ws2.Cells(i, "B") = DateAdd("s", Dtime, ws2.Cells(i, "A")) ws2.Cells(i, "A") が 0:04:02.719 だとすると 0:04:12.719 になるはずが 実際は、ws2.Cells(i, "B") は  0:04:13.000 と小数点以下がゼロになっています。 訂正を及びコードに関してアドバイスあればお願いします。 Option Explicit Sub test() Dim ws1 As Worksheet, ws2 As Worksheet Dim ls As Long, i As Long Set ws1 = Worksheets("DATA") Set ws2 = Worksheets("Convert") ls = ws1.Cells(Rows.Count, "A").End(xlUp).Row Dim txt As String Dim Dtime As String ws2.Cells.Clear ws2.Columns("A").NumberFormatLocal = "h:mm:ss.000" ws2.Columns("B").NumberFormatLocal = "h:mm:ss.000" For i = 1 To ls Step 2 '開始時間 txt = ws1.Cells(i, "A").Value ws2.Cells(i, "A") = Mid(txt, InStr(txt, "=") + 1) '表示時間指定 (任意) Dtime = 10 '終了時間 ws2.Cells(i, "B") = DateAdd("s", Dtime, ws2.Cells(i, "A")) '開始時間に10秒を加算 '時間部(開始 --> 終了) ws2.Cells(i, "C") = ws2.Cells(i, "A").Text & " --> " & ws2.Cells(i, "B").Text 'Title txt = ws1.Cells(i + 1, "A").Value ws2.Cells(i + 1, "C") = Mid(txt, InStr(txt, "=") + 1) Next 'Plane Text 保存 ----------------- Dim R_data As Integer '行番号 R_data = 1 Open "C:\Users\ABC\Desktop\Plane_text.txt" For Output As #1 Do While ws2.Cells(R_data, "C") <> "" Print #1, ws2.Cells(R_data, "C") If R_data Mod 2 = 0 Then '2の倍数のとき Print #1, "" '空白行を出力 End If R_data = R_data + 1 Loop Close #1 End Sub ’---------------------------------

  • Bluetooth-I2S機器の自作について

    Bluetoothオーディオレシーバーモジュール RN-52 http://ww1.microchip.com/downloads/en/DeviceDoc/70005120A.pdf こちらを使用して、オーディオ信号をI2S出力しようと考えています。 I2SにはLRCK,BCK,DATA,MCKの信号が必要ですが、 RN-52のデータシート(7ページ)を見ると、違う表記がされているます。 SDOx,SDIx,SCKx,SSx とありますが、これらはLRCK,BCK,DATA,MCKとどのように対応しているのでしょうか? ご教示お願いします。

  • 日付フォーマット

    テーブルから日付データを取得してフォーマットしたいのですがうまくいきません。 DATETIME型の項目に入っている日時(Y-m-d H:i:s)を取得してY/m/dにフォーマットしようと $result = date("Y/m/d", $getdata); としたところ、結果が 1970/01/01 となってしまいました。 $getdataには存在する日時(Y-m-d H:i:s)が入っている事を確認しています 正しくフォーマットするにはどうしたら良いのでしょうか?

    • ベストアンサー
    • PHP
  • PIC18F15Q40のI2Cスレーブ動作について

    現在、PIC18F15Q40をMicrochip MPLAB X v5.50とMCC v5.0.3で開発しています。 MCCの自動生成コードによってI2Cスレーブ動作(割り込み駆動)をさせ、 マスタからREAD要求 -> 固定長データを送り返すというようなプログラムを書きたいのですが、 データを送信し終わった後に割り込み処理から復帰せず、WDTによるリセットが掛かってしまいます。 以下、割り込み関数内の処理です。単純にデータカウンタをインクリメントし、それに応じたデータをI2C1_Writeしているだけになります。 void I2C_WriteInterrupt(void) { volatile static uint8_t tx_buf; switch(I2C_TxCounter) { case REV: tx_buf = Revision; break; case STAT: tx_buf = Status; break; case VOL_MSB: tx_buf = (uint8_t)((ADC_Result >> 8) & 0x00FF); break; case VOL_LSB: tx_buf = (uint8_t)(ADC_Result & 0x00FF); break; case CYL_MSB: tx_buf = (uint8_t)((CycleCount >> 8) & 0x00FF); break; case CYL_LSB: tx_buf = (uint8_t)(CycleCount & 0x00FF); break; default: tx_buf = 0xFF; } I2C1_Write(tx_buf); // カウンタ操作とタイマ再開 if(I2C_TxCounter < CYL_LSB) I2C_TxCounter++; } 以前PIC16F18877で同様の処理を行わせた際には特に問題は発生しなかったのですが…… MCCの設定はスレーブアドレスとクロックストレッチ有効、Interrupt Driven有効以外に変更していません。 どなたか解決策お持ちの方はいらっしゃいますでしょうか。

  • sdカードのフォーマットができない

    ある日突然、galaxy s4で、64gbのmicrosdが認識されなくなってしまいました。 バックアップデータや音楽データが半分以上入ってました。 空のsdカードですと表示されるようになってしまいました。 Pcにそのsdカードを繋いだところ、sdカードと認識はしてくれるのですが、ダブルクリックするとフォーマットをしますかというダイアログが出てしまったため、recuvaやZAR、diskdiggerなどのソフトを使ってデータを復旧してからsdをフォーマットしようと考えました。 使ってみたのですが、どれも失敗で、音楽のデータはpcにバックアップをとってあったので、スマホでフォーマットしました。そしたら、今度はファイルなどを削除・移動・コピーなどが一切できなくなってしまいました。 Pcでsdformatterなどを試してみたのですが、書き込みが禁止されていると出てしまい、フォーマットができなかったのです。 マイコンピュータ→sdカード→(右クリックしたあと)フォーマットをやったら、64gbのmicrosdなのに26.2gbと表示されてしまいました。確か、sdが壊れる前の空き容量はそれぐらいでした。 一体、どういう風にすれば今まで通り使えるのか、教えてください。お願い致します。データは消えても構いません。

  • インクリメントデータについて

    お世話になります。 for()ループ回数の値をCString へ格納したいです。 以下に検討しましたが、エラーになります。 CString Data; CString pp; for( int i=0; i<100; i++ ){ pp.Format(_T("%s"),i); Data += pp; } 求めたいのは、CString Data変数に for()のint iの回数分を インクリメントデータとして格納したいです。 Data = 0,1,2,3,4,5,・・・・99 のようなデータです。 どうぞよろしくお願い致します。

専門家に質問してみよう