- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MCP2515在ATmega16单片机CAN总线扩展中的应用
摘 要
针对大多数通用单片机缺少CAN总线模块,提出了一种基于MCP2515的ATmega16单片机总线接口扩展设计。通过对CAN协议控制器工作原理进行研究,给出了具体的硬件设计和软件流程,并在WinCE平台编写上位机程序来显示接收到的数据帧。
【关键词】CAN总线 ATmega16 MCP2515 接口扩展
为了能让ATmega16这种通用单片机具备CAN总线功能,本文以它作为主控芯片,通过对CAN协议控制器MCP2515进行控制,使单片机也能接收和发送CAN报文。整个设计既可以单独作为CAN-RS232适配器使用,又可以作为单片机或ARM的端口扩展。
1 MCP2515工作原理
MCP2515是一款具有SPI接口的独立CAN控制器,负责处理所有CAN总线上的报文发送与接收。主要由CAN模块、控制逻辑、SPI协议模块构成,自身具有非常丰富的中断源,包括发送接收中断、各种错误中断以及总线唤醒中断等。系统上电后MCU首先将MCP2515配置在配置模式,然后分别对总线速率、验收屏蔽寄存器以及发送接收使能进行设置。设置完成后再由MCU将其改为正常模式,此后MCP2515会主动监视总线上的所有报文。MCU对MCP2515的操作主要分为三种:读指令、写指令、位修改指令。以读指令时序为例,MCU首先通过将片选端置低,然后通过MOSI引脚发送8位读指令和8位地址码,随后MCP2515会将相应地址寄存器内的数据通过MISO引脚发送给MCU。写指令和位修改指令类似。
2 硬件电路设计
系统采用ATmega16单片机作为主控芯片,单片机的MOSI和MISO引脚分别连接MCP2515的SI和SO引脚,用于传输地址、数据以及指令。CS引脚为MCP2515片选使用,用户需要软件处理将CS引脚置低。SCK作为主机的时钟输出引脚,当对SPI数据寄存器写入数据时单片机自动启动SPI时钟,通过SCK引脚与MCP2515实现同步。在对MCP2515进行工作模式配置时,需要先通过RESET引脚对其复位。由于单片机采用中断方式接收CAN总线数据,因此还需要连接MCP2515的中断引脚。MCP2551的RS引脚接地,使其工作在高速模式,总线两端要加120欧终端电阻,起到匹配滤波的作用。
3 软件设计
软件设计分为mega16单片机本身编程和MCP2515的编程操作两部分。具体步骤如下:
(1)编写SPI读写操作函数,由于mega16单片机自带有SPI接口,因此可以直接使用内部寄存器而不用考虑时序。
(2)编写MCP2515寄存器读操作、写操作以及位修改操作指令。这部分可参考数据手册进行编写。例如读操作,首先片选MCP2515,然后分别发送读操作指令0x03、寄存器地址,随后将接收到一个字节数据存放到变量data,最后取消片选,返回变量data。
char MCP2515_Read(char address)
{ char data;MCP2515_Select();SPI_SendByte(0x03);SPI_SendByte(address);
data = SPI_RecvByte();MCP2515_UnSelect();return data;}
(3)配置单片机串口控制寄存器、SPI控制寄存器及定义外部中断。
(4)配置MCP2515,包括配置总线速率、是否报文验收滤波、发送接收缓冲器是否使能。
(5)判断串口是否为空,若为空,转到第六步,否则,将接收到的串口数据放到发送缓冲寄存器中。由于在报文发送前已经规范好了帧格式,因此可以依次将接收到的数据按字节顺序写入MCP2515发送缓冲器寄存器中。发送数据程序如下:
for(i=1;icom_len;i++){MCP2515_Write(0x30+i,com_recv[i]);}MCP2515_Set(0x30,com_recv[0],com_recv[0])。
(6)判断单片机外部中断引脚是否为低电平,若为低,说明MCP2515接收缓冲寄存器满,此时关中断,读取数据长度,再将接收缓冲寄存器中的值通过串口输出。为方便上位机程序接收完整的一帧数据,需要对每一帧加上帧头和帧尾。
4 上位机软件实现
本文使用现在市面上常用的CAN-USB适配器,由电脑分别发送ID为1、2、3、4,长度为8字节和7字节的标准帧和扩展帧,经上述设计的总线转换模块接收,经过协议转换后通过串口输出到嵌入式平台显示,以检测数据的正确性。通过在嵌入式平台上编写CAN总线数据监测程序,可以成功接收并显示CAN总线数据的ID号、数据长度、数据值以及报文
您可能关注的文档
- Hello Kitty与萌文化40年.doc
- HE常规染色技术对鼻咽癌小组织处理分析.doc
- HIF―1α和VEGF在稽留流产患者血清和绒毛中的表达及二者的相关性分析.doc
- HIV阳性与HIV阴性患者血透治疗对比分析.doc
- HLA―B27实验室检测在血清阴性脊柱关节病诊断中的意义.doc
- HPLC法测定六味地黄胶囊中马钱苷含量.doc
- HP863中速磨煤机叶轮装置改进优化.doc
- HPLC法测定复方金甲合剂中黄芩苷的含量.doc
- Hp在家庭成员中的相互传播.doc
- HR从业者如何提高胜任力.doc
- 2024年度党员干部专题组织生活会个人新四各方面对照检查材料3篇合集.docx
- 2023年民主生活会领导干部个人发言3篇范文.docx
- 第二批主题教育专题组织生活会普通党员个人对照检查材料合集2篇.docx
- 学习以案促改党纪教育专题组织生活会个人对照检查材料两篇.docx
- 党员领导干部2023年民主生活会“六个方面”个人对照检查材料3篇范文.docx
- 党员干部“严守纪律规矩 加强作风建设”组织生活会个人对照检查材料集合篇.docx
- 2024班子防治统计造假专题民主生活会对照检查材料两篇范文.docx
- 2024公司机关党支部教育专题组织生活会个人对照检查材料两篇.docx
- 2023年度专题民主生活会个人对照新6个对照方面检查材料3篇文稿.docx
- 2024第二批主题教育专题组织生活会对照检查材料2篇文本.docx
最近下载
- 2025年安徽水利水电职业技术学院单招职业技能测试题库(各地真题).docx VIP
- 2023年平安人寿保险基本法.docx
- 三年级综合实践教案详细版(新教材).doc VIP
- 环境岩土工程学课件-东南大学-潘华良环境岩土工程学概.pptx VIP
- 人工智能deepseek介绍.pptx VIP
- 2024-2025学年北师大版七年级数学上册同步练:一元一次方程中含参数的问题(6类热点题型)(含答案).pdf VIP
- 新版现西第一册答案.doc
- 六年级下册作文骑鹅旅行记梗概600字精彩4篇.docx
- 2025年合肥通用职业技术学院单招职业技能考试题库及答案1套.docx VIP
- 统编版道法二上 第一单元《我们的节假日》单元整体备课设计.pdf
文档评论(0)