电子信息工程毕业论文

上传人:痛*** 文档编号:41503986 上传时间:2021-11-20 格式:DOC 页数:48 大小:892.12KB
收藏 版权申诉 举报 下载
电子信息工程毕业论文_第1页
第1页 / 共48页
电子信息工程毕业论文_第2页
第2页 / 共48页
电子信息工程毕业论文_第3页
第3页 / 共48页
资源描述:

《电子信息工程毕业论文》由会员分享,可在线阅读,更多相关《电子信息工程毕业论文(48页珍藏版)》请在装配图网上搜索。

1、2011 届毕业设计(论文)题题 目目: :基于 PSoC 的温度检测系统的软件设计学学 院院: : 电子与信息工程 专专 业业: : 电子信息工程 班班 级级: : 电子 0701 姓姓 名名: : 仇俊杰 指导老师指导老师: : 朱晓梅 起讫日期起讫日期: : 2011-02-212011-06-14 2011 年 6 月Comment A1: 放最后基于 PSoC 的温度检测系统的软件设计摘 要随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输处理的功能器件,温度检测的作用日益突出,已成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具。本文主要介绍基于 PS

2、oC 的温度检测系统的软件设计,开发工具使用的是 Cypress 公司的 PSoC Designer5.1,实现的功能主要包括温度数据的检测、处理、显示和报警,通过键盘设定报警值。本文简单介绍了 PSoC(可编程片上系统)的特点、以及内部的主要模块,介绍了温度检测系统的各硬件模块,该系统体积小、成本低、工作可靠、具有很高工程应用价值。关键词:关键词:可编程片上系统(PSoC) 温度传感器 软件设计IThe Software Design of temperature detection based on PSoCAbstractAs the development of the compute

3、r and automation technology and as the function device of sensor, convert, transmission and process, temperature detection becomes more and more important. It is a key technology tool in automation of detection, control and measure test. The article mainly introduces the software design of temperatu

4、re detection based on PSoC. The software design is based on the PSoC Designer5.1 which is developed by Cypress. The important functions include the detection of temperature data, process, display and alarm. Through the set of the key, it can give an alarm. The paper also briefly introduces the chara

5、cteristics of PSoC(Programmable System on Chip) as well as some of the configuration of the hardware design module. This system has many characteristicslittle volume, low cost and working stability, and it is very useful to the engineering application. Key Words : PSoC ;Temperature detection ;Softwa

6、re development 目 录摘 要.IABSTRACT .II第一章 绪 论.11.1 设计背景和意义.11.2 本文的安排.1第二章 简述主要集成芯片和软件开发环境.22.1 简述主要集成芯片 PSOC.22.2 软件开发环境.72.2.1 PSoC Express 72.2.2 PSoC Designer 5.18第三章 硬件电路分析.113.1 总体电路框图设计分析.113.2 模块电路分析.113.2.1 电源电路113.2.2 温度传感器模块123.2.3 报警器模块133.2.4 LED 显示模块 133.2.5 键盘扫描模块15第四章 软件设计.164.1 总体流程图.1

7、64.2 软件设计.164.2.1 PSoC Designer 5.1 软件开发流程简介164.2.2 基于 PSoC 的温度检测系统的软件设计详细流程184.2.3 键盘扫描184.2.4 温度传感器数据输入214.2.5 数据放大224.2.6 模数转换234.2.7 数据的显示和报警24I4.2.8 系统全局变量26第五章 软硬件调试.285.1 前期准备.285.2 调试.29第六章 设计中的问题和设计方法改进.316.1 设计中的问题.316.2 设计方法改进.32结 语.33参考文献.34附 录 1.35附 录 2.40致 谢.42第一章 绪论0第一章第一章 绪绪 论论1.11.1

8、 设计背景和意义设计背景和意义 温度是工业生产和自动控制中最常见的工艺参数之一 ,生产过程中常常需要对温度进行检测和监控,采用单片机进行温度检测,数值显示和数据的存储,效率高,性能稳定,还可以实现实时控制等技术要求,在工业生产中应用越来越广泛。在日常生活中,对温度的检测也十分重要,比如流动人口的温度检测,家用空调,热水器,电饭煲的电器设备等,这里存在很大的安全隐患,解决这些问题就需要我们找到一种精度高,成本低的方法。本文提出一种基于 PSoC 的温度检测系统的软件设计。他使用的开发工具是赛普瑞斯公司开发的 PSoC designer5.1。实现的功能主要包含数据的输入,数据的处理,数据的显示,

9、键盘扫面。该系统能实现温度的报警和温度上下限的设置,如果超过上限和下限就能自动报警。1.21.2 本文的本文的安排安排本文通过比较几种软件设计方法的优缺点,找出适合自己研究的方向,并能够最大限度地应用所学知识。本文主要完成了以下的工作:1简述主要集成芯片和软件开发工具;2简述硬件电路分析;3详细阐述软件设计过程;4进行软硬件联合调试;5分析调试中遇到的问题,提出改进的方案。南京工业大学本科生毕业设计(论文)1第二章第二章 简述主要集成芯片和软件开发环境简述主要集成芯片和软件开发环境2.12.1 简述主要集成芯片简述主要集成芯片 PSoCPSoCPSoC 系列单片机是在一个专有的 MCU(Mic

10、roprogrammed Control Unit)内核周围集成了可配置的模拟和数字外围器件阵列 PSoC 块,利用芯片内部的可编程互联阵列,有效地配置芯片上的模拟和数字块资源,达到可编程片上系统的目的。PSoC 是一种对于标准的“全数字式”微控制器设计、纯粹的模拟设计以及介乎此二者之间的所有设计而言具有同等的高适用性的器件,是一种具有极端灵活且完全可编程的混合信号 SOC 的基本原理的全新一代器件。功能介绍:赛普拉斯的 PSoC(TM)混合信号阵列是可编程的片上系统(SOC),其集成了微控制器以及嵌入式系统中通常围绕微控制器周围的模拟及数字组件。采用一个微控制器,一个 PSoC 器件最多可集

