收藏 分享(赏)

基于STM32平台Freertos的温度数据采集系统.doc

上传人:HR专家 文档编号:11471463 上传时间:2020-05-09 格式:DOC 页数:39 大小:1.02MB
下载 相关 举报
基于STM32平台Freertos的温度数据采集系统.doc_第1页
第1页 / 共39页
基于STM32平台Freertos的温度数据采集系统.doc_第2页
第2页 / 共39页
基于STM32平台Freertos的温度数据采集系统.doc_第3页
第3页 / 共39页
基于STM32平台Freertos的温度数据采集系统.doc_第4页
第4页 / 共39页
基于STM32平台Freertos的温度数据采集系统.doc_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、郑州大学毕业设计(论文) 题 目: 基于STM32平台的Freertos的温度数据采集系统 指导教师: 张德辉 职称: 副教授 学生姓名: 陈瑞博 学号: 20127750202 专 业: 信息工程学院 院(系): 电子信息工程 完成时间: 年 月 日基于STM32平台的freertos的温度数据采集系统摘要本设计是基于STM32单片机为开发板使用Freertos系统的移植,从而实现温度数据采集的功能。单片机是一个微处理器,相当于一台小型的计算机。与计算机相比,它外型较小方便携带,并且对于外围电路数量的要求也不高。到目前为止,这种小型计算机的应用随处可见,本次设计就是用stm32单片机来控制温

2、度采集的。在这个课题中,我主要的研究内容是以下几个部分:(1)明确本课题的意义,查阅相关资料,调查分析国内外温度测量的现状。(2)设计一种基于STM32微处理器,利用温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。(3)根据控制系统的结构组成,对控制系统的硬件进行设计,包括主控单元芯片,温度测量电路和数据显示模块。(4)熟悉FreeRTOS操作系统结构,移植FreeRTOS操作系统,在FreeRTOS进行系统开发。关键词:STM32,LCD显示,FreeRTOSAbstractThe design is based STM32 microcontroller develo

3、pment board Freertos system transplant, to achieve temperature data acquisition capabilities. SCM is a microprocessor, the equivalent of a small computer. Compared with the computer, it looks small and easy to carry, and the peripheral circuit is not high for a number of requirements. So far, this s

4、mall computer applications everywhere, this design is to use the microcontroller to control the temperature stm32 acquisition. In this issue, I main contents of the following sections:(1) clarify the issue of the significance of access to relevant information, investigation and analysis of the prese

5、nt situation of temperature measurement.(2) design based STM32 microprocessor, using the temperature signal from the temperature chip DS18B20 collected and transmitted to the microcontroller by way of a digital signal.(3) The structure of the control system components, the control system hardware de

6、sign, including the main control unit chip, the temperature measuring circuit and the data display module.(4) be familiar with FreeRTOS operating system structure, migration FreeRTOS operating system, FreeRTOS system development.Key words: STM32,LCD,FreeRTOSI目录目录III第1章 绪论11.1课题背景和意义11.1.1研究背景11.1.2研

7、究意义11.2国内外研究现状21.2.1 国内研究现状21.2.2 国外的研究现状21.3论文研究内容及设计任务3第2章 总体设计42.1数据采集器简介42.2传感器选型42.3 Cortex-M3 处理器简介52.4系统总体设计52.5系统设计指标6第3章 硬件设计73.1 STM32 最小系统模块设计73.1.1 电源模块83.1.2 JTAG下载电路83.1.3 复位电路93.1.4 时钟电路103.2 串口模块电路103.3 温度模块电路123.4 LCD1602模块电路133.5 PCB板设计与制作143.6实物图20第4章 软件设计214.1 FreeRTOS 操作系统简介214.

8、2 操作系统的移植过程214.2.1 FreeRTOS 源代码结构214.2.2 相关代码移植224.2.3 FreeRTOS 配置264.2.4 FreeRTOS 移植测试264.3 应用程序设计274.3.1 LCD显示任务程序284.3.2 温度采集任务程序284.3.3 主任务程序294.4 本章小结30第5章 总结与展望31致谢32参考文献33附录34III第1章 绪论1.1课题背景和意义 随着电子技术不断的进步,人们生活水平日渐增长。与此同时,人们对产品智能化的要求越来越高,以单片机为核心的产品在市场上的需求量越来越大,在我么生活中随处可见的芯片,说明单片机的应用已经渗透到了生活中

