课程设计--CAN总线

合集下载

CAN总线设计(最终版)(1)

CAN总线设计(最终版)(1)

CAN-USB适配器设计*****指导老师:***学院名称:*****专业班级:****设计提交日期:**年**月摘要随着现场总线技术和计算机外设接口技术的发展,现场总线与计算机快速有效的连接又有了更多的方案。

USB作为一种新型的接口技术,以其简单易用、速度快等特点而备受青睐。

本文介绍了一种基于新型USB接口芯片CH372的CAN总线网络适配器系统的设计,提出了一种使用USB接口实现CAN总线网络与计算机连接的方案。

利用芯片CH372可在不了解任何USB协议或固件程序甚至驱动程序的情况下,轻松地将并口或串口产品升级到USB接口。

该系统在工业现场较之以往的系统,可以更加灵活,高速,高效地完成大量数据交换,并可应用于多种控制系统之中,具有很大的应用价值。

关键词:USB;CH372;CAN;SJA100;适配器目录1.设计思想 (3)2.CAN总线与USB的转换概述 (4)3. 适配器硬件接口设计 (5)3.1 USB接口电路 (5)3.2 CAN总线接口电路 (7)4.USB通用设备接口芯片CH372 (8)4.1 概述 (8)4.2 引脚功能说明 (9)4.3 内部结构 (9)4.4 命令 (10)5.软件设计 (10)5.1 概述 (10)5.2主监控程序设计 (12)5.3 CAN和USB接口芯片的初始化 (13)5.4 CAN报文的发送 (15)5.5 CAN报文的接收 (17)5.6.自检过程 (19)5.7 USB下传子程序设计 (20)5.8 USB上传子程序设计 (22)5.9.USB—CAN转换器计算机端软件设计 (23)6. 抗干扰措施 (25)7. 估算成本 (26)8. 应用实例介绍 (27)9 总结及设计心得 (28)10 参考文献 (28)1 设计思想现场总线网络技术的实现需要与计算机相结合。

目前,在微机上扩展CAN总线接口设备一般采用PCI总线或者RS-232总线。

PCI虽然仍是高速外设与计算机接口的主要渠道,但其主要缺点是占用有限的系统资源、扩展槽地址;中断资源有限;并且插拔不方便;价格较贵;而且设计复杂、需有高质量的驱动程序保证系统的稳定;且无法用于便携式计算机的扩展;RS-232虽然插拔方便,但是传输速率太慢。

实验指导书(CAN总线)

实验指导书(CAN总线)

《汽车总线及嵌入式系统》实验指导书适用专业:车辆工程(汽车电子方向)课程代码:8244860总学时: 4编写单位:交通与汽车工程学院编写人:彭忆强审批人:批准时间:年月日一、实验教学目标与要求:目标:通过本课程的学习使学生掌握CAN的基本知识,运用codewarrior软件,编辑、编译、上机调试等基本操作操作,来解决某些实际问题,并养成严谨的科学态度和科学的思维方法,从而提高分析和解决实际问题的能力。

为后续课程的学习和在毕业设计时使用CAN总线及16位单片机系统解决实际问题打下良好的基础。

要求:注意自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯。

应独立完成所布置的上机作业,为保证尽量在统一安排的上机时间内编译运行通过程序,应事先预习设计好程序。

课后撰写实验报告。

二、实验环境程序设计语言的实验环境如下:1.硬件环境微型计算机(Intel x86系列CPU)一台2.软件环境Windows98/2000/XP操作系统Codewarrior 4.6三、实验课程具体内容:附录1:Codewarrior使用方法简介1、在程序中找到freescale ,选择codecarrior IDE,打开Codewarrior软件后出现画面如图:2、选择“Create New Project”后点击“下一步”后出现以下界面:在给出的芯片名称中选怎所要用的芯片名称后点击“下一步”。

3、在出现如下画面后选择编程使用的语言,汇编,C或是C++,也可同时选择多个语言。

之后点击“下一步”。

4、之后的选择如下4、找打名称为“sources”的文件夹,可在main里输入程序。

5、当程序输入好后,点击按钮进行编译,如果有错误会出现错误提示。