11、成 100 种外设功能,从而帮助客户节约设计时间和板上面积,降低了功耗,系统成本也可降低 5 美分到 10 美元不等。方便易用的开发工具使设计人员能够准确选择所需的外设功能,包括放大器、ADC、DAC、滤波器及比较器等模拟功能以及定时器、计数器、PWM、SPI 和 UART 等数字功能。PSoC 系列的模拟功能包括轨至轨输入、可编程增益放大器以及最大 14 位的 ADC,其噪声极低,输入损耗及电压偏移也非常低。PSoC 设备包括最大 32 KB 的闪存、2 KB 的 SRAM、带有 32 位累加器的 8x8 乘法器、电源和睡眠监控电路,以及硬件 I2C 通信等。PSoC Designer(TM

12、)是 PSoC 的传统软件开发环境,它是一款功能全面的基于图形用户接口(GUI)的设计工具套件,使用户能以简单的点击对设计中的硅技术进行配置。在 PSoC Designer 的帮助下,用户可以采用 C 语言或汇编语言编写 MCU 的代码,还可用事件触发器和多断点等先进的特性对设计进行调试,同时还可以采用 C 语言、汇编语言或二者的结合,通过代码实现单步进。本次设计采用CY8C29466-24PXI 他的管脚图如下: 第二章 简述主要集成芯片和软件开发环境2 图 2-1 PSoC 的引脚图P07 口:数字 IO 口,模拟列多路复用器输入。P05 口:数字 IO 口,模拟列多路复用器输入和列输出。

13、P03 口:数字 IO 口,模拟列多路复用器输入和列输出。P01 口:数字 IO 口,模拟列多路复用器输入。P27 口:数字 IO 口。P25 口:数字 IO 口。P23 口:数字 IO 口,直接开关电容模块输入。P21 口:数字 IO 口,直接开关电容模块输入。SMP 口:开关模式泵(SMP)至所需要的外部器件的连接。P17 口:数字 IO 口,I2C 串行时钟(SCL) 。P15 口:数字 IO 口,I2C 串行数据(SDA) 。P13 口:数字 IO 口。P11 口:数字 IO 口,晶振(XTALin) 、I2C 串行时钟(SDA) ,ISSP-SDATA.Vss 口:地线连接。P10

14、口:数字 IO 口,晶振(XTALout) 、I2C 串行时钟(SDA) ,ISSP-SDATA.P12 口:数字 IO 口。P14 口:数字 IO 口,可选的外部时钟输入(EXTCLK)P16 口:数字 IO 口。XRES 口:高电平有效的外部电路复位信号并配内部下拉电阻。南京工业大学本科生毕业设计(论文)3P20 口:数字 IO 口,直接开关电容模块输入。P22 口:数字 IO 口,直接开关电容模块输入。P24 口:数字 IO 口,外部模拟地(AGND) 。P26 口:数字 IO 口,外部基准电压源(VREF)P00 口:数字 IO 口,模拟列多路复用器输入。P02 口:数字 IO 口,模

15、拟列多路复用器输入和列输出。P04 口:数字 IO 口,模拟列多路复用器输入和列输出。P06 口:数字 IO 口,模拟列多路复用器输入.Vdd 口:供电电压。PSoC 体系架构由 4 个主要区域构成:PSoC 核心、数字系统、模拟系统和系统资源。可配置型全局总线连接方式可让所有器件资源结合成一个完整的定制系统。每个CY8C29x66 PSoC 器件系列能够包括多达 8 个 IO 端口,并连接至全局数字和模拟互连线路,提供了对 16 个数字模块和 12 个模块的访问能力。PSoC 核心就是一个功能强大的引擎,它支持丰富的指令集。此核心包含了 1 个CPU、存储器、时钟和可配置 GPIO(通用 I

16、O) 。M8C CPU 核是一款性能强大的处理器,运行速度可高达 24 MHz,并提供了 1 个 4 MIPS 级 8 位 Harvard 架构微处理器。此 CPU 利用了容量为 25 个向量的中断控制器,以简化实时内嵌事件的编程。程序执行的定时和保护采用了内含的休眠定时器和监视定时器(WDT)存储器内含用于程序存储的 32KB 闪存、用于数据存储的 2KBSRAM,以及最高 24KB 的采用闪存仿真的 EEPROM 存储器。程序闪存存储器在 64 字节的区块上采用了 4 个保护级别,从而可以实现定制化的软件知识产权(IP) 保护功能。PSoC 器件集成了多个灵活的内部时钟发生器,包括了 1

17、个随着温度和电压变化的精度达 2.5% 的 24 MHz IMO (内部主振荡器) 。而这个 24 MHz IMO 也可以倍频至 48 MHz 以供数字系统使用。还有为休眠定时器和监视定时器(WDT) 提供的低功率 32 kHz ILO (内部低速振荡器) 。如果对晶体精度有一定要求,则可以使用可配备的 ECO (32.768 kHz 外部晶体振荡器)作为一个实时时钟(RTC),并可以有选择性地运用锁相环(PLL) 技术生成晶体精确级 24 MHz 系统时钟。而时钟与可编程时钟分频器(也是一种系统资源)可以共同提供了一种能够将几乎任何时序要求集成到 PSoC 器件内的灵活性。PSoC GPIO

