FRDM-K64FにはFlexCANモジュールが付いてますが、そのままでは、CAN信号の送受信ができません。CANトランシーバがボードについてないからです。
今回は外付けでCANトランシーバをつけてみて、実際にCANをつかってみたので、その時の回路を簡単にまとめます。
トランシーバは何するかちょっとみてみた?
CANコントローラは、RXDを受信、TXDを送信用の信号として、トランシーバに渡してます。CANプロトコルの説明の記事でも調べましたが、
CAN信号は基本、HIGHとLOWの二線間の差動電圧で、0 or 1の信号を決めます。
トランシーバのデータシートをみると下のようなブロック図がでてました。

TXDとRXDの時点では、シングルエンドの信号なので、トランシーバは、内部的にTXDのHIGH/LOWを検知して(図のDominant Detect)、ドライバが作動電圧をつくりだしてるみたいですね。
逆にRXDはCAN-H とCAN-Lの差圧をとって、コントローラに渡してます。
他のメーカのトランシーバのデータシートにも似たような図がでてました。こっちは入出力がDとRと標記されてますが、DがTXD、RがRXDになります。これも似た感じですね。

MCP2551
Microchip製のCANトランシーバです。ピン配は以下のとおり。

実際に使った回路は下のような感じになりました。

ブレッドボードをつかって、配線すると、こんな感じになりました。

CAN信号をPCでモニタするってなると、何かしらのCANインターフェースが必要ですけど、今回は、PEAK-SYSTEM という会社がだしてるPCAN-USBというのをつかいました。
CANといえばVector社の製品があまりにも有名ですけど、このPCAN-USBで使える無償ソフトPCAN-VIEWは気軽にCANの信号をチェックするのに便利です。
CAN信号をだすサンプルコードの作り方は、別記事にまとめましたので、参考にしてください。
サンプルコードではID=0x787の信号で受信するように設定して、PCAN-USBから、そのIDで信号を送信してみます。
下がPCAN-Viewの画面で、下側のTransmitと書いてある所で、ID=0x787のパケットを値を00,AAと交互に値を変えて流してみます。

下がMCUXpresso上でID=0x787で受信した信号をモニタしたものです。

めでたくとれてました。トランシーバぐらいボードに実装してくれればいいのに。
MCP2551バンザイ:)