...

PSoC 3® and PSoC 5LP - Getting Started with CAN

by user

on
Category: Documents
52

views

Report

Comments

Transcript

PSoC 3® and PSoC 5LP - Getting Started with CAN
AN52701
PSoC® 3 および PSoC 5LP – コントローラー エリア ネットワーク (CAN) 入門
著者: Ranjith M
関連プロジェクト: あり
関連部品ファミリ: 全ての CAN 内蔵の PSoC 3 と PSoC 5LP 部品
ソフトウェア バージョン: PSoC ® Creator 2.1 SP1
関連アプリケーションノート: なし
本アプリケーション ノートについて、ご質問がある場合または手助けが必要な場合は、[email protected] より
著者までお問い合わせください。
本アプリケーション ノートでは、コントローラー エリア ネットワーク (CAN) の基本的な概念を紹介し、PSoC® 3 と PSoC 5LP を
使用して CAN バス通信を実装する方法をデモします。
目次
はじめに
はじめに ............................................................................. 1
コントローラー エリア ネットワーク (CAN) は、1980 年代初頭
にロバート ボッシュ社により開発されたシリアル通信プロトコ
ルです。このプロトコルは、最初は中央制御なしでサブシステ
ム間の通信のために車載用途向けに開発されました。CAN
は組み込みシステム (CANOpen) とファクトリー オートメーション
(DeviceNet) 等の分野でも採用されています。CAN は 2003
年に ISO により標準化されました (ISO 11898-1:2003) 。
CAN の用途 .................................................................. 2
PSoC の用途 ................................................................ 2
CAN の基本 ....................................................................... 2
物理層........................................................................... 2
転送層........................................................................... 2
バス アービトレーション .................................................. 3
CAN におけるエラー管理 ............................................... 5
PSoC における CAN .......................................................... 5
ハードウェア .................................................................. 5
CAN コンポーネント ....................................................... 7
PSoC Creator のプロジェクト ......................................... 7
ファームウェア.............................................................. 13
ハードウェアの実装 ........................................................... 15
CAN アナライザの操作 ................................................ 16
サンプル プロジェクト ........................................................ 16
プロジェクト 1 と 2: シンプレックス通信 .......................... 16
プロジェクト 3 と 4: CAN の RTR 機能........................... 18
本アプリケーション ノートでは、CAN プロトコールの基本的な
概念を紹介し、PSoC® 3 と PSoC 5LP を使用して CAN バス
通信を実装する方法をデモします。本アプリケーション ノート
には 4 つの例が含まれています。例 1 と 2 は、2 つの PSoC
間のシンプレックス通信を示します。例 3 と 4 は一緒に、CAN
の遠隔送信要求 (RTR) 機能をデモします。
本アプリケーション ノートは、ユーザーが PSoC Creator を使った
PSoC 3 または PSoC 5LP のアプリケーションの開発に精通
していることを前提としています。PSoC 3 または PSoC 5LP
を初めて使用する場合、「AN54181 - Getting Started with
PSoC 3」および「AN77759 - Getting Started with PSoC
5LP」にて概要を参照してください。PSoC Creator に慣れてい
ない場合、PSoC Creator のホームページを参照してください。
まとめ ............................................................................... 20
付録 A .............................................................................. 21
付録 B .............................................................................. 22
ワールドワイドな販売と設計サポート ................................. 24
www.cypress.com
文書番号: 001-96361 Rev. **
1
®
PSoC 3 および PSoC 5LP - CAN 入門
図 1.CAN ネットワークに接続されたノード
CAN ネットワークは、8 バイトを超えないデータ長のショート
メッセージおよび最大 1Mbps のビット レート向けに設計され
ています。CAN プロトコルは、他のシリアル通信プロトコルに
比べて以下の利点があります。

CAN はメッセージ ベースのプロトコルです。 CAN ネット
ワークのノードは特定のアドレスが割り当てられません。
これにより、他の部分に影響を与えずにネットワークに
ノードを柔軟に追加/削除することができます。その上、
いずれかのノードに障害が発生した場合、他のノードは続
けて正しく動作して通信します。


CAN メッセージは優先順位を付けることができます。

CAN ネットワークは、システム全体のデータの一貫性を
持っています。つまり、メッセージがどれかの受信ノードで
破損した場合、そのメッセージはいかなる他の受信ノード
でも受容されません。

CAN は、信頼性のあるトラフィックとデータの整合性を保
証するためにエラー チェックの 5 つのレベルがあります。
CANH
120Ω
120Ω
CAN の用途
CANL
CAN
Node A
CAN
Node B
CAN
Node C
CAN バスは、図 2 に示すように差動信号を運びます。バスの
両線がほぼ同じ電圧 (通常は 2.5V) であると、「1」が表されま
す。線間の電圧差が 1.5V~3V であると、「0」が表されます。
「1」はリセッシブ ビット (劣性ビット) と呼ばれ、「0」はドミナント
ビット (優性ビット) と呼ばれます。
図 2. CAN バス電圧
1
Bit Pattern
0
V
破損したメッセージはバスが再びアイドル状態になるとす
ぐに自動的に再送信されます。
CAN Bus
Voltages
3.6
CANH
2.5
PSoC の用途
PSoC 3 と PSoC 5LP は、単一のチップ上で CAN 機能を、
コンフィギュレーション可能なアナログ、プログラマブルなデジ
タ ル 、 メ モ リ 、 お よ び 中 央 処 理 装 置 と 統 合 し ま す 。 PSoC
Creator は、一般的なタスクを抽象化するためのアプリケー
ション プログラミング インターフェース (API) を統合しています。
また、CAN コンポーネントを含む全ての PSoC Creator コン
ポーネントは、C コードを書くよりも、GUI を使用して簡単に設
定することができます。CAN コンポーネントのシステム レベル
の用途については、「AN70630 - Event Data Recorder with
Controller Area Network using PSoC 3 and nvSRAM」アプ
リケーション ノートを参照してください。
CAN の基本
本節では、CAN プロトコルの基本を説明します。プロトコルの
詳細は、CAN 仕様で詳しく説明しています。CAN に精通し、
CAN を PSoC 3 と PSoC 5LP に実装する方法を理解したい
のであれば、「PSoC における CAN」節を参照してください。
物理層
図 1 は、デバイスがどのように CAN バスに接続するかを示し
ます。CAN バスは、CANH と CANL の 2 つの物理的回線で
構成されています。CAN バスは、一般的に各端に 120Ω 抵抗
で終端されています。
www.cypress.com
1.4
RECESSIVE
0
CANL
DOMINANT
RECESSIVE
CAN プロトコルによると、リセッシブ ビットとドミナント ビットが
2 つの異なるノードにより同時に CAN バスに送信された場合、
バスがドミナント ビットを持つはずです。これは、ワイヤード
AND アナロジーに類似しています: 全てのノードがリセッシブ
ビットを駆動していない限り、バスはレセッシブ ビットを持ちま
せん。アイドル状態にある間、バスはリセッシブ ビットを持ちま
す。
転送層
CAN バスがアイドル状態にある時、どのノードでもメッセージ
の送信を開始することができます。メッセージは、フレームと呼
ばれる固定フォーマットでバスを介して送信されます。CAN は
以下の 4 つのフレーム タイプを定義します。