18、 提供了对于器件的 CPU、数字资源和模拟资源的连接能力。每个引脚的驱动模式均可以从 8 种选项中进行选取,从而为外部接口安排提供极高的灵活性。每根引脚还能够根据高电平、低电平以及上次读取第二章 简述主要集成芯片和软件开发环境4后变化事件生成系统中断。通过他的管脚功能描述我们引出他的内部资源,他的内部资源电路图如下图 2-2 PSoC 的内部资源配置图数字系统由 16 个 PSoC 数字模块构成。每个模块均是一个 8 位资源,可以单独使用,也可以与其它模块联合构成 8 位、16 位、24 位和 32 位外设,这些均称为用户模块基准规格。数字外设配置包括了如下的各项。1、 脉冲宽度调制器(8 至

19、 32 位)2、 存在死区的脉冲宽度调制器(8 至 32 位)3 、计数器(8 至 32 位)4、 定时器(8 至 32 位)5 、UART, 8 位且可选择奇偶校验(最多 4 个)6 、SPI 主设备和从设备(每种最多 4 个)7 、I2C 从设备和多主设备(1 个作为系统资源提供)8、 循环冗余码校验器 / 发生器(8 至 32 位)9、 IrDA 模块(最多 4 个)10、 伪随机序列发生器(8 至 32 位)数字模块可以通过一系列的全局总线连接至任意 GPIO 引脚,全局总线能够将任何信号路由至任何引脚。全局总线允许信号进行利用,并允许执行逻辑运算。这种可配置性打破了用户设计受固定外设

20、控制器限制的局面。数字模块按照 4 行进行配备,而其中模南京工业大学本科生毕业设计(论文)5块的数量依 PSoC 器件系列而变。这样就可以让用户对于自己的应用进行系统资源的最优化选择。图 2-3 PSoC 的内部资源数字模块图模拟系统由 12 个可配置模块构成,这样能够创建复杂的模拟信号流。模拟外设具有很好的灵活性,并可以进行定制以支持特定的应用要求。一些较为常见 PSoC 模拟功能(绝大多数以用户模块的形式提供)列出如下 1、 模数转换器(最多 4 个,分辨率为 6 位至 14 位,可选择增量、增量累加以及逐次逼近(SAR) 型)2、 滤波器(2 极、4 极、6 极或 8 极带通、低通和陷波

21、滤波器)3、 放大器(最多 4 个,可选择增益可达 48 倍)4、 测量放大器(最多 2 个,可选择增益最多达 93 倍)5、比较器(最多 4 个,拥有16 个可选择阈值)6、 数模转换器(最多 4 个,分辨率为 6 位至 9 位)7、 乘法数模第二章 简述主要集成芯片和软件开发环境6转换器(最多 4 个,分辨率为 6 位至 9 位)8、 大电流输出驱动器(4 个 40 mA 的驱动器作为核心资源)9、 1.3V 基准源(作为系统资源)10、 DTMF 拨号器 10、 调制器11、相关器 12、峰值检测器 13、其它许多可能的拓扑结构图 2-4 PSoC 的内部资源模拟模块图2.22.2 软件

22、开发环境软件开发环境在软件开发的过程中,Cypress 公司开发出了两种软件开发的版本,下面我们对开发方法进行具体介绍。2.2.1 PSoC ExpressPSoC Express 是业界第一款易用型开发工具,它让系统工程师能够开发出基于微控南京工业大学本科生毕业设计(论文)7制器的设计方案,而无需进行任何汇编语言或 C 语言的编程工作。PSoC Express 在更高抽象水平上进行操作,并且不要求进行固件开发,因此能够在几个小时或几天之内完成创建、仿真并编程到目标 PSoC 器件中,而不再需要花费几周或几个月的时间。PSoC Express 所具有的对便携性的内置支持、无缝多任务处理能力、设

23、计可视化特色以及丰富的内容库,使设计方案的创建更快、更可靠。利用 PSoC Express,设计人员只需在其各自的专业应用领域内工作,通过在目录中选择输入和输出设备来定义一个定制解决方案,然后对其进行逻辑连接来定义系统行为。例如,用户可以选择温度传感器、电压输入、风扇、LED,然后定义风扇工作的温度范围、电压监视器阀值以及序列逻辑。在 PSoC Express 内部,设计人员还可以通过仿真对设计进行校验,然后生成并下载设备编程文件。此外,该工具还使得用户可以适用赛普拉斯的任意一款 PSoC 器件进行设计,以及创建定制化项目文档,其中带有寄存器映射的数据表、接口电路图以及材料清单等。无需编写任何

24、微控制器代码,设计人员即可更快速地实施可靠的定制应用。2.2.2 PSoC Designer 5.1PSoC Designer 5.1 是 Cypress 最新推出的开发平台,为业界首创且唯一一套能在同一个封装的整合式设计环境中,同时包含免撰写程式码与高阶语言编程模式之创新工具。Cypress 结合革命性的 PSoC Express可视化嵌入式系统设计工具,以及功能完整的PSoC Designer 软体,开发出一套全新的设计模式。使用者一开始可用拖放式的可视化设计模式(从系统层级检视),接着再转移到 C 语言程式码的设计模式(从晶片层级检视),以针对其专案进行微调与客制化,所有步骤均可用此款

25、PSoC Designer 5.1 工具来完成。 新款 PSoC Designer 5.1 工具除了整合 PSoC Express 的功能,还包括专属 PSoC Mixed-Signal Array 的 9.61 版 HI-TECH C PRO 编译器。此款新版编译器内含一个新增的Lite模式,可让设计人员免费使用,且没有一般免费编译器在时间或程式码长度方面的限制。PSoC Designer 5.1 亦包含多种升级功能,包括便利的操作功能,并确保提供嵌入式设计工程师,最好的工具、介面、以及元件,且能快速而简单地完成最复杂的设计,及提高目标 PSoC 元件的效率。这些加强功能包括以最普遍的软体应

