background image

  

CPLD 的逻辑设计

  

CPLD 具有速度快、体积小、驱动能力强、可在线编程等优点。基于 CPLD 的

逻辑控制电路适合完成译码任务,本文

选用

EPM7064 芯片,通过译码电路的软件设计,完成 SJA1000 输入信号的逻

辑选通控制。

  

CPLD 的输入信号是 DSP 发送的信号,由高位地址 A[15…13]、I/O 空间选

通引脚以及写

/读信号组成。其中,地址线 A13 作为 SJA1000 的地址和数据的

选择线,地址线

A14 和 A15 经译码后作为片选信号。地址线 A13 和 I/O 空间选

通信号产生

SJA1000 的地址锁存信号 SJA_ALE,地址线 A13 和读写信号产生

SJA1000 的数据和地址读写信号。其 CPLD 的输入/输出信号逻辑关系如表 1 所

示。

  双

CAN 软件程序设计

    该

CAN 控 制 器 的 收 发 程 序 包 括 两 部 分 : DSP 的 CAN 收 发 程 序 和

SJA1000 的 CAN 收发程序。每个 CAN 收发程序主要由三个函数组成:CAN 初

始化程序、

CAN 报文接收程序和 CAN 报文发送程序。由于 DSP 的 CAN 收发程

序比较容易设计,只需设置

CAN 控制器寄存器中的相应位,就可实现 CAN 报

文的收发。所以,本文主要介绍

SJA1000 的 CAN 报文收发程序设计。

  从表

1 中可以看到,SJA1000 的寄存器映射到 DSP 的 I/O 空间。本文选择

0x8000 作为 SJA1000 地址输入端口,0xA000 作为 SJA1000 数据输入/输出

端口。其程序主要由

SJA1000 初始化、SJA1000 接收报文和 SJA1000 发送报文

三个子函数组成。其收发函数的流程如图

3 所示。