データ フレーム: トランスミッタからレシーバへデータを伝送

エラー フレーム: バス上のエラーを検出した時に任意の装
置により送信

オーバーロード フレーム: 前後のデータまたはリモート フ
レームの間に余分な遅延を提供するために使用
リモート フレーム: データ フレームの送信を要求するために
CAN ノードにより送信
これらのフレームのフォーマットの詳細については、付録 A を
参照してください。
文書番号: 001-96361 Rev. **
2
®
PSoC 3 および PSoC 5LP - CAN 入門
データ フレームは、図 3 に示すように 7 フィールドで構成されています。
図 3.CAN データ フレーム
Data Frame
11-bit
identifier
R
T
R
I
D
E
R0
Data
Length
Count
Arbitration Field Control Field
0 to 8 Bytes
Data Field
CRC Field
Start of Frame
ACK Field
アービトレーション フィールド: データ フレームのアービトレー
ション フィールドは、識別子と遠隔送信要求 (RTR) ビットとい
う 2 つの部分から構成されています。
識別子は、データ フレームで転送されるデータの意味を記述
するために使用されます。バス上の各ノードは、識別子を確認
し、メッセージを受容するかどうかを決定します。
識別子フィールドの長さに基づき、CAN メッセージは標準メッ
セージと拡張メッセージという 2 種が定義されています。
標準 CAN メッセージには 11 ビットの識別子があり、拡張
CAN メッセージには 29 ビットの識別子があります。したがって、
標準 CAN データ フレームは 211 のメッセージ タイプをサポー
29
トでき、拡張 CAN データフ レームは 2 のメッセージ タイプを
サポートできます。
RTR ビットは、特定のフレームがデータ フレームかリモート フ
レームであるかを示します。RTR ビットは、データ フレームで
は「ドミナント」に、リモート フレームでは「リセッシブ」に設定さ
れます。
コントロール フィールド: データ フレームのコントロール フィー
ルドは、データ フィールド内のデータ バイト数を定義します。
コントロール フィールドは 6 ビット長で、その中の 4 ビットが
データ長のためで、2 ビットが将来の拡張のために予約されて
います。
www.cypress.com
End of Frame
データ フィールド: データ フィールドは、通信するためのデータ
を含みます。
CRC フィールド: 巡回冗長検査 (CRC) フィールドはエラー チ
ェックのためです。このフィールドは、受信したフレームにエ
ラーがあるかどうかを判定するためのビット シーケンスを含
んでいます。ACK フィールドは、フレームが正しく受信された
ことを確認するために受信ノードにより使用されます。
レシーバとして動作するノードは、そのソースからの特定のメッ
セージの送信を要求することができます。これは、リモート フ
レームを利用して実現できます。リモート フレームはデータ
フィールドを持たないことを除き、データ フレームに似ていま
す。
バス アービトレーション
複数のノードが同時に送信しようとした場合、バス アービトレー
ションが図 4 に示すように識別子ビットを使用して行われます。
バス上のビットを送信した後、各ノードは、前述したドミナント
ビットの特性を利用してバスの状態が送信されたビットと同じ
かどうかを確認します。同じ場合、ノードは次のビットを送信し
ます。異なっている場合、ノードは送信を停止し、バス上のメッ
セージの受信を開始します。これは「listen only」(リッスン オン
リー) モードと呼ばれます。
文書番号: 001-96361 Rev. **
3
®
PSoC 3 および PSoC 5LP - CAN 入門
図 4.CAN でのバス アービトレーション
10 9 8
Node A
Node B
7 6 5
4 3
2 1
0
S
O
F
R
T
R
S
O
F
Listen Only
Node C
S
O
F
Bus State
S
O
F
Control
Data
Listen Only
R
T
R
Control
Data
ノードが各ビットを送信した後にバスをリードバックするため、衝突を検出できるようにするために、ビット持続時間はバスの最大伝播遅
延よりも大きくなければなりません。したがって、送信されたビットは、伝播遅延を補正するために遅延後にリードバックされます。バス
がリードバックされた瞬間は、図 5 に示すように「サンプル ポイント」と呼ばれます。
単一ビットを送信するのに要する時間は「ビット時間」と呼ばれます。CAN 仕様では、ビット時間は「タイム クォンタム」 (TQ) で表現され
ます。タイム クォンタムは、図 5 に示すように発振子の周期から派生する時間の固定単位です。CAN クロック周波数を得るために、発
振周波数がボー レート プリスケーラ (BRP) と呼ばれる係数で分周されます。
図 5. 発振子からビット時間の派生
Oscillator
Baud Rate Prescaler (BRP),
user definable
CAN Clock
1 Bit Time
10 - 20 TQ, user definable
CAN Bit
Period
Sync-Seg
(fixed)
1 TQ
TSEG2
N2 TQ, user definable
TSEG1
N1 TQ, user definable
Sample Point
同期セグメント (最初の TQ にある) の開始時に、トランスミッタはバス上にビットを駆動し始めます。トランスミッタはビット時間を通じて
バスを駆動し続け、定めた時間後、衝突検出のためにバスをサンプリングします。この時間は、パラメータ TSEG1 と TSEG2 を設定す
ることで確定されます。8 ページの図 12 を参照してください。一般に、サンプル ポイントはビット時間の 60%~80%です。
www.cypress.com
文書番号: 001-96361 Rev. **
4
®
PSoC 3 および PSoC 5LP - CAN 入門
CAN におけるエラー管理
CAN ノードは、以下の 5 つのエラー タイプを検出して処理します。

ビット エラー: ビット エラーは、トランスミッタが送信されたビ
ットとバス上のビットが同じでないことを発見すると、トランス
ミッタにより検出されます。
ノードは、送信と受信エラーのためにエラー カウンターを維持
し、対応するエラーを検出した後にインクリメントされるエラー
を受け取ります。エラー カウンターの値によって CAN モジュー
ルは 3 つの異なる状態のいずれかになります。