6、当编译没错误后可以按进行调试,其中“Full chip simulation”选项是在电脑上面调试,而“TBDML”选项是在目标板和电脑连接了的情况下的调试。

按后的界面例:跑马灯按照如上说的介绍,新建一个工程,输入例子跑马灯里的代码,界面如下:编译无误后仿真调试,界面如下:点击componet选择OPEN找到LED 右键设置输出口位PORTB DDRB设置为1则可进行软件仿真调试,:可按快捷键F11进行单步调试,看到效果。

汽车电子课程设计--基于单片机STC89C52的CAN总线设计

汽车电子课程设计--基于单片机STC89C52的CAN总线设计

汽车电子课程设计--基于单片机STC89C52的CAN总线设计目录目录 1摘要 21.CAN总线31.1 CAN总线的简介 31.2 CAN总线协议的报文帧结构形式 41.3 CAN总线协议内容 52. 奥迪A4的CAN数据总线技术概述 63. 基于CAN总线技术的奥迪A4车灯控制系统103.1 系统的总体设计103.2硬件接口电路设计 103.3系统软件设计原理框图和流程图114. 基于CAN总线技术的奥迪A4电动车窗控制系统 134.1系统的总体设计134.2硬件接口电路设计 144.3系统软件设计流程图154.4电动车窗系统主要技术参数和功能 175. 基于CAN总线技术的奥迪A4雨刮控制系统175.1系统总体设计概述 175.2系统的硬件设计与原理图175.3元器件与参数选择 185.4安装调试说明196 系统的抗干扰设计196.1 硬件抗干扰措施196.2 软件看干扰207.程序代码207.1 CAN控制器的初始化207.2报文的发送程序217.3报文的接收程序218.结语:229.课程设计感想和体会:2210.参考文献23摘要随着现代汽车的迅猛发展和电子技术的日新月异,汽车电子设备不断增多,从发动机控制到传动系统控制,从行驶、制动、转向系统控制到安全保证系统及仪表报警系统,从电源管理到为提高舒适性而作的各种努力,使汽车综合控制系统越来越复杂。

目前.以微控制器为代表的汽车电子在整车电子系统中应用广泛,汽车控制正由机电控制系统转向以分布式网络为基础的智能化系统。

CAN总线是一种支持分布式和实时控制的串行通信网络,以其高性能和高可靠性在自动控制领域广泛应用。

CAN总线的简介CAN信号传输介质为普通双绞线,通信速率最高可达1Mbps/40m,直接传输距离可达10km/5Kbps。

CAN的信号传输采用短帧结构,每一帧的有效字节数为8个,因而传输时间短,受干扰的概率低,由于其采用CRC16的校验方式,误码率仅为310-5。

一体化课程CAN教案

一体化课程CAN教案
5、评价反馈小组总结,评价,教师点评
四、教学环境及资源准备
带高速动力CANBUS的车辆(东风标致307),废气抽排设备,万用表,示波器,诊断仪,带上网功能的电脑,维修手册,Service BOX,
五、教学过程
教学活动一:情景再现,明确学习任务(1课时)
教学目标:
1.能填写接车单
2.能正确使用诊断仪
3.能及客户沟通和问诊,确定故障现象
资料检索能力
分析能力
交流沟通能价表
班级:组别:姓名:
项目
评价内容
评价等级
(学生自评)
A
B
C
关键能力考核项目
遵守纪律、遵守学习场所管理规定,服从安排
安全意识、责任意识,5S管理意识,注重节约、节能及环保
学习态度积极主动,能参加实习安排的活动
团队合作意识,注重沟通,能自主学习及相互协作
教师扮演客户同学员进行交流
1、扮演客户和学员交流
2、引导学员使用正确的交流术语
1、讨论如何针对该故障和客户交流
2、记录交流信息
及客户的沟通交流能力
实车验证和填写问诊单
1、记录基础信息填写问诊单
2、使用诊断仪对车辆进行问诊
3、仔细观察故障现象
1、组织学生填写问诊单
2、引导学生正确使用诊断仪
3、对问诊单的填写和故障现象观察结果进行评价
二、学习者分析
学生已经学习汽车基础电工电子、发动机电控技术维修、底盘电控技术维修,对电控系统的工作原理有一定了解。
三、学习目标
1、能够正确使用诊断仪
2、能够描述高速动力CANBUS的网络拓扑结构
3、能够解释终端电阻的作用
4、能够使用万用表对CANBUS进行测量