26、用为基础所开发出来的图形化使用者介面功能。例如,实际上使用者可把软体中每个视窗自行设定在适合的第二章 简述主要集成芯片和软件开发环境8开发工作空间,并可透过标签介面(tabbed interface)随时隐藏或显示,或以独立的视窗显示,以在多重显示器的环境中发挥超高的效率。PSoC Designer 能协助使用者发挥 PSoC 元件的强大功能与高弹性。借由系统层级与晶片层级两个专案设计模式,使用者可选择以免撰写程式码、撰写所有程式码、或混合两种模式等方法,在更高的抽象层级上进行作业,无需开发韧体,系统层级的专案设计让用户能在数小时或数天内针对目标 PSoC 元件完成建立、模拟、以及编程的作业,

27、而无需花费数周或数月的时间。晶片层级的专案设计模式为使用者提供一系列的周边功能(称为使用者模组),采用弹性化的类比与数位 PSoC 模块技术,进行选择、置放、与连接针脚的设计,然后针对客制化的混合讯号设计开发专属的韧体。在系统层级的专案设计中,PSoC Designer 会自动产生晶片层级的设计资讯以及所有的韧体,而且让用户能加入使用者模组,以及采用 C 语言或组合语言所撰写的更多功能。 此款功能强大又容易使用的 IDE 环境具备一个强大的使用者模组、许多可预先设定、预先规划的嵌入式周边元件功能;以及众多透过 help对话方块、下拉式选单、以及其他图形式介面的使用者辅助功能。使用者模组运用可配

28、置的 PSoC 元件,开发出各式各样的实用功能,像是计数器、计时器、PWM、及包括 ADC 及 DAC 的类比转换器; 通讯连接线路则包括像 UART、SPI、I2C,及比较器、可程式增益模块、滤波器、及启动载入器。每款使用者模组都包含硬体配置资料、启动程式码、以及中断服务常式,还有许多 API可供选用。这些 API,或应用编程介面的软体功能,都能让用户立即控制使用者模组的所有层面。这种创新的方法能协助研发业者得到一个全功能的客制化元件,无需花费数周或数个月的时间查阅恼人的资料表,或耗费可观的心力撰写低阶程式,及无止境的除错。PSoC 元件将可高度灵活配置组态的系统单晶片架构运用在嵌入式控制设

29、计中,能提供等同于现场可编程 ASIC 的 flash 基础架构,而无需负担 ASIC 的开发时程或 NRE 成本之缺点。PSoC 元件由一个晶片内建的微控制器所控制,整合可组态的类比与数位电路,并同时提供加强版的设计与减少元件数。PSoC 元件内含最高可至 32KB 的快闪记忆体、2KB 的 SRAM、8x8 乘法器与 32 位元累加器、电源与睡眠模式监控电路、以及硬体 I2C 通讯元件。 弹性化的 PSoC 资源让设计人员不论是在设计、验证、生产或现场等各种阶段,都能进行以韧体为基础的改变,以维持其产品之创新性。PSoC 独特的弹性化能力可缩短设计周期,也能容许最新的功能提升。所有 PSo

30、C 元件皆能动态调整组态,协助设计人员立南京工业大学本科生毕业设计(论文)9即改变内部资源,利用最少的元件完成所交付的任务。 各种简单易用的开发工具,让设计人员能为选择各类可组态的函式库元件,例如放大器、ADC、DAC、滤波器、比较器等类比功能,以及像是计时器、计数器、PWM、SPI、以及 UART 等数位功能。PSoC 系列的类比功能包括 rail-to-rail 输入、可编程增益放大器、以及具备极低杂讯、极低输入端漏电率、以及极少电压偏移的 14 位元 ADC。软件平台视图如下:图 2-5 软件平台界面图下图是 PSoC 的三个子系统图 2-6 PSoC 子系统图 PSOC Designe

31、r器件编辑器子系统应用程序编辑器子系统调试器子系统第四章 软件设计10第三章第三章 硬件硬件电路分析电路分析3.13.1 总体电路框图设计总体电路框图设计分析分析 一般而言,一个温度检测系统包括温度数据采集、温度数据处理和温度数据显示与智能报警四个部分。对于本设计也采用这种结构,即电路采集数据,单片机执行温度数据处理和显示的功能。另外,也设计了键盘接口,可以实现温度上限和下限的设定,具体框图如图 3-1。 图 3-1 总体电路框图在图 3-1 中,温度传感器用来采集温度数据,它的原理是传感器将采集到的电压信号送到 PSoC 芯片中,PSoC 芯片执行电压信号的放大处理,然后交给模数转器,执行电

32、压模拟信号转换成数字信号,将采集到的数字信号进过调整速出到显示电路中。3.23.2 模块电路模块电路分析分析3.2.1 电源电路电源电路的作用是输出稳定的 5V 芯片中工作电压、工作电流。本次设计采用的是常用的 AMS1117-5V 稳压器电路,AMS1117 内部集成过热保护和限流电路,是电池供电和便携式计算机的最佳选择,固定输出电压为 5.0V,电源电路如下图所示:南京工业大学本科生毕业设计(论文)11 图 3-2 典型固定输出电路为了确保 AMS1117 的稳定性,对可调电压版本,输出需要连接一个至少 22F 的钽电容。对于固定电压版本,可采用更小的电容,具体可以根据实际应用确定。通常,