9、的各个领域。科技需要不断的更新换代,科技创新成为了我们时代的口号。源源不断的创意和科技产品不断涌现在市场上,老牌行业逐渐被淘汰。这恰恰符合我国现在的发展趋势,逐渐落实了习近平总书记提出的“腾笼换鸟”的思想。 随着电子技术的不断更新与发展,电子产品在各个领域占据主流。在温度检测这一领域,利用单片机进行研究和设计,可以实现温度检测的智能化,并且单片机体型较小,节约了产品所占用的空间。不管是在农业上的如蔬菜水果大棚,还是在工业上都需要我们这种智能化的温度监控。1.1.1研究背景温度是生活和生产中最基本的物理量。温度数据采集和显示的技术不管在生活上,农业上还是工业上都已经实现了广泛的覆盖。在我们目前的

10、生活中,许多家电都已经实现了对于温度数据的采集和显示功能,比如我们随处可见的带有室内温度显示的电子表、饮水机、微波炉等电子产品。在农业上,对于大棚内种植的蔬果培育,对于温度的控制成了必不可少的条件。自第二次工业革命以来,工业上的生产与制造离不开对于温度的掌握。温度是锅炉生产质量的重要指标之一,同时也是保证生产安全的重要因素。因此对于温度的实时监控系统在市场上有很大的需求,随着电子技术的飞速发展,应用的范围在不断的扩大。1.1.2研究意义对于温度数据的采集和对温度的控制这一研究领域,它的用途广泛,市场需求量较大,目前各个行业对于温度的检测与控制又是精益求精,对于温度检测数据的实时性、真实性、可用

11、性都有严格的要求。利用单片机对温度的数据进行采集,是因为它可以在有些恶劣的环境下对温度进行多点采集,采集的数据具有可靠性、实时性。提高了工作质量。而单片机在目前的市场上也随处可见,它的应用十分广泛,比如小孩子玩的遥控车,家用的洗衣机,电视机,游戏手柄等等电子类产品。利用单片机所具有的功能和简约灵巧、成本低的特点来实现对于温度的控制,可以有利的提高市场占有率。硬件方面采用STM32这款单片机,配合ARM公司推出的Cortex-M3内核,STM32这款微处理器具有性能高、低成本、功耗低的优点。在软件方面,采用Freertos系统,Freertos系统具有可移植性、实时性,将Freertos系统移植

12、到内核中实现预想的功能可以降低设计难度。另外Freertos系统具有公开的源码,是一款真正免费的操作系统,使用Freertos系统进行移植可以降低商业成本。1.2国内外研究现状 1.2.1 国内研究现状20世纪80年代,我国开始对于温度测控技术进行研究。我国研究者学习了国外在温度检测上的一些技术。我国在该技术上正在不断向智能化方向发展,正在从对温度模拟量的采集过渡到数字化、智能化的阶段。相对于发达国家,我国在这方面的技术仍然有很多的不足和很大的进步空间。经过研究人员的不懈努力,我国正在逐步实现温度检测的工厂化。但是,在实际的生产过程中还存在着大量的难题,事实上,大多的温度测量系统是基于模拟传感

13、器的,得到模拟信号处理后再经过转换得到数字温度值。使用这种方法会出现难以避免的误差,在生产上可能造成额外的损失。同时这种方式的实现成本比较高,降低了整个产品的性价比。1.2.2 国外的研究现状相对于国内,国外在温度检测技术方面较早,上世纪70年代,发达国家就开始研究温度测量技术。温度传感器不断的更新,技术方面也飞速发展。目前,传感器发展的重点落在了微型化、数字化、集成化的实现。不少企业、工厂已经开始使用数字温度传感器,这种传感器简约方便,可用性强,性价比高。在温度检测技术的研究上,主要经历了3个阶段:(1)模拟式仪表阶段:在此过程中,使用的方法是检测温度的模拟数据,具体是以一般的热阻效应、热胀

