(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】チェックサム付加方法およびチェックサム付加装置
(51)【国際特許分類】
H04L 1/00 20060101AFI20240910BHJP
G06F 13/38 20060101ALI20240910BHJP
G06F 11/10 20060101ALI20240910BHJP
【FI】
H04L1/00 A
G06F13/38 340E
G06F11/10 604
(21)【出願番号】P 2020070471
(22)【出願日】2020-04-09
【審査請求日】2023-03-29
(73)【特許権者】
【識別番号】000114215
【氏名又は名称】ミネベアミツミ株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】大塚 信也
(72)【発明者】
【氏名】山本 康介
【審査官】鉢呂 健
(56)【参考文献】
【文献】特開2014-023013(JP,A)
【文献】特開2013-058845(JP,A)
【文献】米国特許第6728908(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 1/00
H04L 1/08-1/24
G06F 13/38
G06F 11/10
(57)【特許請求の範囲】
【請求項1】
要求元から送信されたコマンド
、読み出し対象のデータが格納されているレジスタのアドレスであるレジスタアドレス、および固有のアドレスであるスレーブアドレスを取得するコマンド取得工程と、
前記コマンド
および前記レジスタアドレスに応じて、前記
レジスタからデータを読み出すデータ読出工程と、
前記データに付加されるチェックサムを算出するチェックサム算出工程と、
前記チェックサムおよび前記データを前記要求元に送信するデータ送信工程と
を含み、
前記チェックサム算出工程では、
前記レジスタアドレス、前記スレーブアドレス、前記コマンド、および前記データに基づいて、前記チェックサムを算出する
ことを特徴とするチェックサム付加方法。
【請求項2】
前記コマンド取得工程によって取得された前記コマンドが、第1のリードコマンドの場合、
前記データ読出工程では、
前記アドレスから所定のデータ単位の一のデータを読み出し、
前記チェックサム算出工程では、
前記一のデータに対して、前記チェックサムを算出する
ことを特徴とする請求項1に記載のチェックサム付加方法。
【請求項3】
前記コマンド取得工程によって取得された前記コマンドが、第2のリードコマンドの場合、
前記データ読出工程では、
前記アドレスから所定のデータ単位の複数のデータを読み出し、
前記チェックサム算出工程では、
前記複数のデータの各々に対して、前記チェックサムを算出する
ことを特徴とする請求項1または2に記載のチェックサム付加方法。
【請求項4】
前記コマンド取得工程によって取得された前記コマンドが、第3のリードコマンドの場合、
前記データ読出工程では、
前記アドレスから所定のデータ単位の複数のデータを含む一群のデータを読み出し、
前記チェックサム算出工程では、
前記一群のデータに対して、前記チェックサムを算出する
ことを特徴とする請求項1から3のいずれか一項に記載のチェックサム付加方法。
【請求項5】
要求元から送信されたコマンド
、読み出し対象のデータが格納されているレジスタのアドレスであるレジスタアドレス、および固有のアドレスであるスレーブアドレスを取得するコマンド取得部と、
前記コマンド
および前記レジスタアドレスに応じて、前記
レジスタからデータを読み出すデータ読出部と、
前記データに付加されるチェックサムを算出するチェックサム算出部と、
前記チェックサムおよび前記データを前記要求元に送信するデータ送信部と
を備え、
前記チェックサム算出部は、
前記レジスタアドレス、前記スレーブアドレス、前記コマンド、および前記データに基づいて、前記チェックサムを算出する
ことを特徴とするチェックサム付加装置。
【請求項6】
センサと、
前記センサの出力信号に対して所定の処理を行う集積回路と、
前記集積回路から必要なデータを取得する外部装置と
を備えたセンサシステムであって、
前記外部装置は、
複数種類のコマンドのうちの前記必要なデータを取得するための任意の一のコマンドと、
読み出し対象のデータが格納されているレジスタのアドレスであるレジスタアドレスと、固有のアドレスであるスレーブアドレスとを、前記集積回路に送信し、
前記集積回路は、
前記外部装置から送信されたコマンド
、前記レジスタのアドレスであるレジスタアドレス、および前記スレーブアドレスを取得するコマンド取得部と、
前記コマンド
および前記レジスタアドレスに応じて、前記
レジスタからデータを読み出すデータ読出部と、
前記データに付加されるチェックサムを算出するチェックサム算出部と、
前記チェックサムおよび前記データを前記外部装置に送信するデータ送信部と
を備え、
前記チェックサム算出部は、
前記レジスタアドレス、前記スレーブアドレス、前記コマンド、および前記データに基づいて、前記チェックサムを算出する
ことを特徴とするセンサシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、チェックサム付加方法およびチェックサム付加装置に関する。
【背景技術】
【0002】
下記非特許文献1には、温度センサおよび湿度センサを搭載したICに関し、外部からのコマンドに応じて、レジスタに格納されているセンサデータを読み出して、チェックサムを算出し、センサデータとチェックサムとを外部へ送信する技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Silicon Laboratories Inc.、"I2C HUMIDITY AND TEMPERATURE SENSOR"、[online]、[令和2年3月30日検索]、インターネット<https://www.silabs.com/documents/public/data-sheets/Si7006-A20.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、要求元から送信されたコマンドに応じて読み出されたデータを要求元へ送信する際に、コマンドに応じたより適切方法によって、データにチェックサムを付加することができない。
【課題を解決するための手段】
【0005】
一実施形態に係るチェックサム付加方法は、要求元から送信されたコマンドおよびアドレスを取得するコマンド取得工程と、コマンドに応じて、アドレスからデータを読み出すデータ読出工程と、データに付加されるチェックサムを算出するチェックサム算出工程と、チェックサムおよびデータを要求元に送信するデータ送信工程とを含み、チェックサム算出工程では、コマンドの種類に応じたデータ単位で、チェックサムを算出する。
【発明の効果】
【0006】
一実施形態に係るチェックサム付加方法によれば、要求元から送信されたコマンドに応じて読み出されたデータを要求元へ送信する際に、コマンドに応じたより適切方法によって、データにチェックサムを付加することができる。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る検出システムの構成を示す図
【
図3】一実施形態に係る通信部によるチェックサム付加方法の手順を示すフローチャート
【
図4】一実施形態に係る通信部によって送受信される通信データの第1例を示す図
【
図5】一実施形態に係る通信部によって送受信される通信データの第2例を示す図
【
図6】一実施形態に係る通信部によって送受信される通信データの第3例を示す図
【
図7】一実施形態に係る通信部によるチェックサムの算出例の一例を示す図
【発明を実施するための形態】
【0008】
以下、図面を参照して、一実施形態について説明する。
【0009】
(検出システム10の構成)
図1は、一実施形態に係る検出システム10(「センサシステム」の一例)の構成を示す図である。
図1に示す検出システム10は、センサ12、センサ14、IC(Integrated Circuit)20、およびMCU(Micro Controller Unit)40を備える。
【0010】
センサ12,14は、各種検出対象(例えば、温度、歪み等)を検出する。センサ12,14としては、差動型センサまたはシングルエンド型のセンサを用いることができる。なお、センサは、3つ以上であってもよく、IC20の内部に設けられてもよい。
【0011】
IC20は、センサ12,14から出力されたセンサ信号に対する所定の処理を行う集積回路である。例えば、IC20は、センサ12,14から出力されたセンサ信号を、増幅した後、アナログ信号からデジタル信号に変換して、レジスタ32に格納することができる。
【0012】
MCU40は、「要求元」および「外部装置」の一例であり、IC20の通信部34に対して、I2C通信を介してREADコマンドまたはWRITEコマンドを送信することにより、IC20のレジスタ32に対するデータの読み出しおよび書き込みを行うことができる。例えば、MCU40は、通信部34に対してREADコマンドを送信することにより、IC20のレジスタ32からセンサデータを読み出して、当該センサデータを用いた所定のデジタル処理を行うことができる。
【0013】
(IC20の構成)
図1に示すように、IC20は、マルチプレクサ22、PGA(Programmable Gain Amplifier)24、A-Dコンバータ26、およびデジタル処理回路30を備える。
【0014】
マルチプレクサ22は、センサ12,14の各々に接続されている。マルチプレクサ22は、センサ12,14の各々から出力される複数のセンサ信号のうちのいずれか一のセンサ信号を選択して、当該一のセンサ信号をPGA24へ出力する。
【0015】
PGA24は、マルチプレクサ22の出力端子に接続されている。PGA24は、ゲインを変更可能な増幅器である。PGA24は、マルチプレクサ22から出力されたセンサ信号を増幅して、A-Dコンバータ26へ出力する。
【0016】
A-Dコンバータ26は、PGA24の出力端子に接続されている。A-Dコンバータ26は、PGA24から出力されたセンサ信号を、アナログ信号からデジタル信号に変換して、デジタル処理回路30へ出力する。
【0017】
デジタル処理回路30は、A-Dコンバータ26の出力端子に接続されている。デジタル処理回路30は、レジスタ32および通信部34を有する。デジタル処理回路30は、A-Dコンバータ26から出力されたセンサ信号(デジタル信号)に対して、所定のデジタル信号処理を行う。例えば、デジタル処理回路30は、A-Dコンバータ26から出力されたセンサ信号(すなわち、センサデータ)をレジスタ32に格納する。デジタル処理回路30の通信部34は、MCU40からのコマンドに応じて、レジスタ32に対するデータの読み出しおよび書き込みを行う。例えば、通信部34は、MCU40からI2C通信を介して送信されたREADコマンドに応じて、レジスタ32に格納されている各種データ(センサデータを含む)を読み出して、当該データをI2C通信を介してMCU40へ送信する。
【0018】
なお、通信部34は、「チェックサム付加装置」の一例であり、チェックサム付加機能を有する。通信部34は、レジスタ32から読み出されたデータに対してチェックサム(I2C通信のCRC(Cyclic Redundancy Checking))を付加して、データおよびチェックサムをMCU40へ送信することができる。特に、本実施形態の通信部34は、コマンドの種類毎に異なる付加方法を用いて、データにチェックサムを付加することができる。
【0019】
(通信部34の機能構成)
図2は、一実施形態に係る通信部34の機能構成を示す図である。
図2に示すように、通信部34は、コマンド取得部201、データ読出部202、チェックサム算出部203、およびデータ送信部204を備える。
【0020】
コマンド取得部201は、MCU40から送信されたコマンドおよびアドレスを、MCU40とのI2C通信を介して取得する。
【0021】
データ読出部202は、コマンド取得部201によって取得されたコマンドに応じて、レジスタ32のコマンド取得部201によって取得されたアドレスからデータを読み出す。
【0022】
チェックサム算出部203は、データ読出部202によって読み出されたデータに付加されるチェックサムを算出する。
【0023】
データ送信部204は、データ読出部202によって読み出されたデータと、チェックサム算出部203によって算出されたチェックサムとを、MCU40とのI2C通信を介して、MCU40へ送信する。
【0024】
(通信部34によるチェックサム付加方法の手順)
図3は、一実施形態に係る通信部34によるチェックサム付加方法の手順を示すフローチャートである。
【0025】
まず、コマンド取得部201が、MCU40から送信されたコマンドおよびアドレスを取得する(ステップS301:コマンド取得工程)。
【0026】
次に、データ読出部202が、ステップS301で取得されたコマンドに応じて、レジスタ32のステップS301で取得されたアドレスからデータを読み出す(ステップS302:データ読出工程)。
【0027】
次に、チェックサム算出部203が、ステップS302で読み出されたデータに付加されるチェックサムを算出する(ステップS303:チェックサム算出工程)。
【0028】
次に、データ送信部204が、チェックサムおよびデータをMCU40に送信する(ステップS304:データ送信工程)。そして、通信部34は、
図3に示す一連の処理を終了する。
【0029】
ここで、本実施形態では、チェックサム算出部203は、ステップS303のチェックサム算出工程では、ステップS301で取得されたコマンドの種類に応じたデータ単位で、チェックサムを算出する。
【0030】
例えば、ステップS301で取得されたコマンドが、READコマンド(「第1のリードコマンド」の一例)の場合、データ読出部202は、レジスタ32のステップS301で取得されたアドレスから、所定のデータ単位(8bit)の一のデータを読み出す。そして、チェックサム算出部203は、レジスタ32から読み出された一のデータに対して、チェックサムを算出する。
【0031】
また、例えば、ステップS301で取得されたコマンドが、BURST READコマンド(「第2のリードコマンド」の一例)の場合、データ読出部202は、レジスタ32のステップS301で取得されたアドレスから、所定のデータ単位(8bit)の複数のデータを読み出す。そして、チェックサム算出部203は、レジスタ32から読み出された複数のデータの各々に対して、チェックサムを算出する。
【0032】
また、例えば、ステップS301で取得されたコマンドが、RESULT READコマンド(「第3のリードコマンド」の一例)の場合、データ読出部202は、レジスタ32のステップS301で取得されたアドレスから、所定のデータ単位(8bit)の複数のデータを含む一群のデータを読み出す。そして、チェックサム算出部203は、レジスタ32から読み出された一群のデータに対して、チェックサムを算出する。
【0033】
さらに、本実施形態では、チェックサム算出部203は、ステップS303のチェックサム算出工程では、ステップS301で取得されたコマンド、ステップS301で取得されたアドレス、およびステップS302で読み出されたデータを計算対象に含めて、チェックサムを算出する。
【0034】
(通信データの第1例)
図4は、一実施形態に係る通信部34によって送受信される通信データの第1例を示す図である。この第1例では、MCU40からREADコマンドが送信された場合の、通信部34によってMCU40との間で送受信される通信データおよび通信順序を表している。
【0035】
なお、
図4~
図6において、着色されたデータは、MCU40から通信部34に送信されるデータを表し、着色されていないデータは、通信部34からMCU40に送信されるデータを表す。
【0036】
図4に示す第1例では、まず、MCU40が、通信部34に対し、スレーブアドレス(Slave address)に続けて、読み出し対象のデータが格納されているレジスタ32のレジスタアドレス(Address)を送信する。なお、スレーブアドレス(Slave address)は、IC20に固有のアドレスである。次に、MCU40が、通信部34に対し、スレーブアドレス(Slave address)に続けて、READコマンド(R)を送信する。
【0037】
次に、通信部34が、READコマンド(R)を受信したことに応じて、レジスタ32の指定されたアドレスから、所定のデータ単位(8bit)の一のデータ(Data1)を読み出す。そして、通信部34は、レジスタ32から読み出された一のデータ(Data1)と、スレーブアドレス(Slave address)、レジスタアドレス(Address)、およびコマンド(R)とを計算対象として、チェックサム(CRC1)を算出する。さらに、通信部34は、一のデータ(Data1)をMCU40に送信し、続けて、チェックサム(CRC1)をMCU40に送信する。
【0038】
(通信データの第2例)
図5は、一実施形態に係る通信部34によって送受信される通信データの第2例を示す図である。この第2例では、MCU40からBURST READコマンドが送信された場合の、通信部34によってMCU40との間で送受信される通信データおよび通信順序を表している。
【0039】
図5に示す第2例では、まず、MCU40が、通信部34に対し、スレーブアドレス(Slave address)に続けて、読み出し対象のデータが格納されているレジスタ32のレジスタアドレス(Address)を送信する。次に、MCU40が、通信部34に対し、スレーブアドレス(Slave address)に続けて、BURST READコマンド(R)を送信する。
【0040】
次に、通信部34が、BURST READコマンド(R)を受信したことに応じて、レジスタ32の指定されたアドレスから、所定のデータ単位(8bit)の複数のデータ(Data1,DATA2)を読み出す。そして、通信部34は、レジスタ32から読み出された複数のデータ(Data1,DATA2)の各々を計算対象として、チェックサム(CRC1,CRC2)を算出する。この際、通信部34は、1番目のデータ(Data1)のチェックサム(CRC1)については、1番目のデータ(Data1)と、スレーブアドレス(Slave address)、レジスタアドレス(Address)、およびコマンド(R)とを計算対象として、チェックサム(CRC1)を算出する。さらに、通信部34は、順に、1番目のデータ(Data1)、1番目のデータのチェックサム(CRC1)、2番目のデータ(Data2)、2番目のデータのチェックサム(CRC2)を、MCU40に送信する。
【0041】
(通信データの第3例)
図6は、一実施形態に係る通信部34によって送受信される通信データの第3例を示す図である。この第3例では、MCU40からRESULT READコマンドが送信された場合の、通信部34によってMCU40との間で送受信される通信データおよび通信順序を表している。
【0042】
図6に示す第3例では、まず、MCU40が、通信部34に対し、スレーブアドレス(Slave address)に続けて、読み出し対象のデータが格納されているレジスタ32のレジスタアドレス(Address)を送信する。次に、MCU40が、通信部34に対し、スレーブアドレス(Slave address)に続けて、RESULT READコマンド(R)を送信する。
【0043】
次に、通信部34が、RESULT READコマンド(R)を受信したことに応じて、レジスタ32の指定されたアドレスから、所定のデータ単位(8bit)の複数のデータ(Data1,DATA2,DATA3)を含む一群のデータ(24bit)を読み出す。そして、通信部34は、レジスタ32から読み出された一群のデータと、スレーブアドレス(Slave address)、レジスタアドレス(Address)、およびコマンド(R)とを計算対象として、チェックサム(CRC1)を算出する。さらに、通信部34は、順に、1番目のデータ(Data1)、2番目のデータ(Data2)、3番目のデータ(Data3)、一群のデータのチェックサム(CRC1)を、MCU40に送信する。なお、通信部34は、レジスタ32の指定されたアドレスから、所定のデータ単位(8bit)の複数のデータ(Data1,DATA2)を含む一群のデータ(16bit)を読み出す場合もある。
【0044】
本実施形態では、通信部34は、初期値を「0xFF」として、計算対象のデータ(8bit)をCRC-8用の生成多項式{X8+X5+X4+1}で除算し、その余りをチェックサムとして算出する。
【0045】
また、本実施形態では、通信部34は、3種類のREADコマンド(READコマンド、BURST READコマンド、RESULT READコマンド)を、チェックサムの付加対象としている。
【0046】
(チェックサムの算出例)
図7は、一実施形態に係る通信部34によるチェックサムの算出例の一例を示す図である。
図7は、一例として、通信部34により、BURST READコマンド(R)を受信したことに応じて、レジスタ32から読み出された、1番目のデータ(Data1)および2番目のデータ(Data2)の各々のチェックサム(CRC1,CRC2)を算出する例を表している。
【0047】
図7に示す例では、通信部34は、1番目のデータ(Data1)のチェックサム(CRC1)を、初期値、スレーブアドレス(Slave address)+コマンド(R)、レジスタアドレス(Address)、1番目のデータ(Data1)の順に算出する。なお、初期値は、「0xFF」であり、1番目のデータ(Data1)は「0x00」である。この場合、通信部34は、1番目のデータ(Data1)のチェックサム(CRC1)として、「0xA2」を算出する。
【0048】
また、
図7に示す例では、通信部34は、2番目のデータ(Data2)のチェックサム(CRC2)を、初期値および2番目のデータ(Data2)を用いて、チェックサムを計算する。なお、初期値は、「0xFF」であり、2番目のデータ(Data2)は「0x00」である。この場合、通信部34は、2番目のデータ(Data2)のチェックサム(CRC2)として、「0xAC」を算出する。
【0049】
以上説明したように、一実施形態に係る通信部34は、MCU40から送信されたコマンドおよびアドレスを取得するコマンド取得部201と、コマンドに応じて、アドレスからデータを読み出すデータ読出部202と、データに付加されるチェックサムを算出するチェックサム算出部203と、チェックサムおよびデータをMCU40に送信するデータ送信部204とを備え、チェックサム算出部203は、コマンドの種類に応じたデータ単位で、チェックサムを算出する。
【0050】
これにより、一実施形態に係る通信部34は、MCU40から送信されたコマンドに応じて読み出されたデータをMCU40へ送信する際に、コマンドに応じたより適切方法によって、データにチェックサムを付加することができる。
【0051】
また、一実施形態に係る通信部34において、コマンド取得部201によって取得されたコマンドが、READコマンドの場合、データ読出部202は、アドレスから所定のデータ単位(8bit)の一のデータを読み出し、チェックサム算出部203は、一のデータに対して、チェックサムを算出する。
【0052】
これにより、一実施形態に係る通信部34は、MCU40から送信されたREADコマンドに応じて読み出されたデータをMCU40へ送信する際に、READコマンドに応じたより適切方法によって、データにチェックサムを付加することができる。
【0053】
また、一実施形態に係る通信部34において、コマンド取得部201によって取得されたコマンドが、BURST READコマンドの場合、データ読出部202は、アドレスから所定のデータ単位(8bit)の複数のデータを読み出し、チェックサム算出部203は、複数のデータの各々に対して、チェックサムを算出する。
【0054】
これにより、一実施形態に係る通信部34は、MCU40から送信されたBURST READコマンドに応じて読み出されたデータをMCU40へ送信する際に、BURST READコマンドに応じたより適切方法によって、データにチェックサムを付加することができる。
【0055】
また、一実施形態に係る通信部34において、コマンド取得部201によって取得されたコマンドが、RESULT READコマンドの場合、データ読出部202は、アドレスから所定のデータ単位(8bit)の複数のデータを含む一群のデータを読み出し、チェックサム算出部203は、一群のデータに対して、チェックサムを算出する。
【0056】
これにより、一実施形態に係る通信部34は、MCU40から送信されたRESULT READコマンドに応じて読み出されたデータをMCU40へ送信する際に、RESULT READコマンドに応じたより適切方法によって、データにチェックサムを付加することができる。
【0057】
また、一実施形態に係る通信部34において、チェックサム算出部203は、コマンド、アドレス、およびデータを計算対象に含めて、チェックサムを算出する。
【0058】
これにより、一実施形態に係る通信部34は、コマンド、アドレス、およびデータを含めて、符号誤りをチェックすることが可能となる。
【0059】
以上、本発明の一実施形態について詳述したが、本発明はこれらの実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【0060】
なお、上記実施形態で説明したIC20は、例えば、対象物に加わる荷重を検出する荷重検出装置において、アナログ信号を出力する歪みゲージと、デジタル処理を行うマイコンとの間を接続する、いわゆるAFE(Analog Front End)として使用される。但し、これに限らず、IC20は、歪みゲージ以外のセンサと接続されてもよく、上記実施形態で説明した検出システム10以外のシステム構成で使用されてもよい。
【符号の説明】
【0061】
10 検出システム(センサシステム)
12,14 センサ
20 IC
22 マルチプレクサ
24 PGA
26 A-Dコンバータ
30 デジタル処理回路
32 レジスタ
34 通信部
40 MCU(要求元、外部装置)