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 所示。