14、冷缩、X光测量等原理进行实现的。(2)数字式仪表阶段。通过集成电路的方式,将温度传感器和数字电路集成起来。这种实现方式比模拟式检测数据更加准确,并且拥有更强的抗干扰能力。但是这种方式因为材料的原因有一定的局限性。能够测量的温度范围一般在-50 +150(3)智能化温度测量仪器仪表阶段。相对于数字式仪表阶段,智能化的仪器利用更多的软件程序来实现功能,简化了外围电路,提高了测量的精度,提升了仪器的功能。在国外,智能化测量仪器已经广泛覆盖了各个生产领域,智能化生产随处可见,实现了工业自动化。 1.3论文研究内容及设计任务 之前对温度检测技术的现状进行了初步的讨论,随着市场对温度检测系统的实时性要求越

15、来越高,采用嵌入式系统成为了温度检测系统的主流发展方向。本次设计的主要方向在基于STM32处理器和Freertos操作系统的软件平台下,实现嵌入式系统在温度检测上的应用。利用公开免费的操作系统和与之兼容的硬件平台,完成了实时操作系统在单片机平台上的移植。研究主要分为如下4个步骤:(1)了解并熟悉了FreeRTOS的内核编译语言和工作原理,分析了FreeRTOS的结构;(2)对于硬件的挑选和设计;(3)完成嵌入式系统的软件实现设计,包括温度采集应用层设计;(4) 完成FreeRTOS操作系统在单片机上的移植,移植结果的检测。第2章 总体设计2.1数据采集器简介 数据采集主要对外界环境信息经过一定

16、的手段采集数据,采集的数据可以是温度、电压、电流等等。它主要研究信息数据的采集、处理及存储。它和显示系统也密不可分,它以信息为基本单位,通过信息转换为能够识别的信号,该信号通过处理进行测量和处理。本专业主要以嵌入式为中心,研究电信号的数据采集,它是一门综合性技术。随着社会不断的进步,嵌入式技术在工业控制,检测、管理等方方面面都涉及到了。数据采集和显示系统的融合,能够实时进行采集,自动存储,实显示,为现场数据的真实性、有效性、实时性、可用性提供保证。目前,数据采集系统按照用途,正朝向两个方面发展,一方面为分散系统,通过总线的方式,把各个采集点,安装到各个不同的地方,然后通过一个集成控制进行数据采

17、集,这种方式采集数据灵活。另一种为集成数据采集,这种方式以高端的嵌入式微处理器和嵌入式实时操作系统为核心,集中对数据进行采集,如监控摄像头图像采集,数据采集器内装有一个嵌入式操作系统,应用程序在操作系统上独立开发。2.2传感器选型随着科技的不断进步,温度测量方面的传感器也层出不穷,但归根到底主要是两种,一种是数字式,一种是模拟式。使用模拟式的温度测量电路中,一般是通过热敏感电阻,这种电阻随着温度的上升,使得电阻值也随着温度值上升而减小,然后采用电阻分压或者电流取样等,获取模拟信号,经过调理电路放大和线性反馈补偿等等,输出到AD转换器,通过数字处理器进行处理后,按照热敏电阻的特性,从而测量出温度

18、显示。这种方式,在设计时,需要使用AD转换和模拟电路。这种方式调试麻烦,而传统的温度检测电路基本以热敏电阻为温度传感器。由于热敏电阻测量的温度范围低,可靠性差,不易调试,而且必须经过数据信号处理后,才能让CPU识别,在高要求的温度检测应用中,热敏电阻已经被精度高、准确性好的各种集成温度采集设备所代替。正式由于这些因素,本设计采用的是DS18B20传感器进行温度测量,它具有测量精度高,连接方式简单,分辨率高等等。与传统的热敏电阻相比,DS18B20能够直接通过单总线接口,读取数字信号,而且根据需要可以提高DS18B20的读取精度。另外DS18B20的功率可以从单总线上获取,使得连接线进一步减少,

19、无需外部电源,因此,DS18B20被广泛应用于温度采集与处理、数字温度计及各种温度控制系统中。 2.3 Cortex-M3 处理器简介Cortex-M3 处理器是一种32为处理器,它在各种特定市场都有着极大的影响,它为存储器和处理器的相关技术提供了解决方案,它是围绕市场战略而形成的特定的产品。它整合了许多的技术,不仅减少了使用内存,而且能够在很小的嵌入式芯片上集成。具有低功耗和高可靠性。相对于过去的ARM7处理器,ARM Cortex-M3处理器是使用门级电路最少的CPU内核,这样大大的降低了芯片的面积,也更加的适用于低成本的工艺生产。该类处理的性能可以达到1.2DMIPS/MHz,内存结构采

