JP2009240055A - 電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステム - Google Patents
電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステム Download PDFInfo
- Publication number
- JP2009240055A JP2009240055A JP2008082183A JP2008082183A JP2009240055A JP 2009240055 A JP2009240055 A JP 2009240055A JP 2008082183 A JP2008082183 A JP 2008082183A JP 2008082183 A JP2008082183 A JP 2008082183A JP 2009240055 A JP2009240055 A JP 2009240055A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- program
- storage unit
- encrypted
- firmware
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/10—Energy storage using batteries
Abstract
【課題】電池の充放電を制御するためのプログラムを、秘匿性、及び書き換え信頼性を向上しつつ、書き換えることができる電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステムを提供する。
【解決手段】二次電池の充放電を制御するマイクロコントローラ211と、本体機器3と接続端子T3,T4を介して通信することにより、暗号化されたプログラムを通信スレーブとして受信すると共に記憶するEEPROM212とを備え、マイクロコントローラ211は、プログラムを記憶するフラッシュROM221と、EEPROM212に記憶された、暗号化されたプログラムに通信マスタとしてアクセスすると共に、当該暗号化されたプログラムを復号化してフラッシュROM221に記憶させ、フラッシュROM221に記憶されたプログラムを実行するCPU224を備える。
【選択図】図1
【解決手段】二次電池の充放電を制御するマイクロコントローラ211と、本体機器3と接続端子T3,T4を介して通信することにより、暗号化されたプログラムを通信スレーブとして受信すると共に記憶するEEPROM212とを備え、マイクロコントローラ211は、プログラムを記憶するフラッシュROM221と、EEPROM212に記憶された、暗号化されたプログラムに通信マスタとしてアクセスすると共に、当該暗号化されたプログラムを復号化してフラッシュROM221に記憶させ、フラッシュROM221に記憶されたプログラムを実行するCPU224を備える。
【選択図】図1
Description
本発明は、電池の充放電を制御する電池制御回路、この電池制御回路を用いた電池パック、及び電池制御回路で用いられるプログラムのアップデートシステムに関する。
従来、携帯電話機や携帯型パーソナルコンピュータ、デジタルカメラ等の電子機器の電源として用いられる電池パックは、主に二次電池を用いて構成され、充電により繰り返し使用可能とされている。二次電池は、充放電サイクルの増加や使用、保管等に伴い劣化が進行するため寿命がある。二次電池が寿命に至った場合や、電子機器を長時間にわたって使用できるようにするために大きな電池容量を有する電池パックを使用したい場合、ユーザは電池パックを交換できるようになっている。
この交換時に、電子機器のメーカが認定する正規の電池パックに交換するのが原則である。このような正規の電池パックには、二次電池の劣化を低減したり二次電池の安全性を向上したりするように、二次電池の充放電を制御する制御回路が組み込まれている。このような制御回路は、通常、マイクロコンピュータを用いて、ROM(Read Only Memory)に記憶された制御プログラムを実行することにより、上述の制御を行うようになっている。
ところで、このような交換用の電池パックを、正規のメーカの許可なく製造し、安価に販売する非正規の業者が存在している。そして、このような非正規業者によって製造された非正規の電池パックが電子機器の電源として用いられる場合がある。しかしながら、非正規業者によって製造された非正規の電池パックは、コストを低減するため品質が粗悪であることが多い。特に二次電池の安全に関わる品質は事故が発生しない限りユーザには判らないため、非正規の電池パックは、安全性に関わるコストが低減されて、安全品質が劣悪であることが多い。
そこで、安全性の観点から、非正規の電池パックの使用を排除するために、認証機能を備えた電池パックが知られている(例えば、特許文献1参照)。このような認証機能も、上述のROMに記憶された制御プログラムをマイクロコンピュータで実行することにより、実現されている。
一方、電池パックの機能を向上したり、障害に対応したりするため、電池パックに内蔵されている制御プログラム、いわゆるファームウェアを更新したいというニーズがある。そこで、ファームウェアを更新できる電池パックが知られている(例えば、特許文献2参照)。
図7は、従来のファームウェアのアップデートが可能な電池パック101と、電池パック101のアップデートを実行する携帯型パーソナルコンピュータ等の本体機器102とが接続されて構成された電子機器の構成を示すブロック図である。図7に示す電池パック101は、電池103と、フラッシュマイコン104と、充電制御用スイッチ105と、放電制御用スイッチ106と、接続端子107,108,109,110とを備えている。
そして、三個の電池103が直列接続されて組電池が構成されている。接続端子107,108,109,110は、本体機器102と着脱可能に接続されており、電源負極(Batt−)端子である接続端子110が、上記組電池、放電制御用スイッチ106、及び充電制御用スイッチ105を介して電源正極(Batt+)端子である接続端子107に接続されている。
フラッシュマイコン104は、例えばCPU(Central Processing Unit)コア、フラッシュROM(フラッシュメモリ)、RAM(Random Access Memory)、及び通信I/F回路等が集積された、いわゆるマイクロコントローラである。このようなマイクロコントローラは、種々のメーカから種々の機種が市場に供給されている。
そして、本体機器102は、接続端子108,109を介してフラッシュマイコン104の通信I/F回路へ、シリアル通信によって新たなファームウェアを送信することで、フラッシュマイコン104に内蔵されているフラッシュROMのファームウェアを書き換えるようになっている。
特開2006−339070号公報
特開2001−275270号公報
ところで、電池パック101のファームウェアをアップデートするため、本体機器102から電池パック101へファームウェアを送信すると、送信されたファームウェアは、電池パック101の外部に露出した接続端子108,109を通るから、第三者が接続端子108,109からファームウェアを取得して、リーバースエンジニアリングを行うことが容易となり、技術情報の漏洩を招くという、不都合があった。
特に、電池パックが上述のような認証機能を備えている場合、認証機能はファームウェアによって実現されているから、ファームウェアが解析されることによって認証プロトコルも第三者に知られてしまい、認証で排除できない粗悪な電池パックが市場に流通するおそれがあり、問題が大きい。
一方、ファームウェアの秘匿性を高めるために、ファームウェアを暗号化することが考えられる。しかしながら、電池パック101のファームウェアをアップデートする際は、必ず本体機器102から電池パック101へアップデートの要求を行うのであるから、本体機器102が通信マスタとなって、ファームウェアがフラッシュマイコン104へ送信されることになる。このとき、フラッシュマイコン104は、暗号化されたファームウェアを通信スレーブとして受信しつつ、並行してファームウェアの復号化、及びフラッシュROMへの書き込みを実行することになる。
しかしながら、通信マスタである本体機器102は、本体機器102側のタイミングで送信を行うため、通信スレーブとして動作しているフラッシュマイコン104は、ファームウェアの復号化やフラッシュROMの書き込み処理が間に合わなくなっても本体機器102の送信を一定期間しか待たせることができない。そのため、ファームウェアの復号化やフラッシュROMの書き込み処理が間に合わなくなると、ファームウェアを正常にフラッシュROMに書き込めなくなるという不都合があった。
特に、フラッシュマイコン104はファームウェアに従って動作するのであるから、ファームウェアが正常にフラッシュROMに書き込まれないと、フラッシュマイコン104を正常に動作させることができず、場合によっては起動すらできなくなってフラッシュマイコン104を復旧させることが困難となり、問題が大きい。そのため、フラッシュマイコン104のファームウェアを暗号化して送信しようとすると、ファームウェアの書き換え信頼性が低下するという不都合があった。
本発明は、このような事情に鑑みて為された発明であり、電池の充放電を制御するためのプログラムを、秘匿性、及び書き換え信頼性を向上しつつ、書き換えることができる電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステムを提供することを目的とする。
本発明に係る電池制御回路は、所定のプログラムを実行することにより、二次電池の充放電を制御する制御部と、通信マスタとして暗号化された前記プログラムを送信する本体機器に接続するための接続端子と、前記接続端子に接続される前記本体機器と当該接続端子を介して通信することにより、当該本体機器から前記暗号化されたプログラムを通信スレーブとして受信すると共に記憶する第1記憶部とを備え、前記制御部は、前記プログラムを記憶する第2記憶部と、前記第1記憶部に記憶された、前記暗号化されたプログラムに通信マスタとしてアクセスすると共に、当該暗号化されたプログラムを復号化して前記第2記憶部に記憶させる転送処理を実行する転送処理部と、前記第2記憶部に記憶されたプログラムを実行する実行部とを備える。
この構成によれば、通信マスタである本体機器から暗号化されたプログラムが接続端子を介して通信スレーブである第1記憶部に送信されると共に記憶される。そうすると、接続端子に現れる信号は、暗号化されたプログラムであるから、秘匿性が向上する。また、第1記憶部には、暗号化されたままプログラムが記憶されるから、プログラムの受信と復号化とを並行して実行する必要がなく、復号化が間に合わなくなってプログラムを正常に受信及び記憶できなくなることがなくなる結果、書き換え信頼性が向上する。そして、制御部は、通信マスタとして第1記憶部にアクセスすることで、当該暗号化されたプログラムを復号化して第2記憶部に記憶させるので、復号化処理の進行に応じて第1記憶部へのアクセスを行うことができる結果、復号化処理が間に合わなくなって第1記憶部から第2記憶部へのプログラム転送の信頼性が低下してしまうことがない。
また、前記制御部及び第1記憶部と前記接続端子との間の信号経路を開閉するスイッチング素子をさらに備え、前記転送処理部は、前記転送処理の実行期間中、前記スイッチング素子をオフさせる開閉制御部を備えることが好ましい。
この構成によれば、転送処理部による転送処理の実行期間中、開閉制御部によって、スイッチング素子がオフされて、制御部及び第1記憶部と接続端子との間の信号経路が開かれるので、第1記憶部から制御部へ流れる信号が、接続端子に流れることがない。これにより、プログラムの秘匿性が確保される。
また、前記暗号化されたプログラムは、前記プログラムにおけるオブジェクトコードの配列順序を所定の規則に従って入れ替えることにより、暗号化されており、前記転送処理部は、前記第1記憶部に記憶されたデータを通信マスタとして読み出すインターフェイス部と、前記インターフェイス部によって、前記規則に応じた順序で前記第1記憶部から前記オブジェクトコードを読み出させることにより、前記第1記憶部に記憶されたプログラムを復号化しつつ取得して、前記第2記憶部に記憶させる復号化部とをさらに備え、前記開閉制御部は、前記インターフェイス部によって前記オブジェクトコードの読み出しが実行されている期間中、前記スイッチング素子をオフさせることが好ましい。
この構成によれば、プログラムは、オブジェクトコードの配列順序を所定の規則に従って入れ替えることにより暗号化されており、復号化部は、インターフェイス部によって、前記規則に応じた順序で第1記憶部からオブジェクトコードを読み出させることにより第1記憶部に記憶されたプログラムを復号化した状態で読み出して第2記憶部に記憶させるので、暗号化及び復号化処理を簡素化することができる。また、復号化されたプログラムが、インターフェイス部によって読み出されている期間中、開閉制御部によって、スイッチング素子がオフされて、制御部及び第1記憶部と接続端子との間の信号経路が開かれるので、復号化されたプログラムが接続端子に流れることがない。これにより、プログラムの秘匿性が確保される。
また、前記暗号化されたプログラムは、前記プログラムにおけるオブジェクトコードの配列順序を入れ替えることにより暗号化されており、前記本体機器は、さらに、前記入れ替えられた配列順序を示す順序情報を前記第1記憶部へ送信して記憶させ、前記転送処理部は、前記第1記憶部に記憶されたデータを通信マスタとして読み出すインターフェイス部と、前記インターフェイス部によって、前記第1記憶部から前記順序情報を読み出させ、当該読み出された順序情報で示される順序で前記第1記憶部から前記オブジェクトコードを読み出させることにより、前記第1記憶部に記憶されたプログラムを復号化しつつ取得して、前記第2記憶部に記憶させる復号化部とをさらに備え、前記開閉制御部は、前記インターフェイス部によって前記オブジェクトコードの読み出しが実行されている期間中、前記スイッチング素子をオフさせるようにしてもよい。
この構成によれば、本体機器は、オブジェクトコードの配列順序を入れ替えることにより暗号化されたプログラムと、当該入れ替えられた順序を示す順序情報とを前記第1記憶部に記憶させる。一方、復号化部は、インターフェイス部によって、第1記憶部から順序情報を読み出させ、この順序情報で示される順序で第1記憶部からオブジェクトコードを読み出させることにより第1記憶部に記憶されたプログラムを復号化した状態で読み出して第2記憶部に記憶させるので、暗号化及び復号化処理を簡素化することができる。また、復号化されたプログラムが、インターフェイス部によって読み出されている期間中、開閉制御部によって、スイッチング素子がオフされて、制御部及び第1記憶部と接続端子との間の信号経路が開かれるので、復号化されたプログラムが接続端子に流れることがない。これにより、プログラムの秘匿性が確保される。
また、前記第1記憶部は、前記接続端子に接続された本体機器との間でクロックラインとデータラインとを用いた同期式通信によって、前記本体機器のスレーブとして前記暗号化されたプログラムを受信する通信部と、前記通信部によって受信された、前記暗号化されたプログラムを記憶するメモリセルとを備え、前記スイッチング素子は、前記クロックラインと前記データラインとのうち、データラインのみを開閉するものであることが好ましい。
この構成によれば、スイッチング素子は、信号経路を一つ開閉できればよいので、スイッチング素子が一つでよい。
また、前記転送処理部は、前記第1記憶部に記憶された、前記暗号化されたプログラムを通信マスタとして読み出すインターフェイス部と、前記インターフェイス部によって読み出された、前記暗号化されたプログラムを復号化して前記第2記憶部に記憶させる復号化部とを備えるようにしてもよい。
この構成によれば、第1記憶部に記憶されたプログラムは、暗号化されたまま制御部が備えるインターフェイス部によって読み出されるので、秘匿性が向上する。
また、前記本体機器は、前記暗号化されたプログラムの前記第1記憶部への送信を正常に終了したとき、当該送信の終了を、前記制御部に通知する通知部を備え、前記制御部は、前記通知部からの前記通知を受信したとき、前記転送処理部によって前記転送処理を実行させることが好ましい。
この構成によれば、暗号化されたプログラムの第1記憶部への送信が正常に終了したとき、通知部によって当該送信の終了が制御部に通知される。そして、制御部は、通知部からの通知を受信したとき、転送処理部によって転送処理を実行させるので、第1記憶部への送信が正常に終了していない不完全なプログラムが第2記憶部に記憶されてしまうおそれが低減される。
また、前記通知部は、前記暗号化されたプログラムが前記第1記憶部へ送信された後、当該第1記憶部に記憶されたプログラムを読み出すことにより正しく記憶されたか否かを確認し、前記第1記憶部へ送信されたプログラムが全て正しく記憶されたことが確認されたとき、前記暗号化されたプログラムの前記第1記憶部への送信が正常に終了したものとして、当該送信の終了を、前記制御部に通知することが好ましい。
この構成によれば、第1記憶部によって、暗号化されたプログラムが全て正しく記憶されたとき、通知部によって当該送信の終了が制御部に通知される。そして、制御部は、通知部からの通知を受信したとき、転送処理部によって転送処理を実行させるので、第1記憶部に誤ったプログラムが記憶された場合、この誤ったプログラムが第2記憶部に記憶されてしまうおそれが低減される。
また、前記第1記憶部は、I2Cインターフェイスを用いて前記通信を行うことが好ましい。
I2Cインターフェイスを用いた低コストのEEPROMが、市場に広く流通しているので、このようなEEPROMを第1記憶部として用いることが容易である。また、このような標準的なI2Cインターフェイスを第1記憶部と本体機器との通信に用いることで、本体機器は、制御部に対して第2記憶部の書き換えを要求する手順とは無関係に、電池制御用プログラムの更新を行うことが可能となるので、本体機器のインターフェイスを標準化することが容易となる。
また、本発明に係る電池パックは、上述の電池制御回路と、前記二次電池とを備える。
この構成によれば、電池パックにおいて、電池の充放電を制御するためのプログラムを、秘匿性、及び書き換え信頼性を向上しつつ、書き換えることができる。
また、本発明に係る電池制御用プログラムのアップデートシステムは、上述の電池制御回路と、前記暗号化されたプログラムを、前記接続端子を介して前記第1記憶部へ送信する本体機器とを備える。
この構成によれば、二次電池を用いる本体機器の電池制御用プログラムのアップデートシステムにおいて、電池の充放電を制御するためのプログラムを、秘匿性、及び書き換え信頼性を向上しつつ、書き換えることができる。
また、前記本体機器は、前記暗号化されたプログラムを取得する暗号化プログラム取得部をさらに備えることが好ましい。
この構成によれば、プログラムが暗号化された状態で、本体機器に供給されるので、プログラムを本体機器に供給する際の秘匿性が高められる。
また、本発明に係る電池制御用プログラムのアップデートシステムは、上述の電池制御回路と、前記暗号化されたプログラムを、前記接続端子を介して前記第1記憶部へ送信する本体機器とを備え、前記本体機器は、前記プログラムにおけるオブジェクトコードの配列順序を前記規則に従って入れ替えることにより、前記暗号化されたプログラムを生成する暗号化部をさらに備えるようにしてもよい。
この構成によれば、プログラムを、本体機器においてオブジェクトコードの配列順序を前記規則に従って入れ替えることにより、暗号化することができる。従って、本体機器へプログラムを供給する際の形態を問わないので、例えば配列順序の入れ替えよりも暗号強度の高い暗号化方式で暗号化してプログラムを本体機器へ供給する等、本体機器へのプログラムの供給形態の自由度を高めることが可能となる。
このような構成の電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステムは、電池の充放電を制御するためのプログラムを、秘匿性、及び書き換え信頼性を向上しつつ、書き換えることができる。
以下、本発明に係る実施形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。
(第1実施形態)
図1は、本発明の第1実施形態に係る電池制御回路、これを用いた電池パック、及び電池制御用プログラムのアップデートシステムの構成の一例を示すブロック図である。図1に示す電池制御用プログラムのアップデートシステム1は、電池パック2と、本体機器3とが接続されて構成されている。
図1は、本発明の第1実施形態に係る電池制御回路、これを用いた電池パック、及び電池制御用プログラムのアップデートシステムの構成の一例を示すブロック図である。図1に示す電池制御用プログラムのアップデートシステム1は、電池パック2と、本体機器3とが接続されて構成されている。
電池パック2は、電池制御回路21、電池22,23,24、充電制御用スイッチ25、放電制御用スイッチ26、及び接続端子T1,T2を備えている。電池22,23,24は、例えばリチウムイオン二次電池や、ニッケル水素二次電池等、種々の二次電池である。そして、電池22,23,24は、例えば直列接続されて組電池にされている。なお、電池の数は限定されず、例えば複数の二次電池が直列、並列、あるいは直列と並列とが混在して接続された組電池にされていてもよく、あるいは単電池であってもよい。
接続端子T1は、充電制御用スイッチ25,放電制御用スイッチ26を介して電池22の正極に接続されている。また、接続端子T2は、電池24の負極に接続されている。これにより、本体機器3から接続端子T1,T2を介して電池22,23,24へ充電電圧を供給したり、電池22,23,24から接続端子T1,T2を介して本体機器3へ駆動電圧を供給したりするようになっている。
充電制御用スイッチ25,放電制御用スイッチ26としては、例えばFET(Field Effect Transistor)等のスイッチング素子が用いられる。
電池制御回路21は、マイクロコントローラ211(制御部)、EEPROM(Electrically Erasable and Programmable Read Only Memory)212(第1記憶部)、及び接続端子T3,T4を備えている。接続端子T1,T2,T3,T4は、電池パック2の本体機器3からの取り外しを可能にするべく、本体機器3から着脱可能にされている。
なお、電池制御回路21は、必ずしも電池パックに内蔵されている例に限られず、例えば二次電池の充電器に内蔵されていてもよい。あるいは、電池制御回路21は、本体機器に内蔵されて、接続端子T3,T4が本体機器の制御回路に接続される構成であってもよい。この場合、接続端子T1,T2,T3,T4は、例えば電極やコネクタ、端子台等であってもよく、ランドやパッド等の配線パターンであってもよい。
マイクロコントローラ211は、例えばフラッシュROM221(第2記憶部)、通信I/F部222(インターフェイス部)、RAM(Random Access Memory)223、CPU(Central Processing Unit)224(実行部、復号化部、開閉制御部)、及びI/Oポート225が、内部バスで互いに接続されて構成されている。
フラッシュROM221には、CPU224を動作させるためのファームウェア(プログラム)が記憶されている。また、このファームウェアには、CPU224を復号化部として動作させるための復号化プログラムが含まれている。なお、第2記憶部は、フラッシュROMに限られず、EEPROMやFeRAM(Ferroelectric Random Access Memory)等、種々の書き換え可能な不揮発性記憶素子を用いることができる。
I/Oポート225は、充電制御用スイッチ25、及び放電制御用スイッチ26に接続されており、CPU224からの制御信号に応じて、充電制御用スイッチ25、及び放電制御用スイッチ26をオン、オフさせるようになっている。
通信I/F部222は、例えばI2C(Inter-Integrated Circuit)インターフェイスの通信インターフェイス回路である。I2Cインターフェイスは、クロックラインClockとデータラインDataとを用いた2線式の同期式通信方式である。また、I2Cインターフェイスは、マスタ−スレーブ方式の通信方式である。
そして、通信I/F部222のクロックラインClockは、接続端子T3及びEEPROM212に接続され、通信I/F部222のデータラインDataは、接続端子T4及びEEPROM212に接続されている。
これにより、本体機器3と通信I/F部222との間で通信を行うときは、本体機器3が通信マスタ、通信I/F部222が通信スレーブとなることで、通信によるデータ送受信が可能にされている。また、EEPROM212と通信I/F部222との間で通信を行うときは、通信I/F部222が通信マスタ、EEPROM212が通信スレーブとなることで、通信によるデータ送受信が可能にされている。
EEPROM212は、例えばI2Cインターフェイスの通信回路(通信部)と、この通信回路を介してアクセス可能にされた書き換え可能な不揮発性のメモリセルとを1チップに集積したいわゆるシリアルEEPROMである。このような構成のシリアルEEPROMは、数多くのメーカによって、広く市場に供給され、流通している。
I2Cインターフェイスは、極めて簡素、かつ汎用性に富む通信プロトコルを備えており、簡素な回路でインターフェイス回路を構成可能である。さらに、CPUを備えた回路であれば、I2Cインターフェイスを実現するために専用のインターフェイス回路を設けなくても、制御用プログラムを用いてI/Oポートを制御することで、簡便に、かつ低コストでI2Cインターフェイスを実現できる。そのため、上述のようなシリアルEEPROMの通信インターフェイスとして、事実上、デファクトスタンダードとなっている。
なお、第1記憶部は、このようなシリアルEEPROMに限られず、例えばI2Cインターフェイス等の通信回路と、この通信回路を介してアクセス可能にされたEEPROMやRAM等の記憶素子とを個別に用いて第1記憶部を構成してもよい。
そして、CPU224が、フラッシュROM221に記憶されたファームウェアを実行することにより、例えば電池22,23,24の端子電圧が所定の閾値を超えたときに充電制御用スイッチ25をオフして充電を禁止して電池22,23,24を過充電から保護したり、例えば放電電流が過大になったときに放電制御用スイッチ26をオフして放電を禁止したり、例えば電池22,23,24の温度が所定の閾値以上になったときに充電制御用スイッチ25及び放電制御用スイッチ26をオフして加熱を防止するなどして、電池22,23,24の劣化を低減したり安全性を向上させたりするようになっている。
あるいは、CPU224は、通信I/F部222を介して本体機器3と通信を行うことで、本体機器3による電池22,23,24の充電を制御してもよい。
また、CPU224は、フラッシュROM221に記憶された復号化プログラムを実行することで、復号化部として機能する。そして、CPU224は、通信I/F部222によって、EEPROM212に記憶された暗号化されたプログラムを通信マスタとして読み出させる。そして、CPU224は、通信I/F部222によって読み出された、暗号化されたプログラムを復号化してフラッシュROM221に記憶させる。
この場合、通信I/F部222とCPU224とによって、転送処理部が構成される。なお、復号化部は、ハードウェア回路によって構成してもよい。
本体機器3は、例えば携帯型パーソナルコンピュータや携帯電話機、デジタルカメラ等の電子機器、電気自動車やハイブリッドカー等の車両、等、種々の電池駆動機器の本体である。本体機器3は、外部I/F部30を備えている。外部I/F部30は、例えばインターネットや電話回線等の通信回線に接続可能な通信インターフェイス回路や、例えばメモリカードを接続可能なコネクタ、CD−ROM等の記憶媒体を読取可能な読取装置等、外部からアップデート用のファームウェアを入力可能なインターフェイス回路である。
そして、更新用のファームウェアは、既に暗号化された状態で、例えば外部I/F部30に接続されたインターネットや電話回線等の通信回線を介して本体機器3に供給されてもよく、既に暗号化された状態で、例えばメモリカードやCD−ROM等の記憶媒体によって外部I/F部30を介して本体機器3に供給されてもよい。この場合、外部I/F部30は、暗号化プログラム取得部の一例に相当している。
ファームウェアの暗号化方式は、例えばDES(Data Encryption Standard)やAES(Advanced Encryption Standard)の他、データの送信順序を入れ替えてスクランブルする、といった方式であってもよく、データに復元可能な論理演算を加えたものであってもよく、あるいはその他の種々の方式であってもよい。
また、本体機器3は、所定のプログラムを実行することにより、ファームウェア送信部31、及び通知部32として機能する。
ファームウェア送信部31は、外部I/F部30によって取得された暗号化されたファームウェアを、I2Cインターフェイスの通信マスタとして接続端子T3,T4を介してEEPROM212へ送信し、EEPROM212に記憶させる。これにより、更新用のファームウェアを本体機器3へ供給する際の秘匿性が高められる。(以下、暗号化されたファームウェアのことを、暗号化ファームウェアと称する。)。なお、ファームウェア送信部31が、外部I/F部30によって取得されたファームウェアを暗号化する構成としてもよい。この場合、ファームウェア送信部31は、暗号化部の一例に相当する。
通知部32は、ファームウェア送信部31によって、暗号化ファームウェアがEEPROM212へ送信され記憶された後、EEPROM212に記憶されたファームウェアを読み出して正しく記憶され方か否かを確認する。そして、通知部32は、EEPROM212に送信されたファームウェアが全て正しく記憶されたことが確認されたとき、I2Cインターフェイスを用いて接続端子T3,T4を介して通信I/F部222へ通知する。
暗号化ファームウェアが正しく記憶されたか否かの確認は、例えばファームウェア送信部31によって1バイト分送信される都度行ってもよく、暗号化ファームウェアを全て送信し終わってから行ってもよい。また、確認方法は、送信したデータと読み出したデータとを比較するベリファイチェックによってもよく、チェックサムを用いる等、他の手段によってもよい。
次に、図1に示す電池制御用プログラムのアップデートシステム1の動作について説明する。図2は、図1に示す本体機器3の動作の一例を示すフローチャートである。なお、以下のフローチャートにおいて、同一の動作には同一のステップ番号を付してその説明を省略する。
まず、本体機器3において、アップデート用のファームウェアが、外部I/F部30によって、暗号化された状態で取得される(ステップS1)。なお、ステップS1において、ファームウェア送信部31によって、アップデート用のファームウェアが暗号化されるようにしてもよい。この場合、本体機器3への供給は、例えばマイクロコントローラ211では処理が重くて採用が困難な、暗号化強度の高い暗号方式を用い、本体機器3において一旦復号化した後、ファームウェア送信部31によって、再び復号化処理が少なくて済む簡素な暗号化方式で暗号化するようにしてもよい。
そして、ファームウェア送信部31がI2Cインターフェイスの通信マスタとして、暗号化ファームウェアを、接続端子T3,T4を介してEEPROM212へ送信する。そうすると、通信スレーブとして動作するEEPROM212によって、暗号化ファームウェアが受信され、記憶される(ステップS2)。
このとき、ファームウェアは暗号化されたまま本体機器3からEEPROM212へ送信されるので、もし仮に第三者が接続端子T3,T4の信号を観測したとしても、技術情報が漏洩したり、ファームウェアに含まれる認証プロトコルが知られたりするおそれが低減される。
また、このとき、EEPROM212には、暗号化されたままのファームウェアが記憶され、ファームウェアを復号化しつつ記憶する必要がないので、復号化が間に合わなくなってファームウェアを正しく記憶できなくなるおそれが低減される。
また、図7に示す背景技術のように、本体機器102が直接フラッシュマイコン104にファームウェアを送信して内蔵のフラッシュROMに記憶させる場合には、本体機器102は、予め設定されたフラッシュROMへの書き込み指示コマンドを送信したり、予め規定された書き込み手順を実行したりする必要がある。
しかしながら、このような書き込み指示コマンドや書き込み手順は、フラッシュマイコン104の製造メーカや機種毎に異なっているため、本体機器102は、電池パック101に用いられているフラッシュマイコン104の機種毎に対応して、書き込み指示コマンドや書き込み手順を変える必要があり、不便である。
一方、図1に示す電池制御回路21においては、EEPROMは、単なるメモリであるから、通信インターフェイスさえ共通にしておけば、製造メーカや機種によってアクセス方法に差異はなく、本体機器102側の処理をEEPROMの機種毎に変える必要がないので利便性に優れる。また、上述のように、I2Cインターフェイスを備えた低コストのシリアルEEPROMが、広く市場に流通しており、このようなシリアルEEPROMをそのままEEPROM212として用いることができるので、電池制御回路21の設計も容易である。
さらに、本体機器102は、暗号化ファームウェアをEEPROM212に送信すればよく、マイクロコントローラ211に対して書き込み指示コマンドを送信したり、所定の書き込み手順を実行したりする必要がないので、マイクロコントローラ211の機種が異なるメモリパックに対しても、ファームウェアのアップデート処理を変更する必要がない。一方、電池パック2側では、本体機器102によるアップデート処理に制約されることなく、自由にマイクロコントローラ211の機種を選定することができる。
次に、通知部32によって、ファームウェア送信部31による暗号化ファームウェアの送信が完了したか否かが確認される(ステップS3)。そして、まだ完了していなければ(ステップS3でNO)、ステップS2に戻ってファームウェア送信部31による暗号化ファームウェアの送信を継続する一方、暗号化ファームウェアが全て送信完了していれば(ステップS3でYES)、ステップS4へ移行する。
次に、ステップS4において、通知部32によって、EEPROM212に記憶されているデータが、I2Cインターフェイスを用いて読み出され、ファームウェア送信部31により送信された、暗号化ファームウェアと比較されて、いわゆるベリファイチェックが行われる(ステップS4)。
そして、ベリファイチェックの結果が正しくなければ(ステップS5でNO)、再びステップS2へ戻って暗号化ファームウェアがEEPROM212へ再送される一方、ベリファイチェックの結果が正しければ(ステップS5でYES)、通知部32によって、ファームウェアの送信終了を通知するデータが、I2Cインターフェイスを用いてマイクロコントローラ211へ送信される(ステップS6)。
なお、送信終了の通知は、必ずしも通知部32からマイクロコントローラ211へ、直接I2Cインターフェイスを用いて送信される例に限られず、例えば通知部32が、EEPROM212の予め設定されたアドレスに、送信終了を示すデータを書き込むことによって、通知するようにしてもよい。
図3は、図1に示す電池パック2の動作の一例を示すフローチャートである。まず、CPU224は、ファームウェアの送信終了を通知するデータが、通信I/F部222によって受信されるのを待ち受けている(ステップS11でNO)。そして、通信I/F部222によって、ファームウェアの送信終了を通知するデータが受信されると(ステップS11でYES)、CPU224は、フラッシュROM221に記憶されているファームウェアを更新するべくステップS13へ移行する。
この場合、ステップS3において、暗号化ファームウェアが全て本体機器3からEEPROM212へ送信され、かつステップS4,S5において、EEPROM212に正しく暗号化ファームウェアが記憶されたことが確認されて送信終了が通知されなければ、フラッシュROM221に記憶されているファームウェアが更新されない。従って、例えば本体機器3からEEPROM212への暗号化ファームウェアの送信中に、本体機器3が電源オフされたり、ノイズや接続端子の接触不良等の影響により通信エラーが発生したりする等して暗号化ファームウェアが不完全な状態でEEPROM212に記憶されている場合には、フラッシュROM221に記憶されているファームウェアの更新が実行されない。
これにより、フラッシュROM221が不完全なファームウェアに書き換えられてマイクロコントローラ211が正常に動作しなくなるおそれが低減される。
また、本体機器3と、EEPROM212とは、着脱可能な接続端子T3,T4を介して接続されるので、例えば本体機器3に振動が加えられて接続端子T3,T4の接続不良が生じたり、例えば接続端子T3,T4の接触抵抗によってノイズを拾いやすくなったりする。そのため、接続端子T3,T4を介する本体機器3とEEPROM212との間の通信の信頼性は、着脱可能な接続端子を介さずに実行されるマイクロコントローラ211とEEPROM212との間の通信よりも信頼性が低下する。
しかしながら、ステップS4,S5のベリファイチェックによって、EEPROM212に正しく暗号化ファームウェアが記憶されたことが確認された場合にのみ、本体機器3から送信終了が通知されてCPU224によるファームウェアの更新が実行されるので、例え本体機器3、EEPROM212間の通信信頼性が低下したとしても、誤ったデータでファームウェアが更新されるおそれが低減される。
ところで、図7に示す背景技術に係る本体機器102とフラッシュマイコン104との間も着脱可能な接続端子107,108を介して接続されているため、上述したように本体機器102とフラッシュマイコン104との間の通信も信頼性が低下する。しかも、上述したように、通信スレーブとして動作しているフラッシュマイコン104は、ファームウェアの復号化やフラッシュROMの書き込み処理が間に合わなくなると、ファームウェアを正常にフラッシュROMに書き込めなくなる課題を有しており、フラッシュROMへのファームウェアの書き込み信頼性が低下する。
一方で、一般的には、フラッシュマイコン104のようなフラッシュROMを内蔵したマイクロコントローラは、セキュリティ上の必要から、内蔵されているフラッシュROMに記憶されているファームウェアを外部から読み出すことができないように、ファームウェアの読み出しを禁止する設定がされている。
そのため、一旦ファームウェアの読み出しを禁止する設定がされてしまうと、図7の背景技術に係る電池制御用プログラムのアップデートシステムでは、図1に示す電池制御用プログラムのアップデートシステム1よりも内蔵フラッシュROMへのファームウェアの書き込み信頼性が低いにもかかわらず、内蔵フラッシュROMに記憶されたファームウェアのベリファイチェックが実行できないという課題を有している。
他方、図1に示す電池制御用プログラムのアップデートシステム1では、EEPROM212に一旦暗号化ファームウェアを記憶させることで、マイクロコントローラ211が通信スレーブとして暗号化ファームウェアを受信しつつ復号化する必要がなくなり、かつ、EEPROM212に記憶された暗号化ファームウェアの本体機器3によるベリファイチェックを可能にすることで、暗号化ファームウェアの受信の信頼性を向上することができる。
次に、ステップS13において、CPU224からの制御信号に応じて、通信I/F部222が通信マスタとなって、EEPROM212に記憶された暗号化ファームウェアが読み出され(ステップS13)、この読み出された暗号化ファームウェアが、復号化部としてのCPU224によって復号化されて、フラッシュROM221に記憶される(ステップS14)。
このとき、復号化プログラムが一緒に消去されると、以後の復号化及びフラッシュROM221へのファームウェア書き込みができなくなってしまうので、例えば、フラッシュROM221において復号化プログラムが記憶されているブロックを残して他のブロックのみを消去するようにしてもよく、あるいは予め、復号化プログラムをRAM223に転送して、RAM223上でCPU224に復号化プログラムを実行させるようにしてもよい。
また、ステップS13,S14において、暗号化ファームウェアを全て読み出してから復号化しようとすると、フラッシュROM221以上の記憶容量を有するRAMが必要となり、マイクロコントローラ211のコストが増大する。従って、ステップS13とステップS14とは並列的に実行されて、通信I/F部222によって暗号化ファームウェアの読み出しを行いつつ、CPU224でこれを復号化してフラッシュROM221に記憶させることとなる。
このとき、通信I/F部222は通信マスタとして動作しているから、CPU224による暗号化ファームウェアの復号化に時間がかかるときは、CPU224は、通信I/F部222による暗号化ファームウェアの読み出しを待たせることができる。これにより、図7に示す背景技術に係るフラッシュマイコン104のように、本体機器102から一方的に送信されてくるファームウェアの復号化やフラッシュROMの書き込み処理が間に合わなくなってファームウェアを正常にフラッシュROMに書き込めなくなる、といった問題は、電池パック2においては生じない。
以上、ステップS1〜S14の処理により、電池の充放電を制御するためのファームウェアを、秘匿性、及び書き換え信頼性を向上しつつ書き換えることができる。
(第2実施形態)
次に、本発明の第2の実施形態に係る電池制御回路、これを用いた電池パック、及び電池制御用プログラムのアップデートシステムについて説明する。図4は、本発明の第2実施形態に係る電池制御回路21a、電池パック2a、及び電池制御用プログラムのアップデートシステム1aの構成の一例を示すブロック図である。
次に、本発明の第2の実施形態に係る電池制御回路、これを用いた電池パック、及び電池制御用プログラムのアップデートシステムについて説明する。図4は、本発明の第2実施形態に係る電池制御回路21a、電池パック2a、及び電池制御用プログラムのアップデートシステム1aの構成の一例を示すブロック図である。
図4に示す電池制御用プログラムのアップデートシステム1aと、図1に示す電池制御用プログラムのアップデートシステム1とは、本体機器3aにおけるファームウェア送信部31aの暗号化方法、電池制御回路21aがスイッチング素子213をさらに備える点、及びマイクロコントローラ211におけるCPU224の復号化部及び開閉制御部としての動作、の点で異なる。
その他の構成は図1に示す電池制御用プログラムのアップデートシステム1と同様であるのでその説明を省略し、以下本実施形態の特徴的な点について説明する。
スイッチング素子213は、接続端子T3,T4と、マイクロコントローラ211及びEEPROM212との間に設けられ、接続端子T3と、マイクロコントローラ211及びEEPROM212との間、及び接続端子T4と、マイクロコントローラ211及びEEPROM212との間の信号経路をそれぞれ開閉する。
スイッチング素子213は、例えばFET(Field Effect Transistor)や、リレースイッチ等のスイッチング素子を、二つ用いて構成される。スイッチング素子213は、例えばI/Oポート225に接続されている。これにより、CPU224は、I/Oポート225を介してスイッチング素子213のオン、オフを制御可能にされている。
ファームウェア送信部31aは、アップデート用のファームウェアにおけるオブジェクトコードの送信順序を予め設定された規則に従って入れ替えることにより、暗号化する。
なお、オブジェクトコードの配列順序が、既に予め設定された規則に従って入れ替えられて暗号化された状態の暗号化ファームウェアを、外部I/F部30によって取得することで、外部I/F部30によって取得された暗号化されたファームウェアを、ファームウェア送信部31aの代わりにファームウェア送信部31を用いてEEPROM212へ送信するようにしてもよい。しかしながら、ファームウェア送信部31の動作については既に説明済みであるので、以下、ファームウェア送信部31aにおいて暗号化を行う例について説明する。
フラッシュROM221に記憶されているファームウェアには、CPU224を、通信I/F部222によって、前記規則に応じた順序でEEPROM212からオブジェクトコードを読み出させることにより、EEPROM212に記憶されたファームウェアを復号化しつつ取得して、フラッシュROM221に記憶させる復号化部として機能させるための復号化プログラムが含まれている。
また、フラッシュROM221に記憶されているファームウェアには、CPU224を、通信I/F部222によるEEPROM212からのオブジェクトコードの読み出しが実行されている期間中、スイッチング素子213をオフさせる開閉制御部として機能させるための開閉制御プログラムが含まれている。
次に、図4に示す電池制御用プログラムのアップデートシステム1aの動作について説明する。図5は、図4に示す本体機器3aの動作の一例を示すフローチャートである。まず、本体機器3において、ファームウェア送信部31aによって、アップデート用のファームウェアにおけるオブジェクトコードの送信順序が、予め設定された規則に従って入れ替えられる(ステップS21)。
このとき、送信順序の並び替え規則としては、例えば、線形合同法、平方採中法、混合合同法等の、同一の乱数系列を再現可能な疑似乱数生成アルゴリズムを用いてもよく、例えば偶数アドレスのオブジェクトコードのみ、アドレスの大きいものほど若いアドレスに配置されるように並び替える、といった単純な並び替え規則であってもよい。
次に、ファームウェア送信部31が、I2Cインターフェイスの通信マスタとして、ファームウェアのオブジェクトコードを入れ替えられた送信順序で、接続端子T3,T4を介してEEPROM212へ送信する。そうすると、ファームウェアはオブジェクトコードが並び替えられて暗号化された状態で、接続端子T3,T4を介してEEPROM212へ送信され、通信スレーブとして動作するEEPROM212によって、記憶される(ステップS22)。
この場合、ファームウェア送信部31は、アップデート用のファームウェアにおけるオブジェクトコードの送信順序を並び替えるだけでよいので、暗号化処理を簡素化することができる。
このようにして、図1に示す電池制御用プログラムのアップデートシステム1の場合と同様に、EEPROM212に、暗号化された暗号化ファームウェアが記憶される。以下、ステップS3〜S6は図2と同様であるのでその説明を省略する。
図6は、図4に示す電池パック2aの動作の一例を示すフローチャートである。まず、ステップS11の動作は図3と同様であるのでその説明を省略する。そして、ステップS11の後、開閉制御部としてのCPU224によって、スイッチング素子213がオフされて、接続端子T3,T4がマイクロコントローラ211及びEEPROM212から切り離される(ステップS31)。
次に、CPU224からの制御信号に応じて、通信I/F部222が通信マスタとなって、EEPROM212に記憶された暗号化ファームウェアが読み出される。このとき、復号化部としてのCPU224は、ファームウェア送信部31aがオブジェクトコードの送信順序を入れ替えるのに用いた規則と同じ規則に基づいて、入れ替え前の順番で、通信I/F部222によるオブジェクトコードの読み出しを実行させることで、EEPROM212に記憶されたファームウェアを復号化しつつ、フラッシュROM221に記憶させる(ステップS32)。
この場合、復号化部としてのCPU224は、EEPROM212に記憶されたオブジェクトコードの読み出し順序を入れ替えるだけで復号化することができるので、復号化処理を簡素化することができる。
また、ステップ32においては、EEPROM212からマイクロコントローラ211へ、復号化されたファームウェアが送信されることになるが、このとき、スイッチング素子213がオフされているので、第三者によって、復号化されたファームウェアが接続端子T3,T4から読み取られることがない。
これにより、暗号化処理を簡素化しつつ、ファームウェアの秘匿性を向上することが可能となる。
なお、スイッチング素子213は、接続端子T3,T4を両方ともマイクロコントローラ211及びEEPROM212から切り離す例を示したが、接続端子T3と、マイクロコントローラ211及びEEPROM212との間の信号経路のみを開閉するようにしてもよい。データラインDataを流れる信号さえ隠蔽することができれば、秘匿性は保たれるので、開閉する信号経路を一つにすることで、スイッチング素子213を簡素化する(例えばFET一つにする)ことができる。
そして、ファームウェアをフラッシュROM221に記憶し終わると、復号化部としてのCPU224によってスイッチング素子213がオンされて、本体機器3aと、マイクロコントローラ211及びEEPROM212との間での通信が可能な状態に設定され(ステップS33)、処理を終了する。
なお、ステップS32において、復号化部としてのCPU224は、ファームウェア送信部31aと同じ規則に従って、入れ替え前の順番でオブジェクトコードの読み出しを行うことで復号化する例を示したが、例えば、ファームウェア送信部31aは、入れ替えた送信順序を示す順序情報を、EEPROM212の予め設定されたアドレスに記憶させ、復号化部としてのCPU224は、この順序情報に基づく順番でオブジェクトコードを読み出すことで、復号化するようにしてもよい。
あるいは、予め、暗号化されたファームウェアとこの順序情報とを、通信手段や記憶媒体を用いて、外部I/F部30を介して本体機器3aへ供給するようにしてもよい。この場合、暗号化されたファームウェアとこの順序情報とは、例えば結合されたり混在されたりして、第三者が容易に区別できないようにされていることがセキュリティ上望ましい。
この場合、順序情報としては、例えばEEPROM212に記憶された各オブジェクトコードと、各オブジェクトコードが記憶されるべきマイクロコントローラ211のアドレスとを対応付けたデータテーブルを用いることができる。
また、マイクロコントローラ211は、ASIC(Application Specific Integrated Circuit)であってもよく、必ずしも集積化されている必要はなく、また、マイクロコントローラ211の他、EEPROM212やスイッチング素子213を含んで集積回路化されていてもよい。マイクロコントローラ211、EEPROM212、及びスイッチング素子213が1パッケージに集積化されていた場合には、EEPROM212からマイクロコントローラ211へ送信される復号化されたファームウェアを、集積回路外で観測することができないので、さらに秘匿性が向上する。
本発明は、携帯型パーソナルコンピュータやデジタルカメラ、携帯電話機等の電子機器、電気自動車やハイブリッドカー等の車両、等の電源として使用される二次電池の充放電を制御する電池制御回路、これを備える電池パック、及び電池制御用プログラムのアップデートシステムとして好適に利用することができる。
1,1a アップデートシステム
2,2a 電池パック
3,3a 本体機器
21,21a 電池制御回路
22,23,24 電池
25 充電制御用スイッチ
26 放電制御用スイッチ
30 外部I/F部
31,31a ファームウェア送信部
32 通知部
211 マイクロコントローラ
212 EEPROM
213 スイッチング素子
221 フラッシュROM
222 通信I/F部
223 RAM
224 CPU
225 I/Oポート
Clock クロックライン
Data データライン
T1,T2,T3,T4 接続端子
2,2a 電池パック
3,3a 本体機器
21,21a 電池制御回路
22,23,24 電池
25 充電制御用スイッチ
26 放電制御用スイッチ
30 外部I/F部
31,31a ファームウェア送信部
32 通知部
211 マイクロコントローラ
212 EEPROM
213 スイッチング素子
221 フラッシュROM
222 通信I/F部
223 RAM
224 CPU
225 I/Oポート
Clock クロックライン
Data データライン
T1,T2,T3,T4 接続端子
Claims (13)
- 所定のプログラムを実行することにより、二次電池の充放電を制御する制御部と、
通信マスタとして暗号化された前記プログラムを送信する本体機器に接続するための接続端子と、
前記接続端子に接続される前記本体機器と当該接続端子を介して通信することにより、当該本体機器から前記暗号化されたプログラムを通信スレーブとして受信すると共に記憶する第1記憶部とを備え、
前記制御部は、
前記プログラムを記憶する第2記憶部と、
前記第1記憶部に記憶された、前記暗号化されたプログラムに通信マスタとしてアクセスすると共に、当該暗号化されたプログラムを復号化して前記第2記憶部に記憶させる転送処理を実行する転送処理部と、
前記第2記憶部に記憶されたプログラムを実行する実行部と
を備えることを特徴とする電池制御回路。 - 前記制御部及び第1記憶部と前記接続端子との間の信号経路を開閉するスイッチング素子をさらに備え、
前記転送処理部は、
前記転送処理の実行期間中、前記スイッチング素子をオフさせる開閉制御部を備えること
を備えることを特徴とする請求項1記載の電池制御回路。 - 前記暗号化されたプログラムは、
前記プログラムにおけるオブジェクトコードの配列順序を所定の規則に従って入れ替えることにより、暗号化されており、
前記転送処理部は、
前記第1記憶部に記憶されたデータを通信マスタとして読み出すインターフェイス部と、
前記インターフェイス部によって、前記規則に応じた順序で前記第1記憶部から前記オブジェクトコードを読み出させることにより、前記第1記憶部に記憶されたプログラムを復号化しつつ取得して、前記第2記憶部に記憶させる復号化部とをさらに備え、
前記開閉制御部は、
前記インターフェイス部によって前記オブジェクトコードの読み出しが実行されている期間中、前記スイッチング素子をオフさせること
を特徴とする請求項2記載の電池制御回路。 - 前記暗号化されたプログラムは、
前記プログラムにおけるオブジェクトコードの配列順序を入れ替えることにより暗号化されており、
前記本体機器は、さらに、
前記入れ替えられた配列順序を示す順序情報を前記第1記憶部へ送信して記憶させ、
前記転送処理部は、
前記第1記憶部に記憶されたデータを通信マスタとして読み出すインターフェイス部と、
前記インターフェイス部によって、前記第1記憶部から前記順序情報を読み出させ、当該読み出された順序情報で示される順序で前記第1記憶部から前記オブジェクトコードを読み出させることにより、前記第1記憶部に記憶されたプログラムを復号化しつつ取得して、前記第2記憶部に記憶させる復号化部とをさらに備え、
前記開閉制御部は、
前記インターフェイス部によって前記オブジェクトコードの読み出しが実行されている期間中、前記スイッチング素子をオフさせること
を特徴とする請求項2記載の電池制御回路。 - 前記第1記憶部は、
前記接続端子に接続された本体機器との間でクロックラインとデータラインとを用いた同期式通信によって、前記本体機器のスレーブとして前記暗号化されたプログラムを受信する通信部と、
前記通信部によって受信された、前記暗号化されたプログラムを記憶するメモリセルとを備え、
前記スイッチング素子は、
前記クロックラインと前記データラインとのうち、データラインのみを開閉するものであること
を特徴とする請求項2〜4のいずれか1項に記載の電池制御回路。 - 前記転送処理部は、
前記第1記憶部に記憶された、前記暗号化されたプログラムを通信マスタとして読み出すインターフェイス部と、
前記インターフェイス部によって読み出された、前記暗号化されたプログラムを復号化して前記第2記憶部に記憶させる復号化部と
を備えることを特徴とする請求項1又は2記載の電池制御回路。 - 前記本体機器は、
前記暗号化されたプログラムの前記第1記憶部への送信を正常に終了したとき、当該送信の終了を、前記制御部に通知する通知部を備え、
前記制御部は、
前記通知部からの前記通知を受信したとき、前記転送処理部によって前記転送処理を実行させること
を特徴とする請求項1〜6のいずれか1項に記載の電池制御回路。 - 前記通知部は、
前記暗号化されたプログラムが前記第1記憶部へ送信された後、当該第1記憶部に記憶されたプログラムを読み出すことにより正しく記憶されたか否かを確認し、前記第1記憶部へ送信されたプログラムが全て正しく記憶されたことが確認されたとき、前記暗号化されたプログラムの前記第1記憶部への送信が正常に終了したものとして、当該送信の終了を、前記制御部に通知すること
を特徴とする請求項7記載の電池制御回路。 - 前記第1記憶部は、
I2Cインターフェイスを用いて前記通信を行うこと
を特徴とする請求項1〜8のいずれか1項に記載の電池制御回路。 - 請求項1〜9のいずれか1項に記載の電池制御回路と、
前記二次電池と
を備えることを特徴とする電池パック。 - 請求項1〜9のいずれか1項に記載の電池制御回路と、
前記暗号化されたプログラムを、前記接続端子を介して前記第1記憶部へ送信する本体機器と
を備えることを特徴とする電池制御用プログラムのアップデートシステム。 - 前記本体機器は、
前記暗号化されたプログラムを取得する暗号化プログラム取得部をさらに備えること
を特徴とする請求項11記載の電池制御用プログラムのアップデートシステム。 - 請求項2〜5のいずれか1項に記載の電池制御回路と、
前記暗号化されたプログラムを、前記接続端子を介して前記第1記憶部へ送信する本体機器とを備え、
前記本体機器は、
前記プログラムにおけるオブジェクトコードの配列順序を前記規則に従って入れ替えることにより、前記暗号化されたプログラムを生成する暗号化部をさらに備えること
を特徴とする電池制御用プログラムのアップデートシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008082183A JP2009240055A (ja) | 2008-03-26 | 2008-03-26 | 電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008082183A JP2009240055A (ja) | 2008-03-26 | 2008-03-26 | 電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009240055A true JP2009240055A (ja) | 2009-10-15 |
Family
ID=41253339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008082183A Pending JP2009240055A (ja) | 2008-03-26 | 2008-03-26 | 電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009240055A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010191880A (ja) * | 2009-02-20 | 2010-09-02 | Sanyo Electric Co Ltd | 電池パックのアップデート方法 |
US9176561B2 (en) | 2011-05-18 | 2015-11-03 | Samsung Sdi Co., Ltd. | Smart battery pack system capable of providing power during errors in its firmware data |
CN106655460A (zh) * | 2016-12-23 | 2017-05-10 | 飞依诺科技(苏州)有限公司 | 采用多电池包供电的超声设备的供电方法及系统 |
JP2018112901A (ja) * | 2017-01-11 | 2018-07-19 | 太平洋工業株式会社 | 送信機、受信機、及び、送受信システム |
US20210020881A1 (en) * | 2016-04-03 | 2021-01-21 | Cummins Battery Systems North America Llc | Battery pack including plural electrochemical cells encapsulated by encapsulant and method of manufacture |
JP2021047582A (ja) * | 2019-09-18 | 2021-03-25 | Necプラットフォームズ株式会社 | Rom書き換えモジュール、電子装置、rom書き換え方法およびプログラム |
JP2022058575A (ja) * | 2011-07-24 | 2022-04-12 | 株式会社マキタ | 動力工具システムとそのバッテリパック |
-
2008
- 2008-03-26 JP JP2008082183A patent/JP2009240055A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010191880A (ja) * | 2009-02-20 | 2010-09-02 | Sanyo Electric Co Ltd | 電池パックのアップデート方法 |
US9176561B2 (en) | 2011-05-18 | 2015-11-03 | Samsung Sdi Co., Ltd. | Smart battery pack system capable of providing power during errors in its firmware data |
JP2022058575A (ja) * | 2011-07-24 | 2022-04-12 | 株式会社マキタ | 動力工具システムとそのバッテリパック |
JP7305814B2 (ja) | 2011-07-24 | 2023-07-10 | 株式会社マキタ | 動力工具システムとそのバッテリパック |
US20210020881A1 (en) * | 2016-04-03 | 2021-01-21 | Cummins Battery Systems North America Llc | Battery pack including plural electrochemical cells encapsulated by encapsulant and method of manufacture |
CN106655460A (zh) * | 2016-12-23 | 2017-05-10 | 飞依诺科技(苏州)有限公司 | 采用多电池包供电的超声设备的供电方法及系统 |
CN106655460B (zh) * | 2016-12-23 | 2019-11-08 | 飞依诺科技(苏州)有限公司 | 采用多电池包供电的超声设备的供电方法及系统 |
JP2018112901A (ja) * | 2017-01-11 | 2018-07-19 | 太平洋工業株式会社 | 送信機、受信機、及び、送受信システム |
JP2021047582A (ja) * | 2019-09-18 | 2021-03-25 | Necプラットフォームズ株式会社 | Rom書き換えモジュール、電子装置、rom書き換え方法およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2527671C (en) | Battery and authentication requesting device | |
US9811688B2 (en) | Authentication with battery and host programmed with shared identity key | |
JP2009240055A (ja) | 電池制御回路、電池パック、及び電池制御用プログラムのアップデートシステム | |
US7856103B2 (en) | Microcontroller and authentication method between the controllers | |
CN101984575B (zh) | 一种保护移动终端软件的方法和装置 | |
US7498766B2 (en) | System and method for authenticating a battery | |
CN101465450B (zh) | 电池盒及电子设备 | |
US20090292918A1 (en) | Authentication system and authentication device | |
US9363079B2 (en) | Method of generating message authentication code and authentication device and authentication request device using the method | |
JP2007060353A (ja) | 携帯電話装置、携帯電話システム、電源ユニット、電源ユニット認証方法、およびプログラム | |
US20090113220A1 (en) | Encrypted backup data storage device and storage system using the same | |
CN111786820B (zh) | 固件更新方法、装置及网络设备 | |
JP2006114423A (ja) | 電池認証システム、電池パック並びにアプリケーション機器 | |
US20230171100A1 (en) | Personalization of a secure element | |
CN113037498B (zh) | 离线设备的安全认证方法 | |
KR20060019765A (ko) | 스마트 배터리 및 이를 이용한 배터리 유형 판별 방법 | |
JP2011172000A (ja) | 認証システム及び認証方法 | |
US20120314796A1 (en) | Method of signal exchange, method of bit-sequence transmission, and battery pack | |
CN115080075B (zh) | 一种嵌入式硬件安全模块的固件部署系统及方法 | |
TW202238424A (zh) | 配置控制設備及電子裝置配置電子組件之方法 | |
RU2305911C9 (ru) | Батарея и запрашивающее аутентификацию устройство | |
CN115441531A (zh) | 电耦合数据交换系统及操作方法 | |
KR20090085905A (ko) | 이동 통신 단말의 인증에 사용되는 시리얼 넘버의 복제를방지하는 장치 및 그 방법 | |
WO2010109495A1 (en) | Portable device for enciphering and deciphering data for a mass-storage peripheral device |