33、线性调整器的稳定性随着输出电流增加而降低,本次设计采用两个 10F 的电容。图 3-3 电源电路设计图3.2.2 温度传感器模块 本次设计的温度传感器电路的核心部件是温度传感器,LM35 是 NS 公司生产的集成电路温度传感器系列产品之一,它具有很高的工作精度和较宽的线性工作范围,该器件输出电压与摄氏温度线性成比例。因而,从使用角度来说, LM35 与用开尔文标准的线性温度传感器相比更有优越之处,LM35 无需外部校准或微调,可以提供1/4的常用的室温精度。LM35 比例因数:线性+10.0mV/;非线性值:1/4;使用温度范围:-55+150额定范围,引脚介绍:正电源 Vcc;输出;输出地/

34、电源地。电路图如下:第四章 软件设计12图 3-4 温度传感器电源路3.2.3 报警器模块 本次设计的报警器模块核心部件是蜂鸣器。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型,本次设计采用的是电磁式蜂鸣器,它是一种有源类型的蜂鸣器,直接连上额定电压就可连续发声,电路设计如下图所示: 图 3-5 蜂鸣器电路图3.2.4 LED 显示模块数字的显示功能在一个设计当中是不可或缺的部分,为此本次设计当中加入了 4 个七段共阴极数码管,我们选用

35、的是共阴极数码管,一般来说,共阴极的数码管会比共阳极的数码管亮一点,其原理图如下:南京工业大学本科生毕业设计(论文)13图 3-5 数码管原理图如图 3-5 所示每个数码管都会连接一个三极管的集电极,利用集电极电流受基集电流的控制,基集电流的很小的变化,会引起集电极电流的很大的变化。我们在数码管的基集加上一定的电压会使三极管导通,数码管会和地相连接,这样就实现了数码管点亮的作用,同时我们这里还得用到一个 74HC244 芯片(八同相三态缓冲器/线驱动器) ,用到的功能是驱动数码管的 8 个段选。三极管和 74HC244 的电路图如下所示图 3-6 三极管电路图 3-7 74HC244 电路第四

36、章 软件设计143.2.5 键盘扫描模块在设计温度检测系统的时候,考虑到完善系统的功能,我们加入了键盘扫描功能,使得这个系统能设定一些温度的上下限。通过查询资料,我们选定了 4*4 矩阵键盘,同时软件编程使用的是行扫描法,其电路原理图如下图所示:图 3-8 键盘扫描原理图南京工业大学本科生毕业设计(论文)15第四章第四章 软件设计软件设计4.14.1 总体流程图总体流程图本设计主体部分由硬件实现,软件部分的工作主要为硬件初始化;数据信号输入;数据信号处理;数据信号显示。主流程图如图 4-1。 图 4-1 主流程图4.24.2 软件设计软件设计4.2.1 PSoC Designer 5.1 软件

37、开发流程简介创建一个工程:单击“Start new project”新建文件,点击“Creat New Project” ;填写自己的文件名称,点击“Browse”可以选择存储位置,填好后点击“下一步”并点击“是” ,选择编辑语言的种类,选择 C 语言,点击“完成”即可;器件编程器:器件编程器主要用来:选择用户模块、放置用户模块、连接用户模块、配置管脚、跟踪资源、生成应用程序框架等。选择用户模块:用户模块是一个预先配置的功能,在放置和配置后可以像外围部件一样工作。用户可以在器件编辑器子系统中选择用户模块。窗口左边是用户模块集合子窗口。单击用来查看具体的用户模块,双击用来选定所用的用户模块。放置

38、用户模块:单击工具栏的 Interconnect View 图标即可进入放置用户模块窗口配置用户模块:通过配置用户模块,可以使用户模块与外部引脚或其他用户模块关数据信号输入数据信号处理数据信号显示第四章 软件设计16联起来。通过配置 PSoC 模块的输入输出参数来完成用户模块的连接,通过以下步骤可以完成。用户模块的配置:单击放置好的用户模块就可以看到用户模块参数。单击参数内容框出现下拉箭头,选择合适的参数:如下图所示:图 4-2 用户模块的配置图全局资源的选择:全局资源决定运行的硬件环境,会影响到整个设计。要改变全局资源,单击参数内容框的下拉箭头,选择合适的参数值。如下图所示: 图 4-3 全

39、局资源的选择图连接用户模块:配置好模块后,可以进行用户模块之间的连接。用户模块连接使得PSoC 模块之间可以通讯。通过配置 PSoC 模块的输入输出参数来完成用户模块的互连。互连总线提供了一个外部引脚连接到其他数字用户模块的路径。连接用户模块可以在器件编辑器下的 Interconnect View 模式中完成。南京工业大学本科生毕业设计(论文)17图 4-4 连接用户模块图调试:编写好应用程序后,需要把程序下载到相应的硬件进行调试验证。Cypress 公司提供了 ICE 通过 USB 连接到 PSoC Designer,通过 PSoC Designer 调试器子系统上简单的几个图标,便可以进行

40、系统的调试工作。4.2.2 基于 PSoC 的温度检测系统的软件设计详细流程 本次软件设计详细流程图按如下所示:图 4-5 软件设计详细流程图4.2.3 键盘扫描采用行扫描法,P1 口高四位为列低四位为行,行扫描的流程图如下:键盘扫描放大器AD模数转换数字的显示和报警数据信号的输入第四章 软件设计18图 4-6 行扫描法流程图键盘扫描软件代码如下:int keychengxu()key=0;PRT1DR=0 xF0;for(i=0;i100;i+);b=PRT1DR&0 xF0;if(b!=0 xF0) PRT1DR=0XFE; for(i=0;i100;i+); b=PRT1DR&0 xF0

41、; if(b!=0 xF0) switch(b)case 0 xE0:key=key+3;return key;break;NP1 行输出 B 列高电平B 左移一位返回值判断 P1 是否等于 0 xF0YP1 行输出 0 列高电平B=0 xF0P1=P1&0 xF0N判断 P1 是否等于 0 xF0Y南京工业大学本科生毕业设计(论文)19case 0 xD0:key=key+2;return key;break;case 0 xB0:key=key+1;return key;break;case 0 x70:key=key+0;return key;break; key=key+4; PRT1