20、用了先进的哈佛结构,合理地利用了芯片空间,使系统满足了下一代产品控制需求。执行32位的Thumb-2 指令集,同时包含高效的系统外设。同时,该架构还推出了新的单线调试技术,避免使用多引脚进行 JTAG 调试,并全面支持 RealView 编译器和 RealView调试产品 。ARM Cortex-M3内核总共有20个寄存器,每一个寄存器的数据位宽度为32BIT,R0-R12 这13个寄存器为通用寄存器,主要用来保存临时数据和局部数据;R13为堆栈寄存器,也叫做SP寄存器,用来进行任务压栈和出栈操作。 R14为跳转寄存器,即通常所说的链接寄存器(LR),这个寄存器用来保存PC寄存器地址,当程序返

21、回时,需要保存返回的PC地址。APSR寄存器保存运算中的符号和结果标志等信息。IPSR寄存器为中断计数寄存器,EPSR状态寄存器,可中断执行指令与条件跳转指令状态寄存器。FreeROTS内核与CPU相关的文件大多牵扯到临界代码的处理和任务状态和任务变量的现场保存。2.4系统总体设计本温度控制系统的设计本着低功耗、低成本、性能好等原则,把整个系统方案划分为四个部分,分别是嵌入式最小系统、测温部分、控制部分及显示部分。其系统框图如图2.1所示。1、嵌入式最小系统嵌入式最小系统包括嵌入式芯片,时钟电路和复位电路。时钟电路用于产生嵌入式工作时所必须的时钟信号 。STM32嵌入式的内部电路在时钟信号控制

22、下,严格地按时序执行指令进行工作;复位操作是嵌入式的初始化操作,只需给嵌入式的复位引脚RST加上大于2个机器周期的高电平就可以使嵌入式复位。2、测温部分采用温度传感器,测量温度信息,温度测量范围为0100,最大线性偏差小于1摄氏度。把温度信号送到微控制器,便于MCU处理和控制。3、控制部分该部分通过嵌入式的GPIO口输出的高低电平来控制继电器的通断,从而决定是否加热或制冷,当温度高于温度上限时,制冷控制输出;当温度低于下限时,加热控制输出。4、显示部分采用良好的人际交互LCD1602显示,LCD1602自带字库,操作方便。图 2.1 系统设计框图2.5系统设计指标设计的主要功能和指标如下:(1

23、)多点监测;(2)监测温度范围宽,精度高;(3)用LCD液晶进行实际温度值显示;(4)能够自主设置上、下限报警温度;(5)当超过报警温度后,能够自动发出报警信号。本系统使用较高的智能化设计,无需手动对系统进行各种参数的设定,一旦进入系统开启界面,系统将会自动对电路的各个功能模块进行检测,如果各个模块正常,将自动进入监测界面,如果检测到系统的部分问题不正常,将会在显示界面上显示出来,便于处理。进入监测画面以后,系统会以默认的初始值进行监测,如果被监测对象有特殊的需要,可以在监测界面下使用按键输入系统,对监测的参数进行修改,达到监测所需的要求。第3章 硬件设计上一章介绍了系统的总体设计后,本章详细

24、介绍温度采集系统的硬件系统,包括STM32最小系统,温度采集电路和显示电路等。并对每个电路的功能进行了详细的介绍。3.1 STM32 最小系统模块设计本设计的核心单元MCU采用的是STM32F103C8T6,其外围电路包括JTAG下载电路、复位电路、8MHz高速晶振电路、复位电路组成 ,其电路图如图3-1所示。图3-1 STM32处理器STM32处理器是专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核。JTAG电路主要为用户提供程序下载和调试,STM32有三种下载程序的方式,分别是MDK编译器附带的烧写、串口ISP烧写、J-FLASH方式烧写。不同的下载方式对应

