以下、本発明の実施形態について説明する。
(通信用LSI:概要)
本発明の実施形態に係る通信用LSIは、制御基板のCPUに成り代わって、制御基板の処理データを不揮発性メモリに記憶された共通鍵を用いて暗号化して外部に送信する機能を有している。即ち、通信用LSIは、図1に示すように、制御基板から外部への送信対象となる処理データを受信する受信部T2と、暗号化に用いられる共通鍵を記憶する不揮発性メモリ部T22と、受信部T2で受信された処理データを共通鍵を用いて暗号化する暗号部T3と、暗号部T3で暗号化された処理データを送信する送信部T4とを有している。
上記の受信部T2は、処理データをパラレルで受信してもよいし、シリアルで受信してもよい。受信部T2が処理データをパラレルで受信する場合は、CPUのデータバスに直結することができることから、送信の遅延を最小限に抑制することができる。また、受信部T2が処理データをシリアルで受信する場合は、通信用LSIT1を制御基板に搭載することに起因する信号線の増大を防止することができる。
受信部T2としては、UART通信機能を備えたUART部T11と、SPI通信機能を備えたSPI1部T12及びSPI2部T13と、I2C通信機能を備えたI2C部T16とが該当する。即ち、通信用LSIT1は、4個の受信部T2を備えており、これらの受信部T2により3種類の通信形態で処理データを受信可能にされている。これにより、通信用LSIT1は、複数の通信形態で処理データを受信することができるため、各種の制御装置や通信環境にとって最適な通信形態を選択できることから汎用性の高いものになっている。
尚、通信用LSIT1は、UART通信機能やSPI通信機能、I2C通信機能以外の通信規格による通信機能の有した受信部T2を備えていてもよい。即ち、通信用LSIT1は、1種類以上の通信機能の受信部T2を1以上備えていればよい。また、『処理データ』は、出力先の動作内容を指令する指令情報を含んでいてもよいし、出力先の表示等の情報処理に用いられる画像や文字の情報を含んでいてもよい。即ち、処理データは、どのようなデータであってもよい。
送信部T4は、処理データをパラレルで送信してもよいし、シリアルで送信してもよい。送信部T4が処理データをパラレルで送信する場合は、シリアルで送信する場合よりも送信時間を短縮することができる。また、送信部T4が処理データをシリアルで送信する場合は、通信用の信号線の数量をパラレルの場合よりも少なくすることができるため、信号ケーブルの外径の増大を抑制することができる。
送信部T4としては、UART部T11とSPI1部T12及びSPI2部T13とI2C部T16とが該当する。即ち、通信用LSIT1は、4個の送信部T4を備えており、これらの送信部T4により3種類の通信形態で処理データを送信可能にされている。これにより、通信用LSIT1は、複数の通信形態で処理データを送信することができるため、各種の制御装置や通信環境にとって最適な通信形態を選択できることから汎用性の高いものになっている。
尚、通信用LSIT1は、UART通信機能やSPI通信機能、I2C通信機能以外の通信規格による通信機能を有した送信部T4を備えていてもよい。即ち、通信用LSIT1は、1種類以上の通信機能の送信部T4を1以上備えていればよい。また、本実施形態における通信用LSIT1は、UART部T11とSPI1部T12及びSPI2部T13とI2C部T16とが送受信機能を有することによって、受信部T2及び送信部T4の両方を備えた構成にされているが、これに限定されるものでもない。即ち、通信用LSIT1は、受信専用の受信部T2や送信専用の送信部T4を備えていてもよい。
暗号部T3は、第三者が特別な知識無しでは読めないように変換する変換アルゴリズムで処理データを情報処理する暗号化機能を備えている。暗号化機能は、ステガノグラフィ方式やコード方式、サイファ方式による暗号化を採用することができる。ステガノグラフィ方式は、画像データ等に処理データを埋め込む電子透かし等の通信文を人目に付かない場所に記録する方法である。コード方式は、通信文の単語やフレーズを、事前に決めておいた言葉・記号で置き換える方法である。サイファ方式は、通信文を意味とは関係なく、所定のアルゴリズムに従って、1以上の文字やビットごとに置換や転置を行うことで、読めない文に変換する方法である。尚、サイファ方式としては、暗号化・復号化で同じ鍵を使う共通鍵暗号方式や暗号化・復号化で異なる鍵を使う公開鍵暗号方式等がある。
不揮発性メモリ部T22は、電源の供給なしに共通鍵等の記憶を保持する記憶部である。不揮発性メモリ部T22は、少なくとも一部が書き換え可能であればよい。即ち、不揮発性メモリ部T22は、共通鍵が記憶される書き換え可能な記憶領域と、書き換え不可な記憶領域とを有していてもよい。さらに、不揮発性メモリ部T22の書き換え可能な記憶領域は、外部からの専用の書き込み装置(図示せず)によってのみ書き換え可能にされていてもよい。また、不揮発性メモリ部T22は、1つの不揮発性メモリによって構成されることに限定されない。例えば、不揮発性メモリ部T22は、2以上の不揮発性メモリによって構成されてもよい。この際、書き換え可能な記憶領域と、書き換え不可な記憶領域とを、不揮発性メモリごとに分類してもよい。また、本実施形態において、不揮発性メモリ部T22は、通信用LSIT1内の他のブロック(暗号部T3(AES部T21)等)から読み取り専用にされているがこれに限定されない。
上記の構成によれば、通信用LSIT1において、受信した処理データを不揮発性メモリ部T22に記憶された共通鍵で暗号化して送信するため、通信用LSIT1に処理データを出力する制御基板側での暗号化処理が不要になると共に、通信用LSIT1へ共通鍵を送信する必要もない。これにより、暗号化に伴う制御基板の処理負担を増大させることはない。さらに、処理データが暗号化された状態で送信されることによって、送信途中における秘匿が確保されるため、送信途中の処理データを盗み取って内容を読み取ることによる不正行為を防止することができる。また、共通鍵は不揮発性メモリ部T22に書き換え可能に記憶されるため、電源からの電力供給が消失した場合でも共通鍵のデータを不揮発性メモリ部T22内に保持することができると共に、共通鍵を書き換えることでセキュリティ性を向上させることができる。この結果、制御基板側の負担を増大させることなく不正行為の防止を図ることができる。
さらに、本実施形態に係る通信用LSIT1は、制御基板のCPUに成り代わって、受信した処理データを不揮発性メモリに記憶された共通鍵を用いて復号化する復号化機能を暗号機能に加えて有している。即ち、通信用LSIT1は、処理データを受信する受信部T2と、暗号化に用いられる共通鍵を書き換え可能に記憶する不揮発性メモリ部T22と、受信部T2で受信した処理データが平文である場合、この処理データを共通鍵を用いて暗号化する暗号部T3と、受信部T2で受信した処理データが暗号文である場合、この処理データを共通鍵を用いて復号化する復号部T5と、暗号部T3で暗号化された処理データ及び復号部T5で復号化された処理データを送信する送信部T4とを有している。ここで、復号部T5は、暗号化・復号化で同じ鍵を使う共通鍵暗号方式による共通鍵により復号化してもよい。また、公開鍵暗号方式による秘密鍵により復号化してもよい。即ち、不揮発性メモリ部T22に書き換え可能に記憶される共通鍵とは、各種暗号方式で用いる暗号鍵であればよく、態様は限定されない。例えば、不揮発性メモリ部T22に書き換え可能に記憶される共通鍵は、上記のように暗号及び復号で共通な暗号鍵であってもよいし、暗号及び復号で異なる暗号鍵であってもよい。また、不揮発性メモリ部T22に書き換え可能に記憶される共通鍵とは、暗号及び復号時に用いる暗号鍵を生成するための情報であってもよい。
本実施形態における通信用LSIT1は、AES(Advanced Encryption Standard)機能を備えたAES部T21が暗号部T3及び復号部T5に該当する。これにより、通信用LSIT1は、一つのAES部T21により暗号化及び復号化することが可能にされている。尚、通信用LSIT1は、暗号部T3と復号部T5とをそれぞれ独立して備えていてもよい。また、通信用LSIT1は、複数種類の暗号方式により暗号化及び復号化するように構成されていてもよい。
上記の構成によれば、通信用LSIT1において、受信した処理データを不揮発性メモリ部T22に記憶された共通鍵で暗号化及び復号化して送信するため、通信用LSIT1に処理データを出力する制御基板側での暗号化処理が不要になると共に、制御基板側での復号化処理が不要になる。また、制御基板側から通信用LSIT1へ共通鍵を送信する必要もない。これにより、暗号化及び復号化に伴う制御基板の処理負担を増大させることはない。さらに、処理データが暗号化された状態で送信されることによって、送信途中における秘匿が確保されるため、送信途中の処理データを盗み取って内容を読み取ることによる不正行為を防止することができる。また、共通鍵は不揮発性メモリに書き換え可能に記憶されるため、電源からの電力供給が消失した場合でも共通鍵のデータを不揮発性メモリ内に保持することができると共に、共通鍵を書き換えることでセキュリティ性を向上させることができる。この結果、制御基板側の負担を増大させることなく不正行為の防止を図ることができる。
尚、暗号部T3は、共通鍵ブロック暗号方式により暗号化することが好ましい。この場合は、暗号化において論理圧縮が可能であるため、実装が容易であると共に、データパスを容易に所定のビット単位で分割可能であるため、小型実装から高速処理まで柔軟に対応した通信用LSIT1とすることができる。また、暗号部T3は、共通鍵ブロック暗号方式としてAESの暗号アルゴリズムを有することが好ましい。尚、通信用LSIT1は、AES部T21が共通鍵ブロック暗号方式のAES機能を有している。これにより、通信用LSIT1は、暗号の強度が高いと共に、全ての内部処理をバイト単位で実行するため、暗号化処理時における演算効率が高いことから暗号化及び復号化の処理に要する時間を短時間化することができる。
暗号アルゴリズムは、ハードウェアと、ソフトウェアと、ハードウェア及びソフトウェアの組み合わせと、のいずれであってもよい。例えば、暗号アルゴリズムは、暗号化・復号化プログラム、暗号化・復号化プログラムを実行する実行部、暗号化・復号化に用いる関数をハードウェアで実現した論理コンポーネント(論理ブロック)、論理コンポーネントを順に実行するための実行プログラム、及び、暗号化・復号化に必要な設定情報等であってもよい。このような暗号化に用いられる情報がソフトウェア(プログラム等)である場合は、不揮発性メモリ部T22の書き換え不可な記憶領域に記憶されることが好ましい。このように、不揮発性メモリ部T22において、書き換え可能な記憶領域に共通鍵が記憶され、書き換え不可な記憶領域に暗号化に用いられる情報が記憶されることで、暗号化用情報の改竄を防止すると共に、共通鍵を所望に書き換えることができる。この結果、さらに不正行為の防止を図ることができる。尚、暗号化用情報とは、暗号化・復号化において必要な情報を示す。
さらに、通信用LSIT1は、不揮発性メモリ部T22に対して共通鍵を書き込む共通鍵書込み装置T222に接続される専用端子T221とを有している。これにより、共通鍵の書込みや書き換えの際に、共通鍵書込み装置T222の専用端子T221への接続が必要になるため、共通鍵の変更による不正行為を防止することができる。また、製品毎、機種毎に、共通鍵を変更することができる。よって、1製品で共通鍵が知られてしまったとしても、当該製品以外で不正行為が行われることを防止することができる。
尚、共通鍵書込み装置T222は、書込み・書き換え可能な対象となる不揮発性メモリ部T22の記憶領域が制限されるものであってもよい。即ち、共通鍵書込み装置T222は、不揮発性メモリ部T22における共通鍵が記憶される記憶領域、又は、不揮発性メモリ部T22における書き換え可能な記憶領域のみアクセスできるものであってもよい。
(通信用LSI:構成:受信部・送信部:UART部T11)
上記の通信用LSIについての構成を具体的に説明する。
通信用LSIT1は、バスT19を有している。また、通信用LSIT1は、送信部及び受信部としてのUART部T11を有している。UART部T11は、バスT19にパラレルでデータを送受信可能に接続されている。UART部T11は、UART(Universal Asynchronous Receiver Transmitter)からなるシリアル通信装置をハードウエア構成として有している。また、UART部T11は、図19のUART処理ルーチン及び図20のUARTマスタ動作処理ルーチンを実行するハードウエア構成を有している。
ここで、UART部T11に接続された『HOST』とは、処理データを送受信する制御装置である。また、『LSI』とは、本通信用LSIT1に信号ケーブルを介して接続された通信用LSIである。尚、『LSI』は、同一構成の通信用LSIT1であることがコストダウンの点で好ましいが、異なる構成であってもよい。
UART部T11は、1バイト(8ビット)のデータを1本の信号ケーブルで送るように、時系列にデータを分解して1ビットづつ出力(送信)又は入力(受信)する機能を有している。UART部T11は、送信用と受信用とGND用との3線式の構成にされている。UART部T11は、送信用のTX端子と受信用のRX端子とを有しており、相手側となる他のUARTへの接続は、送信用のTX端子が相手側の受信用のRX端子に接続されることで行われる。
通信フォーマットは、調歩同期式と称される方式であり、タイミングをとるための同期クロック線を不要にしたフォーマットである。通常の通信フォーマットは、スタートビットからストップビットまでが1バイト分の転送となるフォーマットである。処理データの転送がない時は、Hレベルとなっている。そして、処理データを転送する時に、送信用のTX端子からスタートビットとして一定期間Lレベルのパルスが出力される。これにより、相手側のUARTにおける受信用のRX端子は、スタートビットによりHレベルからLレベル(0Vなど)に変化したことで、転送が開始されることを認識する。スタートビットが終了すると、処理データの1バイト分がビット0側(LSBともいう)から順に送信され、1バイト分(8ビット)の送信が完了すると、必要に応じてパリティビットがエラーチェック用のビットとして送信される。この後、必要に応じてパリティビットが送信された後、ストップビット(Hレベルのパルス)が送信される。
尚、本実施形態の通信用LSIを用いた通信システムにおいては、処理データが暗号化前の平文である場合はパリティビットが送信されない一方、処理データが復号化後の平文である場合はパリティビットが送信される。これにより、暗号化前と復号化後とで処理データに付加される情報量や情報内容を変化させることによって秘匿性が向上されている。また、パリティビットは、暗号化前に付加される一方、復号化後に付加されないようにされていてもよい。また、暗号化前に付加されるパリティビットと復号化後に付加されるパリティビットとのビット数を相違するものであってもよい。さらには、パリティビットの付加や付加禁止は、処理データの通信積算量が所定量以上となったときに変更されてもよいし、日時や使用開始(電源投入)からの処理時間の経過毎に変更されてもよい。これにより、一層、処理データの秘匿性を向上させることができる。
また、UART部T11は、通信速度(ボーレート)が切替え可能にされている。具体的には、110bps、150bps、300bps、600bps、1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、115kbps等の複数の設定速度中から特定の設定速度を選択可能にされている。bpsはビット/秒である。
尚、本実施形態の通信用LSIT1を用いた通信システムにおいては、処理データが暗号化前の平文である場合の送信速度と、処理データが復号化後の平文である場合の送信速度とが異なった速度に設定されている。これにより、通信速度の相違により処理データの秘匿性が向上されている。ここで、通信速度は、処理データの通信積算量が所定量以上となったときに変更されてもよいし、日時や使用開始(電源投入)からの処理時間の経過毎に変更されてもよい。これにより、一層、処理データの秘匿性を向上させることができる。
(通信用LSI:構成:受信部・送信部:SPI1部T12、SPI2部T13)
通信用LSIT1は、送信部及び受信部としてのSPI1部T12及びSPI2部T13を有している。これらのSPI1部T12及びSPI2部T13は、バスT19に接続されている。また、SPI1部T12及びSPI2部T13は、SPI(Serial Peripheral Interface)のハードウエア構成を有している。さらに、SPI1部T12及びSPI2部T13は、図21のSPI処理ルーチン及び図22のUSPIマスタ動作処理ルーチンを実行するハードウエア構成を有している。
SPIは、同期式のシリアル通信の規格であり、非同期式シリアル通信に比べて高速で通信可能であると共に、複数のスレーブを接続することが可能にされている。具体的には、SPIは、同期式のシリアルバスの一種であり、クロック信号用のSCK(Serial Clock)、送信用のMISO(Master In Slave Out)、受信用のMOSI(Master Out Slave In)、及びスレーブ選択用のSS(Slave Select)からなる4本の信号線を有している。
SPI1部T12及びSPI2部T13は、シフトレジスタ同等の機能を内蔵しており、クロック信号用のSCKのクロックに合わせて送信側からシリアルデータが順次出されていき、受信側において、シリアルデータがパラレルデータとして内部バスへ出力する構成を有している。処理データの送信タイミングは、クロックを出す側のSPI1部T12・T13が決定する。クロック信号を送信する側がマスタと称される。一方、クロック信号を受信してそのタイミングに従って処理データを送受信する側がスレーブと称される。これにより、例えば、マスタ側の通信用LSIT1やスレーブ側の通信用LSIT1、スレーブ側の制御機器等と称することができる。尚、クロック信号は、リロードタイマ部T14やクロック・リセット制御部T15により生成されている。
例えば、1マスタ及び1スレーブ間で通信する場合は、送信用のMISO(Master In Slave Out)と、受信用のMOSIとを互い違いに接続して、クロック信号用のSCK(Serial Clock)同士が接続される。また、1マスタ及び複数スレーブ間で通信する場合は、1つのマスタに対して複数のスレーブのSS同士が接続される。そして、スレーブ選択用のSSを用いて、複数のスレーブ中からマスタと通信する相手となるSPIを通信をするか否かが選択可能にされる。複数のスレーブ中からマスタと通信する相手を特定するため、スレーブ選択用のSS端子がLレベルに設定されることによって、そのスレーブが有効にされる。
尚、一方向の通信の場合は、スレーブからマスタへのデータ信号を省略可能である。これにより、ハードウエア的に一方向の通信を実現することができる。また、本実施形態の通信用LSIT1を用いた通信システムにおいて、通信用LSIT1同士を接続してSPI通信により行う場合は、SPI1部T12及びSPI2部T13とを接続し、一方をマスタ、他方をスレーブとする。これら通信用LSIT1と通信用LSIT1との間の通信速度は、UART部T11の通信速度とは異なる速度に設定されている。これにより、通信用LSIT1の受信側及び送信側における通信速度の相違により処理データの秘匿性が向上されている。ここで、SPI1部T12及びSPI2部T13の通信速度は、処理データの通信積算量が所定量以上となったときに変更されてもよいし、日時や使用開始(電源投入)からの処理時間の経過毎に変更されてもよい。これにより、一層、処理データの秘匿性を向上させることができる。
(通信用LSI:構成:受信部・送信部:I2C部T16)
通信用LSIT1は、送信部及び受信部としてのI2C部T16を有している。I2C部T16は、バスT19に接続されている。I2C部T16は、同期式のシリアル通信を行うI2C(Inter−Integrated Circuit)のハードウエア構成を有している。また、I2C部T16は、図25のI2C処理ルーチンを実行するハードウエア構成を有している。I2C部T16は、非同期式シリアル通信に比べて、高速で通信可能であると共に、SPIと同様に、複数のスレーブを接続することが可能になっている。マスタは、複数のスレーブの中からアドレスを指定しすることによりスレーブを選択し、その後、そのスレーブと通信するようになっている。ビットレートにより、標準モードやファーストモード、ハイスピードモード等の複数の通信速度を切替え可能になっている。
尚、I2C部T16の通信速度は、上述のUART部T11の通信速度及びSPI1部T12の通信速度とは異なる速度であることが好ましい。これにより、通信用LSIT1の受信側及び送信側における通信速度の相違により処理データの秘匿性が向上されている。ここで、I2C部T16の通信速度は、処理データの通信積算量が所定量以上となったときに変更されてもよいし、日時や使用開始(電源投入)からの処理時間の経過毎に変更されてもよい。これにより、一層、処理データの秘匿性を向上させることができる。
I2C部T16は、単数のマスタと単数又は複数のスレーブとの間をSCL線とSDA線とでパーティーライン状に接続することによりデータ通信可能にされている。I2C部T16は、マスタが常に権限を持っており、マスタが送信するクロック信号SCLを基準にして、データ信号がSDAライン上で転送される。また、各スレーブは、アドレスを有しており、データの中にアドレスが含まれていることと、1バイト転送毎に受信側からACK信号の返送をして、互いに確認を取りながらデータ転送を行うようになっている。そして、I2C部T16は、ブロック転送により大量のデータを転送することが可能にされている。
I2C通信の基本的な転送動作は、先ず、マスタ側におけるSCLがHighの場合にSDAをLowにしたときをスタートコンディションとし、その後、続けてマスタがクロックの供給を続けながらアドレスとRead/Write要求のデータを送信する。この後、アドレスで指定されたスレーブが、マスタと1対1で指定された方向に通信を行う。即ち、SCLのクロックに従って送信側から8ビットのデータが出力され、続いて受信側からアクノリッジ(ACK)信号が返送される。この時、受信する側は、処理データの取り出しが完了するまで、ビジーとしてSCLを強制的にLowにすれば、この間は見かけ上クロックが無くなるので、送信側は次のデータを出力するのを待つことになる。最後のデータ送信を完了し、ACKを確認したあと、スレーブがSDAを解放し、マスタがSDAをLowにしてクロックを停止してHighにしてから、SDAをHighにすることでストップシーケンスとなり通信が完了する。
I2C通信の基本的な通信のデータフォーマットとしては、アドレスフォーマットとデータフォーマットとがある。通信データ全体のフォーマットは、マスタが受信側になる場合には、最初にアドレスフォーマットの部分で、受信側になることを特定スレーブに向けて送信し、それに続いて指定されたスレーブがデータの送信を開始する。マスタはデータを受信したらACKを返信する。
(通信用LSI:構成:受信部・送信部:DMAC部T17)
通信用LSIT1は、通信用LSIT1に接続されたDMAC部T17を有している。DMAC部T17は、CPUを介さずにデータ転送を行うDMAコントローラからなるDMA(Direct Memory Access)のハードウエア構成を有している。また、DMAC部T17は、図24のDMAC処理ルーチンを実行するハードウエア構成を有している。DMAC部T17は、UART部T11やSPI1部T12、SPI2部T13、I2C部T16が送信部となってシリアル送信する場合に、必要に応じて、これらの送信と連動してDMA機能により処理データをシリアル送信させるようになっている。
DMAC部T17は、通信バッファ用のSRAM部T18に対してバスT19を介して読み書き可能にされている。尚、DMAC部T17は、ワーク用のSRAM部T20に対して読み書き可能にされていてもよい。例えば、DMAC部T17は、ワーク用のSRAM部T20から通信バッファ用のSRAM部T18に転送するようになっていてもよい。この場合には、SRAM部T20・T18間におけるデータ転送を短時間で処理することができる。
また、DMAC部T17は、シングル転送モードやブロック転送モード、デマンド伝送モードを切替え可能に有している。これらの転送モードは、使用目的やDMAスレーブデバイスの機能に応じて使い分け可能にされている。ここで、シングル転送モードは、DMA転送を1サイクル実行するたびにバス制御権を解放する方式である。ブロック転送モードは、DMA転送を開始すると、指定転送回数が完了するまで連続でDMA転送を実行し、バス制御権を解放しない方式である。デマンド伝送モードは、DMAスレーブデバイスから発行されるDMA転送要求信号によってDMA転送を開始し、要求信号がアクティブになっている間だけDMA転送を行う方式である。尚、バス制御権とは、バスT19を専有する権利のことであり、例えば、DMAC部T17がバス制御権を有すると、後述のAES部T21等のデバイスがバスT19を介して受信部T20にアクセスできない状態を言う。
尚、DMAC部T17は、転送時に誤り訂正データを必要に応じて処理データに付加してもよい。これにより、転送先においては、暗号化前や暗号化後に拘わらずに転送された処理データの誤り訂正が可能になる。尚、誤り訂正データは、DMAC部T17に記憶されていてもよいし、SRAM部T20やSRAM部T18、不揮発性メモリ部T22等の記憶部に記憶されていてもよいし、さらには、送信部T4となるSPI1部T12やSPI2部T13、UART部T11、I2C部T16に記憶されていてもよい。SRAM部T20に誤り訂正データが記憶された場合は、受信した処理データがSRAM部T20に記憶されたときに、誤り訂正データが付加された状態となる。
(通信用LSI:構成:暗号部・復号部:AES部T21)
通信用LSIT1は、暗号部及び復号部としてのAES部T21を有している。AES部T21は、バスT19に接続されている。AES部T21は、秘密の共通鍵を使う共通鍵ブロック暗号方式により暗号化と復号化を行うようになっている。即ち、AES部T21は、AES(Advanced Encryption Standard)暗号化アルゴリズムと、AES暗号化アルゴリズムの逆関数であるAES復号化アルゴリズムとをハードウエア構成で備えている。これらのアルゴリズムは、共通鍵を使って平文の処理データを暗号化すると共に、同じ共通鍵を使って暗号化した処理データを元の平文に戻すようになっている。また、AES部T21は、図23の暗号・復号処理ルーチンを実行するハードウエア構成を有している。
ここで、AES暗号アルゴリズムは、共通鍵暗号方式の代表的な暗号化アルゴリズムであり、鍵長が128ビット、192ビット、256ビットから選ぶことが可能であって、ブロック長が128ビットのSPN構造のブロック暗号である。
SPN構造(Substitution Permutation Network Structure)は、ブロック暗号の構成法の一種である。小さな非線形置換と、それを処理ブロック単位に拡大する転置からなる構造からSPN構造と称される。ほとんどのブロック暗号は、実装コストを効率化するため、同一のラウンド関数を繰り返す繰返し暗号になっており、SPN構造は、繰返し暗号の代表的な構成法である。他の構成としてはFeistel構造がある。また、ブロック暗号とは、共通鍵暗号の一種であり、固定長のデータ(ブロックと呼ぶ)を単位として処理する暗号の総称である。これに対して、ビット単位やバイト単位で処理を行う暗号はストリーム暗号と称される。
また、AES部T21は、暗号化前に誤り訂正データを処理データに付加することが可能になっている。これにより、転送先において、復号された処理データの誤り訂正を訂正することを可能にしている。尚、誤り訂正データは、AES部T21に記憶されていてもよいし、SRAM部T20やSRAM部T18、不揮発性メモリ部T22等の記憶部に記憶されていてもよい。SRAM部T20に誤り訂正データが記憶された場合は、受信した処理データがSRAM部T20に記憶されたときに、誤り訂正データが付加された状態となる。
本実施形態では、AES部T21は、AES暗号化アルゴリズムと、AES復号化アルゴリズムとをハードウェア構成として備え、SRAM部T20に配置されたデータを、不揮発性メモリ部T22の共通鍵に基づき暗号化・復号化するものであるが、これに限定されない。例えば、不揮発性メモリ部T22等の記憶部に暗号化・復号化プログラムを備え、AES部T21がこれらのプログラムを実行して不揮発性メモリ部T22の共通鍵に基づいて暗号化・復号化を行ってもよい。また、AES部T21は、AES暗号化アルゴリズム、及び、AES復号化アルゴリズムで用いる関数をハードウェアで実現した論理コンポーネント(論理ブロック)を有し、不揮発性メモリ部T22等の記憶部に記憶されたプログラムに従って暗号化・復号化を行ってもよい。
(通信用LSI:構成:記憶部:不揮発性メモリ部T22)
通信用LSIT1は、不揮発性メモリ部T22を有している。不揮発性メモリ部T22は、バスT19に接続されている。不揮発性メモリ部T22は、電源を供給しなくても記憶を保持する不揮発性メモリを有している。不揮発性メモリとしては、EEPROM(Electrically Erasable Programmable Read−Only Memory)、磁気抵抗RAM(MRAM:Magnetoresistive Random Access Memory)、抵抗変化型メモリ(ReRAM:Resistance Random Access Memory)、強誘電体メモリ(FeRAM:Ferroelectric Random Access Memory)、PRAM(Phase change RAM)等を用いることができる。
不揮発性メモリ部T22は、AES部T21における暗号化や復号化に用いられるAES暗号化アルゴリズム、AES復号化アルゴリズム、及び共通鍵を記憶している。本実施形態では、不揮発性メモリ部T22は、書き換え可能な記憶領域に共通鍵を記憶している。また、不揮発性メモリ部T22は、書き換え不可な記憶領域に、AES暗号化アルゴリズム及びAES復号化アルゴリズムとして、鍵長、暗号におけるラウンド数、及び、暗号対象となるデータが配置されるSRAM部T18上のアドレス等を記憶している。尚、これらの情報は書き換え可能な記憶領域に記憶されてもよい。
尚、不揮発性メモリ部T22に記憶する情報はこれに限定されない。例えば、不揮発性メモリ部T22は、AES部T21が実行する暗号化・復号化プログラム(暗号化用情報)を書き換え不可に記憶するものであってもよい。また、不揮発性メモリ部T22は、暗号化・復号化に用いる関数をハードウェアで実現した、複数の論理コンポーネント(論理ブロック)で構成されたAES部T21を順次実行するための実行プログラムを記憶するものであってもよい。
また、不揮発性メモリ部T22は、専用端子T221に接続されており、専用端子T221に接続された専用端子T221により記憶内容を変更可能にされている。専用端子T221は、汎用の端子とは形状やサイズ、ピン数等が異なる特殊な端子であり、共通鍵書込み装置T222は、専用端子T221に接続することが可能な端子を備えている。これにより、不揮発性メモリ部T22は、専用端子T221に接続可能な共通鍵書込み装置T222からのみアクセス可能にされている。
(通信用LSI:構成:記憶部:SRAM部T20)
通信用LSIT1は、記憶部としてワーク用のSRAM部T20を有している。SRAM部T20は、バスT19に接続されている。SRAM部T20は、496B等のSRAM(Static Random Access Memory)を有している。SRAM部T20は、制御装置からの処理データをUART部T11が受信したときの一時記憶用のメモリとして用いられると共に、AES部T21による処理データの暗号化及び復号化に用いられるようになっている。
(通信用LSI:構成:記憶部:SRAM部T18)
通信用LSIT1は、記憶部として通信バッファ用のSRAM部T18を有している。SRAM部T18は、バスT19に接続されている。SRAM部T18は、32K×8ページ分等のSRAMを有している。SRAM部T18は、AES部T21により復号化された平文の処理データを一時的に記憶し、DMAC部T17によりI2C部T16等の送信部を介して外部に送信される処理データの通信バッファとして用いられるようになっている。
(通信用LSI:構成:受信部・送信部:リロードタイマ部T14・クロック・リセット制御部T15)
通信用LSIT1は、バスT19に接続されたリロードタイマ部T14及びクロック・リセット制御部T15を備えている。リロードタイマ部T14は、リロードタイマのハードウエア構成を有している。リロードタイマは、カウントダウンのスタート値が決定されており、タイマがスタートすると、設定で決められた一定周期毎にカウントダウンし、カウントが0まで到達するとカウントダウン終了となり、カウンタのスタート値が再設定され、再びカウントダウンが再会されるという動作を繰り返すタイマーである。リロードタイマ部T14は、このリロードタイマを2チェンネル分備えている。尚、このリロードタイマは、UART部T11やI2C部T16や等の処理データの通信時のクロックに用いられるようになっている。
また、クロック・リセット制御部T15は、OSC(electronic oscillator)に接続されており、通信用LSIT1が動作するときのタイミングを取るための周期的な信号であるクロックパルスが入力されるようになっている。また、クロック・リセット制御部T15は、外部リセット信号が入力されるようになっており、この外部リセット信号の入力をトリガーとして通信用LSIT1の動作を初期化するようになっている。尚、外部リセット信号は、自動又は手動で出力されるものであり、例えば、不正や不具合が発生していることを管理者が発見したときに、異常ボタンを押圧操作して外部リセット信号をクロック・リセット制御部T15に出力して非常リセットする場合等に用いられる。AES部T21、DMAC部T17、SPI1部T12、SPI2部T13、UART部T11、及びI2C部T16は、条件判断や動作処理を実行するプログラムをハードウエア構成として備えている。尚、通信用LSIT1がバスT19に接続され、各プログラムを実行させるCPU部を備えていてもよい。
(通信用LSIを搭載した通信システム:構成1)
上記の通信用LSIT1を搭載した構成1の通信システムを図2〜図4に基づいて説明する。
構成1の通信システムは、図2に示すように、暗号化前の処理データを出力するホスト側制御装置T31と、ホスト側制御装置T31に通信可能にされ、この通信により受信した処理データを暗号化するマスタ側の通信用LSIT33と、マスタ側の通信用LSIT33に通信可能にされ、この通信により受信した暗号化された処理データを復号化するスレーブ側の通信用LSIT34と、通信用LSIT34に通信可能にされ、この通信により受信した復号化された処理データに基づいて作動するサブホスト側制御装置T32とを有している。
尚、通信用LSIT33及び通信用LSIT34には、上述の通信用LSIT1がそれぞれ用いられている。また、通信は、有線及び無線の何れであってもよい。有線と無線とを組み合わせた具体例については後述する。また、ホスト側制御装置T31及びサブホスト側制御装置T32は、遊技機の制御装置の他、掃除機や冷蔵庫、テレビ等の家電製品、自動車や電車等の制御装置、その他の産業機器の制御装置が該当する。
ホスト側制御装置T31と通信用LSIT33とは、UART通信により双方向にシリアル送信可能にされている。ホスト側制御装置T31及び通信用LSIT33間の第1通信速度は、38400bpsに設定されている。また、通信用LSIT34とサブホスト側制御装置T32とは、UART通信により双方向にシリアル送信可能にされている。通信用LSIT34及びサブホスト側制御装置T32間の第3通信速度は、38400bpsに設定されている。尚、本実施形態においては、第1通信速度と第3通信速度とが同一の通信速度に設定されているが、これに限定されるものではなく、異なる通信速度に設定されていてもよい。これにより、処理データの秘匿性を高めることが可能になっている。
また、通信用LSIT33と通信用LSIT34とは、SPI通信により通信用LSIT33から通信用LSIT34への一方向にシリアル通信可能にされている。通信用LSIT33及び通信用LSIT34間の第2通信速度は、ホスト側制御装置T31及び通信用LSIT33間の第1通信速度よりも低速に設定されていると共に、通信用LSIT34及びサブホスト側制御装置T32間の第3通信速度よりも低速に設定されている。これにより、暗号化された処理データを送信する第2通信速度が第1通信速度及び第3通信速度とは異なる通信速度に設定されることによって、処理データの秘匿性を高めることが可能になっている。尚、第1通信速度と第2通信速度と第3通信速度とは、それぞれ異なる通信速度であってもよい。
構成1の通信システムを具体的に説明すると、図3に示すように、ホスト側制御装置T31のUARTT311が通信用LSIT33のUART部T11に接続されている。通信用LSIT33のSPI1部T12は、通信用LSIT34のSPI1部T12に接続されている。通信用LSIT34のUART部T11は、サブホスト側制御装置T32のUARTT321に接続されている。
尚、通信用LSIT33のSPI1部T12における送信用のMISO(Master
In Slave Out)と、通信用LSIT34のSPI1部T12における受信用のMOSIとがデータ信号用としてのみ接続されている。即ち、その他の送信用のMISOと受信用のMOSIとの接続は行われていない。これにより、通信用LSIT33から通信用LSIT34への一方向のデータ通信が実現されている。
上記のように構成された通信システムの動作を説明する。
先ず、出荷段階や通信用LSIT1を搭載した機器の設置後の段階において、暗号化のための共通鍵データ、AES暗号化アルゴリズム、及びAES復号化アルゴリズムが専用端子T221に接続された共通鍵書込み装置T222やその他の不揮発性メモリ用ライタ等から不揮発性メモリ部T22に記憶される。この処理は、全ての通信用LSIT33及び通信用LSIT34において行われる。尚、出荷段階において、AES暗号化アルゴリズム、及びAES復号化アルゴリズムが記憶された記憶領域が書き換え不可にされてもよい。
この後、図4に示すように、ホスト側制御装置T31から所定量の処理データが8ビット(1バイト)単位でシリアル送信されると、通信用LSIT33のUART部T11に受信される。この際、パリティビットは付加されてない。また、通信は、非同期であり、リロードタイマとOSCを用いたクロックに基づいて行われる。また、UART通信は、ハードウエアフロー制御によりデータの欠落が防止されている。
通信用LSIT33のUART部T11に受信された処理データは、496Bのワーク用のSRAM部T20に記憶される。SRAM部T20に所定量の処理データが記憶されると、AES部T21が作動し、誤り訂正データが処理データに付加された後、共通鍵データ及びAES暗号化アルゴリズムを用いて処理データ及び誤り訂正データが暗号化される。これにより、処理データ及び誤り訂正データは、暗号文からなる暗号化処理データ及び暗号化誤り訂正データに置き換わることになる。
次に、通信用LSIT33において暗号化処理データ及び暗号化誤り訂正データがSPI1部T12間のSPI通信により通信用LSIT34にシリアル送信され、この通信用LSIT34におけるワーク用のSRAM部T20に記憶される。そして、全ての処理データが記憶されたときに、AES部T21による復号化が行われる。尚、一部の処理データが記憶される毎にAES部T21による復号化を順次行うようにしてもよい。即ち、共通鍵データとAES復号化アルゴリズムとを用いて暗号化処理データ及び暗号化誤り訂正データが復号化される。そして、復号化された誤り訂正データを用いて処理データの誤り訂正が行われる。この結果、ワーク用のSRAM部T20は、復号化された処理データに置き換わることになる。
この後、復号化された処理データにパリティビットが付加されながら、サブホスト側制御装置T32のUARTT321にパリティビット+8ビット(1バイト)の単位でシリアル送信される。そして、サブホスト側制御装置T32におけるパリーティーチェックによりデータ送信の成否が判定され、失敗していれば、送信先の通信用LSIT34のUART部T11に対して再送信を促したり、データを破棄する。
また、このような一連の処理動作中や処理動作の前後において、クロック・リセット制御部T15に対して外部リセット信号が自動や手動で入力されると、通信用LSIT33及び通信用LSIT34が初期状態に復帰される。これにより、不正行為や異常動作の検知時や発見時に、外部リセット信号を自動や手動で入力可能に構成することによって、不正行為や異常動作を検知や発見してから短時間でリセットすることができる。
(通信用LSIを搭載したシステム:構成2)
上記の通信用LSIT1を搭載した構成2の通信システムを図5〜図7に基づいて説明する。
構成2の通信システムは、図5に示すように、暗号化前の処理データを出力するホスト側制御装置T41と、ホスト側制御装置T41に通信可能にされ、この通信により受信した処理データを暗号化するマスタ側の通信用LSIT43と、マスタ側の通信用LSIT43に通信可能にされ、この通信により受信した暗号化された処理データを復号化するスレーブ側の複数(2個等)の通信用LSIT44・T45と、これらの通信用LSIT44・T45に通信可能にされ、この通信により受信した復号化された処理データに基づいて作動する複数(4個×2等)のI2CデバイスT42とを有している。
尚、通信用LSIT43及び通信用LSIT44には、上述の通信用LSIT1がそれぞれ用いられている。また、通信は、有線及び無線の何れであってもよい。有線と無線とを組み合わせた具体例については後述する。また、ホスト側制御装置T41は、遊技機の制御装置の他、掃除機や冷蔵庫、テレビ等の家電製品、自動車や電車等の制御装置、その他の産業機器の制御装置が該当する。
ホスト側制御装置T41と通信用LSIT43とは、SPI通信により双方向にシリアル送信可能にされている。ホスト側制御装置T41及び通信用LSIT43間の第4通信速度は、最大5Mbpsに設定されている。また、通信用LSIT43と各通信用LSIT44とは、SPI通信により双方向にシリアル送信可能にされている。通信用LSIT43及び各通信用LSIT44間の第5送信速度は、最大5Mbpsに設定されている。尚、第4通信速度と第5通信速度とは、同一の通信速度であってもよいが、データの秘匿性の観点から異なる通信速度であることが好ましい。さらに、複数の第5通信速度間において、同一の通信速度であってもよいが、データの秘匿性の観点から異なる通信速度であることが好ましい。
通信用LSIT44とI2CデバイスT42とは、I2Cにより通信用LSIT44から通信用LSIT43へ一方向にシリアル送信可能にされている。通信用LSIT44及びI2CデバイスT42間の第6通信速度は、最大1Mbpsに設定されている。尚、第6通信速度は、第4通信速度及び第5通信速度と同一の通信速度であってもよいが、データの秘匿性の観点から異なる通信速度であることが好ましい。さらに、複数の第6通信速度間においても、データの秘匿性の観点から異なる通信速度に設定されていることが好ましい。
構成2の通信システムを具体的に説明すると、図6に示すように、ホスト側制御装置T41のUARTT411が通信用LSIT43のSPI2部T13に接続されている。通信用LSIT43のSPI1部T12は、複数の通信用LSIT44のSPI1部T12に接続されている。通信用LSIT44のI2C部T16は、複数のI2CデバイスT42に接続されている。
尚、通信用LSIT43及び通信用LSIT44は、SPI1部T12における送信用のMISOと受信用のMOSIとが相互に接続されている。これにより、通信用LSIT43及び通信用LSIT44間の双方向のデータ通信が実現されている。
上記のように構成された通信システムの動作を説明する。
先ず、出荷段階や通信用LSIT1を搭載した機器の設置後の段階において、暗号化のための共通鍵データ、AES暗号化アルゴリズム、及びAES復号化アルゴリズムが専用端子T221に接続された共通鍵書込み装置T222やその他の不揮発性メモリ用ライタ等から不揮発性メモリ部T22に記憶される。この処理は、全ての通信用LSIT43及び通信用LSIT44において行われる。尚、出荷段階において、AES暗号化アルゴリズム、及びAES復号化アルゴリズムが記憶された記憶領域が書き換え不可にされてもよい。
この後、図7に示すように、ホスト側制御装置T41から所定量の処理データが8ビット(1バイト)単位でSPI通信によりシリアル送信されると、通信用LSIT43のSPI2部T13に受信される。尚、通信は、リロードタイマとOSCを用いたクロックに基づいて行われる。
通信用LSIT43のSPI2部T13に受信された処理データは、496Bのワーク用のSRAM部T20に記憶される。SRAM部T20に所定量の処理データが記憶されると、AES部T21が作動し、誤り訂正データが処理データに付加された後、共通鍵データ及びAES暗号化アルゴリズムを用いて処理データ及び誤り訂正データが暗号化される。これにより、処理データ及び誤り訂正データは、暗号文からなる暗号化処理データ及び暗号化誤り訂正データに置き換わることになる。
次に、スレーブとなる送信先の通信用LSIT44のスレーブ選択用のSSがアクティブにされることにより選択される。そして、暗号化処理データ及び暗号化誤り訂正データがSPI通信により通信用LSIT44のSPI1部T12にシリアル送信される。シリアル送信された暗号化処理データ及び暗号化誤り訂正データは、ワーク用のSRAM部T20に記憶される。そして、全ての暗号化処理データ及び暗号化誤り訂正データが記憶されたときに、AES部T21による復号化が行われる。尚、一部の処理データが記憶される毎にAES部T21による復号化を順次行うようにしてもよい。そして、復号化された誤り訂正データを用いて処理データの誤り訂正が行われる。この結果、ワーク用のSRAM部T20は、復号化された処理データに置き換わることになる。
復号化された処理データは、通信バッファ用のSRAM部T18に記憶される。記憶されたデータ量は、DMAC部T17により監視されている。この後、通信バッファ用のSRAM部T18に所定量以上の処理データが格納されると、DMAC部T17において転送要求が生成され、この転送要求によりDMAC部T17は、サイクルスチールの通常モードで作動する。即ち、DMAC部T17は、送信先のI2CデバイスT42を選択した後、このI2CデバイスT42に対してリロードタイマ及びOSCにより形成されたバスサイクルの下、一回の転送単位(例えば、16 バイト単位)で通信バッファ用のSRAM部T18からI2C部T16を介してI2CデバイスT42に転送する。そして、一回の転送単位ごとにバス権を他のUART部T11やAES部T21等のバスマスタに渡し、その後、転送要求が生成されれば、他のバスマスタからバス権を取り戻し、再び1転送単位の転送を行うという通信処理を転送終了条件が満たされるまで繰り返す。
また、このような一連の処理動作中や処理動作の前後において、クロック・リセット制御部T15に対して外部リセット信号が自動や手動で入力されると、通信用LSIT33及び通信用LSIT34が初期状態に復帰される。これにより、不正行為や異常動作の検知時や発見時に、外部リセット信号を自動や手動で入力可能に構成することによって、不正行為や異常動作を検知や発見してから短時間でリセットすることができる。
(遊技機:概要)
次に、通信用LSIT1を備えた遊技機1について説明する。
図9に示すように、遊技機1は、遊技を実行する主基板11と、主基板11から送信される処理データに基づいて遊技に関する演出処理を実行するサブ側基板12とを有している。そして、図10に示すように、主基板11は、処理データを暗号化し、サブ側基板12に送信する第1の通信用LSIT33を有しており、サブ側基板12は、第1の通信用LSIT33からの処理データを受信し、当該処理データを復号化する第2の通信用LSIT34を有している。第1の通信用LSIT33は、第1の通信用LSIT33に内蔵される不揮発性メモリ部T22に書き換え可能に記憶される共通鍵に基づいて、サブ側基板12(第2の通信用LSIT34)に送信する処理データを暗号化する。また、第2の通信用LSIT34は、第2の通信用LSIT34に内蔵される不揮発性メモリ部T22に書き換え可能に記憶される共通鍵に基づいて、主基板11(第1の通信用LSIT33から送信された処理データを復号化する。
上記の構成によれば、遊技機1は、主基板11の通信用LSIT33において、処理データを通信用LSIT33内の不揮発性メモリ部T22に記憶された共通鍵で暗号化して送信する。また、サブ側基板12の通信用LSIT34において処理データを通信用LSIT34内の不揮発性メモリ部T22に記憶された共通鍵で復号化する。そのため、主基板11及びサブ側基板12での暗号化処理が不要になると共に、通信用LSIへ共通鍵を送信する必要もない。これにより、暗号化に伴う主基板11及びサブ側基板12の処理負担を軽減させることができると共に、処理データが暗号化された状態で主基板11からサブ側基板12に送信されることによって、送信途中における秘匿が確保されるため、送信途中の処理データを盗み取って内容を読み取ることによる不正行為を防止することができる。また、共通鍵は不揮発性メモリ部T22に書き換え可能に記憶されるため、電源からの電力供給が消失した場合でも共通鍵のデータを不揮発性メモリ部T22内に保持することができると共に、共通鍵を書き換えることでセキュリティ性を向上させることができる。
また、上記の第1の通信用LSIT33及び第2の通信用LSIT34は、処理データを受信する受信部と、受信部で受信した受信データが平文である場合、当該処理データを暗号化する暗号部と、受信部で受信した受信データが暗号文である場合、当該処理データを復号化する復号部と、暗号部で暗号化された処理データ及び復号部で復号化された処理データを送信する送信部とを有する。
上記の構成によれば、通信用LSIT33及び通信用LSIT34を同一の通信用LSIT1で形成することができるため、通信用LSIT33及び通信用LSIT34に要する部品コストを低減することができる。
尚、本実施形態においては、パチスロ装置を用いて遊技機1を説明するが、これに限定されるものではなく、遊技機1がパチンコ装置であってもよい。さらに、遊技機1は、ストップボタンを有しないスロットマシンであってもよいし、その他のルーレットゲーム等のゲーミングマシンであってもよい。
(遊技機1の構造)
次に、パチスロ装置が適用された遊技機1の構造について説明する。図8は、遊技機1の外部構造を示す。
(リール53a・53b・53cと表示窓55a・55b・55c)
遊技機1は、リールや回路基板等を収容するキャビネット51と、キャビネット51に対して開閉可能に取り付けられるフロントドア52とを備える。キャビネット51の内部には、3つのリール53a・53b・53cが横並びに設けられている。各リール53a・53b・53cは、円筒状のフレームの周面に帯状のシートを貼り付けた構成にされている。、帯状のシートは、複数の図柄(例えば21個)を有している。これらの図柄は、リール53a・53b・53cの回転方向に沿って連続的に配置されている。
フロントドア52の中央には、液晶表示装置54が配置されている。液晶表示装置54は、図柄表示領域54a・54b・54cを含む表示画面を備えている。液晶表示装置54は、正面から見て3つのリール53a・53b・53cに重畳する手前側に位置するように配置されている。図柄表示領域54a・54b・54cは、3つのリール53a・53b・53cのそれぞれに対応して配置されている。図柄表示領域54a・54b・54cは、その背後に設けられたリール53a・53b・53cを透過することが可能になっている。
つまり、図柄表示領域54a・54b・54cは、表示窓55a・55b・55cとしての機能を果たすものであり、その背後に設けられたリール53a・53b・53cの回転及びその停止の動作が遊技者側から視認可能となる。また、本実施形態では、図柄表示領域54a・54b・54cを含めた表示画面の全体を使って、映像の表示が行われ、演出が実行される。
図柄表示領域54a・54b・54c(以下、表示窓55a・55b・55c)は、その背後に設けられたリール53a・53b・53cの回転が停止されたとき、リール53a・53b・53cの表面に配された複数種類の図柄のうち、その枠内における上段、中段及び下段の各領域にそれぞれ1個の図柄(合計で3個)を表示する。また、各表示窓55a・55b・55cが有する上段、中段及び下段からなる3つの領域のうち予め定められた何れかをそれぞれ組合せてなる擬似的なラインを、入賞か否かの判定を行う対象となるライン(入賞判定ライン)として定義する。
本実施の形態では、各表示窓55a・55b・55cの上段を組合せてなるトップライン、各表示窓55a・55b・55cの中段を組合せてなるセンターライン、各表示窓55a・55b・55cの下段を組合せてなるボトムライン、左表示窓55aの上段、中表示窓55bの中段及び右表示窓55cの下段を組合せてなるクロスダウンライン、左表示窓55aの下段、中表示窓55bの中段及び右表示窓55cの上段を組合せてなるクロスアップラインの5つを入賞判定ラインとして設けている。
(操作装置)
フロントドア52には、遊技者による操作の対象となる各種装置が設けられている。ベットボタン56a・56b・56cは、1回の遊技にベットする枚数を指定するためのものである。1ベットボタン56aは1ベットを指定し、2ベットボタン56bは2ベットを指定し、MAXベットボタン56cは3ベット等の最大ベット数をMAXベットとして指定する。これらのベットボタン56a・56b・56cは、図10のベット用ボタンランプ76a〜76cを内蔵している。精算ボタン57は、メダルを外部に引き出すためのものである。尚、メダルの引き出しは、遊技カード等により行われる。スタートレバー58は、全てのリール53a・53b・53cの回転を開始するために設けられる。ストップボタン59a・59b・59cは、3つのリール53a・53b・53cのそれぞれに対応付けられ、対応するリール53a・53b・53cの回転を停止するためのものである。
(その他装置)
7セグ表示器60は、7セグメントLEDからなり、今回の遊技においてベットされたメダルの枚数(以下、投入枚数)、特典として遊技者に対して払い出すメダルの枚数(以下、払出枚数)、電子データ化されたメダルの枚数(以下、クレジット枚数)等の情報を遊技者に対してデジタル表示する。尚、クレジット枚数は、例えば、50枚、100枚、200枚、クレジット無しである。表示ランプ61(LED等)は、演出内容に応じた点消灯のパターンにて光を出力する。スピーカ62・62は、フロントドア52の下部両側に配置されており、演出内容に応じた効果音や楽曲等の音を出力する。スピーカ62・62の上方には、光を透過する材質で形成されたパネル板63が設けられている。パネル板63には、遊技に登場するキャラクター等の絵柄が形成されている。メダル払出口69は、パネル板63の下方に設けられ、後述のメダル払出装置68の駆動により排出されるメダルを外部に導く。メダル払出口69から排出されたメダルは、遊技機1の下端部に配置されているメダル受皿70に貯められる。
(内部構造)
次に、遊技機1の内部構造を説明する。図9は、本実施形態における遊技機1の内部構造を示す。フロントドア52が開放され、フロントドア52の裏面側の構造及びキャビネット51内の構造が現れた状態が示されている。
キャビネット51内の上部には、主制御回路を構成する基板(以下、主基板11が配置されている。主制御回路は、内部当籤役の決定、リール53a・53b・53cの回転及び停止、入賞の有無の判定といった、パチスロにおける遊技の主な流れを制御する回路である。主制御回路の具体的な構成は後述する。キャビネット51内の中央部には、3つのリール53a・53b・53cが配置されている。各リール53a・53b・53cのそれぞれには、所定の減速比をもったギアを介してステッピングモータが接続されている。
3つのリール53a・53b・53cの左側には、サブ制御回路を構成する基板(以下、サブ側基板12)が設けられている。主基板11とサブ側基板12とは、SPI通信によるデータ転送を可能にする通信ケーブル281で接続されている。サブ制御回路は、映像の表示等による演出の実行を制御する回路である。サブ制御回路の具体的な構成は後述する。キャビネット51内の下部には、各装置に対して必要な電力を供給する電源装置67が設けられている。また、電源装置67の周辺には、メダルセレクター64やメダルホッパー65、メダル払出装置68が配置されている。
尚、本実施形態においては、主基板11とサブ側基板12とを通信ケーブル281によりデータ通信可能に接続しているが、これに限定されるものではなく、無線によりデータ通信可能にされていてもよい。この場合には、通信ケーブル281が不要になるため、主基板11及びサブ側基板12の配置の自由度を高めることができる。
また、例えば図11に示すように、フロントドア52にサブ側基板12を配置し、フロントドア52をキャビネット51から開放したときに、データ通信を不可能にする一方、フロントドア52をキャビネット51に閉鎖したときにデータ通信を可能にするように電波の到達距離を調整した構成とすることによって、フロントドア52の開閉状態を検知することが可能になる。具体的には、通信用LSIT33と通信用LSIT34とにそれぞれアンテナT331・T341を接続し、フロントドア52をキャビネット51に閉鎖したときにアンテナT331・T341同士が0mm〜3mmの所定距離で接触又は対向するように設定し、この距離で接触又は対向したときにだけ電波を送受信するようにしてもよい。
(遊技機1の回路構成)
次に、遊技機1の回路構成について説明する。図10に示すように、遊技機1は、主制御回路71、サブ制御回路72及びこれらと電気的に接続された周辺装置(アクチュエータ等)を備える。(主制御回路71)
主制御回路71は、回路基板上に設置されたマイクロコンピュータ711を主たる構成要素としている。マイクロコンピュータ711は、CPU(以下、メインCPU7111)、ROM(以下、メインROM7112)及びRAM(以下、メインRAM7113)を有していると共に、UART部7114を有している。
メインROM7112には、メインCPU7111により実行される制御プログラム、内部抽籤テーブル等のデータテーブル、サブ制御回路72に対して各種制御指令(コマンド)を送信するためのデータ等が記憶されている。メインRAM7113には、制御プログラムの実行により決定された内部当籤役等の各種データを格納する格納領域が設けられる。
メインCPU7111には、クロックパルス発生回路712、分周器713、乱数発生器714及びサンプリング回路715が接続されている。クロックパルス発生回路712及び分周器713は、クロックパルスを発生する。メインCPU7111は、発生されたクロックパルスに基づいて、制御プログラムを実行する。乱数発生器714は、予め定められた範囲の乱数(例えば、0〜65535)を発生する。サンプリング回路715は、発生された乱数の中から1つの値を抽出する。
マイクロコンピュータ711のI/Oポート716には、入力スイッチユニット73のスイッチ等が接続されている。メインCPU7111は、スイッチ等の入力を受けて、ステッピングモータ等の周辺装置の動作を制御する。ストップスイッチ731L・731C・731Rは、3つのストップボタン59a・59b・59cのそれぞれが遊技者により押されたこと(停止操作)を検出する。これらのストップスイッチ731L・731C・731Rは、リール停止信号回路735を介してI/Oポート716に接続されている。
また、スタートスイッチ732は、スタートレバー58が遊技者により操作されたこと(開始操作)を検出する。1ベットスイッチ733aは、1ベットボタン56aが遊技者により押圧操作されたことを検出する。2ベットスイッチ733bは、2ベットボタン56bが遊技者により押圧操作されたことを検出する。MAXベットスイッチ733cは、MAXベットボタン56cが遊技者により押圧操作されたことを検出する。また、精算スイッチ734は、精算ボタン57が遊技者により押圧操作されたことを検出する。
(周辺装置及び回路)
マイクロコンピュータ711により動作が制御される周辺装置としては、ステッピングモータや7セグ表示器等がある。また、マイクロコンピュータ711のI/Oポート716の出力ポートには、各周辺装置の動作を制御するための回路が接続されている。
モータ駆動回路741は、各リール53a・53b・53cに対応して設けられたステッピングモータ742a・742b・742cの駆動を制御する。リール位置検出回路743は、発光部と受光部とを有する光センサにより、リール53a・53b・53cが一回転したことを示すリールインデックスを各リール53a・53b・53cに応じて検出する。
ステッピングモータ742a・742b・742cは、運動量がパルスの出力数に比例し、指定された角度で回転軸を停止させることが可能な構成を備えている。ステッピングモータ742a・742b・742cの駆動力は、所定の減速比をもったギアを介してリール53a・53b・53cに伝達される。ステッピングモータ742a・742b・742cに対して1回のパルスが出力されるごとに、リール53a・53b・53cは一定の角度で回転する。
メインCPU7111は、リールインデックスを検出してからステッピングモータ742a・742b・742cに対してパルスを出力した回数をカウントすることによって、リール53a・53b・53cの回転角度(主に、リールが図柄何個分だけ回転したか)を管理し、リール53a・53b・53cの表面に配された各図柄の位置を管理するようにしている。
I/Oポート716は、ランプ駆動回路717に接続されている。ランプ駆動回路717は、各種ランプや7セグ表示器の動作を制御する。ランプ駆動回路717は、1ベットランプ75a、2ベットランプ75b、MAXベットランプ75c、1ベット用ボタンランプ76a、2ベット用ボタンランプ76b、MAXベット用ボタンランプ76c及び表示ランプ61を点灯及び消灯させる。1ベット用ボタンランプ76a、2ベット用ボタンランプ76b及びMAXベット用ボタンランプ76cは、1ベットボタン56a、2ベットボタン56b及びMAXベットボタン56cにそれぞれ設けられていてもよい。尚、これらのランプ75a〜75c・76a〜76c・61は、フルカラーLED等により複数色に変更可能に発光するように構成されていてもよい。
さらに、上記のように構成された主制御回路71は、外部集中端子板14に対してデータ及び信号を送受信可能に接続されている。外部集中端子板14はホールコンピュータ3に対してデータ及び信号を一方向に送信可能に接続されている。
また、主制御回路71は、通信用LSIT33及び通信用LSIT34を介してサブ制御回路72に接続されている。具体的には、図12に示すように、マイクロコンピュータ711のUART7114は、通信用LSIT33に対してUART通信により双方向にシリアル送信可能にされている。通信用LSIT33は、主制御回路71と共に主基板11に設けられている。通信用LSIT33は、UART部7114から受信した処理データを暗号化する機能を有している。この通信用LSIT33は、サブ制御回路72の通信用LSIT34に接続され、SPI通信により通信用LSIT34に一方向にシリアル通信可能にされている。通信用LSIT34は、暗号化された処理データを復号化する機能を有している。そして、通信用LSIT34は、UART通信よりマイクロコンピュータ721のUART部7214に双方向にシリアル通信可能にされている。即ち、主制御回路71とサブ制御回路72とは、図2〜図4の構成1の通信システムによりデータ転送可能にされている。
(サブ制御回路72)
サブ制御回路72は、主制御回路と構成1の通信システムにより電気的に接続されており、主制御回路71から送信されるコマンドに基づいて演出内容の決定や実行等の処理を行う。サブ制御回路72は、基本的に、CPU(以下、サブCPU7211)、ROM(以下、サブROM7212)、RAM(以下、サブRAM7213)、UART部7214、及びSPI部7215とを有したマイクロコンピュータ721を有している。
サブCPU7211は、レンダリングプロセッサ722、描画用RAM723、ドライバ724、DSP725(デジタルシグナルプロセッサ)、オーディオRAM726及びA/D変換器727及びアンプ728に接続されている。
サブCPU7211は、主制御回路71から送信されたコマンドに応じて、サブROM7212に記憶されている制御プログラムに従い、映像、音、光の出力の制御を行う。サブRAM7213は、決定された演出内容や演出データを登録する格納領域や、主制御回路71から送信される内部当籤役等の各種データを格納する格納領域が設けられている。サブROM7212は、基本的に、プログラム記憶領域とデータ記憶領域によって構成される。
プログラム記憶領域には、サブCPU7211が実行する制御プログラムが記憶されている。例えば、制御プログラムには、主制御回路71との通信を制御するための主基板通信タスクや、演出用乱数値を抽出し、演出内容(演出データ)の決定及び登録を行うための演出登録タスク、決定した演出内容に基づいて液晶表示装置54による映像の表示を制御する描画制御タスク、ランプによる光の出力を制御するランプ制御タスク、スピーカによる音の出力を制御する音声制御タスク等が含まれる。さらに、制御プログラムには、第1役物201の動作を制御する第1役物制御タスクや第2役物202の動作を制御する第2役物制御タスクが含まれる。
第1役物201及び第2役物202は、遊技機1を操作する遊技者から目視可能な位置に左右対称等の配置形態で設けられている。例えば、遊技機1のキャビネット51の上部にキャラクター部材が設けられ、そのキャラクター部材が両腕を上下動させながら、両腕の先端部等に設けられたフルカラーLEDに動画を表示させ、さらに、両腕の上下動や動画表示に連携させてランプを点滅させるような動作を行うとすれば、これらの両腕である左腕及び右腕が第1役物201及び第2役物202に相当することになる。
第1役物201は、第1ランプ駆動装置2011と、第1モータ駆動装置2012と、フルカラータイプのLEDを駆動する第1LED駆動装置2013と、スピーカ駆動装置2014とを備えている。また、第2役物202は、第2ランプ駆動装置2021と、第2モータ駆動装置2022と、第2LED駆動装置2023と、スピーカ駆動装置2024とを備えている。尚、ランプ駆動やLED駆動,スピーカ駆動は例示であり、これらに限定されるものではない。これらの第1役物201の駆動装置2011〜2014及び第2役物202の駆動装置2021〜2024は、図5のI2CデバイスT42となるように、I2C通信によるデータ通信により処理データを受信可能にされている。
上記の役物201・役物202は、サブ制御回路72に対して図5〜図7の構成2の通信システムによりデータ通信可能にされている。具体的には、マイクロコンピュータ721のSPI部7215がサブ制御回路72と共にサブ側基板12に実装された通信用LSIT43に接続されている。そして、通信用LSIT43が通信用LSIT44・T45に接続され、これらの通信用LSIT44・T45に役物201・202のI2C部に接続されている。
尚、本実施形態において、通信用LSIT1は、第1役物201のように、一つのまとまりのある機器の1以上の駆動装置に対応して設けられた場合を説明しているが、これに限定されるものではなく、同一機能や同一用途の1以上の駆動装置に対応して設けられていてもよい。例えば、一つの通信用LSIT1に対して、第1ランプ駆動装置・第2ランプ駆動装置・第3ランプ駆動装置が接続され、別の通信用LSIT1に対して、第1モータ駆動装置・第2モータ駆動装置・第3モータ駆動装置が接続され、更に別の通信用LSIT1に対して、第1LED駆動装置・第2LED駆動装置・第3LED駆動装置が接続されてもよい。さらに、通信用LSIT1は、連携動作する演出グループの駆動装置毎に設けられていてもよい。
また、サブROM7212のデータ記憶領域は、各種データテーブルを記憶する記憶領域、各演出内容を構成する演出データを記憶する記憶領域、映像の作成に関するアニメーションデータを記憶する記憶領域、BGMや効果音に関するサウンドデータを記憶する記憶領域、光の点消灯のパターンに関するランプデータを記憶する記憶領域等が含まれている。
(メインROM7112におけるデータテーブル)
次に、メインROM7112に記憶されているデータテーブルについて説明する。メインROM7112は、図柄配置テーブルや図柄組合せテーブル、ボーナス作動時テーブル、内部抽籤テーブル、内部当籤役決定テーブル等の各種のデータテーブルを記憶している。
図柄配置テーブルは、図13に示すように、各リールの回転方向における各図柄の位置と、各位置に配された図柄の種類を特定するデータ(以下、図柄コード)とを規定している。図柄配置テーブルは、リールインデックスが検出されるときに表示窓内の中段に存在する図柄の位置を「0」として、リールの回転方向に進む順に、各図柄の位置に対して「0」〜「20」をそれぞれ割り当てている。したがって、リールインデックスが検出されてから図柄何個分の回転が行われたかを管理しつつ、図柄配置テーブルを参照することによって、主として表示窓の中段に存在する図柄の位置及びその図柄の種類を常に管理することが可能となっている。
また、図柄組合せテーブルは、入賞判定ラインに沿って各リールにより表示される図柄の組合せが、図柄組合せテーブルにより規定されている図柄の組合せと一致する場合に、入賞と判定され、メダルの払い出し、再遊技の作動、ボーナスゲームの作動といった特典が遊技者に対して与えられる。図柄組合せテーブルは、特典の種類に応じて予め定められた図柄の組合せと、表示役と、払出枚数とを規定している。表示役は、入賞判定ラインに沿って表示された図柄の組合せを識別するデータである。
表示役は、各ビットに対して固有の図柄の組合せが割り当てられた1バイトのデータとして表される。例えば、各リールの図柄「ベル」が入賞判定ラインに沿って表示されたとき、表示役として「ベル(00000010)」が決定される。
また、払出枚数として1以上の数値が決定された場合、メダルの払い出しが行われる。本実施の形態では、表示役としてチェリー、ベル又はスイカが決定されたときメダルの払い出しが行われる。また、払出枚数は、投入枚数に応じて規定されており、基本的に投入枚数が少ないときの方がより多くの払出枚数が決定される。
また、表示役としてリプレイが決定されたとき、再遊技の作動が行われる。表示役としてBBが決定されたとき、ボーナスの作動が行われる。尚、入賞判定ラインに沿って表示された図柄の組合せが、図柄組合せテーブルにより規定されている図柄の組合せの何れとも一致しない場合には、いわゆる「ハズレ」となる。
ボーナス作動時テーブルは、ボーナスの作動が行われるときに、メインRAM7113に設けられた各種格納領域に格納するデータを規定している。作動中フラグは、作動が行われるボーナスの種類を識別するためのデータである。本実施の形態では、ボーナスの種類としてBB(第1種特別役物に係る役物連続作動装置)及びRB(第1種特別役物)を設けている。RBの作動は、BBの作動が行われている間、連続的に行われる。尚、本実施形態では、RB中の最大ベット枚数は2枚、その他の遊技は3枚とするが、これに限定されるものではない。
BBの作動は、規定枚数に達するメダルの払い出しが行われた場合に終了する。RBの作動は、規定回数に達する遊技が行われた場合、規定回数に達する入賞が有った場合、又は、BBの作動が終了した場合の何れかによって終了する。ボーナス終了枚数カウンタ、遊技可能回数カウンタ及び入賞可能回数カウンタは、ボーナスの終了契機となる上記規定枚数或いは上記規定回数に達したか否かを管理するためのデータである。
より具体的には、ボーナス作動時テーブルにより規定されている数値が上記各カウンタに格納され、ボーナスの作動を通じてその減算が行われていく。その結果、各カウンタの値が「0」に更新されたことを条件に該当ボーナスの作動が終了する。
内部抽籤テーブルは、当籤番号に応じて、データポインタと抽籤値とを規定している。データポインタは、内部抽籤テーブルを参照して行う抽籤の結果として取得されるデータであり、後述の内部当籤役決定テーブルにより規定されている内部当籤役を指定するためのデータである。データポインタには、小役・リプレイ用データポインタ及びボーナス用データポインタが設けられている。
本実施の形態では、予め定められた数値の範囲「0〜65535」から抽出される乱数値を、各当籤番号に応じた抽籤値で順次減算し、減算の結果が負となったか否か(いわゆる「桁かり」が生じたか否か)の判定を行うことによって内部的な抽籤が行われる。
したがって、抽籤値として規定されている数値が大きいほど、これが割り当てられたデータ(つまり、データポインタ)が決定される確率が高い。尚、各当籤番号の当籤確率は、「各当籤番号に対応する抽籤値/抽出される可能性のある全ての乱数値の個数(65536)」によって表すことができる。
内部当籤役決定テーブルは、データポインタに応じて内部当籤役を規定している。データポインタが決定されると、内部当籤役が一義的に取得される構成となっている。内部当籤役は、入賞判定ラインに沿って表示を許可する各リールの図柄の組合せを識別するデータである。内部当籤役は、表示役と同様に、各ビットに対して固有の図柄の組合せが割り当てられた1バイトのデータとして表される。尚、データポインタが「0」のとき、内部当籤役の内容は「ハズレ」となるが、これは前述の図柄組合せテーブルにより規定されている図柄の組合せの表示が何れも許可されないことを示す。
(メインRAM7113における格納領域の構成)
次に、メインRAM7113に設けられている各種格納領域の構成について説明する。メインRAM7113は、内部当籤役格納領域や持越役格納領域、作動中フラグ格納領域等を有している。内部当籤役格納領域は、前述の1バイトのデータにより表される内部当籤役を格納する。ビットに「1」が立っているとき、該当する図柄の組合せの表示が許可される。尚、全ビットが「0」であるとき、その内容はハズレとなる。メインRAM7113には、前述の表示役が格納される表示役格納領域が設けられている。表示役格納領域の構成は、内部当籤役格納領域の構成と同様となっている。ビットに「1」が立っているとき、該当する図柄の組合せが入賞判定ラインに沿って表示されたことになる。
持越役格納領域は、前述の抽籤の結果、ボーナスの作動に係る内部当籤役が決定されたときに格納される。持越役格納領域に格納されたボーナスの作動に係る内部当籤役(以下、持越役)は、対応する図柄の組合せが入賞判定ラインに表示されるまで、その内容がクリアされずに保持される構成となっている。そして、持越役格納領域に持越役が格納されている間は、前述の抽籤の結果にかかわらず、これが内部当籤役格納領域に格納される。
作動中フラグ格納領域は、1バイトからなる作動中フラグを格納する。作動中フラグは、各ビットに対して固有のボーナスが割り当てられている。ビットに「1」が立っているとき、該当するボーナスの作動が行われている。尚、全ビットが「0」であるときの状態を一般遊技状態と定義する。
(遊技機:動作)
次に、遊技システムの動作をフローチャートを用いて説明する。
電源が投入されると、遊技機1が各種のプログラムを実行する。遊技機1においては、主制御回路71においてメインルーチン等のプログラムをメインCPU7111が実行することにより遊技を行うと共に、サブ制御回路72において演出ルーチン等のプログラムを実行することにより液晶表示装置54の演出画像の表示等を実施可能な状態になる。
(遊技機1:主制御回路71:メインルーチン)
具体的には、主制御回路71においてメインルーチン等が実行されると、図14に示すようにパチスロに電源が投入されると、はじめに、初期化処理が行われる(S1)。次に、メインRAM7113における指定格納領域のクリアが行われる(S2)。例えば、内部当籤役格納領域や表示役格納領域等、1回の遊技ごとに消去が必要となる格納領域に格納されたデータがクリアされる。
次に、メダル受付・スタートチェック処理が行われる(S3)。この処理では、メダルセンサやスタートスイッチの入力のチェック等が行われる。
次に、乱数値が抽出され、メインRAM7113に設けられた乱数値格納領域に格納される(S4)。次に、内部抽籤処理が行われる(S5)。この処理では、乱数値に基づいた抽籤により内部当籤役の決定が行われる。次に、スタートコマンドがサブ制御回路72に対して送信される(S6)。スタートコマンドは、内部当籤役等を特定するパラメータを含んで構成される。尚、スタートコマンド等の各種のコマンドは、通信用LSIT1の処理データであり、一時的にメインRAM7113のコマンド領域に格納された後、一定の周期(1.1173msec)で実行される割込処理(図16)をトリガーとして送信される。
次に、全メインリールの回転開始が要求される(S7)。尚、全メインリールの回転開始が要求されると、一定の周期(1.1173msec)で実行される割込処理によってステッピングモータの駆動が制御され、各リールの回転が開始される。
次に、リール停止制御処理が行われる(S8)。この処理では、ストップスイッチ731L・731C・731Rの入力のチェックが行われ、ストップボタン59a・59b・59cが押されたタイミングと内部当籤役とに基づいて該当リール53a・53b・53cの回転が停止される。
次に、入賞判定ラインに沿って表示された図柄の組合せが検索され、その結果に基づいて払出枚数等が決定される(S9)。検索の結果、入賞判定ラインに沿って表示された図柄の組合せが図柄組合せテーブルにより規定されている図柄の組合せと一致する場合、対応する表示役及び払出枚数が決定される。次に、表示コマンドがサブ制御回路72に対して送信される(S10)。表示コマンドは、表示役や払出枚数等を特定するパラメータを含んで構成される。
次に、メダル払出処理が行われる(S11)。決定された払出枚数に基づいて、ホッパーの駆動やクレジット枚数の更新が行われる。次に、払出枚数に基づいて、ボーナス終了枚数カウンタが更新される(S12)。払出枚数として決定された数値がボーナス終了枚数カウンタから減算される。
次に、ボーナス作動中フラグがオンであるか否かが判別される(S13)。ボーナス作動中フラグがオンであると判別したときには、ボーナス終了チェック処理が行われる(S14)。ボーナスの終了契機を管理するための各種カウンタを参照して、ボーナスの作動を終了するか否かがチェックされる。
S14の後、又は、S13においてボーナス作動中フラグがオンではないと判別されたときには、ボーナス作動チェック処理が行われる(S15)。ボーナスの作動を開始するか否かがチェックされる。この処理が終了すると、S2に移る。
(遊技機1:主制御回路71:割込処理ルーチン)
次に、図15を参照して、メインCPUの制御による割込処理(1.1173msec)について説明する。はじめに、メインCPUは、レジスタの退避を行う(S161)。次に、メインCPUは、入力ポートチェック処理を行う(S162)。この処理では、ストップスイッチ等の各種スイッチから入力される信号がチェックされる。また、入力ポートチェック処理でコマンドの存在が確認された場合は、そのコマンドがUART部7114にパラレル出力され、UART部7114から通信用LSIT33にシリアル出力される。そして、通信用LSIT33からサブ制御回路72の通信用LSIT34にシリアル送信される。
次に、メインCPUは、リール制御処理を行う(S163)。この処理では、全リールの回転開始が要求されたときに、各リールの回転を開始し、その後一定速度での回転を行うよう、ステッピングモータの駆動が制御される。また、滑り駒数が決定されたときは、該当リールの回転が滑り駒数分継続するのを待ってその回転の減速及び停止を行うよう、ステッピングモータの駆動が制御される。
次に、メインCPUは、ランプ・7セグ駆動処理を行う(S164)。次に、メインCPUは、レジスタの復帰を行う(S165)。この処理が終了すると、割込処理を終了する。
主制御回路のメインCPU7111により実行されるプログラムの内容についての説明は以上である。次に、図16を参照して、サブ制御回路72のサブCPU7211により実行されるプログラムの内容について説明する。
(遊技機1:サブ制御回路72:主基板通信タスク)
先ず、サブ制御回路72のサブCPU7211は、主制御回路71から送信されたコマンドの受信チェックを行う(S301)。次に、サブCPU7211は、コマンドを受信した場合、そのコマンドの種別を抽出する(S302)。次に、前回とは異なるコマンドを受信したか否かが判定される(S303)。前回とは異なるコマンドを受信しなかったと判定した場合には(S303:NO)、S301に移る一方で、前回とは異なるコマンドを受信したと判別したときには、メッセージキューに格納し(S304)、S301に移る。
(遊技機1:サブ制御回路72:演出登録タスク)
次に、図17を参照して、サブCPU7211により行われる演出登録タスクについて説明する。先ず、サブCPU7211は、メッセージキューからメッセージを取り出す(S311)。次に、メッセージが有るか否かを判定される(S312)。メッセージは有ると判別された場合には(S312:YES)、メッセージから遊技情報を複写する(S313)。例えば、パラメータによって特定される、内部当籤役、回転が停止したリールの種別、表示役、作動中フラグ等といった各種データがサブRAM7213に設けられた格納領域に複写される。
次に、演出内容決定処理が行われる(S314)。この処理では、受信したコマンドの種別に応じて、演出内容の決定や演出データの登録等が行われる。
S314の後、又は、S312においてメッセージは無かったと判定した場合には(S312:NO)、アニメーションデータの登録が行われる(S315)。次に、サウンドデータの登録が行われる(S316)。その後、ランプデータの登録が行われる(S317)。アニメーションデータの登録、サウンドデータの登録及びランプデータの登録は、演出内容決定処理において登録された演出データに基づいて行われる。この処理が終了すると、S311に移る。
(遊技機1:主制御回路71:ホスト側データ送信処理ルーチン)
主制御回路71からサブ制御回路72に対するコマンドの送信は、図18のホスト側データ送信処理ルーチンが一定の周期(1.1173msec)で実行される割込処理(図16)をトリガーとして実行されることにより行われる。即ち、本ルーチンが実行されると、処理データであるコマンドが読み出された後(S101)、UART部7114と通信用LSIT33のUART部T11とがハードウエアフロー制御によるハンドシェイク状態で接続されていることから、通信用LSIT33のUART部T11が受信可能な状態であるか否かが判定される(S102)。
UART部T11が受信可能でない場合は(S102:NO)、S102が再実行されることによって、読み出したコマンドの8ビット分が処理データとして38400bpsで送信される(S104)。この後、ストップビットが送信される(S105)。この後、全データの送信、即ち、コマンドの送信が完了したか否かが判定される(S106)。全データの送信が完了していなければ(S106:NO)、S102から再実行される一方、全データの送信が完了すれば(S106:YES)、コマンドの送信が完了したとして本ルーチンが終了される。尚、コマンドからなる処理データは、暗号化前の平文である。
(UART部T11:UART処理ルーチン)
通信用LSIT1(通信用LSIT33等)におけるUART部T11は、UART処理ルーチンを実行している。即ち、図19に示すように、スレーブ動作であるか否かが判定され(S111)、スレーブ動作でなければ(S111:NO)、続いて、マスタ動作であるか否かが判定される(S112)。マスタ動作でなければ(S112:NO)、S111から再実行され、いずれか動作になるまで待機状態とされる。スレーブ動作である場合には(S111:YES)、続いて、データを受信したか否かが判定される(S114)。データを受信しなければ(S114:NO)、S114が再実行されて待機状態となる。データを受信した場合には(S114:YES)、データを8ビット単位で受信し、ワーク用のSRAM部T20に記憶する(S115)。尚、8ビット単位の受信は、スタートビット及びストップビットの検出により行われる。そして、全データの受信を完了したか否かが判定され(S116)、全データを受信していなければ(S116:NO)、S114から再実行される。そして、全データを受信すれば(S116:YES)、本ルーチンが終了される。
また、マスタ動作である場合には(S112:YES)、UARTマスタ動作処理が実行される(S113)。即ち、図20に示すように、データ送信条件が成立したか否かが判定される(S121)。例えば、データ送信先となるスレーブ側のデータ受信が可能になり、且つ、データの復号化が完了した場合のように、データ送信条件が成立した場合は(S121:YES)、先ず、スタートビットデータが送信され(S122)、その後、暗号化されたデータがワーク用のSRAM部T20から8ビット単位で読み出されて38400bpsで送信される(S123)。この後、パリティビットデータが送信され(S124)、ストップビットデータが送信される(S125)。この後、全データの送信が完了したか否かが判定され(S126)、完了していなければ(S126:NO)、S122から再実行される。一方、全データの送信を完了すれば(S126:YES)、本ルーチンが終了される。
(SPI1部T12・SPI2部T13:SPI処理ルーチン)
通信用LSIT1(通信用LSIT33等)におけるSPI1部T12及びSPI2部T13は、図21に示すように、SPI処理ルーチンを実行している。即ち、スレーブ動作であるか否かが判定され(S131)、スレーブ動作でなければ(S131:NO)、続いて、マスタ動作であるか否かが判定される(S132)。マスタ動作でなければ(S132:NO)、S131から再実行され、いずれか動作になるまで待機状態とされる。スレーブ動作である場合には(S131:YES)、続いて、スレーブとして選択されたか否かが判定される(S134)。スレーブとして選択されなければ(S134:NO)、本ルーチンが終了される。
一方、スレーブとして選択された場合には(S134:YES)、データを受信したか否かが判定される(S135)。データを受信しなければ(S135:NO)、S135が再実行されて待機状態となる。データを受信した場合には(S135:YES)、データを8ビット単位で受信し、ワーク用のSRAM部T20に記憶する(S136)。そして、全データの受信を完了したか否かが判定され(S137)、全データを受信していなければ(S137:NO)、S135から再実行される。そして、全データを受信すれば(S137:YES)、本ルーチンが終了される。
また、マスタ動作である場合には(S132:YES)、SPIマスタ動作処理が実行される(S133)。即ち、図22に示すように、データ送信条件が成立したか否かが判定される(S141)。データ送信条件が成立した場合は(S141:YES)、先ず、スレーブが選択される(S142)。この後、データが25600bpsで送信される(S143)。この後、全データの送信が完了したか否かが判定され(S144)、完了していなければ(S144:NO)、S142から再実行される。一方、全データの送信を完了すれば(S144:YES)、本ルーチンが終了される。
(AES部T21:暗号・復号処理ルーチン)
通信用LSIT1(通信用LSIT33等)におけるAES部T21は、図23に示すように、暗号・復号処理ルーチンを実行している。即ち、先ず、ワーク用のSRAM部T20において、所定量のデータが記憶されたか否かが判定され(S151)、記憶されていなければ(S151:NO)、S151が再実行されることによって、待機状態にされる。
一方、所定量のデータが記憶された場合は(S151:YES)、続いて、データが暗号化データであるか否かが判定される(S152)。このように、暗号化データであるか否かを判定して処理を分岐することで、例えば、通信用LSIT43、及び、通信用LSIT44・T45を共通の通信用LSIとして製造することができる。尚、これに限定されず、暗号化を行う通信LSIと復号化を行う通信LSIを分けて製造してもよい。これにより、ステップS152のような判定処理を不要にすることができる。例えば、通信用LSIT43がAES部T21及び通信用LSIT43内の不揮発性メモリ部T22等において暗号化アルゴリズムのみ備え、通信用LSIT44・T45が各AES部T21及び通信用LSIT44・T45内の各不揮発性メモリ部T22等において、復号化アルゴリズムのみ備える構成でもよい。
ステップS152において、暗号化データでなければ(S152:NO)、平文のデータに対して暗号化する暗号処理が実行された後(S153)、本ルーチンが終了される。
ここで、暗号処理について具体的に説明する。AES部T21は、SRAM部T20の所定のアドレスに格納される所定量のデータに対して暗号化を行う。暗号化を行う前に、AES部T21は、不揮発性メモリ部T22に書き換え可能に記憶される共通鍵と、不揮発性メモリ部T22に書き換え不可に記憶される暗号化に用いられる情報(暗号化用情報)とを取得する。暗号化用情報は、鍵長、暗号におけるラウンド数、及び、暗号対象となるデータが配置されるSRAM部T18上のアドレス等であってもよい。これにより、例えば、不揮発性メモリ部T22に書き換え可能に記憶される共通鍵の鍵長が、不揮発性メモリ部T22に書き換え不可に記憶される鍵長と異なる場合、不正な共通鍵に書き換えられていることを検出することができる。また、AES部T21は、暗号化を行う前に、暗号化の対象である所定量のデータに対し誤り訂正データを付加するものであってもよい。暗号化は、クロック・リセット制御部T15のクロックタイミングに従ってAES部T21が有するハードウェア構成(AES暗号化アルゴリズム)が動作することで実行される。暗号化されたデータは、SRAM部T20の所定のアドレスに格納される。暗号化されたデータが格納されるSRAM部T20の所定のアドレスは、暗号化される前のデータ領域を示すものであってもよいし、暗号化される前のデータ領域と異なる領域を示すものであってもよい。
一方、暗号化データであれば(S152:YES)、SRAM部T20において、暗号文のデータに対して復号化する復号処理が実行される(S154)。ここで、復号処理について具体的に説明する。AES部T21は、SRAM部T20の所定のアドレスに格納される暗号文のデータに対して復号化を行う。AES部T21は、不揮発性メモリ部T22に書き換え可能に記憶される共通鍵と、不揮発性メモリ部T22に書き換え不可に記憶される復号化に用いられる情報(暗号化用情報)とを取得する。復号化は、クロック・リセット制御部T15のクロックタイミングに従ってAES部T21が有するハードウェア構成(AES復号化アルゴリズム)が動作することで実行される。復号化されたデータは、SRAM部T20の所定のアドレスに格納される。復号化されたデータが格納されるSRAM部T20の所定のアドレスは、復号化される前のデータ領域を示すものであってもよいし、復号化される前のデータ領域と異なる領域を示すものであってもよい。尚、復号化されたデータに誤り訂正データが付加されている場合、AES部T21は、復号化を行った後に付加されている誤り訂正データを判定するものであってもよい。即ち、AES部T21は、復号化後のデータに誤りがある場合には誤り訂正データに基づいて復号化後のデータを訂正するものであってもよい。
ステップS154の後、I2C送信可能状態であるか否かが判定される(S155)。I2C送信可能状態でなければ(S155:NO)、S155の再実行により待機状態にされ、I2C送信可能状態であれば(S155:YES)、復号化されたデータがSRAM部T20から通信用のバッファであるSRAM部T18に転送された後(S156)、本ルーチンが終了される。
本実施形態では、復号化されたデータをI2CデバイスT42へ送信する構成2(図5乃至図7参照)について説明したがこれに限定されない。例えば、構成1(図2乃至図4参照)の場合は、復号化されたデータはSRAM部T20の所定のアドレスに格納され、UART通信機能によってサブホスト側制御装置T32へ送信される(図20参照)。
また、本実施形態では、上述のように、AES部T21が、AES暗号化アルゴリズムと、AES復号化アルゴリズムとを「ハードウェア構成」として備え、SRAM部T20に記憶したデータを、不揮発性メモリ部T22の共通鍵に基づき暗号・復号化する構成としたがこれに限定されない。例えば、不揮発性メモリ部T22の書き込み不可な記憶領域にAES暗号化アルゴリズム及びAES復号化アルゴリズムがプログラムとして記憶されるものであってもよい。この場合、AES部T21は、上記プログラムを実行して、SRAM部T20に記憶したデータを不揮発性メモリ部T22の共通鍵に基づき暗号・復号化することになる。
また、例えば、AES部T21が、AES暗号化アルゴリズムと、AES復号化アルゴリズムとで用いる関数をハードウェアで構成された論理ブロックとして備え、不揮発性メモリ部T22の書き込み不可な記憶領域にその関数の実行手順プログラムを記憶するものであってもよい。この場合、AES部T21は、SRAM部T20に記憶したデータを、実行手順プログラムに従って、関数(論理ブロック)を実行し、不揮発性メモリ部T22の共通鍵で暗号・復号化することになる。
(DMAC部T17:DMAC処理ルーチン)
通信用LSIT1(通信用LSIT33等)におけるDMAC部T17は、図24に示すように、DMAC処理ルーチンを実行している。即ち、先ず、データ送信条件が成立したか否かが判定される(S161)。条件が成立しなければ(S161:NO)、S161が再実行されて待機状態にされる。一方、条件が成立した場合には(S161:YES)、転送先のスレーブが決定された後(S162)、I2C部T16に転送先(スレーブ)が出力される(S163)。この後、I2C部T16に16バイト単位でSRAM部T18のデータが出力され(S164)る。そして、全データの出力が完了したか否かが判定され(S165)、完了していなければ(S165:NO)、S164から再実行される。そして、全データの出力が完了した場合に(S165:YES)、本ルーチンが終了される。
(I2C部T16:I2C処理ルーチン)
通信用LSIT1(通信用LSIT33等)におけるI2C部T16は、図25に示すように、I2C処理ルーチンを実行している。即ち、先ず、DMAC部T17から転送先データを受信したか否かが判定される(S171)。受信しなければ(S171:NO)、S171が再実行されて待機状態にされる。一方、転送先データを受信した場合は(S171:YES)、転送先のスレーブが選択された後(S172)、DMAC部T17によるデータ送信が最大(MAX)1Mbpsで行われる(S173)。この後、送信が完了したか否かが判定され(S174)、送信が完了していなれば(S174:NO)、S172から再実行される。一方、送信が完了していれば(S174:YES)、スレーブの選択が解除された後(S175)、本ルーチンが終了される。
以上、本発明の実施形態を説明したが、具体例を例示したに過ぎず、特に本発明を限定するものではなく、具体的構成などは、適宜設計変更可能である。また、発明の実施の形態に記載された、作用及び効果は、本発明から生じる最も好適な作用及び効果を列挙したに過ぎず、本発明による作用及び効果は、本実施の形態に記載されたものに限定されるものではない。
上述した詳細な説明は、コンピュータで実行される処理を含むものである。以上での説明及び表現は、当業者が最も効率的に理解することを目的として記載している。本明細書では、1の結果を導き出すために用いられる各ステップは、自己矛盾がない処理として理解されるべきである。また、各ステップでは、電気的又は磁気的な信号の送受信、記録等が行われる。各ステップにおける処理では、このような信号を、ビット、値、シンボル、文字、用語、数字等で表現しているが、これらは単に説明上便利であるために用いたものであることに留意する必要がある。また、各ステップにおける処理は、人間の行動と共通する表現で記載される場合があるが、本明細書で説明する処理は、原則的に各種の装置により実行されるものである。また、各ステップを行うために要求されるその他の構成は、以上の説明から自明になるものである。