42、DR=0XFD; for(i=0;i100;i+); b=PRT1DR&0 xF0; if(b!=0 xF0) switch(b)case 0 xE0:key=key+3;return key;break;case 0 xD0:key=key+2;return key;break;case 0 xB0:key=key+1;return key;break;case 0 x70:key=key+0;return key;break; key=key+4; PRT1DR=0XFB; for(i=0;i100;i+); b=PRT1DR&0 xF0; if(b!=0 xF0) switch(b)ca

43、se 0 xE0:key=key+3;return key;break;case 0 xD0:key=key+2;return key;break;case 0 xB0:key=key+1;return key;break;case 0 x70:key=key+0;return key;break;第四章 软件设计20 key=key+4; PRT1DR=0XF7; for(i=0;i100;i+); b=PRT1DR&0 xF0; if(b!=0 xF0) switch(b)case 0 xE0:key=key+3;return key;break;case 0 xD0:key=key+2;

44、return key;break;case 0 xB0:key=key+1;return key;break;case 0 x70:key=key+0;return key;break; / Insert your main routine code here. elsereturn -1;4.2.4 温度传感器数据输入我们使用的是 CY8C29466-24PXI 芯片,使用引脚 P02当做模拟输入口他的配置资源如图分布:图 4-7 P02配置资源图AnalogColumn_InputMux_1 代表的是模拟量的输入,他的驱动是 High Z Analog,中断南京工业大学本科生毕业设计(论文

45、)21功能关闭,初始值为 0。4.2.5 数据放大本次设计选用 PSoC 内部可编程放大器,他有 33 种放大选择,资源配置如下:图 4-8 PGA 配置资源图放大增益 Gain 是 1.000,管脚输入是 AnalogColumn_InputSelect_1 也就是 P02,参考电压 Reference 是接地,用户放置模块如图所示:图 4-9 PGA 用户放置模块PGA 启动程序代码如下:#include / part specific constants and macros#include PSoCAPI.h / PSoC API definitions for all User Mo

46、dulesvoid main(void) PGA_1_SetGain(PGA_G8_00); PGA_1_Start(PGA_MEDPOWER);如果增益大于或者等于 1.000,的增益公式如下:第四章 软件设计22 (4-1) 如果增益小于或者等于 1.000,的增益公式如下:(4-2)4.2.6 模数转换本次设计选用 PSoC 内部 ADCINC 模数转换器,他有 9 种方案可供选择,我们采用的是14 位的转化方案,他的资源配置如下图所示:图 4-10 ADCINC 资源配置图数据类型是无符号的,数字信号时钟是 VC2,VC2 是在系统全局配置当中设定的,下文会提到,周期正常方式,正输入为

47、 ACB01,也就是 PGA 输出后送给 ADCINC,负输入为空,负输入增益空,他的用户放置模块如下:图 4-11 ADCINC 用户放置模块图ADCINC 启动程序代码如下:#include / part specific constants and macros#include PSoCAPI.h / PSoC API definitions for all User Modules南京工业大学本科生毕业设计(论文)23INT iData;void main(void) M8C_EnableGInt; / Enable Global Interrupts ADCINC_Start(ADC

48、INC_HIGHPOWER); / Apply power to the SC Block ADCINC_GetSamples(0); / Have ADC run continuously for(;) while(ADCINC_fIsDataAvailable() = 0); / Loop until value ready ADCINC_iClearFlagGetData(); / Clear ADC flag and get data / Add user code here to use or display result 4.2.7 数据的显示和报警本次设计考虑到人机交互关系,设计

49、了数据显示电路,采用 4 个七段共阴极数码管。他的资源配置如下:图 4-12 数码管资源配置图段选选择 P2 口,位选选择 P0 的高四位,位驱动为高电平,段驱动为低电平,频率为1kHz,他的用户放置模块如下:图 4-13 数码管用户放置模块图数码管启动程序代码如下:#include 第四章 软件设计24#include PSoCAPI.h void main(void) LED7SEG_1_Start(); / Enable display M8C_EnableGInt; / Enable IRQ LED7SEG_DispInt(1234, 1, 4); / Display 1234 LED

50、7SEG_DP(1, 3); / Turn on DP ( 123.4 )报警器采用 PWM 发生信号,脉宽调制器可以输出一定频率的数字信号,他的资源配置图如下:图 4-13 PWM 资源配置模块图时钟采用 VC3,高电平有效,周期=(Period+1)/fclock,小于比较方式:占空比=CompareValue/(Period+1),小于等于比较方式:q= CompareValue+1/(Period+1),他的输出从 P00口,用户放置模块如图:图 4-14 PWM 用户放置模块图PWM 启动程序代码如下:/* include the Counter8 API header file *

51、/南京工业大学本科生毕业设计(论文)25#include PWM8.h/* function prototype */void GenerateOneThirdDutyCycle(void);/* Divide by eight function */void GenerateOneThirdDutyCycle(void)/* set period to eight clocks */ PWM8_WritePeriod(23);/* set pulse width to generate a 33% duty cycle */ PWM8_WritePulseWidth(7);/* ensure

52、 interrupt is disabled */ PWM8_DisableInt();/* start the PWM8! */ PWM8_Start();4.2.8 系统全局变量图 4-15 系统全局变量配置图从他的数据手册当中我们选择了 5V 电压,系统的 CPU 时钟为 22MHz,VC1 时钟为SysCLK/N,VC2 时钟为 VC1/N,我们 PWM 用的是 VC3 的时钟,为 VC2/256,Anolog Power为 SC On/Ref High,Ref Mux 为(Vdd/2)+/-(Vdd/2),他的管脚定义如下图所示:第四章 软件设计26图 4-16 系统管脚定义图南京工