25、STM32启动方式也不同,主要通过BOOT0、BOOT1选择CPU的启动方式,其启动方式分为用户FLASH启动、系统存储器启动方式及STM32内嵌的SRAM启动组成。本设计采用J-LINK烧写,其启动方式为用户FLASH启动。时钟电路为处理器提供工作时钟,目前所有的处理器都提供两种时钟工作模式,分别是使用内部振荡器和使用外部时钟源,通过内部锁相环进行相应的倍频,为系统各个模块提供时钟源。复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能,在进行复位设计时,外部复位时间必须大于内部复位时间。电源电路主要给处理器供电,其电源电压为3.3V。在进行供电时,为了减少供电电路中所形成的电流冲

26、动对电路的正常工作产生影响,在处理器电源端接入退耦电容,退耦电路能够有效地消除电路之间的寄生耦合。3.1.1 电源模块 本STM32温度系统电源采用+5V电源输入,通过转换器把5V转3V3电路为MCU提供DC直流电源 。本设计使用国半LM1117作为线性稳压电源,为了减小输入电压的纹波系数,常采用滤波电路把直流中交流分量滤除,使负载两端得到的纹波较小的直流电压。滤波器一般有无源器件组成,分别是电容、电阻和电感组成,根据不同的组合方式,可以划分为电容滤波,电感滤波和组合滤波三种方式。组合滤波比单个滤波效果要好,它包括由电感电容滤波 、电阻电容滤波。由于电感线圈的体积大、价格高,所有本设计采用RC

27、滤波,在LM1117的输入输出加入RC滤波电路。因此本设计采用RC滤波,在LM1117的输入输出加入RC滤波电路。使电源电平变化时有一定的倾斜度,从而更加的平稳。其原理图如图3-2所示。图3-2 电源电路3.1.2 JTAG下载电路STM32提供多种下载方式,设置BOOT0引脚的状态,可以有串口下载、JTAG下载和SWD下载三种方式。JTAG按照标准,主要由TDI,TDO,TMS.TRST.RST和TCK组成。其中TDO为数据输出信号线、TDI为数据输入信号线、TCK为时钟信号线。JTAG端口采用的20针的插座,需要开发软件安装JTAG驱动,然后通过JLINK仿真器进行仿真和调试。JTAG实现

28、两种功能,分别是两只,一种是与主机相连,完成对系统进行仿真和调试,通过仿真与调试提高开发速度;另一种是可以通过JTAG进行在线编程和Flash烧写程序。STM32 SWD下载方式,只需要四根线,分别是DATA,CLK,VCC,GND,连接线比JTAG少,简化了下载电路。其电路如图3-3所示。 图3-3 JTAG下载电路3.1.3 复位电路在嵌入式系统中,复位电路的是否正常,是保证嵌入式能够工作稳定可靠关键。嵌入式可靠性设计,复位电路也是必不可少的一部分,嵌入式上电过程,需要对各个模块进行复位操作,若在复位过程受到电信号的干扰,使得嵌入式运行工作不正常,有可能使得程序跑飞,在工业控制领域里面是不

29、允许出现的情况。复位电路复位后,然后程序开始工作,为使嵌入式工作稳定,需在嵌入式的复位管脚输入一定延时时间的低电平复位信号,延时后将此复位信号拉为高电平。图3-4复位电路如图3-4所示,复位电路由两个电容、一个电阻及一个复位开关组成。在接通电源瞬间,电容C10呈现短路状态,RS端为高电平状态,随着电容C10的充电过程结束,RST呈现高电平状态,完成低电平复位过程。当需要手工复位时,人为按下按钮SW1,则3V3电源就会直接加到RST端,给单片机强行复位,当按钮SW1抬起后,RST呈现高电平状态,完成复位操作。RST端的低电平持续时间取决于电容的充电时间。本设计的特点:此设计为低电平复位;电路设计

30、简单实用,高电平复位时间可通过RC值来选择;电路抗干扰能力差,适于应用在电磁环境比较好的场合。3.1.4 时钟电路STM32单片机的内部振荡器由一个反向器和放大器组成,反相器输入为引脚19脚,另外反相器输出为引脚18脚,当接入时钟电路后,单片机内部的振荡器产生时钟,晶振电路和负载电容与内部反向器组成谐振电路,相当于一个信号发生器,这种方式为内部起振。还有一种方式为外部起振,可以通过外部输入时钟,例如有缘晶振电路,把输入的时钟接到XTAL1端输入端,而XTAL2引脚输出悬空 。比较两种连接方式,本设计采用内部方式,该方式成本低廉,而且可靠性高。因如图3.4中所示。在电路中,负载电容C8和C9的值

