background image

3 数字信号处理器与单片机通信系统软件设计

数字信号处理器与单片机组成的

CAN 总线通信系统进行数据通信时,应约定通信协议,

如帧格式、波特率、标识符等。各节点软件设计均包括数据发送和接收子程序以及

CAN 总线

控制器初始化子程序。这里着重研究

CAN 总线控制器的初始化。

3.1 单片机通信系统软件设计

单片机

CAN 通信系统软件设计主要是指 SJA1000 总线控制器的初始化程序设计。

CAN 总线控制器初始化程序主要是通过对 SJA1000 寄存器写入相应的控制字,从而确

SJA1000 的工作方式。SJA1000 需要初始化的寄存器有:模式寄存器 MODE、时钟分频寄

存器

CDR、接收代码寄存器 ACR、接收屏蔽寄存器 AMR、中断使能寄存器 IER、总线定时寄

存器

BTR、输出控制寄存器 OCR 等。其中,总线定时寄存器 BTR 的值决定 CAN 通信波特率,

而波特率正确与否,是数字信号处理器与单片机实现

CAN 通信的关键。因为这些寄存器仅

能在

SJA1000 复位期间进行写访问,因此在对这些寄存器初始化之前,必须确保系统进入

复位状态,在初始化后,须清除复位请求位,使

SJA1000 返回正常运行状态,其初始化子

程序如下:

     

3.2  数 字 信

号 处 理 器 通 信 系
统软件设计

在 使 用 数 字

信 号 处 理 器
CAN 控 制 器 前
必 须 对 它 的 一 些
内 部 寄 存 器 进 行
设 置 , 如 对 位 定
时 器 的 设 置 及 对
邮 箱 进 行 初 始化 。
位 定 时 器 主 要 由