エラー アクティブ状態: 送信または受信エラー カウンター
の値が 127 以下の場合、ノードは「エラー アクティブ」状
態になります。エラー アクティブ状態のノードは、通常の
バス通信を行うことができます。

フォーム エラー: フォーム エラーはメッセージの固定形式
に偏差がある時に検出されます。8 バイトを超えたデータ
長カウント (DLC) もフォーム エラーと見なされます。


スタッフ エラー: トランスミッタはビット ストリーム内で同じ
値の 5 つの連続ビットを検出すると、自動的にストリーム
に相補ビットを挿入します。これはビット スタッフィングと呼
ばれています。スタッフ エラーは、同じ値の 6 つの連続
ビットが検出されると検出されます。
エラー パッシブ状態: 送信または受信エラー カウンター
の値が 128 以上の場合、ノードは「エラー パッシブ」状態
になります。エラー パッシブ状態のノードは、通常のバス
通信を行うことができます。

CRC エラー: CRC エラーは、フレームの CRC フィールド
により示される値がフレームの予想された CRC 値と一致
しない時に検出されます。
バス オフ状態: 送信エラー カウンターが 256 以上の場合、
ノードは「バス オフ」状態になります。バス オフ状態のノー
ドはバス通信を行いません。バスには影響を与えません。
PSoC における CAN


アクノリッジ エラー: 確認応答 (「ドミナント」ビット) がフレー
ムのアクノリッジ フィールド中に得られない場合、アクノリッ
ジ エラーはトランスミッタにより検出されます。
ビット エラーとアクノリッジ エラーはトランスミッタにより検出さ
れ、スタッフ エラー、CRC エラー、フォーム エラーはレシーバ
により検出されます。メッセージがこれらのエラー検出方法の
いずれかに失敗した場合、そのメッセージは受容されず、受信
ノードがエラー フレームを生成します。その後、受信ノードは
メッセージが正常に受信されるまでメッセージを再送信します。
障害のあるノードが連続してエラー フレームを再送信すること
でバスをハングアップした場合、エラーの数がエラー上限数に
達した後、そのノードのトランスミッタ機能が削除されます。各
www.cypress.com
ハードウェア
6 ページの図 6 に示されている PSoC 3 と PSoC 5LP の
CAN ブロックは CAN 2.0a と 2.0b 規格に準拠しています。た
だし、出力電圧のレベル シフトを行い、CAN プロトコルと互換
性を持たせるために外部トランシーバが必要です。NXP 製の
TJA1050 または TI 製の SN65HVD1050-EP を外部トラン
シーバとして使用できます。これらのデバイスは、2 ページの
図 2 に示すようにビット パターンとバス電圧間を変換します。
本アプリケーション ノートでは、サイプレス キット CY8CKIT-017
は 6 ページの図 7 に示すように TJA1050 を外部トランシーバ
として使用しています。
文書番号: 001-96361 Rev. **
5
®
PSoC 3 および PSoC 5LP - CAN 入門
図 6. CAN ブロック図
Memory Buffer
(SRAM)
CAN Module
Memory
Arbiter
Receive
Message
Handler
Transmit
Message
Handler
To
CPU/PHUB
Advanced
Peripheral Bus
(APB) Coupler
CAN
Bus
CAN Framer
Interrupt Controller
Status and
Configuration
Control and
Command
図 7. CAN ネットワークの実装用のハードウェア接続
5V
5 V CY8C3866AXI
PSoC 3
VDD
VDD
CY8CKIT-017
TX
CY8CKIT-017
C_TX
CAN_H
RX
C_RX
Tx_En
C_EN
CAN_L
C_TX
TX
C_RX
RX
C_EN
Tx_En
CAN_H
CAN_L
VSS
VSS
www.cypress.com
CY8C3866AXI
PSoC 3
文書番号: 001-96361 Rev. **
6
®
PSoC 3 および PSoC 5LP - CAN 入門
PSoC Creator のプロジェクト
CAN コンポーネント
図 8 には、CAN コンポーネントがどのように PSoC Creator
回路図上に表示されるかを示します。
Basic CAN をデモするためのプロジェクトをビルドするには、
次の手順を実行してください。
1.
PSoC Creator を起動し、新規プロジェクトを作成します
(File > New > Project)。プロジェクトに「Receiver」と名
前を付けます。
2.
図 9 に示すように、CAN コントローラー マクロをコンポー
ネント カタログから TopDesign 回路図にドラッグ アンド
ドロップします。
図 8. PSoC Creator における CAN コンポーネント
図 9. コンポーネント カタログにある CAN コントローラー マクロ
PSoC は、Full CAN と Basic CAN という 2 つの CAN 通信モード
を提供しています。以下は、Full CAN メッセージと Basic CAN
メッセージとの重要な違いです。

Full CAN 通信は、GUI を使用して非常に限られたプログ
ラミングで容易にセットアップすることができます。Basic
CAN 通信は、全てのパラメータがファームウェアで設定さ
れる必要があります。

Full CAN は、メッセージ フィルタリングにはハードウェア
を使用しています。Basic CAN は、メッセージが受容され
るかどうかを判断するためにメッセージが受信されるたび
に CPU が中断されることを必要とします。