31、的要求,其实并不是很严格,但是电容的大小决定了震荡电路的稳定性,同时让起振快速性。在晶振旁边接两个电容的目的主要有三个,分别是:1、上电时,加快起振速度。2、稳定震荡平稳。3、改变电容容量,调节震荡频率。该电容容量一般为1030PF,本设计的C8、C9均为15pF,石英晶振为12MHz。另外在进行PCB设计时,需要考虑晶振、电容等均应尽可能靠近芯片,让振荡器振荡的稳定性。如图3-5所示。图3-5时钟电路3.2 串口模块电路RS232使用在通信距离较近环境,就采用RS232串口通信接线方法。串口通信电平位TTL,而电脑输出为COMS电平,它们之间采用匹配的MAX232芯片,它的作用相当于驱动器和

32、接收器,采用DIP-16封装,工作电压5V,工作温度为070,耗散功率为100mW。需要指出的是它满足供电电压5V,它的最小数据传输率为300Kbps也满足要求。按照串口定义,一般有9针,本设计只要采用三线,分别是GND、TXD和RXD三脚连接。经常使用的串口有9针串口(DB)和25针串口(DB) ,如表3-1所示。接受数据和发送针脚能够完成串口传输数据,当在同一个串口时,它的接收脚和发送脚用线直接连接就可以了,如果存在两个差异串口接线,如表3-2所示。在实际使用当中,一般不要带电拔插串口,至少要确保一端是断电,这样就不容易损坏串口。RS232接口电路如图3-6所示。表3-1 DB9和DB25

33、常用信号脚说明表3-2 两个不同串口接线方法图3-6 RS232接口电路从图3-6上可以看到,MAX232可分为三部分。1)电荷泵电路。电荷泵电路主要完成升压任务,把5V直流转换为12直流电源,通过电荷泵可以完成TTL/CMOS电平转换,满足RS232电平要求,外接4个电容,由C0,C1,C2,C3组成。2)输入输出转换电路,TTL电路主要由T1OUT、R1IN,T1OUT、R2IN组成,实际运用中T1OUT、T1OUT,与单片机异步串口的发送端口TXD连接; R1IN, R2IN与单片机异步串口的接收端口RXD连接,经过MAX232内部电路电源转换,转换成了RS232所需要的电平,送至PC机

34、。3)供电电路,16脚电源端,5V直流供电电源;15脚(GND),电源接地,一般在电源两端接入退耦电容。3.3 温度模块电路 DS18B20数字温度传感器是DALLAS公司生产的一种单总线数字温度传感器。它引脚定义为VCC、GND和DATA,它属于单总线驱动器,通过控制单总线的时序,来获取温度信息。DS18B20内部设有高精度测温模块,通过该模块将温度转化为数字信号传输给微处理器,它具有低功耗,高性能,微型化和抗干扰能力强、易于搭配处理器等优点。它能够在同一总线上挂载多个DS18B20温度传感器。测量范围为-55125,测量进度为12位AD转换器,分辨率单位为0.0625,温度以16位的数字量

35、串行传输。它具有以下优点:1、能够实现多点分布,而且布线简单;2、温度转换为数字量耗时间大概200ms,在750ms内能把数字信号转换输出。3、内部含有非易失性存储电路,方便用户设置温度报警值。 4、DS18B20可以两线通讯,供电采用数据线供电,减少布线数量。 5、在低功耗下实现零待机功能;6、单总线接口,使用单个端口即可通信。 7、负压保护特性,当用户把电源极性接反时,温度传感器不会因过度发热而烧毁。根据上述优点,本设计采用DS18B20温度传感器作为采样模块,其硬件连接图如图3.7所示。它的工作电源有VCC接入,为了提高抗干扰能力,在数据线和VCC接口接一个上拉电阻,这样可以有效发挥DS