53、业大学本科生毕业设计(论文)27第五章第五章 软硬件调试软硬件调试5.15.1 前期准备前期准备 经过长时间的设计和检查终于画出了Protel图,在画Protel图的过程中,首先要确保你的电脑没有什么问题(比如中毒或者系统不稳定) ,使用Protel软件过程中,我们推荐用XP系统,这个系统有比较好的兼容性,用其他的系统可能会导致软件出错或者库不能加载的问题,这个是值得我们注意的。Protel原理图中有些元器件是没有的,那么需要我们自己去画,原理图中那些网络标号还有连线问题是最容易出错的地方,原理图画好了过后,最重要的是封装,封装出错那么做出来的板子基本就是不能使用的,很多封装需要我们自己去测量

54、,比如按键、28口得PSoC芯片都得用尺量,我们就犯了两个低级错误,这也是板子做出来过后我们才发现的,一个是主芯片的封装出错了,还有一个是三极管的封装出错了,直接调用了库里面的封装没有结合实际情况,这导致我们花了很多的时间去纠正这个问题,封装都完成后,就是布线,有自动布线,和手动布线,我推荐的是手动布线,虽然繁琐但是能对原理图有更深入的了解。布线的过程中,因为系统不兼容,我们布了十次线每次线的总数都是不一样的,换了电脑过后发现问题了,原来是电脑出问题了,总共是203根线,布线那个环节也花了较多的时间,最后就是交给专业的厂家制作,由于时间紧迫,导致我们忘记铺铜在板子上,做板子不能贪小便宜,一个质

55、量不好的板子做出来线路有问题是很难排查和解决的。列出了要用的所有元件。对于一般的电容和电阻,价格便宜,且不零售,一般都买50个以上;稍贵一点的极性电容或者芯片,可买使用个数的2倍。如果一个焊坏了可以有备用的,这样不用跑到器件市场,尤其是5月份天气还是比较热的。另外,数码管有共阴和共阳之分,要看清型号,我们要的是共阴的数码管,回来焊接调试时发现总是不亮,后来用电压表一测发现是共阳极的数码管对于这个我们吃了不少苦头,所以在买芯片的时候最好先在店家那里测试下。焊接的时候要到实验室去焊,这样能保证安全,焊接前,首先要安排好结构,明确各个元件的位置。对于PCB板,焊接时要先焊电阻,再焊电容,然后焊尺寸更

56、高的元件,最后焊插针,因为那是最高的,焊接的时候要注意焊接质量,对于虚焊的检测和排查是很花时间的,为了保证高效和高质量在焊接的时候必须认认真真的焊接。第五章 软硬件调试28 5.25.2 调试调试 连接完整的电路并不能马上加电,如果电源和地之间短路可能会烧坏电源。因此,加电前必须检测各条连线以及相邻的连线是否导通。可用万用表的测量导通档测量。另外必须对着原理图检查硬件连接,看是否有错接和漏接,如果断路会蜂鸣。最后加电,用万用表检查芯片 VCC 与 GND 之间是否有电压。元件测试完成后,就可以进行软件和硬件电路的联合调试。我们用 PSoC Designer 5.1 中的 PSoC PROGRA

57、M 来连接板子,程序经过编译、汇编和链接,便可形成可执行的HEX 文件。其中需要的硬件是 USB2.0 和 PSoC MiniProgram(编程下载器)他的界面图为:图 5-2 PSoC PROGRAM 截面图因为数码管的问题,一直认为是程序出问题,经过检测,逻辑上都成立的,然后进行硬件检测,发现是共阳的数码管,在检测键盘扫描电路的时候出现某行总是显示高电平,通过排查,里面有个线焊的时候被翘出来了,然后偶然的因数,又焊接出错了。经过大量的调试,几个严重的问题出现了,一个是稳压源比较烫,还有个是发现芯片被击穿的现象,导致电源直接接地,烧坏了编程下载器(芯片和编程下载器比较贵) ,这是无法挽回的

58、损失。在软件调试的过程中,遇到一个比较严重的问题就是,数据信号视乎没有处理,信号通过可编程放大器连接 PGA 和 ADC 相连接,在测量温度的过程中,我、从Comment A2: 文中没有说到图 5-1南京工业大学本科生毕业设计(论文)29地那里输入信号和温度信号相比较,发现他们的数值是一样的,然后确定了 PGA 没有正常工作,但是通过排查,设置方面都没什么大问题,全局资源都符合数据手册上面所参照的要求,问题肯定出在 PGA,通过思考,他的初始化程序是我直接用的模板上面的,是不是这个上面有问题?带着疑问,当看到 SetGain 那个函数的时候,意识到了犯了一个低级错误,默认的函数设置了 8 倍

59、,而实际需要的只是一倍就够了。对于数据能开始处理是十分欣喜的,随后又遇到一个离奇的问题,就是键盘扫描电路,程序是没有问题的,但是为什么键盘老是读不出来?用一个简单的程序测试的时候发现,在没有按下的时候有个检测到按键按下,这个说明,有个行扫描为高电平,我用电压表测量,证实了自己的想法。这个高电平怎么来得呢?断路了?用电压表的蜂鸣档调试没有发现断路现象,随后我把一个线重新焊了下,自己就好了。经过上述努力,我们可以得到下图所示的正确的结果。图 5-1 调试中的电路板第六章 设计中的问题和设计方法改进30第六章第六章 设计中的问题和设计方法改进设计中的问题和设计方法改进6.16.1 设计中的问题设计中