Full CAN は、メールボックス1毎に単一のメッセージ タイ
プのみを受け取ることができる一方で、Basic CAN はメー
ルボックス毎に広範な識別子のメッセージを受け取ること
ができます。
次の節では、CAN コンポーネントを Full CAN 通信に設定す
る方法について説明します。以下の手順は、2 つの PSoC を
それぞれ別々の開発キット (DVK) で設定する方法について説
明します。1 つの PSoC の CAN コンポーネントはトランスミッタ
に設定され、もう 1 つの PSoC の CAN コンポーネントはレシーバ
に設定されます。
3.
キャラクタ LCD コンポーネントをコンポーネント カタログ
から TopDesign 回路図にドラッグ アンド ドロップします。
これはフォルダ「Display」にあります。図 10 は完成された
回路図を示します。
図 10. 完成された TopDesign
注 このアプリケーション ノートに関連するオプションのみが記
載されます。CAN コンポーネントに対応する全てのオプション
の詳細については、CAN コンポーネント データシートを参照し
てください。
1
メールボックスは、CAN メッセージを送受信するための入力/出力
バッファの一式です。
www.cypress.com
文書番号: 001-96361 Rev. **
7
®
PSoC 3 および PSoC 5LP - CAN 入門
4.
TopDesign にある CAN コンポーネントをダブルクリックし
てコンフィギュレーション ウィンドウを開きます。
C AN の 一 般 コ ン フ ィ ギ ュ レ ー シ ョ ン :
図 11 は、PSoC Creator の CAN コンポーネントの一般コンフィ
ギュレーション タブを示しています。
C AN の タ イ ミ ン グ コ ン フ ィ ギ ュ レ ー シ ョ ン :
図 12 は、PSoC Creator の CAN コンポーネントのタイミング
コンフィギュレーション タブを示します。
図 12. CAN コンポーネントのタイミング設定タブ
図 11. CAN コンポーネントの一般コンフィギュレーション タブ
9.
5.
「Add Transceiver Signal」チェックボックスにチェックが
入っていることを確認します。 これは初期設定で有効に
なっています。
一般コンフィギュレーションタブ内の「Add Transceiver
Signal」オプションでは、CAN コンポーネントの TX_EN
信号を有効/無効にします。この信号は外部トランシーバ
のイネーブル ピンに接続するために使用されます。
6.
7.
「Transmit Buffer Arbitration」を「Round-Robin」に設定
します。
ボー レートは、デバイス間の通信の速度を決定します。こ
の速度を最大 1Mbps まで設定することができます。バス
上の全ての CAN ノードが同じボー レートで動作する必要
があります。
注 ボー レートの選択により、表内であり得るタイミング パ
ラメータの一覧のみが提供されます (図 12 を参照)。表内
で行をダブルクリックしてそれぞれのフィールドのパラメー
タを更新する必要があります。
「Round Robin」オプションは全ての送信メールボックスが
均等な送信の機会を与えられていることを保証するのに
対し、「Fixed priority」オプションはどのメッセージが送信
されるかに応じてメールボックスに優先順位を割り当てま
す。
10. 「BRP」=2、「Time Quantum」=16、「Sample Point」=75
の行 (図 12 を参照) をダブルクリックして、これらの値を「
Settings」に追加します。
「Bus-Off Restart」の方式を「Manual」に設定します。
11. 「Synchronization Jump Width」 (SJW) を 1 に、「Sample
Mode」を「1-Sample」に設定します。
バス オフ再起動は、手動または自動で送信エラーの数を
監視することで行います。
8.
「Baud-rate」を 500Kbps に設定します。これにより、図 12
に示すように値が自動的に変更されます。
「CAN Bus Synchronization Logic」に「'R' to 'D'」を選択
します。
CAN ネットワークではクロック信号が送信されません。代
わりに、全ての受信ノードのクロックは、トランスミッタによ
り送信されたフレームの開始 (SOF) の立ち下がりエッジ
で同期化されます。後続のエッジは、異なるノード間のク
ロックの小さなドリフトに適合するためにクロックを同期化
するために使用されます。
最高性能を得るには、「Sample Point」が 60~80 で、
「Variance」が 0 の行を選択します。
図 5SJW は、サンプル ポイントがその平均位置から外れ
られるタイム クォンタムの数です。この値は、4 ページの
図 5 に示される TSEG1 と TSEG2 の両方の以下でなけ
ればなりません。
サンプル モードは、バスの状態を決定するために取られ
るサンプルの数です。ここで単一サンプル モードまたは 3
サンプル モードを選択できます。
同期化は、リセッシブからドミナントへ ('R' to 'D') の遷移、
または両方のエッジ (リセッシブからドミナントへ、ドミナン
トからリセッシブへ) で行うことができます。
www.cypress.com
文書番号: 001-96361 Rev. **
8
®
PSoC 3 および PSoC 5LP - CAN 入門
C AN 割 込 み の コ ン フ ィ ギ ュ レ ー シ ョ ン :
C AN 受 信 バ ッ フ ァ :
図 13 は、CAN コンポーネントの割り込み設定タブを示してい
ます。このタブを使用していくつかのイベントが発生した時の割
り込みを有効または無効にします。割り込みが有効にされた
場合、PSoC はイベントが発生する時に割り込みサービス
ルーチン (ISR) を実行します。
CAN コンポーネントは、メッセージを受信するために 16 の入
力バッファ (メールボックス) を持っています。したがって CAN
コンポーネントは、最大 16 の異なる CAN メッセージ タイプを
受信することができます。
Message Received (メッセージ受信) と Bus Off State (バス
オフ状態) の割り込みは初期設定では選択されています。
Message Receive 割り込みは自動的に
CAN_TX_RX_func.c 内の ReceiveMsgx() 関数を呼び出し
ます。
メールボックスは、初期設定では 0~15 の番号が付けられ、
お好みの名前に置き換えることができます。これを行うには、
図 14 に示すように「Full」モードを選択します。Full モードを選
択すると、その行の他のコンフィギュレーション可能なオプション
が有効になります。
図 14. CAN コンポーネントの受信バッファ設定
図 13. CAN コンポーネントの割り込み設定タブ
12. 「Enable Interrupts」および「Message Received」、「Bus
Off State」の割り込みを有効にするためにこれらのチェック
ボックスが必ずチェックされていることを確認してください。
他の全てのボックスはチェックしないべきです。
13. 0x2FF の ID を持つ Full メールボックスを有効にするに
は、図 14 に示すようにチェックボックスを選択します。ID
フィールドは、該当するメールボックスで受信されるメッセー
ジの識別子を定義し、任意の 11 ビット値に設定すること
ができます。
14. メッセージがメールボックスで受信されると割り込みをトリ
ガーするために、IRQ ボックスにチェックを入れます。
これで、レシーバ側の CAN コンポーネントのコンフィギュレー
ションが完了します。この場合、ノードがメッセージを送信する
必要がないため、送信バッファを設定する必要はありません。
www.cypress.com
文書番号: 001-96361 Rev. **
9
®
PSoC 3 および PSoC 5LP - CAN 入門
C AN 送 信 バ ッ フ ァ
ピンのコンフィギュレーション
次に、トランスミッタ側を設定しましょう。残りの PSoC に対して
行うため、その PSoC 向けの別のプロジェクトを作成する必要
があります。
本節の手順は、「Receiver」と「Transmitter」両方のプロジェク
トに適用します。
15. ワ ー ク ス ペ ー ス に 別 の プ ロ ジ ェ ク ト を 追 加 す る に は 、
Workspace Explorer ウィンドウ内のワークスペース名を
右クリックし、Add > New Project オプションを選択しま
す。このプロジェクトに「Transmitter」と名前を付けます。
16. このプロジェクトの TopDesign に CAN コントローラー マ
クロをドラッグ アンド ドロップします。レシーバ側と同様に、
3~12 のステップで説明したように CAN コンポーネントを
設定します。
Transmit Buffers タブは、図 15 示すように送信メールボックス
を設定するために使用します。送信メールボックスは Full また
は Basic のいずれかに設定できます。Full モードを選択すると、
その行の他のコンフィギュレーション可能なオプションが有効
になります。
これらのプロジェクトにピンを追加して設定しましょう。Tx_1 と
Rx_1 ピンはステップ 2 で CAN マクロの一部として含まれてい
ます。図 10 に示すように第 3 のピンを追加する必要がありま
す。
18. 図 10 と図 16 に示すように両プロジェクトの TopDesign
回路図に Digital Output Pin をドラッグ アンド ドロップし
ます。CAN コンポーネントの tx_en 出力に接続します。こ
のピンは外部トランシーバを有効にするために使用され
ます。
図 16. デジタル出力ピンを探す
図 15. CAN コンポーネントの送信バッファ設定
17. レシーバ側と同様に、0x2FF の ID を持つ Full メールボッ
クスを有効にするには、図 15 に示すようにチェックボック
スを選択します。
1 バイトのみを送信するため、Data Length Count (DLC)
フィールドは 1 となります。
www.cypress.com
19. 図 17 に示すように Workspace Explorer で各プロジェク
トのデザイン ワイド リソース (.cydwr) ファイルをダブルク
リックして開きます。
文書番号: 001-96361 Rev. **
10
®
PSoC 3 および PSoC 5LP - CAN 入門
図 17. .cydwr ファイルを探す
クロックのコンフィギュレーション
本節の手順は、「Receiver」と「Transmitter」両方のプロジェク
トに適用します。
CAN プロトコルは、ビットを同期させるクロックを送信しません。
4 ページの図 5 に示したように、ノード間の同期化は同期セグ
メント中に送信されたビット毎に行われます。このため、
125Kbps より高いボー レートを得るために高精度な発振子を
使用する必要があります。
CAN プロトコルでは、クロック精度は 0.5%以下でなければな
らないことを規定しています。外部水晶発振子を使用すること
で 0.1%未満の誤差は PSoC で得られます。デザイン ワイド
リソース ファイル (拡張子.cydwr を持つファイル) 内のクロック
ツリー ダイアログがこれを設定するために使用されます。
21. 図 18 に示すように、デザイン ワイド リソース ファイルを
開きます。クロックのタブで、Edit Clocks をクリックしま
す。クロック ツリー ダイアログが開きます。
20. 表 1 に示すように、各ピンにポートを割り当てます。
表 1. ピンの割り当て
ピン
23. IMO ソースに XTAL を選択します。他の設定は変更しな
いでください。
CY8CKIT-001
CY8CKIT-030
Rx_1
P3[4]
P3[4]
Tx_1
P3[3]
P3[3]
Pin_1
P3[2]
P3[2]
LCD_Char_1
P2[6:0]
P2[6:0]
www.cypress.com
22. 水晶のイネーブル - クロック ツリーの左上にあるチェック
ボックスをクリックします。Configure ボタンをクリックして、
水晶周波数に 24MHz を入力します。
24. ご使用のキットが XTAL を備えていない場合、24MHz 水
晶と 2 個のコンデンサをピン P15[0]と P15[1]に接続しま
す。詳細については、PSoC 3 または PSoC 5LP のデー
タシートを参照してください。
文書番号: 001-96361 Rev. **
11
®
PSoC 3 および PSoC 5LP - CAN 入門
図 18. クロック ツリーのコンフィギュレーション
www.cypress.com
文書番号: 001-96361 Rev. **
12
®
PSoC 3 および PSoC 5LP - CAN 入門
ファームウェア
本節の手順は、「Receiver」と「Transmitter」両方のプロジェク
トに適用します。各プロジェクトに少量のファームウェア コード
を追加する必要があります。
25. Build > Build All Projects メニュー項目を選択し、各プ
ロジェクトをビルドします。CAN コンポーネントおよびその
他の API ファイルが自動的に生成されます。
27. 図 20 に示すように、Workspace Explorer 内でファイル
名をダブルク リックし て、 「Transmitter 」プロジェク トの
CAN_1_TX_RX_func.c ファイルを開きます。このファイ
ルは、プロジェクトがビルドされた後に生成されます。
図 20. CAN_1_TX_RX_func.c ファイルを探す
26. Workspace Explorer 内でファイル名をダブルクリックして、
「Transmitter」プロジェクトの main.c ファイルを開きます
(図 19 を参照)。main.c ファイルにコード 1 からのコードを
追加します。
図 19. main.c ファイルを探す
28. 以下の行に移動します。
/* `#START TX_RX_FUNCTION` */
/* `#END` */
29. 上記の行の間に次のコード行を入力します。
コード 1. 「Transmitter」の main.c コード
extern uint8 Tx_Data;
#include <device.h>
30. 同じファイル内に関数 CAN_1_SendMsg0() を配置しま
す。以下のコードに移動します。
uint8 Tx_Data = 0;
void main()
{
CAN_1_Start();
LCD_Char_1_Start();
CyGlobalIntEnable;
/* `#START MESSAGE_0_TRASMITTED` */
/* `#END` */
31. 上記の行の間に次のコード行を入力します。
for(;;) /* do forever */
{
LCD_Char_1_ClearDisplay();
LCD_Char_1_Position(0,0);
LCD_Char_1_PrintNumber(Tx_Data);
CAN_1_SendMsg0();
Tx_Data++;
CyDelay(500);
}
CAN_1_TX_DATA_BYTE1(0) = Tx_Data;
}
www.cypress.com
文書番号: 001-96361 Rev. **
13
®
PSoC 3 および PSoC 5LP - CAN 入門
32. Workspace Explorer 内でファイル名をダブルクリックして、
「Receiver」プロジェクトの main.c ファイルを開きます。
main.c ファイルにコード 2 からのコードを追加します。
その他のファームウェアの注意事項
コード 2. 「Receiver」の main.c コード

