- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAN总线系统的设计与实现
在现场总线概念的出现到现在的近20年时间里,已经出现了好几种现场总线技术并走向成熟。其中 CAN总线已被公认为几种最有前途的现场总线之一。CAN是一种由带有CAN控制器组成的高性能串行数据局域通信网络,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。由于其具有通信速度快、可靠性高和性能价格比好等突出优点,它正越拉越广泛地应用于汽车、机械工业、纺织机械、农业用机械、机器人、数控机床、医疗器械、家用电器及传感器等领域。图1所示是典型的 CAN总线节点的系统框图。
系统硬件设计
SJA1000独立CAN控制器是PHILIPS公司PCA82C200CAN控制器的替代产品,它是在完全兼容PCA82C200的基础上,增加了一种新的工作模式PeliCAN, SJA1000完全支持具有很多新特性的CAN2.0B协议。 SJA1000的工作模式通过其内部的时钟分频寄存器中的CAN模式为来选择。 SJA1000可以支持多种为处理器的时序特性,如Intel模式或Motorla模式, SJA1000与微处理器的接口非常简单,微处理器以访问外部存储器的方式来访问 SJA1000。
TJA1050是控制器局域网CAN协议控制器和物理总线之间的接口, TJA1050可以为总线提供不同的发送性能,为CAN控制器提供不同的接收性能。 TJA1050主要有以下特征:完全符合ISO 11898标准,最高速到达1Mb/s,输入级3.3V以及5V器件兼容,至少可以连接110个节点。本设计的微处理器为 89C51负责初始化 SJA1000及通过控制 SJA1000实现数据的接收和发送等通信任务,系统电路图如图2所示。 CAN控制器 SJA1000的数据线AD0~AD7连接到51单片机的P0口,连接到基址为0xFA00的外部存储器片选信号,当访问地址0xFA00~0xFA31时,CPU可对 SJA1000执行相应的读写操作。 SJA1000的、、分别与51对应的引脚相连,接51的使51可以通过中断方式访问 SJA1000。
系统软件设计
本设计的系统由4个节点组成,一个节点由上位机通过并口转 CAN总线的数据收发器构成,另外3个节点由图2所示的单片机 CAN总线收发系统构成。单片机系统每秒发送一帧(8个字节)数据。连接上位机的 CAN总线收发器有相应的上位机测试软件支持,本文主要介绍单片机 CAN总线收发器的程序设计。图3是下位机软件的流程图。
系统设计的部分代码如下:
main() { ?Sja_1000_Init();???? //初始化 SJA1000?Init_Cpu();????? //初始化CPU?Init_T0();?????? //初始化定时器?flag_init=0x00;?while(1)?{? if(rcv_flag)??? //rcv_flag为接受标志位,有接收则单片机进行处理? {?? rcv_flag=0; BCAN_DATA_RECEIVE(rcv_data);?BCAN_CMD_PRG(0X04);?? disp_rec();? }if(flag_sec)??? //定时中断标志为,定时时间到则发送数据帧?{? flag_sec=0;? send_data[0]=0xaa;? send_data[1]=0x08;? send_data[2]=DA1;?send_data[3]=DA2; send_data[4]=DA3; send_data[5]=DA4; send_data[6]=DA5; send_data[7]=DA6; send_data[8]=DA7; send_data[9]=DA8; BCAN_DATA_WRITE(send_data);? BCAN_CMD_PRG(0X01);? }? if(err_flag)? {?? err_flag=0;?? disp_err();? Sja_1000_Init();? }? display(a);? //循环显示接受数据
SJA1000的初始化过程包括申请进入复位状态,设置总线波特率,设置输出方式,开放错误中断、接受和发送中断。在进行数据发送时数据包前两个字节0Xaa、0X08为描述符,包括11位长的ID(标志符)\1位RTR\4位描述数据长度的DLC共16 位。BCAN_DATA_RECEIVE(rcv_data),为 89C51对 SJA1000的读数据函数其具体函数定义:
您可能关注的文档
最近下载
- 代谢相关(非酒精性)脂肪性肝病防治指南(2024年版) .pdf VIP
- 大连理工大学22春“计算机科学与技术”《数据结构》期末考试高频考点版(带答案)试卷号4.pdf VIP
- 新生儿机械通气常规.pptx
- 全国通用版高考语文一轮复习论述类文本阅读论述类文本筛选并整合文中信息教案.pdf VIP
- 光伏电站建设与施工技术 课件 第一章 光伏电站项目建设前期准备.ppt
- 代谢相关(非酒精性)脂肪性肝病防治指南(2024年版)解读.pptx VIP
- 2024届高考语文论述类文本阅读考点训练:分析概括观点、态度.pdf VIP
- (完整版)生命与健康常识八年级下册教案.pdf VIP
- 高考语文一轮复习:信息类文本阅读之概念类(原卷版+解析).pdf VIP
- (通用版)2019年高考语文一轮复习论述类文本阅读论述类文本筛选并整合文中信息教案.doc VIP
文档评论(0)