36、18B20电压范围宽的优点。为了更好的提高温度测量的精度,可以在DS18B20两端接人退耦电容,防止电源干扰的影响。另外当电源电压降低到3时,仍然可以保证温度测量的精度。GND1DQ2VCC3U1DS18B20GNDVCC4K7R1PB0STM32STM32图3.7外部供电方式3.4 LCD1602模块电路本设计采用的是LCD1602液晶显示器,它内部固化了ASCCII字符,显示出2行*16个字符,通过控制BLA和BLK两个引脚,实现背光功能。在BLA串联一个小电阻,可以调节背光的亮度。它接口具有兼容性,驱动简单方便。为了完成对字符信息等相关信息的显示,按照LCD1602模块手册,VSS第一脚

37、接电源负极,VDD第2脚接电源正极,不允许电源接反。第三脚接对比度调节电路,通过调节对比度电路,可以调节字符显示的亮度,当该引脚接地时,对比度最高,这时对比度过高时会产生“鬼影”。因而可以将第3脚V0接入一个10K可调电阻,来调整液晶显示器对比度。RS、RW、EN为控制脚,RS为寄存器命令选择,与STM32的PB6相连接,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚RW为读写信号线,与单片机的PB6相连接,高电平时进行读操作,低电平时进行写操作,当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6

38、脚E端为使能端,与单片机的PB1相连接,当E端由高电平跳变成低电平时,液晶模块执行命令;第714脚D0D7为8位双向数据线;第1516脚为空脚,LCD1602连接图3.8所示。 数据线D0D7连接到74LS595,该芯片是一个移位串转并数据芯片,通过该芯片可以减少与单片机IO口的连接,该芯片具有三态输出功能。该芯片主要由移位寄存器、存储器和时序控制器组成。通过控制SHcp、DS和SHcp完成数据移位输入。SHcp为上升沿时数据寄存器的数据移位, STcp为上升沿时移位寄存器的数据进入数据存储寄存器,高电平时禁止输出(高阻态)。如果处理器的IO引脚不紧张,就可以用一个引脚控制它,这样会比通过数据

39、端移位控制要省时省力。图3.8 LCD1602电路图3.5 PCB板设计与制作Altium Designer的前身是Protel,这款软件采用集成化的电子产品开发体系,其集成了原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术,为设计者的设计带来了简单而全新的解决方法,让从事设计的工作人员简单而轻松的完成设计工作 。在安置各个元器件到PCB中之前,需要设定PCB的工作环境。如栅格、板层和其他规则。由所运用的电路知识以及配合板子使用条件来进行栅格的设置,本文中把snap grid设定成10mil。保存PCB文件的同时,该PCB文件的视图设置也会保存下来。可以设

40、置系统自带的视图规则,并保存起来,当下次打开时,系统将运用新的保存规则。视图设置按键为Design到Board Layers & Colors,跳出View Configurations对话框。其中我们可以设定、编辑、加载、保存视图规则,在通过这个来控制对象层显示以及如何显示。如图3-9所示。图3-9 PCB板视图设置PCB编辑器极其重视规则,因此每次设定好规则后,系统都会对用户的每次设计动作进行规则检查。一旦动作和设计条例有冲突,系统就会提示和报警,所以开发人员不用纠结于是否违反规则而将精力主要放在设计开发之中。Altium Designer的设计规则极其强悍,我们可以在先设定一个线宽度约束

41、规则,再设定一个地线的宽度并将当做第二设计规则,从而加强了板子的接地性能。如图3-10和图3-11所示,本文PCB板的线宽约束规则为10mil,电源5V和地线网络添加了一个新的宽度约束规则设置为15mil。图3-12是本文的PCB板全部设计规则。图3-10信号线线宽设置图3-11 电源线线宽设置图3-12规则设置界面PCB的设计不仅要提供优质的电气特性而且要合理的摆放元器件,从而使PCB布局更加合理美观。每个元器件应该尽量放在合理的位置,必须在PCB板的边界线以内。利用空格来改变器件方向,使飞线合理并且美观。所有器件摆放到正确位置后,就要开始布线了,我们可以运用系统的自动布线器来快速准确布线,