课程设计can总线数据通信系统的设计

课程设计can总线数据通信系统的设计

CAN总线数据通信系统的设计摘要现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。

它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

CAN(Controller Area Network)属于现场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。

与其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。

本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯。

系统主要由四部分所构成:PC机、微控制器80C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。

微处理器80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。

CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。

本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了CAN总线的接口,并且编写了SJA1000的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等基本操作;利用各基本操作,完成了对SJA1000的初始化,并且实现了数据发送和接收。

目录第1章原理与方案........................................................... 错误!未定义书签。

1.1设计目的与要求 ....................................................... 错误!未定义书签。

1.2CAN总线介绍.......................................................... 错误!未定义书签。

CAN 总线系统教学教案

CAN 总线系统教学教案

2.数据传输过程高速CAN总线系统的数据传输过程主要分为数据发送和数据接收两部分。

1)数据发送【教师】通过多媒体展示“高速CAN总线系统的电压变化”图片,并进行讲解在高速CAN总线系统中,当所有电控单元都没有向数据传输总线发送数据时,电控单元的收发器处于截止状态,数据传输总线处于隐性状态,其上的电压大约为2.5 V。

当电控单元向数据传输总线发送数据时,数据传输总线处于显性状态,其上的电压会发生变化,即CAN-High线上的电压会升高一个预定值(至少为1 V),CAN-Low线上的电压则会降低相同值(至少为1 V)。

此时,CAN-High线上的电压不低于3.5 V,CAN-Low线上的电压不高于1.5 V。

由此可以看出,当数据传输总线处于隐性状态时,CAN-High线与CAN-Low线上的电压差为0 V;当数据传输总线处于显性状态时,CAN-High线与CAN-Low线上的电压差最低为2 V。

2)数据接收在高速CAN总线系统中,收发器内的接收器接收来自数据传输总线上的电平信号,它其实就是一个差分式信号放大器,用来处理数据传输总线上的电平信号,并将处理后的电平信号传输至接收区。

处理后的电平信号即为差分式信号放大器的输出电压,其大小为CAN-High线上的电压与CAN-Low线上电压的差值。

2.2.2 高速CAN总线系统的故障类型高速CAN总线系统的故障类型一般有电源故障、链路故障和节点故障三种。

电源故障是指汽车电源提供的电压低于高速CAN总线系统的工作电压,导致部分电控单元无法正常工作,从而影响通信。

链路故障主要包括短路故障和断路故障。

其中,短路故障主要包括数据传输总线自身短路、数据传输总线对正极短路和数据传输总线对地短路等;断路故障主要是指高速CAN总线系统内部线路断开。

节点故障主要是指高速CAN总线系统中的电控单元发生故障。

2.2.3 高速CAN总线系统的检修方法当高速CAN总线系统出现故障时,整个汽车车载网络系统将无法进行数据传输,因此需要对其进行检修,常用的检修方法包括用汽车检测仪检修、用万用表检修和用示波器检修三种。

CAN总线详细教程可修改全文

CAN总线详细教程可修改全文
状态0: 接通状态,晶体管导通(开关已接合) 有源: 总线电平=0,电阻低
功能
2个以上控制器所组成的Canbus系统 当用2个以上的控制器连接在Canbus总 线上(如图所示),用逻辑1来表示断开 和用逻辑0表示闭合。不考虑其他总线规 则情况下,总线会出现下图的情况: 1.任何开关闭合,总线上的电压为0伏 2.所有开关断开,总线上的电压为5伏
集中控制系统:由一个电子控制单元(ECU)同时 控制多个工作装置或系统的电子控制系统。如汽车 底盘控制系统。
控制器局域网络系统(CAN总线系统):由多个电 子控制单元(ECU)同时控制多个工作装置或系统, 各控制单元(ECU)的共用信息通过总线互相传递。
带有中央控制单元的车
带有三个中央控制单元的车
基于CAN总线的汽车电器网络结构
发动机 自动变 ABS/TCS 安全气 电控悬 巡航控 动力转 电机控 电池管
ECU 速器ECU ECU
囊ECU 架ECU 制ECU 向ECU 制ECU 理ECU
高速总线
E整EC整CU车U(车(控网控网制关制关器)器)
低速总线
故障诊断 ECU
灯光控 刮雨洗涤 电动座 门锁防 电动车 后视镜 气候控 警告信 仪表显 制ECU 控制ECU 椅ECU 盗ECU 窗ECU 喇叭ECU 制ECU 号ECU 示ECU
求Байду номын сангаас
总之,使用汽车网络不仅可以减少线束,而且 能够提高各控制系统的运行可靠性,减少冗余 的传感器及相应的软硬件配置,实现各子系统 之间的资源共享,便于集中实现各子系统的在 线故障诊断。
Canbus的发展历史
大众公司首次在97年PASSAT的舒适系统 上采用了传送速率为62.5Kbit/m的 Canbus。

