1、 第 1 页 摘 要 随着 时 代的进步,电子行业的发展,定时器的应用也越来越广泛。传统的机械式 定时器,电动式定时器都是通过发条、交流同步步进电机或者石英步进电机进行驱动的。这种定时器精度不高,定时误差较大。相对于前两种定时器,电子式定时器体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。 本次设计的题目是基于 DSP 微控制器定时器设计。 本文设计了一种以TMS320F28335 DSP 微控制器 为核心的定时器。 利用内部定时器 0 和 PIE 外设中断扩展模块产生定时中断, 并进行逆行计数。 通过 SPI 串行外设接 口在 DSP 和74HC164 之间进行
2、通信,进而 实现在数码管上 通过动态扫描 显示定时时间 。 本系统通过 矩阵键盘 控制定时器开启 和暂停。 在定时器 暂停时 ,还可以通过键盘 重新输入 定时 初值 。当定时结束时,还会通过 LED 灯闪烁报警,提示定时结束。 关键词: 定时器 , DSP, TMS320F28335 , 串行外设 接口 ,矩阵键盘 第 2 页 Abstract With the progress of the times and the development of electronic industry, the timer is used more and more widely. The traditi
3、onal mechanical timer, electric timer is drived through the spring, AC synchronous motor or quartz stepper motor .The accuracy of this timer is not high and the error is large. Compared with the former two timer, electronic timer has small volume, light weight, low cost, high precision, long service
4、 life, and electronic timer is safety and reliability, convenient adjustment, suitable for frequent use. The topic of this design is timer design based on the DSP microcontroller.This paper designs a timer with the core of TMS320F28335 DSP microcontroller. Generating a timer interrupt and counting r
5、etrogradely by using the internal timer 0 and PIE peripheral interrupt expansion module. Communicate between DSP and 74HC164 through the SPI serial peripheral interface, so as to achieve displaying time on the digital tube by dynamic scanning. The system is turned on and paused through the matrix ke
6、yboard. In the timer pause,initial value can be inputed through the keyboard . When the timing is over, system will alarm through LED lights flashing, prompting the end of timing. Key Words: timer ,DSP ,TMS320F28335 ,SPI, matrix keyboard 第 3 页 目 录 1 绪论 . 1 1.1 系统背景 . 1 1.1.1 定时器的分类 . 1 1.1.2 定时器的应用
7、. 2 1.2 定时器系统概述 . 2 1.3 定时器设计及实现的功能 . 2 1.3.1 设计过程 . 2 1.3.2 定时器方案的确定 . 3 1.3.3 定时器的功能 . 3 2 定时器系统的硬件设计 . 4 2.1 总体硬件设计 . 4 2.2 DSP 微控制器 . 5 2.3 定时器中断的实现 . 6 2.3.1 DSP 内部定时器 . 6 2.3.2 PIE 外设中断扩展模块 . 7 2.4 数码管显示电路 . 8 2.4.1 SPI 串行外设接口 . 9 2.4.2 74HC164 . 12 2.4.3 数码管 . 13 2.5 按键控制电路 . 16 第 4 页 2.5.1 矩
8、 阵键盘的概述 . 16 2.5.2 矩阵键盘的硬件设计 . 16 2.5.3 按键接口的消抖 . 17 2.6 LED 显示电路 . 18 3 定时器软件的设计 . 19 3.1 主函数程序设计 . 19 3.2 SPI 的初始化 . 19 3.3 定时器、数码管,按键及其他外设的初始化 . 21 3.3.1 定时器的初始化 . 21 3.3.2 其他外设的初始化 . 21 3.4 cpu 中断及其 PIE 的设置 . 22 3.5 设置定时器 0 的周期、打开定时器、看门狗和开中断 . 22 3.5.1 设定定时器的周期 . 22 3.5.2 打开定时器 . 22 3.5.3 开中断 .
9、23 3.5.4 开启看门狗 . 23 3.6 主要功能的实现 . 23 3.6.1 定时器中断子程序的设计 . 23 3.6.2 SPI 通信与数码管显示程序的设计 . 24 3.6.3 矩阵键盘程序设计 . 26 3.6.4 核心功能的设计 . 29 4 总结 . 33 第 5 页 参考文献 . 34 致谢 . 35 第 1 页 1 绪论 1.1 系统背景 人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。而随着时代的进步,科技的发展,定时器历经了机械式,电动式两个阶段后发展到电子式定时器。现在的定时器广泛
10、运用与工业控制,家用电器甚 至军工领域,成为现在社会不可或缺的电子设备。 1.1.1 定时器的分类 定时器按结构可分为机械式、电动式和电子式 三 类。 机械式定时器,以发条为原动力,用擒纵调速器控制走时精度,通过齿轮传动和凸轮,按时间控制机构预置的时段操纵执行机构动作。计时精度要求不高的定时器(如风扇定时器、洗衣机定时器、厨房用定时器、照相暗房用定时器、电视机控制用定时器、电灯开关定时器),一般采用无固有振动周期的调速器。这些定时器都是在手动上发条的同时预置时限,定时精度不高,但结构简单 ,使用方便。 电动式定时器,用交流同步电动机或石 英步进电机驱动,通过齿轮传动和凸轮簧片触点机构,按预置的
11、时段或时刻控制执行机构。其中短时段控制的电动式定时器可用于程序控制式洗衣机、洗碗机、微波炉、烘箱及时间继电器等 ;长时段电动式定时器是一种 24 小时或 7 天程序控制的开关装置,可预置开关动作多次,最短时间控制间隔一般为 15 分钟,可用于用户用电情况监控、照明控制、实验室装置控制、空调器控制和自动生产线上某些设备的定时控制等。 电子式定时器,利用石英振荡器或民用交流电的标准频率 , 经过分频计数组成时间累加器或数字钟 , 按照预置的时间编码输出控制信号。这种定时器 走时精确,时间设定没有误差 , 定时精度高 ,控制程序多。其中长时段定时器最小控制时段一般为 一 分钟 ,配上微处理器后能精确
12、地编制一年的时间程序,组成多路可编程序的定时器。电子式定时器在工业自动化控制系统中应用广泛,它也是节约能源管理中一种有效的技术措施。电子定时器类的电子定时开关钟,可用于按高、平、低峰用电收取不同电费制度的场合,它将一天内的用电高峰、平峰、低谷时间在定时开关中设定 ,并分别接通 3 种电表进行计费。电子式定时第 2 页 器在科学实验中和在微波炉、电饭锅、洗衣机等电器中也有使用。 1.1.2 定时器的应用 随着时代的 进步,定时器的应用越来越广泛。电子定时器在工业中经常用于延时自动开关、定时、报警。在家用电器中经常用于延时自动开关、定时。延时自动开关可用于电视机、收音机、录音机、催眠器、门灯、路灯
13、、汽车头灯、转弯灯以及其他电器的延时断电和延时自停电源。定时可用于照相定时曝光、定时闪光、定时调速、定时烘箱、冰箱门定时报警、定时水位报警、延时催眠器、延时电铃、延时电子锁、触摸定时开关等等。例如数控机床的定时器,在工作一段时间后便能自动切断电源停止工作。 此外, DSP 中的定时器还可用于数模和模数转换,信号的采样,伺服位置控制, 数字振荡器的设计等等。 1.2 定时器系统概述 本系统主要分为由 DSP 微控制器,数码管,矩阵键盘三部分。 DSP 微控制器用来处理定时器程序 ; 利用 DSP 的 SPI 接口和 74HC164 八 位串入、并出移位寄存器 相连,进行串行通信,再由 74HC1
14、64 寄存器将 段码 并行输出给数码管从而显示数字;矩阵键盘与 DSP 的 GPIO 口相连接,以扫描的方式识别键值,实现键盘对定时器的控制。 1.3 定时器设计及实现的功能 1.3.1 设计过程 进行定时器的设计首先就要熟悉 DSP 的编程环境, 本次编程使用的是CCS( Code Composer Studio) 软件,具体运用的语言为 C 语言。程序调试成功后通过 JTAG 将程序下载到 DSP 的 RAM 中进行硬件调试,程序具体实现功能见 1.3.3 的功能实现。 CCS 是 它是美国德州仪器公司( Texas Instrument,TI)出品的代码开发和调试套件。 TI 公司的产品
15、线中有一大块业务是数字信号处理器( DSP)和微处理器 ( MCU), CCS 是 TI 公司专门为 DSP 软件工程师设计的集编译、仿真、下载为一体的 DSP 开发软件,可以通过 CCS 新建工程、编译仿真工程、在线调试、下载程序 。 第 3 页 1.3.2 定时器方案的确定 随着 DSP 控制器性价比 不断提高,新一代产品的应用越来越广泛,大可 应用于 复杂的工业过程控制系统, 进行复杂的数字信号处理功能,如图像处理,雷达信号处理等 ,小则可以用于家电控制,甚至能够用来做儿童电子玩具。它功能强大,体积小,重量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。鉴此,
16、本文 设计开发了一种基于 DSP 微控制器的多用途定时器 , 它造价低,功能全, 性价比高 ,配以小键盘和 数码管 显示,可适应各种场合的定时预警之用。 为了实现定时器系统的主要功能,除了要有电源设备、时钟电路、复位电路等必备 设备之外,还有必不可少的数码管及其驱动电路,为了在定时结束时、报警,必须还有 LED 灯,为了能够用键盘控制定时器状态和输入时间,还需要矩阵键盘及其控制电路。总的来说,综合以上的各功能电路和相应的软件程序相结合,便能实现一个功能强大的多位定时器。 1.3.3 定时器的功能 本次 设计的课题是基于 DSP 为控制器定时器设计,相关功能如下: 1.实现定时功能,最大定时时间
17、为 100 分钟。 2.通过四个七段数码管显示当前的定时时间,更新的定时时间 。 3.通过键盘控制定时器开始定时和暂停定时,暂停后,再按下开始键,则从暂停的 时间点继续定时。 4.在暂停定时阶段,可以利用键盘上的数字键 09 重新设定定时时间,在按下开始键,则定时器开始从刚刚设置的定时时间重新开始定时。 5.定时结束时, LED 灯开始不断闪烁,提示定时时间到。 第 4 页 2 定时器系统的 硬件设计 2.1 总体硬件设计 本系统采用德州仪器的 TMS320F28335 DSP 微控制器作为核心部件。辅以7 段数码管,按键矩阵, LED 灯, 74HC164 芯片共同完成定时器的定时功能。 方
18、案设计框图如下所示 : 图 2-1 系统总体方案设计图 定时器工作过程如下: 1.只 通电或复位状态 8 位共阳数码管不显示任何字符; 2.按下“开始”键后,定时器开启,数码管显示定时时间并进行逆行计数,默认情况下定时时间为 1 分钟 3.定时过程中可按下“暂停”键, 则暂停计时,数码管显示“ -” ; 4.暂停阶段,可通过键盘上的数字键重新设定定时时间; 5.定时时间设定好之后,按下“开始”键则定时器按照重新设定的定时时间开始定时,若没有设置新的定时时间,则从暂停时的时间点继续定时。 6.定时时间到,停止定时,数码管上显示“ 0000”, LED 灯开始闪亮,提示定时结束。 根据设计要求,本
19、系统主要硬件电路由 DSP 微控 制器、按键、共阳数码管、LED 显示电路组成。 1.按键的输入:矩阵键盘上键有十个按键设定为 09 数字输入功能,另外两 个键作为时间设定的控制键,分别为暂停,开始。矩阵键盘由 GPIO00GPIO03输入, GPIO50GPIO53 输出。 第 5 页 2.定时 器 的显示电路: 显示时间 由 4 位共阳数码管显示,首先由 DSP 与74HC164 进行 SPI 串行同步通信,将数码管需要的段码传输给 74HC164,再由74HC164 将段码并行输出给数码管,达到数码管显示的目的。 DSP 的 GPIO54和 GPIO56 设置为 SPI 的数据发送和时钟
20、端, GPIO5859 和 GPIO6263 设置为数码管的位选端 3.定时器的报警系统通过 DSP 芯片的 GPIO4 引脚来控制 LED 灯闪亮提示报警。 4.定时器的时钟电路通过在 DSP芯片外部连接一个 30MHz的石英晶体振荡器。系统工作是通过编程选择 5 倍频的 PLL 锁相环使得 DSP 工作在最高主频150MHz。 以上是对定时器的 硬件组成 和具体工作流程进行了大体的介绍,现对其各功能的实现方式 分别进行讲解。 2.2 DSP 微控制器 DSP( Digital Signal Processor)是一种独特的微处理器,是以数字信号来处理 大量信息的器件。其工作原理是接收模拟信
21、号,转换为 0 或 1 的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片 1。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。 本程序使用的 TMS320F28335 型数字信号处理器 是 TI 公司的一款TMS320C28X 系列浮点 DSP 控制器。与以往的定点 DSP 相比,该 器件的精度高,成本 低, 功耗小,性能高,外设集成度高,数据以及程序存储量大, A/D转换更精确快速等。 TMS320F28335 具有 150MHz 的高速处理能力,具备 32 位浮 点处理单元,6 个 DMA 通道支持 ADC、 McBSP 和 EMIF,有多达 18 路的 PWM 输出,其中有 6 路为 TI 特有的更高精度的 PWM 输出 (HRPWM), 12 位 16 通道 ADC。得益于其浮点运算单元,用户可快速编写控制算法而无需在处理小数操作上耗费过多的时间和精力,与前代 DSC 相比,平均性能提高 50%,并与定点 C28x 控制器软件兼容,从而简化软件开发,缩短开发周期 ,降低开发成本 2。