电子信息工程毕业论文

上传人:仙*** 文档编号:28215553 上传时间:2021-08-24 格式: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的温度检测系统的软件设计 摘 要 随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输处理 的功能器件,温度检测的作用日益突出,已成为自动检测、自动控制系统和计量测试中 不可缺少的重要技术工具。本文主要介绍基于 PSoC的温度检测系统的软件设计,开发工 具使用的是 C

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

3、logy 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 temperature detection based on P

4、SoC. 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 characteristics of PSoC(Prog

5、rammable 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 ;Software development 目 录 摘 要

6、.I ABSTRACT .II 第一章 绪 论 .1 1.1 设计背景和意义 .1 1.2 本文的安排 .1 第二章 简述主要集成芯片和软件开发环境 .2 2.1 简述主要集成芯片 PSOC .2 2.2 软件开发环境 .7 2.2.1 PSoC Express 7 2.2.2 PSoC Designer 5.18 第三章 硬件电路分析 .11 3.1 总体电路框图设计分析 .11 3.2 模块电路分析 .11 3.2.1 电源电路 11 3.2.2 温度传感器模块 12 3.2.3 报警器模块 13 3.2.4 LED 显示模块 13 3.2.5 键盘扫描模块 15 第四章 软件设计 .16

7、 4.1 总体流程图 .16 4.2 软件设计 .16 4.2.1 PSoC Designer 5.1 软件开发流程简介 16 4.2.2 基于 PSoC 的温度检测系统的软件设计详细流程 18 4.2.3 键盘扫描 18 4.2.4 温度传感器数据输入 21 4.2.5 数据放大 22 4.2.6 模数转换 23 4.2.7 数据的显示和报警 24 I 4.2.8 系统全局变量 26 第五章 软硬件调试 .28 5.1 前期准备 .28 5.2 调试 .29 第六章 设计中的问题和设计方法改进 .31 6.1 设计中的问题 .31 6.2 设计方法改进 .32 结 语 .33 参考文献 .3

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

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

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

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

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

13、 口,模拟列多路复用器输入。 P05 口:数字 IO 口,模拟列多路复用器输入和列输出。 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

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

15、P26 口:数字 IO 口,外部基准电压源(VREF) P00 口:数字 IO 口,模拟列多路复用器输入。 P02 口:数字 IO 口,模拟列多路复用器输入和列输出。 P04 口:数字 IO 口,模拟列多路复用器输入和列输出。 P06 口:数字 IO 口,模拟列多路复用器输入. Vdd 口:供电电压。 PSoC 体系架构由 4 个主要区域构成:PSoC 核心、数字系统、模拟系统和系统资源。 可配置型全局总线连接方式可让所有器件资源结合成一个完整的定制系统。每个 CY8C29x66 PSoC 器件系列能够包括多达 8 个 IO 端口,并连接至全局数字和模拟互连线 路,提供了对 16 个数字模块和

16、 12 个模块的访问能力。 PSoC 核心就是一个功能强大的引擎,它支持丰富的指令集。此核心包含了 1 个 CPU、存储器、时钟和可配置 GPIO(通用 IO) 。M8C CPU 核是一款性能强大的处理器,运 行速度可高达 24 MHz,并提供了 1 个 4 MIPS 级 8 位 Harvard 架构微处理器。此 CPU 利用了容量为 25 个向量的中断控制器,以简化实时内嵌事件的编程。程序执行的定时和 保护采用了内含的休眠定时器和监视定时器(WDT) 存储器内含用于程序存储的 32KB 闪存、用于数据存储的 2KBSRAM,以及最高 24KB 的采用闪存仿真的 EEPROM 存储器。程序闪存

17、存储器在 64 字节的区块上采用了 4 个保护 级别,从而可以实现定制化的软件知识产权(IP) 保护功能。PSoC 器件集成了多个灵活 的内部时钟发生器,包括了 1 个随着温度和电压变化的精度达 2.5% 的 24 MHz IMO (内 部主振荡器) 。而这个 24 MHz IMO 也可以倍频至 48 MHz 以供数字系统使用。还有为休 眠定时器和监视定时器(WDT) 提供的低功率 32 kHz ILO (内部低速振荡器) 。如果对晶 体精度有一定要求,则可以使用可配备的 ECO (32.768 kHz 外部晶体振荡器)作为一个 实时时钟(RTC),并可以有选择性地运用锁相环(PLL) 技术生

18、成晶体精确级 24 MHz 系统 时钟。而时钟与可编程时钟分频器(也是一种系统资源)可以共同提供了一种能够将几 乎任何时序要求集成到 PSoC 器件内的灵活性。PSoC GPIO 提供了对于器件的 CPU、数字 资源和模拟资源的连接能力。每个引脚的驱动模式均可以从 8 种选项中进行选取,从而 为外部接口安排提供极高的灵活性。每根引脚还能够根据高电平、低电平以及上次读取 第二章 简述主要集成芯片和软件开发环境 4 后变化事件生成系统中断。通过他的管脚功能描述我们引出他的内部资源,他的内部资 源电路图如下 图 2-2 PSoC 的内部资源配置图 数字系统由 16 个 PSoC 数字模块构成。每个模

19、块均是一个 8 位资源,可以单独使用, 也可以与其它模块联合构成 8 位、16 位、24 位和 32 位外设,这些均称为用户模块基 准规格。数字外设配置包括了如下的各项。1、 脉冲宽度调制器(8 至 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、 伪随机

20、序列发生器(8 至 32 位)数字模块可以通过一系列的全局总线连接至任意 GPIO 引脚,全局总线能够将任何信 号路由至任何引脚。全局总线允许信号进行利用,并允许执行逻辑运算。这种可配置性 打破了用户设计受固定外设控制器限制的局面。数字模块按照 4 行进行配备,而其中模 南京工业大学本科生毕业设计(论文) 5 块的数量依 PSoC 器件系列而变。这样就可以让用户对于自己的应用进行系统资源的最优 化选择。 图 2-3 PSoC 的内部资源数字模块图 模拟系统由 12 个可配置模块构成,这样能够创建复杂的模拟信号流。模拟外设具有 很好的灵活性,并可以进行定制以支持特定的应用要求。一些较为常见 PS

21、oC 模拟功能 (绝大多数以用户模块的形式提供)列出如下 1、 模数转换器(最多 4 个,分辨率为 6 位至 14 位,可选择增量、增量累加以及逐次逼近(SAR) 型)2、 滤波器(2 极、4 极、 6 极或 8 极带通、低通和陷波滤波器)3、 放大器(最多 4 个,可选择增益可达 48 倍) 4、 测量放大器(最多 2 个,可选择增益最多达 93 倍)5、比较器(最多 4 个,拥有 16 个可选择阈值)6、 数模转换器(最多 4 个,分辨率为 6 位至 9 位)7、 乘法数模 第二章 简述主要集成芯片和软件开发环境 6 转换器(最多 4 个,分辨率为 6 位至 9 位)8、 大电流输出驱动器

22、(4 个 40 mA 的驱 动器作为核心资源)9、 1.3V 基准源(作为系统资源)10、 DTMF 拨号器 10、 调制器 11、相关器 12、峰值检测器 13、其它许多可能的拓扑结构 图 2-4 PSoC 的内部资源模拟模块图 2.2 软件开发环境 在软件开发的过程中,Cypress 公司开发出了两种软件开发的版本,下面我们对开发 方法进行具体介绍。 2.2.1 PSoC Express PSoC Express 是业界第一款易用型开发工具,它让系统工程师能够开发出基于微控 南京工业大学本科生毕业设计(论文) 7 制器的设计方案,而无需进行任何汇编语言或 C 语言的编程工作。PSoC Ex

23、press 在更高 抽象水平上进行操作,并且不要求进行固件开发,因此能够在几个小时或几天之内完成 创建、仿真并编程到目标 PSoC 器件中,而不再需要花费几周或几个月的时间。PSoC Express 所具有的对便携性的内置支持、无缝多任务处理能力、设计可视化特色以及丰富 的内容库,使设计方案的创建更快、更可靠。 利用 PSoC Express,设计人员只需在其各自的专业应用领域内工作,通过在目录中 选择输入和输出设备来定义一个定制解决方案,然后对其进行逻辑连接来定义系统行为。 例如,用户可以选择温度传感器、电压输入、风扇、LED,然后定义风扇工作的温度范围、 电压监视器阀值以及序列逻辑。在 P

24、SoC Express 内部,设计人员还可以通过仿真对设 计进行校验,然后生成并下载设备编程文件。此外,该工具还使得用户可以适用赛普拉 斯的任意一款 PSoC 器件进行设计,以及创建定制化项目文档,其中带有寄存器映射的数 据表、接口电路图以及材料清单等。无需编写任何微控制器代码,设计人员即可更快速 地实施可靠的定制应用。 2.2.2 PSoC Designer 5.1 PSoC Designer 5.1 是 Cypress 最新推出的开发平台,为业界首创且唯一一套能在 同一个封装的整合式设计环境中,同时包含免撰写程式码与高阶语言编程模式之创新工 具。Cypress 结合革命性的 PSoC Ex

25、press可视化嵌入式系统设计工具,以及功能完整的 PSoC Designer 软体,开发出一套全新的设计模式。使用者一开始可用拖放式的可视 化设计模式(从系统层级检视),接着再转移到 C 语言程式码的设计模式(从晶片层级检视), 以针对其专案进行微调与客制化,所有步骤均可用此款 PSoC Designer 5.1 工具来完成。 新款 PSoC Designer 5.1 工具除了整合 PSoC Express 的功能,还包括专属 PSoC Mixed-Signal Array 的 9.61 版 HI-TECH C PRO 编译器。此款新版编译器内含一个新增 的Lite模式,可让设计人员免费使用

26、,且没有一般免费编译器在时间或程式码长度 方面的限制。 PSoC Designer 5.1 亦包含多种升级功能,包括便利的操作功能,并确保提供嵌入 式设计工程师,最好的工具、介面、以及元件,且能快速而简单地完成最复杂的设计, 及提高目标 PSoC 元件的效率。这些加强功能包括以最普遍的软体应用为基础所开发出来 的图形化使用者介面功能。例如,实际上使用者可把软体中每个视窗自行设定在适合的 第二章 简述主要集成芯片和软件开发环境 8 开发工作空间,并可透过标签介面(tabbed interface)随时隐藏或显示,或以独立的视 窗显示,以在多重显示器的环境中发挥超高的效率。 PSoC Design

27、er 能协助使用者发挥 PSoC 元件的强大功能与高弹性。借由系统层级与 晶片层级两个专案设计模式,使用者可选择以免撰写程式码、撰写所有程式码、或混合 两种模式等方法,在更高的抽象层级上进行作业,无需开发韧体,系统层级的专案设计 让用户能在数小时或数天内针对目标 PSoC 元件完成建立、模拟、以及编程的作业,而无 需花费数周或数月的时间。晶片层级的专案设计模式为使用者提供一系列的周边功能(称 为使用者模组),采用弹性化的类比与数位 PSoC 模块技术,进行选择、置放、与连接针 脚的设计,然后针对客制化的混合讯号设计开发专属的韧体。在系统层级的专案设计中, PSoC Designer 会自动产生

28、晶片层级的设计资讯以及所有的韧体,而且让用户能加入使用 者模组,以及采用 C 语言或组合语言所撰写的更多功能。 此款功能强大又容易使用的 IDE 环境具备一个强大的使用者模组、许多可预先设定、 预先规划的嵌入式周边元件功能;以及众多透过 help对话方块、下拉式选单、以及 其他图形式介面的使用者辅助功能。使用者模组运用可配置的 PSoC 元件,开发出各式各 样的实用功能,像是计数器、计时器、PWM、及包括 ADC 及 DAC 的类比转换器; 通讯连接 线路则包括像 UART、SPI、I2C,及比较器、可程式增益模块、滤波器、及启动载入器。 每款使用者模组都包含硬体配置资料、启动程式码、以及中断

29、服务常式,还有许多 API 可供选用。这些 API,或应用编程介面的软体功能,都能让用户立即控制使用者模组的所 有层面。这种创新的方法能协助研发业者得到一个全功能的客制化元件,无需花费数周 或数个月的时间查阅恼人的资料表,或耗费可观的心力撰写低阶程式,及无止境的除错。 PSoC 元件将可高度灵活配置组态的系统单晶片架构运用在嵌入式控制设计中,能提 供等同于现场可编程 ASIC 的 flash 基础架构,而无需负担 ASIC 的开发时程或 NRE 成本 之缺点。PSoC 元件由一个晶片内建的微控制器所控制,整合可组态的类比与数位电路, 并同时提供加强版的设计与减少元件数。PSoC 元件内含最高可

30、至 32KB 的快闪记忆体、 2KB 的 SRAM、8x8 乘法器与 32 位元累加器、电源与睡眠模式监控电路、以及硬体 I2C 通 讯元件。 弹性化的 PSoC 资源让设计人员不论是在设计、验证、生产或现场等各种阶段,都 能进行以韧体为基础的改变,以维持其产品之创新性。PSoC 独特的弹性化能力可缩短设 计周期,也能容许最新的功能提升。所有 PSoC 元件皆能动态调整组态,协助设计人员立 南京工业大学本科生毕业设计(论文) 9 即改变内部资源,利用最少的元件完成所交付的任务。 各种简单易用的开发工具,让设计人员能为选择各类可组态的函式库元件,例如放 大器、ADC、DAC、滤波器、比较器等类比

31、功能,以及像是计时器、计数器、PWM、SPI、 以及 UART 等数位功能。PSoC 系列的类比功能包括 rail-to-rail 输入、可编程增益放大 器、以及具备极低杂讯、极低输入端漏电率、以及极少电压偏移的 14 位元 ADC。软件平 台视图如下: 图 2-5 软件平台界面图 下图是 PSoC 的三个子系统 图 2-6 PSoC 子系统图 PSOC Designer 器件编辑器子系统 应用程序编辑器子系统 调试器子系统 第四章 软件设计 10 第三章 硬件电路分析 3.1 总体电路框图设计分析 一般而言,一个温度检测系统包括温度数据采集、温度数据处理和温度数据显示与 智能报警四个部分。对

32、于本设计也采用这种结构,即电路采集数据,单片机执行温度数 据处理和显示的功能。另外,也设计了键盘接口,可以实现温度上限和下限的设定,具 体框图如图 3-1。 图 3-1 总体电路框图 在图 3-1 中,温度传感器用来采集温度数据,它的原理是传感器将采集到的电压信 号送到 PSoC 芯片中,PSoC 芯片执行电压信号的放大处理,然后交给模数转器,执行电压 模拟信号转换成数字信号,将采集到的数字信号进过调整速出到显示电路中。 3.2 模块电路分析 3.2.1 电源电路 电源电路的作用是输出稳定的 5V 芯片中工作电压、工作电流。本次设计采用的是常 用的 AMS1117-5V 稳压器电路,AMS11

33、17 内部集成过热保护和限流电路,是电池供电和便携 式计算机的最佳选择,固定输出电压为 5.0V,电源电路如下图所示: 南京工业大学本科生毕业设计(论文) 11 图 3-2 典型固定输出电路 为了确保 AMS1117 的稳定性,对可调电压版本,输出需要连接一个至少 22F 的钽电容。 对于固定电压版本,可采用更小的电容,具体可以根据实际应用确定。通常,线性调整 器的稳定性随着输出电流增加而降低,本次设计采用两个 10F 的电容。 图 3-3 电源电路设计图 3.2.2 温度传感器模块 本次设计的温度传感器电路的核心部件是温度传感器,LM35 是 NS 公司生产的集成 电路温度传感器系列产品之一

34、,它具有很高的工作精度和较宽的线性工作范围,该器件 输出电压与摄氏温度线性成比例。因而,从使用角度来说, LM35 与用开尔文标准的线 性温度传感器相比更有优越之处,LM35 无需外部校准或微调,可以提供1/4的常用 的室温精度。LM35 比例因数:线性+10.0mV/;非线性值:1/4;使用温度范围:- 55+150额定范围,引脚介绍:正电源 Vcc;输出;输出地/电源地。电路图如 下: 第四章 软件设计 12 图 3-4 温度传感器电源路 3.2.3 报警器模块 本次设计的报警器模块核心部件是蜂鸣器。蜂鸣器是一种一体化结构的电子讯响器, 采用直流电压供电,广泛应用于计算机、打印机、复印机、

35、报警器、电子玩具、汽车电 子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电 磁式蜂鸣器两种类型,本次设计采用的是电磁式蜂鸣器,它是一种有源类型的蜂鸣器, 直接连上额定电压就可连续发声,电路设计如下图所示: 图 3-5 蜂鸣器电路图 3.2.4 LED 显示模块 数字的显示功能在一个设计当中是不可或缺的部分,为此本次设计当中加入了 4 个七 段共阴极数码管,我们选用的是共阴极数码管,一般来说,共阴极的数码管会比共阳极 的数码管亮一点,其原理图如下: 南京工业大学本科生毕业设计(论文) 13 图 3-5 数码管原理图 如图 3-5 所示每个数码管都会连接一个三极管的集电

36、极,利用集电极电流受基集电流 的控制,基集电流的很小的变化,会引起集电极电流的很大的变化。我们在数码管的基 集加上一定的电压会使三极管导通,数码管会和地相连接,这样就实现了数码管点亮的 作用,同时我们这里还得用到一个 74HC244 芯片(八同相三态缓冲器/线驱动器) ,用到的 功能是驱动数码管的 8 个段选。三极管和 74HC244 的电路图如下所示 图 3-6 三极管电路 图 3-7 74HC244 电路 第四章 软件设计 14 3.2.5 键盘扫描模块 在设计温度检测系统的时候,考虑到完善系统的功能,我们加入了键盘扫描功能,使 得这个系统能设定一些温度的上下限。通过查询资料,我们选定了

37、4*4 矩阵键盘,同时 软件编程使用的是行扫描法,其电路原理图如下图所示: 图 3-8 键盘扫描原理图 南京工业大学本科生毕业设计(论文) 15 第四章 软件设计 4.1 总体流程图 本设计主体部分由硬件实现,软件部分的工作主要为硬件初始化;数据信号输入; 数据信号处理;数据信号显示。主流程图如图 4-1。 图 4-1 主流程图 4.2 软件设计 4.2.1 PSoC Designer 5.1 软件开发流程简介 创建一个工程:单击“Start new project”新建文件,点击“Creat New Project” ; 填写自己的文件名称,点击“Browse”可以选择存储位置,填好后点击“

38、下一步” 并点击“是” ,选择编辑语言的种类,选择 C 语言,点击“完成”即可; 器件编程器:器件编程器主要用来:选择用户模块、放置用户模块、连接用户模块、 配置管脚、跟踪资源、生成应用程序框架等。 选择用户模块:用户模块是一个预先配置的功能,在放置和配置后可以像外围部件 一样工作。用户可以在器件编辑器子系统中选择用户模块。窗口左边是用户模块集合子 窗口。单击用来查看具体的用户模块,双击用来选定所用的用户模块。 放置用户模块:单击工具栏的 Interconnect View 图标即可进入放置用户模块窗口 配置用户模块:通过配置用户模块,可以使用户模块与外部引脚或其他用户模块关 数 据 信 号

39、输 入 数 据 信 号 处 理 数 据 信 号 显 示 第四章 软件设计 16 联起来。通过配置 PSoC 模块的输入输出参数来完成用户模块的连接,通过以下步骤可以 完成。 用户模块的配置:单击放置好的用户模块就可以看到用户模块参数。单击参数内容 框出现下拉箭头,选择合适的参数:如下图所示: 图 4-2 用户模块的配置图 全局资源的选择:全局资源决定运行的硬件环境,会影响到整个设计。要改变全局资 源,单击参数内容框的下拉箭头,选择合适的参数值。如下图所示 : 图 4-3 全局资源的选择图 连接用户模块:配置好模块后,可以进行用户模块之间的连接。用户模块连接使得 PSoC 模块之间可以通讯。通过

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

41、按如下所示: 图 4-5 软件设计详细流程图 4.2.3 键盘扫描 采用行扫描法,P1 口高四位为列低四位为行,行扫描的流程图如下: 键 盘 扫 描 放 大 器 A D 模 数 转 换 数 字 的 显 示 和 报 警 数 据 信 号 的 输 入 第四章 软件设计 18 图 4-6 行扫描法流程图 键盘扫描软件代码如下: int keychengxu() key=0; PRT1DR=0 xF0; for(i=0;i100;i+); b=PRT1DR if(b!=0 xF0) PRT1DR=0XFE; for(i=0;i100;i+); b=PRT1DR if(b!=0 xF0) switch(b

42、) case 0 xE0:key=key+3;return key; break; N P1 行输出 B 列高电平 B 左移一位 返回值 判断 P1 是 否等于 0 xF0 Y P1 行输出 0 列高电平 B=0 xF0 P1=P1return key; break; case 0 xB0:key=key+1;return key; break; case 0 x70:key=key+0;return key; break; key=key+4; PRT1DR=0XFD; for(i=0;i100;i+); b=PRT1DR if(b!=0 xF0) switch(b) case 0 xE0:

43、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 if(b!=0 xF0) switch(b) case 0 xE0:key=key+3;return key; break; case 0 xD0:key=key+2;return key; brea

44、k; 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 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:

45、key=key+0;return key; break; / Insert your main routine code here. else return -1; 4.2.4 温度传感器数据输入 我们使用的是 CY8C29466-24PXI 芯片,使用引脚 P02当做模拟输入口他的配置资源 如图分布: 图 4-7 P02配置资源图 AnalogColumn_InputMux_1 代表的是模拟量的输入,他的驱动是 High Z Analog,中断 南京工业大学本科生毕业设计(论文) 21 功能关闭,初始值为 0。 4.2.5 数据放大 本次设计选用 PSoC 内部可编程放大器,他有 33 种放

46、大选择,资源配置如下: 图 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 Modules void main(void) PGA_1_SetGain(PGA_G8_00);

47、 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 是在系统全局配置当中设定的,下 文会提到,周期正常方式,正输入为 ACB01,也就是 PGA 输出后送给 ADCINC,负输入为 空,负

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

49、er 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 数据的显示和报警 本次设计考虑到人机交互关系,设计了数据显示电路,采用 4 个七段共阴极数码管。 他的

50、资源配置如下: 图 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 LED7SEG_DP(1, 3); /

51、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 */ 南京工业大学

52、本科生毕业设计(论文) 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); /* ensu

53、re 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

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

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

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

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

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

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

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

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

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

63、。假定位 1 为输出,输出 1,连接三 极管的基极,驱动一个蜂鸣器。但由于三极管基极的嵌位(0.7v) ,实际引脚上的电压只 有 3v 左右(考虑串入电阻后) 。如果此时你要设置 0 位输出 0,使用了 PRTxDR PRTxDR = PRTxDR_BUFF; 或: PRTxDR_BUFF |= 0 x01; PRTxDR = PRTxDR_BUFF; 6.2 设计方法改进 在本设计中,由于时间紧张未设计人机接口和通信接口。但是在现代仪器中它们是 必不可少的。 1通信接口 设计通信接口可以使测量数据得到及时的保存,以便日后分析。 GP-IB 即通用接口总线(General Purpose In

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

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

66、也是强化。经过一个学期拼搏,虽然不一定能做到完美,但还是对自己提高很 多。 33 参考文献 1王华东,何永义,翁盛隆,郭帅.PSoC 实现电机转速的检测与控制J.电子机械工程,2004.2 2戴国骏,张翔,曾虹.PSOC 体系结构与编程M.北京:中国科学技术出版社,2006.10 3朱明程,李晓滨. PSoC 原理与应用设计M.北京:机械工业出版社,2008.3 4李兵. PSoC 结构及其应用研究D.北京:北京交通大学,2006.3 5徐金龙,刘宇红,刘桥.基于 DDS 原理的任意波形信号发生器的设计J.现代机械,2006.4 6翁小平.PSoC 的 ADC 用户模块及其调用方法J.国外电子元器件,2005(6):31-34. 7叶朝辉,华成英.可编程片上系统(PSoC)原理及实训M.北京:清华大学出版社,2008.4 8罗胜钦.数字集成系统芯片(SOC)设计M.北京:希望电子出版社,2002.4 9张广平,宋文爱,杨录.基于嵌入式系统级芯片 PSoC 的温湿度测控系统J.工业控制计算机, 2007,20(2). 10葛治军.基于 AVR 单片机的多点数字温控系统设计J.信息技术,2

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