can总线电路设计

can总线电路设计

can总线电路设计摘要:1.CAN 总线电路设计概述2.CAN 总线电路的组成部分3.CAN 总线电路的设计流程4.CAN 总线电路的常见问题及解决方法5.总结正文:一、CAN 总线电路设计概述CAN 总线(Controller Area Network)是一种常用于车辆和工业控制领域的通信协议,其主要特点是多主控制器、高可靠性、实时性、高抗干扰能力和低成本。

CAN 总线电路设计是指在硬件层面实现CAN 总线通信的过程,主要包括CAN 控制器、CAN 总线驱动器、CAN 总线收发器等组成部分。

二、CAN 总线电路的组成部分1.CAN 控制器:CAN 控制器是CAN 总线电路的核心部分,负责处理CAN 总线通信的逻辑和数据传输。

常见的CAN 控制器有Microchip 的MCP2510、STMicroelectronics 的STM32 等。

2.CAN 总线驱动器:CAN 总线驱动器负责将CAN 控制器输出的信号转换为适合在总线上传输的信号,同时也能将总线上的信号转换为CAN 控制器能识别的信号。

常见的CAN 总线驱动器有TJA1020、MCP2003 等。

3.CAN 总线收发器:CAN 总线收发器负责处理CAN 总线上的物理层通信,包括信号的放大、整形、滤波等功能。

常见的CAN 总线收发器有MCP2020、TJA1021 等。

三、CAN 总线电路的设计流程1.确定设计需求:根据实际应用需求,确定CAN 总线通信的节点数量、通信速率、传输距离等参数。

2.选择合适的CAN 控制器、驱动器和收发器:根据设计需求,选择性能、接口、封装等满足需求的CAN 控制器、驱动器和收发器。

3.电路设计:设计CAN 总线电路的电源、时钟、接地等部分,同时根据CAN 控制器、驱动器和收发器的接口,设计相应的连接线路。

4.程序设计:编写CAN 总线通信的软件程序,包括初始化CAN 控制器、发送和接收数据、错误检测和处理等功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计题目 CAN通信二级学院电子信息与自动化专业自动化班级 107070103 学生姓名学号指导教师熊文考核项目设计50分平时成绩20分答辩30分设计质量20分创新设计15分报告质量15分熟练程度20分个人素质10分得分总分考核等级教师签名摘要:CAN总线是控制器局域网总线(contr01ler AreaNetwork)的简称。

属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。

由于其高性能、高可靠性及独立的设计而被广泛应用于工业现场控制系统中。

SJAl000是一个独立的CAN控制器,PCA82C200的硬件和软件都兼容,具有一系列先进的性能,特别在系统优化、诊断和维护方面,因此,SJAl000将会替代PCA82C200。

SJAl000支持直接连接到两个著名的微型控制器系列80C51和68xx。

下面以单片机AT89C52和SJAl000为例,介绍CAN总线模块的硬件设计和CAN通信软件的基本设计方法。

关键词:AT89S52 CAN通信 SJA1000目录:(一) 背景:(二) CAN介绍(三) SJA1000内部结构和功能简介(四) 硬件电路图(五) 初始化程序(六) 测试(七) 总结一背景:CAN(Controller Area Network)数据总线是一种极适于汽车环境的汽车局域网。

CAN总线是德国Bosch公司为解决汽车监控系统中的复杂技术难题而设计的数字信号通信协议,它属于总线式串行通信网络。