CAN コンポーネントは、使用する前に初期化して main.c
ファイルで開始する必要があります。

グローバル割り込みは、CAN コンポーネントからの割り込
み要求を処理するために有効にする必要があります。

特定の送信メールボックスからの Full CAN メッセージを
送信するには、CAN_TX_SendMsgx() 関数を呼び出しま
す (x はメールボックス番号に置き換えられ、CAN_TX は
PSoC Creator の TopDesign 回路図内で CAN コンポー
ネントに与えられた名前です)。

Full CAN メ ッ セ ー ジ の 送 受 信 に 必 要 な 関 数 は
CAN_TX_TX_RX_func.c ファイルで提供されています。
このファイルは、プロジェクトがビルドされた後に生成され
ます。
#include <device.h>
uint8 Rx_Data;
void main()
{
CAN_1_Start();
LCD_Char_1_Start();
CyGlobalIntEnable;
for(;;) /* do forever */
{
LCD_Char_1_ClearDisplay();
LCD_Char_1_Position(0,0);
LCD_Char_1_PrintNumber(Rx_Data);
}
}
33. Workspace Explorer 内でファイル名をダブルクリックして、
「Receiver」プロジェクトの CAN_1_TX_RX_func.c ファイ
ルを開きます。このファイルは、プロジェクトがビルドされ
た後に生成されます。
CAN コンポーネントのファームウェアを書く際には、次の点に
注意してください。
PSoC で CAN をコンフィギュレーションするためにファーム
ウェアを書く方法を理解するには、本アプリケーション ノートに
同梱されたサンプル プロジェクトを参照してください。
34. 以下の行に移動します。
/* `#START TX_RX_FUNCTION` */
/* `#END` */
35. 上記の行の間に次のコード行を入力します。
extern uint8 Rx_Data;
36. 同じファイル内に関数 CAN_1_ReceiveMsg0() を配置し
ます。以下のコードに移動します。
/* `#START MESSAGE_0_RECEIVED` */
/* `#END` */
37. 上記の行の間に次のコード行を入力します。
Rx_Data = CAN_1_RX_DATA_BYTE1(0);
38. 両方のプロジェクトをビルドし、それぞれを 2 つのキット内
の PSoC にプログラムします。プログラム オプションは、
PSoC Creator の Debug メニューにあります: Debug >
Program。
www.cypress.com
文書番号: 001-96361 Rev. **
14
®
PSoC 3 および PSoC 5LP - CAN 入門
ハードウェアの実装
CAN コンポーネントからの PSoC 出力は TX と RX です。
CANH と CANL 信号を得るために、これらの出力のレベルを
変換する必要があります。CY8CKIT-017 拡張基板キットは、
本アプリケーション ノート同梱のサンプル プロジェクトにおい
てレベル変換を実施する外部トランシーバとして使用されます。
このキットで使用する CAN トランシーバ IC は TJA1050 です。
トランシーバは、17 ページの図 25 に示すように最小限の接続
で実装することがあります。その図では、CY8CKIT-017 は
TJA1050 に置き換えることができます。詳細な図は、付録 B
に示します。
CAN は、CAN バスに 2 線のみを必要とします。図 21 に示す
ように CY8CKIT-017 では、標準オスオス DB9 コネクタは 2
つの CAN ノード間を接続するために使用することができます。
CAN ネットワーク内の任意の 2 CAN ノード間のケーブル長を
表 2 に示す値に制限するべきです。これらの値は CAN 仕様
には記載されていませんが、設計で使用される標準値です。
表 2.異なるボー レートに対応する標準ケーブル長
ボー レート (ビット/秒)
標準ケーブル長 (メートル)
1Mbps
40
500kbps
100
250Kbps
200
125Kbps
500
10kbps
6000
図 21. CAN の物理的接続
www.cypress.com
文書番号: 001-96361 Rev. **
15
®
PSoC 3 および PSoC 5LP - CAN 入門
用することができます。CY8CKIT-001 DVK の代わりに 1
つの CY8CKIT-030 または CY8CKIT-050 DVK を使用
することができます。
CAN アナライザの操作
CAN アナライザは、デバッグ目的のために CAN バス上で
データ トラフィックを監視するために使用されるデバイスです。
これらのデバイスは Microchip や Peak-system などのメーカー
から入手できます。図 22 は、CAN バスへの USB CAN アナ
ライザの接続を示すブロック図です。
CAN アナライザは、PCAN View などのソフトウェアが、CAN
アナライザが接続したコンピュータ システム上にインストール
されることも必要とします。このソフトウェアは、CAN アナライ
ザが受信するデータを解釈して、アプリケーションのインター
フェースに表示します。
2.
表 3. CAN シンプレックス トランスミッタのピンの使用
ピン
図 22. CAN バスに接続した USB CAN アナライザ
CAN
Analyzer
USB
プロジェクト ファイルを開き、.cydwr ファイルで正しいピン
割り当てを行います。ピン割り当ては、表 3 と表 4 に示し
ます。
Computer
(CAN Analyzer
Software)
CY8CKIT-001
CY8CKIT-030 /
CY8CKIT-050
LCD_Tx
P2[6:0]
P2[6:0]
Data_In
P0[0]
P6[1]
RX
P3[4]
P3[4]
TX
P3[3]
P3[3]
tx_en
P3[2]
P3[2]
表 4. CAN シンプレックス レシーバのピンの使用
CAN Node 1
(PSoC with
transceiver)
CANH
CANL
CAN Node 2
(PSoC with
transceiver)
ピン
サンプル プロジェクト
本アプリケーション ノートには 4 つのサンプル プロジェクトが
含まれています。
プロジェクト 1 と 2: シンプレックス通信
17 ページの図 25 に示したプロジェクト 1 と 2 は、2 つの CAN
ノード間のシンプレックス通信をデモします。
プロジェクト 1 ではトランスミッタを実装します。スイッチ上の
キーの押下を監視し、CAN を介してキーの押下回数を通信し
ます。プロジェクト 2 ではレシーバを実装します。データを受信
してキャラクタ LCD ディスプレイに表示します。17 ページの
図 23 と図 24 に示すフローチャートは、これらのプロジェクト
のプログラム フローを示します。
サンプル プロジェクト 1 と 2 をセットアップするには、次の手順
を行ってください。
1.
3.
CY8CKIT-001
CY8CKIT-030 /
CY8CKIT-050
LCD_Rx
P2[6:0]
P2[6:0]
RX
P3[4]
P3[4]
TX
P3[3]
P3[3]
tx_en
P3[2]
P3[2]
両方のプロジェクトをビルドします。
CAN_SimplexCommunication_Tx を第 1 の PSoC に、
CAN_SimplexCommunication_Rx を第 2 の PSoC にプ
ログラムします。
CAN_SimplexCommunication_Tx プロジェクトは LCD ディス
プレイの 1 行目に「TRANSMITTER」を表示します。2 行目は、
Data_in ピンに登録されたキーの押下回数を示します。
CAN_SimplexCommunication_Rx プロジェクトは LCD ディ
スプレイの 1 行目に「RECEIVER」を表示します。2 行目は、
第 1 の PSoC により CAN を介して送信されたデータを表示し
ます。これは、CAN_SimplexCommunication_Tx プロジェクト
の 2 行目に表示されているキーの押下回数と同じです。
図 25 に 示 す よ う に シ ス テ ム を 構 築 し ま す 。 2 つ の
CY8CKIT-001 DVK と 2 つの CY8CKIT-017 EBK を使
www.cypress.com
文書番号: 001-96361 Rev. **
16
®
PSoC 3 および PSoC 5LP - CAN 入門
図 23. プロジェクト 1 のフローチャート (トランスミッタ)
図 24. プロジェクト 2 のフローチャート (レシーバ)
Start
Start
Initialize CAN, LCD and
variables
Initialize CAN and
variables
Data
Received?
N
Key press?
N
Y
Y
Update LCD Data
Increase count by 1
Transmit count and
Update LCD
図 25. プロジェクト 1 と 2 の物理的なコンフィギュレーション
5V
CY8C3866AXI
PSoC 3
(Project#1)
5V
CY8C3866AXI
PSoC 3
(Project#2)
VDD
VDD
CY8CKIT-017
P3[3]
CY8CKIT-017
C_TX
CAN_H
P3[4]
C_RX
P3[2]
C_EN
CAN_L
C_TX
P3[3]
C_RX
P3[4]
C_EN
P3[2]
CAN_H
CAN_L
Switch
P0[0]
P2[6:0]
P2[6:0] VSS
8
8
LCD
LCD
www.cypress.com
VSS
文書番号: 001-96361 Rev. **
17
®
PSoC 3 および PSoC 5LP - CAN 入門
表 5. CAN_RTR_Node1 のピンの使用
プロジェクト 3 と 4: CAN の RTR 機能
19 ページの図 28 に示したプロジェクト 3 と 4 は、CAN の
RTR 機能をデモします。
プロジェクト 3 はノード 1、プロジェクト 4 はノード 2 と名付けま
す。ノード 1 は ADC データ入力を監視し、ADC 値を LCD ディ
スプレイに表示します。ノード 2 からの RTR 要求が発生した
場合、現時点の ADC 値はノード 2 に送信されます。ノード 2
はスイッチ上のキーの押下があるかを連続して確認し、キーが
押された時にノード 1 に RTR 要求を発行します。ノード 1 によ
り送信された ADC データ値は、ノード 2 により受信され、その
LCD ディスプレイ上に表示されます。19 ページの図 26 と図 27
に示すフローチャートは、これらのプロジェクトのプログラム フ
ローを示します。
ピン
2.
LCD
P2[6:0]
P2[6:0]
ADC_In
P0[0]
P6[5]
RX
P3[4]
P3[4]
TX
P3[3]
P3[3]
tx_en
P3[2]
P3[2]
ピン
図 28 に 示 すよ う に シ ステム を ビ ル ド し ま す 。 2 つ の
CY8CKIT-001 DVK と 2 つの CY8CKIT-017 EBK を使
用することができます。CY8CKIT-001 DVK の代わりに 1
つの CY8CKIT-030 または CY8CKIT-050 DVK を使用
することができます。
プロジェクト ファイルを開き、.cydwr ファイルで正しいピン
割り当てを行います。ピン割り当ては、表 5 と表 6 に示しま
す。
CY8CKIT-030 /
CY8CKIT-050
表 6. CAN_RTR_Node2 のピンの使用
サンプル プロジェクト 3 と 4 をセットアップするには、次の手順
を行ってください。
1.
CY8CKIT-001
3.
CY8CKIT-001
CY8CKIT–030 /
CY8CKIT-050
LCD
P2[6:0]
P2[6:0]
RTR_In
P0[0]
P6[1]
RX
P3[4]
P3[4]
TX
P3[3]
P3[3]
tx_en
P3[2]
P3[2]
両方のプロジェクトをビルドします。CAN_RTR_Node1 を
第 1 の PSoC に、CAN_RTR_Node2 を第 2 の PSoC に
プログラムします。
CAN_RTR_Node1 プロジェクトは LCD ディスプレイの 1 行目
に「Node1」を表示し、2 行目に ADC 出力の現時点の値を表
示します。
CAN_RTR_Node2 プロジェクトは LCD ディスプレイの 1 行目
に「Node2」を表示します。RTR_In キーが押された時、1 行目
は「RTR Sent」(RTR 送信済み) を表示し、2 行目は RTR に
応答してノード 1 から受信した ADC 出力の値を表示します。
www.cypress.com
文書番号: 001-96361 Rev. **
18
®
PSoC 3 および PSoC 5LP - CAN 入門
図 26. プロジェクト 3 のフローチャート (ノード 1)
図 27. プロジェクト 4 のフローチャート (ノード 2)
Start
Start
Initialize CAN, ADC,
LCD and variables
Initialize CAN, LCD
and variables
Get ADC Value
Display on LCD
N
Key Press?
RTR
Request?
N
Y
Send RTR request
Y
Transmit ADC Value
Value Update on LCD
図 28. プロジェクト 3 と 4 の物理的なコンフィギュレーション
CY8C3866AXI
PSoC 3
5V
(Project#3)
5V
VDD
VDD
CY8CKIT-017
P3[3]
5V
CY8CKIT-017
C_TX
CAN_H
VIN
P3[4]
C_RX
P3[2]
C_EN
CAN_L
C_TX
P3[3]
C_RX
P3[4]
C_EN
P3[2]
CAN_H
CAN_L
P0[0]
P2[6:0]
P0[0]
P2[6:0] VSS
RTR_Switch
8
VSS
8
LCD
LCD
www.cypress.com
CY8C3866AXI
PSoC 3
(Project#4)
文書番号: 001-96361 Rev. **
19
®
PSoC 3 および PSoC 5LP - CAN 入門
これらのプロジェクトが正常に動作するために、CY8CKIT-017
のジャンパ JP2 が装着されていることを確認してください。ま
た、CY8CKIT-017 のジャンパ JP6 は V5_0 と VDD の間を接
続する必要があります。標準オスオス DB9 コネクタを 2 つの
CAN ノード間を接続するために使用することができます。
PSoC Creator のサンプル プロジェクトのセクションには、もう
2 つのサンプル プロジェクトが提供されています。
まとめ
CAN は主に車載アプリケーションに使用されている信頼性の
高いシリアル通信プロトコルです。このプロトコルは、デバイス
間の双方向通信を可能にし、フレキシブルなネットワークを提
供しています。
サイプレスの PSoC 3 と PSoC 5LP は PSoC Creator と共に、
CAN 2.0a と CAN 2.0b 仕様に準拠しており、CAN ネットワー
クを容易にセットアップするためのユーザーフレンドリーなイン
ターフェースと API 一式を提供しています。本アプリケーション
ノートは、PSoC で CAN を円滑に実装できるようにに案内しま
す。
著者について
www.cypress.com
氏名:
Ranjith M
役職:
アプリケーション エンジニア
経歴:
Ranjith は Government Engineering
College (トリチュール、インド) を卒業し、
電子通信工学の学士号を取得しました。
連絡先:
[email protected]
文書番号: 001-96361 Rev. **
20
®
PSoC 3 および PSoC 5LP - CAN 入門
付録 A
STANDARD DATA FRAME
ARBITRATION
FIELD
INTERFRAME
SPACE
START
OF
FRAME
IDENTIFIER
(11 BITS)
RTR
IDE
R0
DLC
(4 BITS)
DATA
(MAXIMUM 8 BYTES)
CRC
FIELD
ACK
FIELD
END OF
FRAME
INTERFRAME
SPACE
CONTROL
FIELD
EXTENDED DATA FRAME
ARBITRATION
FIELD
INTERFRAME
SPACE
START
OF
FRAME
IDENTIFIER
(11 BITS)
SRR
IDE
IDENTIFIER
RTR
(18 BITS)
R1
R0
DLC
(4 BITS)
DATA
(MAXIMUM 8 BYTES)
CRC
FIELD
ACK
FIELD
END OF
FRAME
INTERFRAME
SPACE
CONTROL
FIELD
www.cypress.com
文書番号: 001-96361 Rev. **
21
®
PSoC 3 および PSoC 5LP - CAN 入門
付録 B
Interfacing with TJA1050
VDD
VCC
PSoC
P3[2]
S
P3[3]
TXD
P3[4]
RXD
TJA1050
CANH
To
CAN BUS
CANL
GND
GND
www.cypress.com
文書番号: 001-96361 Rev. **
22
®
PSoC 3 および PSoC 5LP - CAN 入門
改訂履歴
文書名: PSoC® 3 および PSoC 5LP - コントローラー エリア ネットワーク (CAN) 入門
文書番号: 001-96361
版
ECN 番号
変更者
発行日
**
4669754
HZEN
03/26/2015
www.cypress.com
変更内容
これは英語版 001-52701 Rev. *I を翻訳した日本語版 001-96361 Rev. **です。
文書番号: 001-96361 Rev. **
23
®
PSoC 3 および PSoC 5LP - CAN 入門
ワールドワイドな販売と設計サポート
サイプレスは、事業所、ソリューション センター、メーカー代理店および販売代理店の世界的なネットワークを保持しています。お客様
の最寄りのオフィスについては、サイプレスのロケーション ページをご覧ください。
製品
PSoC®ソリューション
車載
cypress.com/go/automotive
クロック&バッファ
cypress.com/go/clocks
インターフェース
cypress.com/go/interface
照明&電源管理
cypress.com/go/powerpsoc
cypress.com/go/plc
メモリ
cypress.com/go/memory
PSoC
cypress.com/go/psoc
テクニカル サポート
タッチ センシング
cypress.com/go/touch
cypress.com/go/support
USB コントローラー
cypress.com/go/usb
無線/RF
cypress.com/go/wireless
psoc.cypress.com/solutions
PSoC 1 | PSoC 3 | PSoC 4 | PSoC 5LP
サイプレス開発者コミュニティ
コミュニティ | フォーラム | ブログ | ビデオ | トレーニング
PSoC はサイプレス セミコンダクタ社の登録商標です。本書で言及するその他すべての商標または登録商標は、それぞれの所有者に帰属します。
Cypress Semiconductor
198 Champion Court
San Jose, CA 95134-1709
Phone
Fax
Website
: 408-943-2600
: 408-943-4730
: www.cypress.com
© Cypress Semiconductor Corporation, 2009-2015. 本文書に記載される情報は予告なく変更される場合があります。Cypress Semiconductor Corporation
(サイプレス セミコンダクタ社) は、サイプレス製品に組み込まれた回路以外のいかなる回路を使用することに対して一切の責任を負いません。サイプレス セミコン
ダクタ社は、特許またはその他の権利に基づくライセンスを譲渡することも、または含意することもありません。サイプレス製品は、サイプレスとの書面による合意
に基づくものでない限り、医療、生命維持、救命、重要な管理、または安全の用途のために使用することを保証するものではなく、また使用することを意図したもの
でもありません。さらにサイプレスは、誤動作や故障によって使用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネント
としてサイプレス製品を使用することを許可していません。生命維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆる
リスクを負うことを意味し、その結果サイプレスはあらゆる責任を免除されることを意味します。
このソースコード (ソフトウェアおよび/またはファームウェア) はサイプレス セミコンダクタ社 (以下「サイプレス」) が所有し、全世界の特許権保護 (米国およびそ
の他の国)、米国の著作権法ならびに国際協定の条項により保護され、かつそれらに従います。サイプレスが本書面によりライセンシーに付与するライセンスは、
個人的、非独占的かつ譲渡不能のライセンスであり、適用される契約で指定されたサイプレスの集積回路と併用されるライセンシーの製品のみをサポートするカ
スタム ソフトウェアおよび/またはカスタム ファームウェアを作成する目的に限って、サイプレスのソース コードの派生著作物をコピー、使用、変更そして作成す
るためのライセンス、ならびにサイプレスのソース コードおよび派生著作物をコンパイルするためのライセンスです。上記で指定された場合を除き、サイプレスの
書面による明示的な許可なくして本ソース コードを複製、変更、変換、コンパイル、または表示することはすべて禁止します。
免責条項: サイプレスは、明示的または黙示的を問わず、本資料に関するいかなる種類の保証も行いません。これには、商品性または特定目的への適合性の黙
示的な保証が含まれますが、これに限定されません。サイプレスは、本文書に記載される資料に対して今後予告なく変更を加える権利を留保します。サイプレス
は、本文書に記載されるいかなる製品または回路を適用または使用したことによって生ずるいかなる責任も負いません。サイプレスは、誤動作や故障によって使
用者に重大な傷害をもたらすことが合理的に予想される生命維持システムの重要なコンポーネントとしてサイプレス製品を使用することを許可していません。生命
維持システムの用途にサイプレス製品を供することは、製造者がそのような使用におけるあらゆるリスクを負うことを意味し、その結果サイプレスはあらゆる責任
を免除されることを意味します。
ソフトウェアの使用は、適用されるサイプレス ソフトウェア ライセンス契約によって制限され、かつ制約される場合があります。
www.cypress.com
文書番号: 001-96361 Rev. **
24
Fly UP