




免费预览已结束,剩余16页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北理工大学轻工学院 Qing Gong College North China University of Science and Technology 毕毕业业设设计计说说明明书书 设计题目:设计题目:基于基于 stm32 的免驱单片机下载器设计的免驱单片机下载器设计 学生姓名:学生姓名: 学学 号号: 专业班级:专业班级: 自动化自动化 学学 部:部: 信息科学技术部信息科学技术部 指导教师:指导教师: 20XX 年 X 月 X 日 摘 要 -I- 摘 要 在现代化的今天,单片机的应用越来越广泛。对于学校教学来说,51 单片 机尤为重要,几乎理工科的学生都会学习 51 单片机,用 51 单片机做教学实验 来学习。这个过程中,单片机的下载程序是必不可少环节。虽然传统的下载方 式基本满足学习的需求,但是也有很大的弊端。诸如下载依赖串口,下载速度 过慢。USB 驱动不兼容 windows7、windows8、windows10 等系统也不兼容 linux 系统。给使用带来了极大的不方便。而且下载过程过于依赖于 PC,下载还需手 动安装 USB 按装串口驱动,给使用带来了很大的不便。种种的不便,急需改进。 以现在成熟的 STC51 单片机为例,宏晶科技并没有开放出其单片机的下载协议, 下载程序只能依赖于官方的 isp 软件进行下载。从软件环境上来说不仅需 要 PC 机的支持,还只有 windows 版本下的软件,如果用户为 linux 系统,对下 载可能束手无策。从硬件上来说,需要 PC 机提供串口,但是,在电子产品高度 集成的今天,笔记本电脑基本不再具有串口,台式机也有许多主板厂商不再集 成串口。无论是软件还是硬件都给用户带来了不便。而现在以通用串行总线 (USB)越来越常见,速度也远比串口快很多。 关键词 单片机;USB 驱动不兼容;依赖于官方的 isp 软件;通用串行总线 (USB) Abstract -II- Abstract In todays modern, MCU application is more and more widely. Is particularly important for school teaching, 51 single chip microcomputer, almost in science and engineering students will study 51 single chip microcomputer, made teaching experiments to study 51 single chip microcomputer. The process, single-chip computer download program is an essential link. Although the traditional way of downloading the basic learning needs, but also has a lot of disadvantages. Such as download depend on the serial port, download speed is too slow. USB driver is not compatible with Windows 7, Windows, Windows 10 system is not compatible with the Linux system. Brought great inconvenience to use. And download process is too dependent on the PC, download the still need to manually install the USB serial port under the drive, to use a lot of inconvenience. A variety of inconvenience, be badly in need of improvement. Now mature STC51 microcontroller, for example, macro not open out the MCU chip technology and download agreement, can only rely on official isp download software to download. From the software environment not only need the support of the PC, and only under the Windows version of the software, if the user for Linux system, may do for download. In terms of hardware, need PC provides a serial port, however, in todays highly integrated electronic products, notebook computer has a serial port, basic no longer desktops and many motherboard manufacturer no longer integrated serial port. Both in software and hardware brought inconvenience to the user. And now the universal serial bus (USB) is more and more common, rate than a serial port. Keywords MCU ; USB driver is not compatible; Rely on the official software 目 录 -III- 目 录 第 1 章 绪论1 1.1 单片机下载方式现状1 1.1.1 仿真器下载1 1.1.2 ISP 下载.1 1.2 STC51 单片机下载方式.1 1.3.STC51 单片机下载缺点.1 1.4 课题的意义2 1.5 本章小结2 第 2 章 下载器软件的设计3 2.1 官方 ISP 下载器软件的设计3 2.1.1 官方功能下载分析.3 2.1.2 官方软件的使用总结4 2.2 课题下载器软件的设计4 2.2.1 USB 的 HID 读取.4 2.2.2 软件的功能介绍.4 2.2.3 软件设计简介5 2.3 软件的设计思路5 2.3.1 USB 设备的读取.5 2.3.2 对文件的操作5 2.4 本章小结.6 第 3 章 下载器的硬件设计介绍7 3.1 硬件系统需求分析7 3.2 单片机的选型7 3.2.1 STM32 单片机的功能简介.7 3.3 硬件详细设计.7 3.3.1 STM32 最小系统设计.7 3.3.2 USB 驱动电路和串口下载电路设计.9 3.3.3 生成 PCB 文件的设计9 3.4 本章小结10 第 4 章 下载器的程序设计介绍10 4.1 程序设计的介绍10 4.1.1 USB 的 HID 设备的实现.10 4.1.2 STC51 单片机的下载协议.11 4.2 程序设计流程图12 结 论13 参考文献14 谢 辞15 注 释11 附 录11 目 录 -IV- 第 1 章 绪论 -1- 第 1 章 绪论 1.1 单片机下载方式现状 1.1.1 仿真器下载 早起的单片机基本不支持 ISP 下载,采用仿真器下载,仿真器下载是单片 机下载的常见方式,要通过仿真器。仿真器其实也是由一款 MCU 制作,MCU 厂 家基本不开源。但是用起来也有很多好处,诸如不但能进行烧写程序。还能很 方便的 Debug,但是也有不方便的地方,诸如正版仿真器价格昂贵,携带不方 便。兼容性不好等问题。 1.1.2 ISP 下载 ISP,即 In-System Programming,在线编程。具有 ISP 功能的单片机芯片, 可以通过简单的下载器直接在电路板上给芯片写入或者擦除程序,有些单片机 的 ISP 也支持 Debug。相比仿真器的,相同点事 ISP 下载器也是由 MCU 构成, 但是功能上先对单一,一般仅仅是下载,但是他最为一块电路,一般厂家会开 源其设置,可以在自己的设备上集成电路。这样升级程序可以通过网络,U 盘 等工具实现设备的自动升级,其好处不言而喻。 1.2 STC51 单片机下载方式 STC51 单片机一般采用 ISP 的下载方式,硬件接口为 TTL 电平的串口,需 要电脑的支持,需要从宏晶科技的官方网站上下载 ISP 烧写软件,如果电脑是 笔记本,一般需要 USB 转 TTL 电平串口的转换器,并装好驱动,如果是台式机。 需要一个 RS232 串口转 TTL 串口的转化器,一般采用 MAX232 芯片制作。电系统 需要是 windows 系统。不可脱机下载,下载时还需手动断电在上电。流程比较 麻烦。 1.3. .STC51 单片机下载缺点 下载的缺点是非常依赖官方的软件,但是官方的软件一般只有 windows 系 统下的,如果使用 linux 或者苹果电脑将不能下载。现在笔记本和台式机很好 集成串口,但是 USB 驱动往往只持支持 windows 7 系统,兼容性也不是很好。 从硬件上来说,需要 PC 机提供串口,但是,在电子产品高度集成的今天,笔记 华北理工大学轻工学院 -2- 本电脑基本不再具有串口,台式机也有许多主板厂商不再集成串口。无论是软 件还是硬件都给用户带来了不便。而现在以通用串行总线(USB)越来越常见, 速度也远比串口快很多。 1.4 课题的意义 我选择的题目 基于 stm32 的免驱单片机下载器设计 ,对 51 系列的单 片机的下载协议经行破解,并用 USB 免驱的功能和 PC 机通讯进行下载。下载过 程可完全脱离 PC 机,用户升级程序可不依赖 PC,使下载的过程更加灵活和便 捷。本课题主要研究如何做到免装 USB 驱动,使用便捷,就行我的 U 盘一样, 无数手动安装驱动。达到给 51 系列单片机(stc89 stc12 stc15 Atmel89) 等 单片机进行在线下载或者脱机(脱离计算机的控制)下载的下载器设计,体积 小,功耗低也是设计理念。软件使用简单便捷,比官方的下载器版本简介方便。 无需手动安装驱动,自动寻找插入的 USB 下载器。使用简单方便。 1.5 本章小结 本章主要分析了单片机仿真器下载和单片机 ISP 下载器的当前现状及优缺 点对比,总结了单片机下载的特征,指出了单片机下载的的一些问题,最后本 课题的意义进行了简单的阐述。 第 2 章 组卷算法与题库的研究 -3- 第 2 章 下载器软件的设计 2.1 官方 ISP 下载器软件的设计 2.1.1 官方功能下载分析 1、选择下载的串口 由于官方的 ISP 下载方式是通过串口的方式下载。串口必不可少。 2、设置波特率 既然有串口,当然要设置波特率,但是设置波特率有两个接口,一是最高 波特率,一是最低波特率。为什么有两个波特率,是因为下载的是用两种波特 率进行通讯的。这就涉及到软件的通讯方式。类似于“变频”,因为下载器不 知道单片机的晶振频率,需要下载的过程由待下载的单片机给出。首先,下载 器会以设置的最低波特率发送 0X7F 的数据,从电平上看是 1 位的地电平,7 位 的高电平。单片机接收电平,算出下载器的发送波特率的大小,然后以该波特 率回复下载器。并告知下载器自己的晶振的频率,下载器在根据单片机的晶振, 和自己设置的最高波特率,取出其中“可以支持的最高波特率”。以最低波特 率发送待下载的单片机,通知单片机的设置好自己的新的波特率,及“可以支 持的最高波特率”。完成一次确认握手。在进行下载。 3、打开 HEX 文件 每当我们打开一个 HEX 文件后。右边的窗口总会出现一些十六进制的 字符,没错,这就是程序经过编译的存放到 flash 里面的二进制数据。但是如 果用电脑 的文本编辑器打来 HEX 的源文件,就和上面的字符不是相同的,但是 有的一小段就会有。 Intel HEX 文件是由一行行符合 Intel HEX 文件格式的文 本所构成的 ASCII 文本文件。在 Intel HEX 文件中,每一行包含一个 HEX 记录。 这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX 文件通常用于传输将被存于 ROM 或者 EPROM 中的程序和数据。大多数 EPROM 编程器或模拟器使用 Intel HEX 文件。 可以看出,HEX 文件需要解析,才是我们想要的程序。通过 HEX 文件的地 址编码,把数据拼接完成,就可以了。所以官方软件对 HEX 文件进行了解析。 4、选择 flash 区域的空白填充。 可能使用软件从没有注意这点,选择 flash 空白区的内容是 0xff 或者是 0x00,选择什么不重要,重要的是空白区域,因为 HEX 文件的地址并不是连续 的,两个地址之间会有空白区域,如果不填充的话或导致下载的程序无法运行。 华北理工大学轻工学院 -4- 2.1.2 官方软件的使用总结 官方的软件功能齐全,但是选项较多,会使初学者感到困惑,使用配置的 地方也很多,如果配置错误很可能导致程序无法正常运行。 2.2 课题下载器软件的设计 2.2.1 USB 的 HID 读取 本课题自行设计下载器是 USB 的 HID 设备。所以软件要读取电脑的硬件 HID 设备,通过 VID 和 PID 还有 PVN 识别码自动寻找 USB 设备,打打简化课之 前官方下载软件的设置串口的不方便之处。 2.2.2 软件的功能介绍 软件如图 第 2 章 组卷算法与题库的研究 -5- 1、打开设备,无需手动设置任何参数,即可自动的打开连接到电脑上的 HID 设备。使用简单方便 2、打开程序文件,为了方便用户的使用,打开文件默认寻找的格式和 HEX 文件,这样不会使一些不关注的文件干扰我们正常打开文件。 3、下载、编程,及一键下载,使下载变得简单、高速。 4、退出程序。即可关闭 USB 连接。退出程序。 2.2.3 软件设计简介 采用 C+面向对象语言编写,采用 windows 的原生 API 接口,相比 MFC 类 库,原生 API 性能更高,,兼容性更好。需要读取电脑硬件的 USB 控制器,对 USB 进行查找,打开,写入数据,读取数据,关闭设备。还有对文件的操作, 打开文件,遍历文件,对 HEX 文件进行解析,重组数据。 2.3 软件的设计思路 2.3.1 USB 设备的读取 首先完成对 USB 设备的操作。查找软件指定设备的 USB 设备,完成对设备 的打开,可以进行正常的通讯,及可读可写。保证通讯的正常进行。 2.3.2 对文件的操作 要对文件的进行操作,主要是对 HEX 文件进行解析操作。解析如下 Hex 文件是可以烧录到 MCU 中,被 MCU 执行的一种文件格式。如果用记事 本打开可发现,整个文件以行为单位,每行以冒号开头,内容全部为 16 进制码 (以 ASCII 码形式显示)。Hex 文件可以按照如下的方式进行拆分来分析其中 的内容: 例如 “:1000080080318B1E0828092820280B1D0C280D2854”可以被看作 “0x10 0x00 0x08 0x00 0x80 0x31 0x8B 0x1E 0x08 0x28 0x09 0x28 0x20 0x28 0x0B 0x1D 0x0C 0x28 0x0D 0x28 0x54” 第一个字节 0x10 表示本行数据的长度; 第二、三字节 0x00 0x08 表示本行数据的起始地址; 第四字节 0x00 表示数据类型,数据类型有: 0x00、0x01、0x02、0x03、0x04、0x05。 00 Data Rrecord:用来记录数据,HEX 文件的大部分记录都是数据记录 华北理工大学轻工学院 -6- 01 End of File Record: 用来标识文件结束,放在文件的最后,标识 HEX 文件的结尾 02 Extended Segment Address Record: 用来标识扩展段地址的记录 03 Start Segment Address Record:开始段地址记录 04 Extended Linear Address Record: 用来标识扩展线性地址的记录 05 Start Linear Address Record:开始线性地址记录 然后是数据,最后一个字节 0x54 为校验和。 校验和的算法为:计算 0x54 前所有 16 进制码的累加和(不计进位),检验 和 = 0x100 - 累加和 在上面的后 2 种记录,都是用来提供地址信息的。每次碰到这 2 个记录的 时候,都可以根据记录计算出一个“基”地址。对于后面的数据记录,计算地 址的时候,都是以这些“基”地址为基础的。 2.4 本章小结 本章主要是对软件设计做出说明,下载器的核心就是简单快捷,这也是免 驱的设计也是源于方便用户的使用,所以没有给下载软件添加更多的功能。一 些不常用的鸡肋功能,也是没有必要添加。 也对软件的架构,所使用的 API,还有 HEX 文件的格式的分析。也是软件 设计的重要组成部分。也都做了介绍。 第 4 章 考试系统中题库和组卷子系统的实现 -7- 第 3 章 下载器的硬件设计介绍 3.1 硬件系统需求分析 既然是 USB 通讯,需要带 USB 驱动器的单片机,这样不需要额外的添加芯 片,简化电路,也节约成本。 给单片机下载程序是通过串口。也需要单片机具有串口。 3.2 单片机的选型 3.2.1 STM32 单片机的功能简介 STM32 单片 USB 的 HID 设备:STM32 系列基于专为要求高性能、低成本、低 功耗的嵌入式应用专门设计的 ARM Cortex-M3 内核,增强型系列时钟频率达到 72MHz,是 32 位产品用户的最佳选择。该设计就是采用增强型 STM32F103 系类 单片机。保证下载器的速度,以及高效性。STM32 单片机自带 USB 的协议库, 以及 USB 硬件控制器,无需未接转换芯片。保证了系统的稳定性和方便性,移 植 USB 的 HID 设备的协议,并调通传输数据及可。 STM32 单片机最多带 5 个串口,最少的也有两个,虽然 STM32 单片机是一款 低功耗的单片机。电源是 3.3V。但是 STM 的部分管脚是可承受 5V 的电压,这 样也无需电平转换新芯片,简化了电路。节约了成本。 3.3 硬件详细设计 3.3.1 STM32 最小系统设计 STM32 的最小系统主要是 3 部分,电源部分,SWD 下载接口部分,和 STM32 单片机的晶振和复位电路 STM32 是 3.3V 的单片机,正对下载器从 USB 取电,但是 USB 的电源是 5V, 直接接到芯片上会烧毁芯片,需要电源的转换芯片,一般采用 LM317 芯片。但 该芯片体积大,电源效率不高,所以设计采用 PL2980 芯片,是一款低功耗的电 源芯片。具体设计如图 1。 华北理工大学轻工学院 -8- 图 1 STM32 下载采用四线制的 SWD 下载,用 j-link 仿真器下载,使用方便 简单,如图 2。 图 2 STM32 的晶振电路位 8M 的无源晶振。复位电路通过瓷片电容耦合接地 即可,如图 3。 第 4 章 考试系统中题库和组卷子系统的实现 -9- 图 3 3.3.2 USB 驱动电路和串口下载电路设计 USB 驱动电路结构简单,是差分信号线,耦合一个 40r 的电阻即可。下 载串口电路需要对目标单片机进行自动的断电上电的控制。由于 STM32 是 3.3v。目标单片机是 5V,就需要两个二极管作为开关进行配合使用,具体 如图 4。 图 4 华北理工大学轻工学院 -10- 3.3.3 生成 PCB 文件的设计 根据绘制的原理图,对 PCB 进行布局布线,效果如图 5。 图 5 3.4 本章小结 本章主要介绍了硬件电路的设计进行了详细的说明,可以看出下载器的电 路结构是比较简洁的,这样简洁的设计,第一减小的 PCB 的面积,第二增加了 电路的稳定性,节约了成本。 第 4 章 考试系统中题库和组卷子系统的实现 -11- 第 4 章 下载器的程序设计介绍 4.1 程序设计的介绍 4.1.1 USB 的 HID 设备的实现 STM32 单片机自带 USB 的协议库,以及 USB 硬件控制器,无需未接转换芯 片。保证了系统的稳定性和方便性,移植 USB 的 HID 设备的协议,并调通传输 数据及可。 4.1.2 STC51 单片机的下载协议 STC 系列的单片机在上电的时候会执行在 ISP FLASH 的 ISP 程序。只要在 串口上收到连续的 0x7f,便会进入 ISP 模式。宏晶选择 0x7f 的理由是里面没 有连续的低电平。这样的话就可以让单片机来调整自身 UART 的时钟到计算机的 时钟,让波特率同步。但是若频率太高,则测不准。所以 启动波特率要控制在 9600 以下为宜。而且均有时间限制。如果不在超时时间内连接 MCU。MCU 会自 动断开,跑用户程序。 STC 的数据包格式为: 包头 2BYTE+标识 2BYTE +长度 1BYTE +包类型 1 BYTE+数据 nnBYTE+校验码 1BYTE+包尾 1BYTE。 包头固定 046,0xb9.(但是在信息帧中不包含包头 标识来自单片机的是 68 00 而来自计算机的是 6A 00 包尾固定 016. 至于我这里捕获的标识有 000 信息 000 数据 0x8F 新波特率实验 0x8E 波特率正式更改 084 擦除芯片 080 校验返回 0x8D 设置选项并且结束编程 080 (结束时,上位机)结束编程,通知 MCU 复位。 080 暂时未知(交互中的,不影响下载) 4.2 程序设计流程图 程序流程图如图 6: 华北理工大学轻工学院 -12- 图 6 结 论 -13- 结 论 通过这次设计,让我深深的体会到软件设计和硬件设计集合的重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代教学网科普版课件
- 小学生教学课件绿色生活
- 大棚春节前施工方案
- 贵州缠绕钢带管施工方案
- 施工方案明细表
- 五月份工作总结与计划
- 涉案账户考核方案范本
- 贵州安全员证书考试题库及答案解析
- 事业编医疗护理综合知识题库及答案解析
- 安全生产前培训考试试题及答案解析
- 2025中国农业银行贷款合同
- 青少年脊柱侧弯预防
- 2025年静脉输液考试题及答案2024
- 体育单招核心-1700-单词
- 2025年义乌市酒店式公寓行业市场调研分析及投资战略咨询报告
- PEP五年级英语上册单词默写表格
- 王心语《影视导演基础》(第3版)笔记和课后习题详解
- 你的态度决定你的高度主题班会-2024-2025学年初中主题班会课件
- 厂区设备内作业安全规程(4篇)
- 山东省城市园林绿化乡土适生植物名录2024
- 慢性冠脉综合征的管理
评论
0/150
提交评论