由于采用了许多新技术和独特的设计思想,与同类车载网络相比,CAN总线在数据传输方面具有可靠、实时和灵活的优点。

1991年9月Philips半导体公司制定并发布了CAN技术规范(版本2.0),该技术规范包括A部分和B两部分,其中2.0A给出了CAN报文的标准格式;2.0B给出了标准和扩展两种格式。

此后,1993年11月ISO正式颁布了道路交通运输工具一数据信息交换一高速通信控制器局域网(CAN)的国际标准IS011898,为控制器局域网的标准化和规范化铺平了道路。

二CAN介绍CAN通信的特点:(1) CAN是到目前为止唯一具有国际标准且成本较低的现场总线;(2) CAN废除了传统总线的站地址编码,对通信数据块进行编码,为多主方式工作,不分主从,通信方式灵活,通过报文标识符通信,可使不同的节点同时接收到相同的数据,无需站地址等节点信息。

(3) CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。

尤其是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则有可能出现这种情况)。

(4) CAN只需通过报文滤波即可实现点对点、一点对多点即全局广播等方式传送接收数据,无需专门的“调度”。

(5) CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可lMbps(此时通信距离最长为40m);(6) CAN上的节点数最多可达110个(主要取决于总线驱动电路)。

(7) CAN采用短帧结构,单帧最大长度仅150位,传输时间短,从而保证了通信的实时性,受干扰概率低。

(8) CAN的每帧信息都有CRC校验及其他检错措施,降低了数据出错率,保证了数据通信的可靠性。

(9) CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。

(10) CAN的通信介质可使用双绞线作为传输介质,价格低廉,可靠性强。

三SJA1000内部结构和功能简介SJAl000是一个独立的控制器,有两种不同的模式。

(1)BasiccAN 模式:系统上电后默认的模式,与PCA82C200兼容。

(2)PelicAN模式:支持CAN2.0B协议规定的所有功能。

SJAl000的内部结构如图1所示,其功能模块主要有:接口管理逻辑、接收FIFO队列、接收滤波器、发送缓冲器和CAN核心模块。

CAN核心模块基于CAN2.0B的协议执行对CAN帧的发送和接收。

逻辑管理接口实现与外部单片机的连接。

SJAlO00的发送缓冲器可以存储一个完整的报文,当单片机开始一个传送时,逻辑管理接口会使CAN核心模块读发送缓冲器的数据,依照CAN2.OB 协议发送数据。

当收到一个报文时,cAN核心控制模块将连续的位转换为标准的数据存放于接收过滤器中,通过验收码寄存器、验收屏蔽寄存器进行过滤处理,将符合标志位要求的数据放人接收FIF0队列中。

图1●管脚及电气特性与独立CAN总线控制器PCA82C200兼容;●软件与PCA82C200兼容(缺省为基本CAN模式);●扩展接收缓冲器(64字节FIFO);●支持CAN2.0B协议;●同时支持11位和29位标识符;●位通讯速率为1Mbits/s;●增强CAN模式(PeliCAN);●采用24MHz时钟频率;●支持多种微处理器接口;●可编程CAN输出驱动配置;●工作温度范围为-40~+125℃。

图2SJA1000的功能框图如表1所示,图2是其引脚图。

从表1可以看出,SJA1000型独立CAN总线控制器由以下几部分构成;(1)接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。

(2)发送缓冲器:有13字节长。

它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由SBP读出。