60、的问题通过分析我们发现,整个温度检测系统最重要的是数据是怎么输入的和数据是怎么处理的,所以我们会从这两个方面入手来解决误差的问题。首先我们先把数据经过可编程增益放大器,增益倍数为 1.000.保证数据信号的输入,通过 ADCINC,他是一个逐次逼近式 A/D 转换器,转换速度较快,需要几十微妙。他对于数字时钟要求比较高,通过数据手册我们查询到最大的数字时钟是 8MHz,最好的转换速率是 2MHz。对于方案选择我们选择 14 位无符号,这样能保证最大的精度。分辨率的计算我们可以大体的介绍下:分辨率=0.1/150=1/1500 10 位 ADCINC 分辨率=1/1024 (6-1)所以我们选择

61、 10 位以上的,在配置的过程中我们要注意数字模块和模拟模块的有相同的时钟,否则会导致误差的扩大或者不正确,同时出现如下的警告:图 6-1 警告图系统全局资源配置 VC1 中 N=6, VC2 中 N=2,这样 ADCINC 的时钟为 24MHZ/6/2=2MHz这样的设置能实现最优的 AD 转换。同时在使用中发现了 PSoC 系统的一些缺点,首先是数码管显示程序,他的问题是非常严重的,4 个位选和蜂鸣器连在一个口上会出错,无法至 1 或者至 0 通过查询资料,PSoC 无法对每个管脚操作,他只能 8 个口同时操作。假定位 1 为输出,输出 1,连接三极管的基极,驱动一个蜂鸣器。但由于三极管基

62、极的嵌位(0.7v) ,实际引脚上的电压只有 3v 左右(考虑串入电阻后) 。如果此时你要设置 0 位输出 0,使用了 PRTxDR &= 0 xfe就非常可能出现问题了。PRTxDR &= 0 xFE 相当于 PRTxDR = PRTxDR & 0 xFE,这里要回读 PRTxRD 的值,但回读的值不是寄存器中的值,而是引脚的实际电平值。那么 1 位脚读到 3V,很可能不是逻辑 1,而是逻辑 0。那么 PRTxDR &= 0 xFE 执行后,0 位到是输出 0了,但 1 位也同时输出 0 了,而后面的则是不应该出现和一般估计不到的。 解决办法是,在内存中建立一个变量比如 PTRxRD_BUF

63、F,为 PRTxRD 的副本,使用下面的方法对某位清 0 或置 1。 南京工业大学本科生毕业设计(论文)31 PRTxDR_BUFF &= 0 xFE; PRTxDR = PRTxDR_BUFF; 或: PRTxDR_BUFF |= 0 x01; PRTxDR = PRTxDR_BUFF;6.26.2 设计方法改进设计方法改进在本设计中,由于时间紧张未设计人机接口和通信接口。但是在现代仪器中它们是必不可少的。1通信接口 设计通信接口可以使测量数据得到及时的保存,以便日后分析。GP-IB 即通用接口总线(General Purpose Interface Bus)是国际通用的仪器接口标准。目前有

64、很多可编程集成芯片来简化 GP-IB 的设计。如 Intel 公司的 8291A 接口芯片。但在本设计中,数据传输量不大,且单片机本身有串行通信的硬件资源,所以最好采用 RS-232 标准。设计时可以采用 MAX232 进行电平转换。2显示设备本设计中,显示部分采用数码管,可显示的信息量小。改进时,可以采用液晶显示。这样不但可以显示结果,还可以以中文显示各种提示信息和工作进程信息。3芯片可以使用 Cypress 功能更加强劲的 M2,M3 系列,他们带有更多的功能,比较 USB,无线通信,触摸条,更加强大的微处理器等等参考文献32结结 语语利用PsoC芯片设计数字温度传感器,一方面硬件电路非常

65、简单,软件编程时只需简单用API函数,避免了一般数字温度传感器的复杂时序;另一方面,如果系统需要实现其他的功能,只需对PSoC芯片硬件进行重新配置,无须外加其他的芯片,从而有效的提高系统的性价比。实验证明,该温度传感器非常适合于低成本和小型化应用,如家用电器、CPU和PC机其他外围设备的热保护,同时也可用于要求不太苛刻的温度测量和控制系统中。 通过设计,使我更好地融合了所学的知识。在本设计中,用到数字电路、模拟电路、单片机、C 语言和各种应用软件。在这么短的时间同时使用这么多知识,是对三年半学习的考验,也是强化。经过一个学期拼搏,虽然不一定能做到完美,但还是对自己提高很多。 33参考文献参考文

66、献1王华东,何永义,翁盛隆,郭帅.PSoC 实现电机转速的检测与控制J.电子机械工程,2004.2 2戴国骏,张翔,曾虹.PSOC 体系结构与编程M.北京:中国科学技术出版社,2006.103朱明程,李晓滨. PSoC 原理与应用设计M.北京:机械工业出版社,2008.34李兵. PSoC 结构及其应用研究D.北京:北京交通大学,2006.35徐金龙,刘宇红,刘桥.基于 DDS 原理的任意波形信号发生器的设计J.现代机械,2006.46翁小平.PSoC 的 ADC 用户模块及其调用方法J.国外电子元器件,2005(6):31-34.7叶朝辉,华成英.可编程片上系统(PSoC)原理及实训M.北京:清华大学出版社,2008.48罗胜钦.数字集成系统芯片(SOC)设计M.北京:希望电子出版社,2002.49张广平,宋文爱,杨录.基于嵌入式系统级芯片 PSoC 的温湿度测控系统J.工业控制计算机,2007,20(2).10葛治军.基于 AVR 单片机的多点数字温控系统设计J.信息技术,2005,(9).11 朱卫华,黄智伟.基于无线数字温度传感器的多点温度测量系统设计J.工业控制计算机,200

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!