42、减轻了工作量同时效果也不错。大多数情况下,我们要把自动布线和手动布线结合起来,这样能够更具有准确性。器件摆放和布线工作完成后,我们有必要进行设计规则检查,步骤点击Tools看到Design Rule Check,打开得到如图3-13所示。图3-13 PCB板设计规则检查界面点击Run Design Rule Check图标,DRC检查开始,结果如图3-14所示。结果0个警告,DRC成功。图3-14 DRC检查详细结果设计完成最终的PCB电路板成果如图3-15和图3-16所示。图3-15 PCB TOP层电路图图3-15 PCB BOTTOM层电路图 3.6实物图根据电气原理图购买相应元器件,最

43、终制作出如图3-16所示电路板。第4章 软件设计4.1 FreeRTOS 操作系统简介 最早的控制程序设计中,只有应用层和底层驱动。所以设计人员需要编写整个造作程序,过程十分繁琐。Freertos具有公开的源代码,在设计程序的过程中,对该操作系统进行一些改动就可以添加功能,可以有效的减少设计人员的工作量,加快开发速度。Freertos不局限于本设计使用的STM32硬件平台,它与很多硬件平台都可以兼容。该实时操作系统公开、免费,并且不需要设计人员公布自己的源代码,保护开发权。此外,FreeRTOS具有可裁减、可移植的内核,多任任务调度策略,同时支持可以剥夺型任务切换和不可剥夺型任务切换。与UCO

44、S相比,该系统占用的内存和空间都是非常小的,运行效率很高,满足改设计需求 。4.2 操作系统的移植过程 4.2.1 FreeRTOS 源代码结构 在进行FreeRTOS时,需要对FreeRTOS的文件结构进行了解,这样方便更好的了解该系统的移植方法。FreeRTOS 的源代码主要由两部分组成,一部分与内核无关的源文件,如FreeRTOS操作系统说明书和工具等等;另一部与内核相关的文件,如各种.C和.H文件。而主要关心的就是与内核相关的文件。按照内核不同的功能组件,FreeRTOS划分了几个目录,方便用户更好的了解。Inlcude目录公用的头文件,port与底层硬件平台相关的文件。各部分具体包含

45、的代码如图4-1所示。图4.1 FreeRTOS 源代码结构图其中,FreeRTOS和系统相关的四个核心函数为tasks.c ,list.c,queue.c,croutine.c。tasks.c主要实现任务调度功能,它通过状态切换,实现不同的任务调度,它可以把任务进行延时,休眠,唤醒及就绪等状态之间进行切换。它这些切换的实现主要通过TCB任务控制链表来实现的,这个链表的每一个节点都包含一个任务的所以信息,如任务状态,任务堆栈及任务当前环境;list.c实现一个数据结构功能,该实现的功能为双链表功能,它定义该链表的删除,插入及创建等功能,提供给内核进行调度算法;queue.c实现系统消息链表队列

46、,它可以进行入队,插入,删除及创建队列等操作,支持信号量的控制;croutine.c这个实现联合程序,主要是为了减少RAM的开销,是一种堆栈的组织形式,该程序是一种任务共享堆栈形式。 为了完成FreeRTOS的移植,需要了解移植的内容,这里主要内容有以下几个:1、完成普通任务切换的底层实现;2、完成中断任务切换的汇编程序;3实现中断处理和时钟节拍;4调节CPU的寄存器参数和堆栈大小;5编写入出临界区代码。系统在移植的过程中,由于FreeRTOS官方提供了这方面的移植例子,所以我们只需要按照修改的例子进行相关代码的修改即可。一般修改的文件是portmacro.h,port.c,portasm.s

47、这三个文件 。其中portmacro.h主要定义了一些数据类型,包括函数宏开关,堆栈地址类型,编译器选项等等。port.c文件实现需要花费大量的时间,该部分主要由C语言进行编写,通过修改该文件的堆栈初始化,任务调度及时钟节拍中断服务程序等等。portasm.s该程序有汇编编写,完成最底层的相关驱动函数,该函数一般最先执行,包括开关总中断和临界代码保护等等。4.2.2 相关代码移植 熟悉相关的移植要求后,就需要对这些文件和本设计的CPU进行移植。(1)portmacro.h文件首先移植portmacro.h文件,该文件主要进行了三个方面的移植,分别是数据类型移植、堆栈地址及临界保护。首先数据类型进行了相关的定义。由于编译器不同,一些关键

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报