单片机课程设计模板.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计模板

《单片机原理及系统设计》课程设计报告模板 《单片机原理及系统设计》课程设计是文字形式记录下来的书面材料Microsoft Office Visio )进行编辑;对设计细节进行描述的图片应来自专业的设计软件。 另:附《单片机原理及系统设计》课程设计报告样例 河 南 工 学 院 课程设计报告书 课程名称: 《单片机原理及系统设计》 课题名称: 基于STM32的CAN总线通信设计 系部名称: 自动控制系 专业班级: 自动化129班 姓 名: 齐 白 石 学 号: XXXXXXXXX 20XX年XX月XX日 一、系统工作原理 CAN 总线是一种分布式的控制总线,由于总线上的每一个节点都不怎么复杂,所以可以使用 MCU 控制器处理 CAN 总线数据,来完成特定的功能。 只需较少的线缆就可以将各个节点通过 CAN 总线连接,…… 二、系统硬件组成 MCU 控制器连接独立的 CAN 控制器,再连接 CAN 收发器,构成挂接在 CAN总线上的硬件结构。独立 CAN 控制器常见的有 MCP2515,SJA1000 等。其中 MCP2515通过 SPI 总线接口和 MCU 连接,SJA1000 则是通过数据总线接口和 MCU 单元相连接。 图1 系统硬件结构组成 CAN 控制器的 MCU 与 CAN 收发器相连接,挂接到 CAN 总线上。目前,市场上带有 CAN 控制器的 MCU 种类繁多,如 P87C591,LPC2294,C8051F340,STM32 …… 3.1 处理器选型 ARM 的 Cortex-M3 处理器属于必威体育精装版一代的嵌入式 ARM 处理器,它为实现 MCU 的需求提供了低成本的平台,较少的管脚数目、较低的系统功耗,同时还提供卓越的计算性能以及先进的中断系统响应。 同时作为 32 位的 RISC 处理器,ARM 的 Cortex-M3 为系统提供额外的代码效率,在通常 8 和 16 位系统的存储空间上可得到 ARM 核心的高性能。由于 STM32F103xx 增强型系列具有内置的 ARM 核心,因此它可以与所有的 ARM工具和软件兼容。 下图为 STM3232F103xx 增强型系列的硬件框图。 图3 STM3232F103xx 增强型系列的硬件框图 3.2 STM32 的 CAN 通信模块 STM32 的 CAN 模块的初始化是由软件设置完成的,通过对 CAN_MCR 寄存器的 INRQ位置 1 和置 0 分别可以使 CAN 模块进入初始化和退出初始化。 当 CAN 通信模块处于初始化状态时,总线上的报文接收和发送都是禁止的。CANTX 引脚输出隐性位,即高电平。STM32 的 CAN 模块经过初始化后进入正常工作模式,这时软件同步 CAN 总线来正常发送接收报文,当软件对 INRQ 位清 0 时,CAN 模块进入正常工作模式,接着等待INAK 位清 0 确认,与 CAN 总线取得同步后,即总线空闲后,CAN 通信模块才能正常发送接收报文。 STM32 的 CAN 模块的睡眠模式是通过对 CAN_MAR 寄存器的 INRQ 位置 1 来实现的,当进入到该模式后,CAN 的时钟虽然停止了,但软件仍然可以访问邮箱寄存器。若需要将处于睡眠工作模式的 CAN 模块调整到初始化模式,除了需要对 CAN_MCR 寄存器的INRQ 位置 1 外,还需要同时对 SLEEP 位清 0。如需从睡眠模式退出则需要对 SLEEP 位清 0,或者硬件检测 CAN 总线的活动。 图4 CAN 模块通信接口的原理图 3.3 CAN收发器设计 …… 三、系统软件设计 基于 STM32 的 CAN 总线通信中的软件代码是用 C 语言编写的,选取了 KeilμVision4 环境实现编译调试。 从基于 STM32 的 CAN 总线通信主程序流程图可以看出:程序的主体框架首先对STM32 开发板进行初始化,接下来对 CAN 模块进行初始化,并构造要发送的 CAN 消息,然后进入程序的主循环。 程序进入主循环后,判断当前 CAN 模块是否能够发送消息,如果能,则发送消息;如果不能,则跳过发送消息阶段。然后判断当前 CAN 模块是否有接收到的消息,如果有,则显示成功接收消息,比如根据消息内容点亮相应 LED 灯,如果没有接收到的消息则结束。 图5 系统软件结构图 3.1 寄存器管理模块 …… 3.2 命令翻译模块 …… 四、实验过程 下图中从左至右分

文档评论(0)

docindpp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档