云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于CAN总线的汽车电器网络设计 - 学习can总线宝典 - 图文

基于CAN总线的汽车电器网络设计 - 学习can总线宝典 - 图文

  • 62 次阅读
  • 3 次下载
  • 2026/4/27 15:47:39

天津工业大学2011届本科生毕业设计(论文)

系统进行合理的分块,并针对每个模块进行了功能描述。给出总线节点电路的设计以及电源电路的设计,针对一些干扰,采取了相应措施。同时设计总线接口每一部分的电路,并进行详细分析。

28

天津工业大学2011届本科生毕业设计(论文)

第五章 CAN总线网络软件设计

结合上一章的硬件电路设计,本章完成了下位机数据采集程序的编写,制定了CAN通信协议,实现了CAN节点间的数据通信。

5.1CAN总线系统智能节点的软件设计

CAN总线智能节点部分的程序设计是整个控制网络系统软件设计的基础,它主要包括三个部分:CAN节点初始化、报文发送和报文接收程序。

5.1.1初始化过程

SJA1000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。CAN总线控制器SJA1000的初始化流程图如图5-1所示。

开始初始化配置总线定时寄存器禁止主控制器中断源配置输出控制寄存器进入复位模式进入工作模式复位模式=复位(1)?NY配置时钟分频寄存器1.Basic CAN2.CAN输入比较器旁路3.CLKOUT控制以及频率4.TX1禁用复位模式=普通(0)?NY使能CAN中断和CAN 中断源配置验收代码配置结束

图5-1 CAN总线控制器SJA1000的初始化流程图

SJA1000初始化子程序: //SJA1000初始化 void CAN_Init()

29

天津工业大学2011届本科生毕业设计(论文)

{

unsigned char i_temp = 0,j_temp = 0; CLI(); }

do {

Write_SJA1000(MODE,0X01); }

while(!(Read_SJA1000(MODE) & 0X01));

Write_SJA1000(CDR,0XC8); //PeliCAN 模式,禁能CLOCKOUT引脚 Write_SJA1000(AMR0,0XFF); //设置验收屏蔽位 Write_SJA1000(AMR1,0X00); Write_SJA1000(AMR2,0XFF); Write_SJA1000(AMR3,0X00); Write_SJA1000(ACR1,0X00); Write_SJA1000(ACR3,0x01); Write_SJA1000(BTR0,0X7F);

Write_SJA1000(BTR1,0XFF); //16M晶振下 波特率为5Kbit/s Write_SJA1000(OCR,0X1A); //TX1悬空 ,TX0推挽正常输出 do { }

while((Read_SJA1000(MODE)&0x01)); //双滤波方式,正常工作模式 Write_SJA1000(TXID2,0X00); //配置发送缓冲区ID3 Write_SJA1000(IER,0X01); //配置SJA1000中断 SEI();

Write_SJA1000(MODE,0X00);

5.1.2报文发送过程

根据CAN协议规范,报文的传输由CAN控制器SJA1000独立完成。主控制器将要发送的报文传送到发送缓冲器,然后将命令寄存器里的发送请求标志置位。发送过程由SJA1000的中断请求控制或由查询控制段的状态标志控制。发送程序完成通信双方约定的帧的发送,发送时把需发送的数据送入发送缓冲区,然后置

30

天津工业大学2011届本科生毕业设计(论文)

位命令寄存器的―发送请求‖位,SJA1000启动发送。发送过程流程图如图5-2所示。

程序开始SJA1000复位SJA1000初始化SJA1000进入工作模式等待重发将待发送数据送入发送缓冲区执行发送操作查询状态寄存器判断是否发送成功Y程序结束N 图5-2 CAN总线数据发送程序流程图

CAN发送子程序: void CAN_Send() {

unsigned char a_temp = 0;

unsigned char SR_temp,i; NOP();

for(i = 2 ;i < 6; i++) { CLI(); do

{

a_temp = Read_SJA1000(SR); }

while(!(a_temp & 0x04));

TransBuffer[0]=0x04; TransBuffer[1]=0x00;

31

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

天津工业大学2011届本科生毕业设计(论文) 系统进行合理的分块,并针对每个模块进行了功能描述。给出总线节点电路的设计以及电源电路的设计,针对一些干扰,采取了相应措施。同时设计总线接口每一部分的电路,并进行详细分析。 28 天津工业大学2011届本科生毕业设计(论文) 第五章 CAN总线网络软件设计 结合上一章的硬件电路设计,本章完成了下位机数据采集程序的编写,制定了CAN通信协议,实现了CAN节点间的数据通信。 5.1CAN总线系统智能节点的软件设计 CAN总线智能节点部分的程序设计是整个控制网络系统软件设计的基础,它主要包括三个部分:CAN节点初始化、报文发送和报文接收程序。 5.1.1初始化过程 SJA1000的初始化只有在复位模式下才

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com