(3)接收缓冲器(RXB、RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN 总线接收并通过了滤波的报文。

接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。

有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。

(4)接收滤波器:它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断文报文是否被接收。

如果被接收,报文存入RXFIFO。

(5)位流处理器:它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。

(6)位定时逻辑不:它将SJA1000同步于CAN总线上的位流。

(7)错误管理逻辑:它按照CAN协议完成错误界定。

由于SJA1000与PCA82C2000兼容,因此SJA1000的缺省工作方式即基本CAN模式与82C200相同。

下面介绍SJA1000工作在增强CAN模式(PeliCAN)下的寄存器配置。

在初始化期间,芯片在复位模式(RESET MODE)时的寄存器配置如表1所列,在工作期间的运行模式(OPERATING MODE)下,部分寄存器的定义将有所更改。

四硬件电路图图3图3是一般CAN总线连接方式图,本文中采用AT89C52作为主控芯片,SJA1000为CAN控制芯片,PCA82C250作为CAN总线收发器,应用了2套这样的系统,一个作为下位机,另一个作为上位机,下位机负责接受由上位机经CAN总线传输过来的数据。

图4CAN总线接口的原理框图如图4所示。

SJAl000的地址/数据复用总线同AT89C52的PO口相连,MODE引脚接高电平时选择Intel模式。

SJA1000的ALE ,RD,WR与单片机对应的管脚相连,INT接单片机的INT0口,CS接P2.7。

为了提高总线的驱动能力,在SJAl000与CAN总线之间加PCA82C250总线驱动芯片,PCA82C250是SJAl000与物理总线间的接口。

对模拟信号的采样用AD7715该器件有一个差分模拟输入端口,能直接接收来自传感器的弱电平信号并输出连续的数字信号。

它运用转换技术实现了无损编码。

AT89C52的P1口通过驱动电路接执行机构。

五初始化程序系统软件设计的指导思想是系统上电后首先对单片机和SJA1000 进行初始化。

以下是用C写的程序初始化程序。

void CAN_init(void){EA=0;rest=0; // 将复位键拉低,SJA1000进入复位工作模式delay(1);do // 进入复位请求{CONTROL_REG=0x01;}while( (CONTROL_REG & 0x01) != 0x01 );//时钟分频寄存器BIT7位0:BasicCAN模式;1:PeliCAN模式CDR_REG=0x08; //CLOCK OFF=1BTR0_REG=0x31; // 10kbpsBTR1_REG=0x1c; //SAM=1 总线采样3次ACR_REG=0x55; //第1个节点AMR_REG=0xAA; //验收滤波OCR_REG=0xAA; //下拉输出CONTROL_REG |=0x1A; // OIE=1 EIE=1 TIE=1 RIE=1 RR=0rest=1;do{CONTROL_REG=0x1A;}while( (CONTROL_REG & 0x1A) != 0x1A);EA=1;}对CAN控制器进行初始化,实际上就是对ACR、AMR、BTR0、BTRl、OCR 这些寄存器进行访问。

只有当控制寄存器CR中的复位请求位为高时,访问才被允许,否则既写不进去,也读不出正确的内容。

对CR进行第一次写操作,要设定将要开放的中断类型,并置位复位请求,允许初始化开始。

对ACR、AMR进行写操作,要界定对什么样的报文予以接收,因此有时称它们为验收滤波器。

当满足以下两个条件之一,并存在空的接收缓存器(RBF)时,完整报文可被正确接收。

条件一:ACR与报文标识符的高8位在AMR为“0”相关位上对应相等。

条件二:AMR=0FFH,即ACR的所有位均为不相关(或屏蔽)位。

这两个寄存器也是编排标识符的基本依据。

对BTR0进行操作,可决定波特率预分频器(BRP)和同步跳转宽度(SJW)的数值;对BTRl进行写操作,可决定位周期的宽度,采样点的位置及在每个采样点进行采样的次数。

这两个寄存器的内容,可唯一确定波特率及同步跳转宽度。

例如:程序中BTR0=00H,BTRl=14H,晶振频率为16MHz时,采样时钟周期TSCL等于两倍的振荡器时钟周期。

波特率刚好为lMbps,同步跳转宽度为一个TSCL。

六测试1本系统在建立好硬件平台,确保硬件电路无误后。

首先测试单片机AT89S52、显示模块、串口通信模块都能正常工作,2在对SJA1000进行程序初始化、写一个数据0x35到SJA1000中,在SJA1000处于正常工作模式下在此去读发送缓冲区中数据,将数据显示到1602中,可以观察到显示数据,本系统再次都能正常工作。

3在将上位机和下位机通过CAN总线相连,这样就是一个简单的CAN总线网络,但上位机不能接到下位机传输过来的数据,经过对上位机硬件检测,发现CAN传输线上少接了一个120欧的匹配电阻,接上后用示波器查看可以在上位机中SJA1000中的TR0口得到相应的数字信号。

相关文档
最新文档