(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023073927
(43)【公開日】2023-05-26
(54)【発明の名称】半導体装置、USBシステムおよびパケット送信方法
(51)【国際特許分類】
G06F 13/38 20060101AFI20230519BHJP
G06F 3/00 20060101ALI20230519BHJP
【FI】
G06F13/38 340G
G06F13/38 350
G06F3/00 R
G06F13/38 320Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021186708
(22)【出願日】2021-11-16
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】鈴木 高之
【テーマコード(参考)】
5B077
【Fターム(参考)】
5B077MM02
5B077NN02
(57)【要約】
【課題】トランシーバがUSBデバイスにLPMトークンを正常送信することができる技術を提供することにある。
【解決手段】半導体装置は、UTMI+規格に準拠する第一のインタフェース回路を有するコントローラと、UTMI+規格に準拠する第二のインタフェース回路およびULPI規格に準拠する第三のインタフェース回路を有し、第二のインタフェース回路が第一のインタフェース回路から受信したデータを変換して、第三のインタフェース回路から送信する変換回路と、コントローラが出力するパケットを分析し、そのパケットの含まれるパケット識別子を認識および保持する第一の回路と、パケット識別子がUSBデバイスを低消費電力にするLPMであると第一の回路が判断する場合、送信コマンドの後に、LPMを示すパケット識別子を含むデータ列を付加するための第二の回路と、備える。
【選択図】
図6
【特許請求の範囲】
【請求項1】
UTMI+規格に準拠する第一のインタフェース回路を有するコントローラと、
前記UTMI+規格に準拠する第二のインタフェース回路およびULPI規格に準拠する第三のインタフェース回路を有し、前記第二のインタフェース回路が前記第一のインタフェース回路から受信したデータを変換して、前記第三のインタフェース回路から送信する変換回路と、
前記コントローラが出力するパケットを分析し、そのパケットの含まれるパケット識別子を認識および保持する第一の回路と、
前記パケット識別子がUSBデバイスを低消費電力にするLPM(Link Power Management)であると前記第一の回路が判断する場合、送信コマンドの後に、前記LPMを示すパケット識別子を含むデータ列を付加するための第二の回路と、備える半導体装置。
【請求項2】
請求項1の半導体装置において、
前記変換回路は前記パケット識別子を前記送信コマンドに変換すると共に、第一の送信許可信号を前記第二の回路に送信するよう構成され、
前記コントローラは第二の送信許可信号を受信すると前記データ列における前記パケット識別子の次のデータを出力するように構成される半導体装置。
【請求項3】
請求項2の半導体装置において、
前記パケット識別子が前記LPMとであると前記第一の回路が判断する場合、前記コントローラに対し、前記第二の回路は、前記第二の送信許可信号を送信しないよう構成される半導体装置。
【請求項4】
請求項3の半導体装置において、
前記第二の回路は、前記第一の送信許可信号が活性化されることを検出した1クロックサイクル後に、前記第二の送信許可信号を活性化するよう構成される半導体装置。
【請求項5】
請求項4の半導体装置において、
前記変換回路は、前記送信コマンドに続いて前記LPMを示すパケット識別子を前記第三のインタフェース回路から出力するよう構成される半導体装置。
【請求項6】
請求項2の半導体装置において、
前記パケット識別子がLPM以外であると前記第一の回路が判断する場合、前記コントローラに対し、前記第二の回路は前記第二の送信許可信号を送信するよう構成される半導体装置。
【請求項7】
請求項6の半導体装置において、
前記第二の回路は、前記第一の送信許可信号が活性化されることを検出した同一クロックで、前記第二の送信許可信号を活性化するよう構成される半導体装置。
【請求項8】
請求項7の半導体装置において、
前記変換回路は、前記送信コマンドに続いてデータを前記第三のインタフェース回路から出力するよう構成される半導体装置。
【請求項9】
UTMI+規格に準拠する第一のインタフェース回路を有するコントローラと、
前記UTMI+規格に準拠する第二のインタフェース回路およびULPI規格に準拠する第三のインタフェース回路を有し、前記第二のインタフェース回路が前記第一のインタフェース回路から受信したデータを変換して、前記第三のインタフェース回路から送信する変換回路と、
前記コントローラが出力するパケットを分析し、そのパケットの含まれるパケット識別子を認識および保持する第一の回路と、
前記パケット識別子がUSBデバイスを低消費電力にするLPM(Link Power Management)であると前記第一の回路が判断する場合、送信コマンドの後に、前記LPMを示すパケット識別子を含むデータ列を付加するための第二の回路と、を備える半導体装置と、
前記第三のインタフェース回路に接続されるトランシーバと、
前記トランシーバに接続されるUSBデバイスと、
を備えるUSBシステム。
【請求項10】
UTMI+規格に準拠する第一のインタフェース回路を有するコントローラと、
前記UTMI+規格に準拠する第二のインタフェース回路およびULPI規格に準拠する第三のインタフェース回路を有し、前記第二のインタフェース回路が前記第一のインタフェース回路から受信したデータを変換して、前記第三のインタフェース回路から送信する変換回路と、
を備える半導体装置のパケット送信方法であって、
前記コントローラが出力するパケットを分析し、そのパケットの含まれるパケット識別子を認識および保持し、
前記パケット識別子がUSBデバイスを低消費電力にするLPM(Link Power Management)であると判断する場合、送信コマンドの後に、前記LPMを示すパケット識別子を含むデータ列を付加するパケット送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は半導体装置に関し、例えば、ユニバーサルシリアルバス(USB)による通信を行うための制御を行うコントローラ(USBコントローラともいう。)を内蔵する半導体装置に適用可能である。
【背景技術】
【0002】
USB2.0(Universal Serial Bus 2.0)の規格には、USBのコントローラ(論理層回路)とトランシーバ(物理層回路)間のインタフェースの定義はない。しかし、UTMI+(USB2.0 Transceiver Macrocell Interface)とULPI(UTMI+ Low Pin Interface)が実質的な標準規格になっている。ULPIは、UTMI+の配線本数を削減したインタフェースである。
【0003】
また、USB2.0規格には、LPM(Link Power Management)という低消費電力モードのプロトコル規格がある。この規格では、LPM用のパケットを用いることにより、低消費電力モードへの遷移が規定されている。LPM用のバケットは、通常のアクティブ状態から低消費電力状態に遷移するよう要求する手段である。LPM用のパケットをLPMトークンともいう。ホストおよびデバイスは、LPMトークンとそれに対する応答パケットを送受信することによって、アクティブ状態から低消費電力状態へ遷移する。USBのホスト(USBコントローラ)がLPMトークンをUSBのデバイス(接続デバイス)へ送信して受理される(ACK信号が返信される)と、USBのデバイスおよびUSBのホストは低消費電力状態に遷移する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
USBコントローラがUMTI+規格に準拠するインタフェース回路を備え、トランシーバがULPI規格に準拠するインタフェース回路を備える場合、USBコントローラとトランシーバとの間にインタフェース変換回路が設けられる。この場合、USBコントローラがLPMトークンをトランシーバへ送信するとき、トランシーバはUSBデバイスにLPMトークンを正常送信することができない。
【0006】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0007】
本開示のうち代表的なものの概要を簡単に説明すれば次の通りである。すなわち、半導体装置は、UTMI+規格に準拠する第一のインタフェース回路を有するコントローラと、UTMI+規格に準拠する第二のインタフェース回路およびULPI規格に準拠する第三のインタフェース回路を有し、第二のインタフェース回路が第一のインタフェース回路から受信したデータを変換して、第三のインタフェース回路から送信する変換回路と、コントローラが出力するパケットを分析し、そのパケットの含まれるパケット識別子を認識および保持する第一の回路と、パケット識別子がUSBデバイスを低消費電力にするLPMであると第一の回路が判断する場合、送信コマンドの後に、LPMを示すパケット識別子を含むデータ列を付加するための第二の回路と、備える。
【発明の効果】
【0008】
上記半導体装置によれば、トランシーバがUSBデバイスにLPMトークンを正常送信することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は比較例におけるUSBシステムを示すブロック図である。
【
図2】
図2は
図1に示すUTMI+規格に準拠するバスおよびULPI規格に準拠するバスの詳細を示すブロック図である。
【
図4】
図4は
図1に示すUSBシステムがLPMトークンを送信する場合のパケットデータを示す図である。
【
図5】
図5は
図2に示すコントローラおよび変換回路の動作を示すタイミングチャートである。
【
図6】
図6は実施形態におけるUSBシステムを示すブロック図である。
【
図7】
図7は
図6に示すUSBシステムがLPMトークンを送信する場合のパケットデータを示す図である。
【
図8】
図8は
図6に示すコントローラおよび変換回路の動作を示すタイミングチャートである。
【発明を実施するための形態】
【0010】
以下、実施形態および変形例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【0011】
まず、本実施形態を明確にするため比較例におけるUSBシステムの構成について
図1を用いて説明する。
図1は比較例におけるUSBシステムを示すブロック図である。
【0012】
USBシステム10はUSBコントローラとしてのコントローラ(CNTR)110、インタフェースの変換回路(CNVR)120、トランシーバ(TRX)200およびUSBデバイスとしてのデバイス(DVC)300で構成される。コントローラ110および変換回路120はFPGA(Field Programmable Gate Array)またはマイクロコントローラ等の半導体装置100に搭載(内蔵)され、トランシーバ200は半導体装置100に外付けされて構成される。
【0013】
コントローラ110はUTMI+規格に準拠するインタフェース回路(以下、UMTI+回路または第一のインタフェース回路という。)111を有する。変換回路120は第二のインタフェース回路としてのUTMI+回路121とULPI規格に準拠するインタフェース回路(以下、ULPI回路または第三のインタフェース回路という。)122を有する。トランシーバ200はULPI201とUSB規格に準拠するインタフェース回路(USBI/F)202を有する。デバイス300はUSBI/F301を有する。コントローラ110と変換回路120はUTMI+規格に準拠するバス131で接続され、変換回路120とトランシーバ200はULPI規格に準拠するバス132で接続され、トランシーバ200とUSBのデバイス300はUSB規格に準拠するバス133で接続される。
【0014】
ULPI規格を用いたUSB2.0のパケット送信の概要について
図3を用いて説明する。
図3はパケットデータを示す図である。
【0015】
(a)コントローラ110は、PID(パケット識別子)から始まるデータ列(D0,D1)を生成する。
図3に示す「/PID」および「PID」は4ビット長である。「/PID」は「PID」の反転データである。「/PID」は、図面においては「PID」の上に「 ̄」を付加して記載されている。データのD0およびD1はそれぞれ8ビット(bit)長である。そして、コントローラ110は生成したパケットデータをバス131により変換回路120に送信する。
【0016】
(b)変換回路(CNVR)120は送信コマンド(TX CMD)を生成する。すなわち、変換回路120はコントローラ110から受信したデータの先頭1バイト(/PID+PID)をTX CMD(01_00b+PID)に置換する。また、「01_00b」の「b」はその前の数字が2進数のであることを示す。そして、変換回路120は変換したパケットデータをバス132によりトランシーバ200に送信する。
【0017】
(c)トランシーバ200は、送信コマンド(01_00b+PID)を逆引きし、コントローラ110が生成したデータを復元する。
【0018】
(d)トランシーバ200は、USB2.0の規格に従ったデータ変換を行う。そして、トランシーバ200は生成したパケットデータをバス133によりデバイス300へデータを送信する。
【0019】
通常、トランシーバ200ではLPMトークンを送信する場合、以下の動作となり、正常送信することができない。これについて
図4を用いて説明する。
図4は
図1に示すUSBシステムがLPMトークンを送信する場合のパケットデータを示す図である。
【0020】
(a)コントローラ110はLPMトークン(PID=0000b)を生成する。そして、コントローラ110は生成したパケットデータをバス131により変換回路120に送信する。
【0021】
(b)変換回路120は送信コマンドとして「01_00b+0000b」を生成する。そして、変換回路120は生成したパケットデータをバス132によりトランシーバ200に送信する。
【0022】
(c)ULPI規格におけるデータ送信には「PIDを送信するモード」と「PIDを送信しないモード」があり、送信コマンド中のPID値で決定される。
PID=0000bの場合、「PIDを送信しないモード」(ULPI規格動作)になる。したがって、トランシーバ200で復元されたデータは、「PIDなし」のデータ列になる。
【0023】
(d)トランシーバ200は、USB2.0の規格に従ったデータ変換を行う。そして、トランシーバ200は生成したパケットデータをバス133によりデバイス300へデータを送信する。
【0024】
しかし、LPMトークンではない無効なパケットがトランシーバ200から送信されるため、デバイス300はLPMによる低消費電力モードへ移行できない。
【0025】
パケット送信の詳細について
図2および
図5を用いて説明する。
図2はUTMI+規格に準拠するバスおよびULPI規格に準拠するバスの詳細を示すブロック図である。
図5は
図2に示すコントローラおよび変換回路の動作を示すタイミングチャートである。
【0026】
図4に示すように、バス131はデータバス131aと信号線131bと信号線131cとを含む。データバス131aは8ビット長のデータ(DataIn[7:0])をコントローラ110から変換回路120に入力する。信号線131bはデータバス131a上のデータが有効であることを示すデータ有効信号(TxValid)をコントローラ110から変換回路120に入力する。信号線131cは変換回路120がデータの受け取りが可能であることを示す送信許可信号(TxReady)を変換回路120からコントローラ110に入力する。
【0027】
バス132は、データバス132aと信号線132bと信号線132cとを含む。データバス132aは8ビット長のデータ(DATA[7:0])を変換回路120とトランシーバ200との間でやり取りする。信号線132bはパケットデータの最後のバイトであることを示す信号(STP)を変換回路120からトランシーバ200に入力する。信号線132cはトランシーバ200がデータの受け取ったことを示す送信要求信号(NXT)をトランシーバ200から変換回路120に入力する。
【0028】
タイミングt1において、コントローラ110はDataIn[7:0]として「/PID+PID」を出力すると共に、データ有効信号(TxValid)を活性化(アサート)する。ここで、タイミングt1~t8はクロック信号(CLK)の立ち上がりエッジである。
【0029】
タイミングt2において、変換回路120はコントローラ110から受信したDataIn[7:0]の「/PID+PID」を「01_00b+PID」の送信コマンドに置換する。そして、変換回路120は生成した送信コマンドをDATA[7:0]としてトランシーバ200に送信する。
【0030】
トランシーバ200は、DATA[7:0]の送信コマンドを受信した後、タイミングt4において、送信要求信号(NXT)を活性化して、変換回路120に送信する。変換回路120は、受信した送信要求信号(NXT)を送信許可信号(TxReady)として活性化してコントローラ110に送信する。ここで、タイミングt4~t7においてDataIn[7:0]およびDATA[7:0]は有効である。
【0031】
コントローラ110は活性化された送信許可信号(TxReady)に応答して、タイミングt5において、DataIn[7:0]として「D0」を出力する。変換回路120はコントローラ110から受信したDataIn[7:0]の「D0」をDATA[7:0]としてトランシーバ200に送信する。
【0032】
タイミングt6において、DataIn[7:0]として「D1」を出力する。変換回路(CNVR)120はコントローラ110から受信したDataIn[7:0]の「D1」をDATA[7:0]としてトランシーバ200に送信する。
【0033】
タイミングt7において、コントローラ110はデータ有効信号(TxValid)を非活性化(ネゲート)する。変換回路120はコントローラ110から受信した非活性化されたデータ有効信号(TxValid)に基づいて信号(STP)を活性化してトランシーバ200に送信する。
【0034】
タイミングt8において、トランシーバ200は活性化された信号(STP)に基づいて送信要求信号(NXT)を非活性化する。
【0035】
なお、
図4には図示していないが、
図5に示すDIRは、8ビット長のデータ(DATA[7:0])の送受信方向を示す信号であり、変換回路120からトランシーバ200に送信する場合は、非活性化され、トランシーバ200から変換回路120に送信する場合は、活性化される。
図5においては、DIRは、非活性化されている。
【0036】
上述したように、送信コマンドが「01_00b+0000b」である場合、トランシーバ200はパケットデータを送信コマンドがないデータにする。よって、「/PID+PID」はデバイス300に送信されない。
【0037】
次に、実施形態におけるUSBシステムの構成について
図6を用いて説明する。
図6は実施形態におけるUSBシステムを示すブロック図である。
【0038】
実施形態におけるUSBシステム10は、比較例におけるUSBシステムと同様な、USBのコントローラ(CNTR)110、インタフェースの変換回路(CNVR)120、トランシーバ(TRX)200およびUSBのデバイス(DVC)300で構成される。ただし、コントローラ110と変換回路120とを接続するバス131に、第一の回路としての判定回路(JDG)141および第二の回路としての制御回路(CNT)142が設けられる。
【0039】
判定回路141はバス131のDataIn[7:0]が伝達されるデータバス131aおよびデータ有効信号(TxValid)が伝達される信号線131bに接続される。判定回路141は、コントローラ110から送信されるパケットデータのPIDを認識および保持する。すなわち、判定回路141はPIDがLPMトークンであるかどうかを判定する。判定回路141は判定結果(LPMT)を信号線143に出力する。
【0040】
制御回路142は第一の送信許可信号(TxReady1)が伝達される信号線131d、第二の送信許可信号(TxReady2)が伝達される信号線131cおよび判定結果(LPMT)が伝達される信号線143に接続される。制御回路142は、PIDに応じて、変換回路120からの第二の送信許可信号(TxReady2)のコントローラ110への送信を制御する。
【0041】
実施形態におけるUSBシステムがLPMトークンを送信する場合のパケットデータについて
図7を用いて説明する。
図7は
図6に示すUSBシステムがLPMトークンを送信する場合のパケットデータを示す図である。
【0042】
(a)コントローラ110はLPMトークン(PID=0000b)を生成する。そして、USBのコントローラ110は生成したパケットデータをデータバス131aに出力する。
【0043】
(a’)判定回路141はDataIn[7:0]の先頭1バイトのデータからPIDを判別する。ここでは、DataIn[7:0]=F0hであるので、判定回路141はPIDがLPMトークンであると判定し、LPMTを活性化して信号線143により制御回路142に出力する。ここで、「F0h」の「h」はその前の英数字が16進数であることを示す。
【0044】
制御回路142は信号線131dにより伝達される活性化された第一の送信許可信号(TxReady1)をTxReady2に変換する。すなわち、制御回路142は活性化された第一の送信許可信号(TxReady1)の最初の1サイクルをマスクして第二の送信許可信号(TxReady2)を生成し、次の第一の送信許可信号(TxReady1)の活性化サイクルからはマスクを解除する。制御回路142は第二の送信許可信号(TxReady2)を信号線131dによりコントローラ110に伝達する。その結果、コントローラ(CNTR)110は「/PID+PID」の出力を保持し、データバス131aには「/PID+PID」が2バイト出力される。
【0045】
なお、PIDがLPMトークン以外であると判定回路141が判定する場合は、制御回路142は、第一の送信許可信号(TxReady1)をマスクせず、第一の送信許可信号(TxReady1)と同じ信号の第二の送信許可信号(TxReady2)を生成する。
【0046】
(b)変換回路120は1バイト目の「/PID+PID」から送信コマンドとして「01_00b+0000b」を生成すると共に、2バイト目の「/PID+PID」はデータとして扱う。そして、変換回路120は生成したパケットデータをバス132によりトランシーバ200に送信する。
【0047】
(c)上述したように、PID=0000bの場合、「PIDを送信しないモード」(ULPI規格動作)になり、1バイト目の「/PID+PID」は送信されない。しかし、2バイト目の「/PID+PID」はデータであるので、トランシーバ200で復元されたパケットデータには、2バイト目の「/PID+PID」が残るデータ列になる。
【0048】
(d)トランシーバ200は、USB2.0の規格に従ったデータ変換を行う。そして、トランシーバ200は生成したパケットデータをバス133によりデバイス300へデータを送信する。
【0049】
なお、PIDがLPMトークン以外の場合は、
図2に示すようなパケットデータが送信される。
【0050】
PIDがLPMトークンである場合のパケット送信の詳細について
図6および
図8を用いて説明する。
図8は
図6に示すコントローラおよび変換回路の動作を示すタイミングチャートである。
【0051】
タイミングt1~t3およびt6~t8の動作は、
図5と同様である。
【0052】
トランシーバ200は、DATA[7:0]の送信コマンドを受信した後、タイミングt4において、送信要求信号(NXT)を活性化して、変換回路120に送信する。変換回路120は、受信した送信要求信号(NXT)を第一の送信許可信号(TxReady1)として活性化して制御回路142に送信する。制御回路142は活性化された第一の送信許可信号(TxReady1)の最初の1サイクルをマスクして第二の送信許可信号(TxReady2)を生成し、非活性の第二の送信許可信号(TxReady2)を信号線131dによりコントローラ110に伝達する。ここで、タイミングt4~t7においてDATA[7:0]は有効である。
【0053】
なお、タイミングt4において、第二の送信許可信号(TxReady2)が非活性化されているので、タイミングt4’~t5の間においてコントローラ110はDataIn[7:0]として「/PID+PID」の出力を保持する。ここで、タイミングt4’~t7においてDataIn[7:0]は有効である。
【0054】
タイミングt4’において、制御回路142は活性化されている第一の送信許可信号(TxReady1)のマスクを解除して、第二の送信許可信号(TxReady2)を活性化する。制御回路142は活性化された第二の送信許可信号(TxReady2)を信号線131cによりコントローラ110に伝達する。変換回路120はコントローラ110から受信したDataIn[7:0]の「/PID+PID」をDATA[7:0]としてトランシーバ200に送信する。
【0055】
コントローラ110は活性化された第二の送信許可信号(TxReady2)に応答して、タイミングt5において、DataIn[7:0]として「D0」を出力する。変換回路120はコントローラ110から受信したDataIn[7:0]として「D0」をDATA[7:0]としてトランシーバ200に送信する。
【0056】
なお、PIDがLPMトークン以外の場合は、
図5に示すタイミングと同様にパケットデータが送信される。
【0057】
実施形態によれば、UMTI+規格に準拠するインタフェース回路を有するUSBコントローラがULPI規格に準拠するインタフェース回路を有するトランシーバへ変換回路を介してLPMトークンを送信するときでも、トランシーバはUSBデバイスにLPMトークンを正常送信することができる。また、USBコントローラおよび変換回路を変更する必要がない。
【0058】
以上、本開示者によってなされた開示を実施の形態に基づき具体的に説明したが、本開示は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【0059】
100 半導体装置
110 コントローラ
111 UTMI+回路(第一のインタフェース回路)
120 変換回路
121 UTMI+回路(第二のインタフェース回路)
122 ULPI回路(第三のインタフェース回路)
141 判定回路(第一の回路)
142 制御回路(第二の回路)