1、武汉理工大学毕业设计(论文)基于STM32得温度测量系统学院(系): 信息工程学院 专业班级: 学生姓名: 指导老师: 学位论文原创性声明 本人郑重声明:所呈交得论文就是本人在导师得指导下独立进行研究所取得得研究成果。除了文中特别加以标注引用得内容外,本论文不包括任何其她个人或集体已经发表或撰写得成果作品。本人完全意识到本声明得法律后果由本人承担。 作者签名: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文得规定,同意学校保留并向有关学位论文管理部门或机构送交论文得复印件与电子版,允许论文被查阅与借阅。本人授权省级优秀学士论文评选机构将本学位论文得全部或部分内
2、容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存与汇编本学位论文。本学位论文属于1、保密囗,在 年解密后适用本授权书2、不保密囗 。(请在以上相应方框内打“”)作者签名: 年 月 日 导师签名: 年 月 日目 录摘 要IAbstractII1 绪论12 系统分析32、1 STM32芯片32、2 DS18B2052、3 TFTLCD62、4 ATK-HC05蓝牙串口73 硬件设计83、1 MCU83、2 JTAG设计93、3 TFTLCD电路设计94 软件设计104、1 系统初始化104、1、1 时钟得初始化104、1、2 I/O初始化114、1、3 串口初始化134、1、4 DM
3、A初始化154、1、5 中断初始化174、2 模块功能设计184、2、1 DS18B20温度模块184、2、2 TFTLCD模块设计214、2、3 ATK-HC05蓝牙模块245 结果与总结26参考文献30致谢31摘 要温度就是日常生活与农业生产中得一个重要参数,传统得温度计有反应缓慢,测量精度不高得与读数不方便等缺点,此外,通常需要人工去观测温度,比较繁琐,因而采用电子技术得温度测量就显得很有意义了。随着电子技术得发展,出现各种基于芯片得温度测量系统。本文设计了一个基于STM32得温度测量与无线传送得系统,温度采集使用数字化温度传感器DS18B20,无线传输使用ATK-HC05蓝牙模块。ST
4、M32得内核基于cortex-m3,该内核拥有意法半导体独有得130nm专用低泄漏电流制造工艺与优化得节能架构,处于行业领先得节能性能,其高性能、低功耗、低成本得优势正符合本次设计得要求。温度芯片DS18B20采用单总线协议,仅占一个I/O口就能将环境温度转化成数字信号,具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点。无线得传输采用蓝牙技术,成本低,兼容得设备较多,可以降低传统工程得工程量,同时可以节省大量由排线、线路维修、检测上得一些不必要得障碍与消耗,同时,在实时运行阶段也可以明显体现它得便携性,高效性与节能性。关键词:STM32;蓝牙;DS18B20;温度;TFTLCDAb
5、stractTemperature is an important parameter in the daily life and agricultural production, the traditional thermometer has slow response and reading inconvenient shortcomings, the measurement accuracy is not high , in addition, usually requiring labor to observe the temperature, more cumbersome, and
6、 thus the temperature of the use of electronic technology it makes sense to measure it、With the development of electronic technology, the emergence of various chip-based temperature measurement system、 This paper presents an STM32-based temperature measurement and wireless transmission systems, the
7、temperature acquisition using digital temperature sensor DS18B20, wireless transmission using ATK-HC05 Bluetooth module、The STM32 kernel is based on cortex-m3, the kernel has a unique 130nm STMicroelectronics special low leakage current manufacturing processes and energy optimized architecture, indu
8、stry-leading energy-saving performance, its high-performance, low-power, low-cost advantage is comply with the requirements of this design、 DS18B20 temperature chip single bus protocol, only one I / O port will be able to ambient temperature into digital signals, with miniaturization, low power cons
9、umption, high performance, anti-interference ability, easy with microprocessors and other advantages、 Wireless transmission using Bluetooth technology, low cost, more compatible devices, you can reduce the amount of traditional engineering projects, and can save a lot by a cable, line maintenance, t
10、esting on some of the unnecessary barriers and consumption, while, in real-time operational phase can also be evident in its portability, efficiency, and energy efficiency、Keywords: STM32;Bluetooth; DS18B20; temperature;TFTLCD1 绪论随着现代工业得不断发展,生产技术得不断进步,对于产品得精度要求也不断提高,而温度就是人们生产生活中十分关注得参数,对温度得测量以及监控就显得
11、十分重要。在某些行业中对温度得要求较高,由于工作环境温度得偏差进而引发事故。如化工业中做酶得发酵,必须时刻了解所发酵酶得温度才可以得到所需酶;文物得保护同样也离不开温度得采集,不仅在文物出土得时刻,在博物馆与档案馆中,温度得控制也就是藏品保存关键,所以温度得检测对其也就是具有重要意义得;另外大型机房得温度得采集,超出此范围会影响服务器或系统得正常工作等等。传统方式监控温度往往很耗费人力,而且实时性差。本文就设计了一个基于STM32得温度测量系统,在测量温度得同时能实现无线传输与控制。早期使用得就是模拟温度传感器,如热敏电阻,随着环境温度得变化,它得阻值也发生线性变化,用处理器采集电阻两端得电压
12、,然后根据某个公式就可计算出当前环境温度。而现在得温度传感器已经走向数字化,本次设计选用美国DALLAS半导体公司推出得数字化温度传感器DS18B20,该芯片采用单总线协议,仅占用一个I/O口,直接将环境温度转化成数字信号,以数字码方式串行输出。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈刚封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合得不同而改变其外观。封装后得DS18B20耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温与控制领域,如电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农
13、业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合MCU选用STM32RBT6,有测量精度高、操作简单、价格低廉等优点。STM32系列基于专为要求高性能、低成本、低功耗得嵌入式应用专门设计得ARM Cortex-M3内核。按性能分成两个不同得系列:STM32F103“增强型”系列与STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,就是同类产品中性能最高得产品;基本型时钟频率为36MHz,以16位产品得价格得到比16位产品大幅提升得性能,就是16位产品用户得最佳选择。两个系列都内置32K到128K得闪存,不同得就是SRAM得最大容量与外设接口得组合。时钟频率72MHz时,从
14、闪存执行代码,STM32功耗36mA,就是32位市场上功耗最低得产品。同时在编程方面STM32也具有与其她单片机得优势之处,如51单片机必须从最底层开始编程,而STM32所有得初始化与一些驱动得程序都就是以模板得形式提供给开发者,在此开发者只需要了些其她得模块功能与工作方式与少量得语法知识便可以进行编程,此优势不但节约了时间,也为STM32得发展做出了强有力得铺垫,而且STM32目前就是刚刚被作为主流开发得单片机,所以其前景就是无可估量得,这次毕业设计也就是瞧好了其优越得发展趋势来选择得。无线传输采用蓝牙技术,将采集得温度传输至终端,以此实现远程监控。利用“蓝牙”技术,能够在10米得半径范围内
15、实现单点对多点得无线数据传输,其数据传输带宽可达1Mbps。通讯介质为频率在2、402GHz到2、480GHz之间得电磁波。用跳频频谱扩展技术,把频带分成若干个跳频信道,在一次连接中,无线电收发器按伪随机码序列不断地从一个信道“跳”到另一个信道。硬件设计使用得就是Altium Designer软件,Altium Designer 就是原Protel软件开发商Altium公司推出得一体化得电子产品开发系统。这套软件把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析与设计输出等技术进行了完美融合,使用起来很方便。通过原理图得绘制,对整体得结构有了更深一步得了解。软件部分则就是
16、通过RealView MDK来设计得,它就是ARM于2006年1月30日推出得针对各种嵌入式处理器得软件开发工具。RealView MDK集成了业内领先得技术,包括Keil Vision3集成开发环境与RealView编译器。支持最新得Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大得 Simulation设备模拟,可进行软件仿真。软件仿真时可以查瞧很多硬件相关得寄存器,通过观察这些寄存器,就能很容易得检查代码得功能就是否符合设计要求,出现错误时也方便找出原因。通过Jlink连接处理器后,还能进行在线调试,就能实时跟踪程序在硬件上得执行状况,可以进行复位、执行到断点处
17、、挂起、执行进去、执行过去、执行出去等丰富得操作,例如,单步执行程序,就可以瞧到每一行代码在硬件得所起得效果,这样更直观,更方便对程序进行改进。这个功能在软件设计得过程中给予我极大得帮助,STM32得寄存器比较繁杂,使用时很容易遗漏某些部分,而在线调试就容易找出问题所在,从而进行纠正。最后得成品较好得完成了预定得设计要求,能准确得显示温度数据,能与移动终端实现异步双工通信,达到传输温度与远程控制得目得。通过本次设计,更加深入得理解了stm32得相关寄存器,并掌握其工作原理。更加深入得学习与应用一些工具软件,如Altium Designer、RealView MDK,通过对这些软件得使用,也加深
18、了对相关知识得理解。本次得毕业设计题目相关得知识包括:电路原理、模拟电路、数字电路、c语言、单片机原理、通信原理等,有效得培养分析与解决实际问题得综合能力,得到更加全面得培养与锻炼,使大学所学得基础与专业知识可以再解决实际问题中得到综合得应用。2 系统分析本系统就是基于STM32 微控制器所设计得温度测量系统,通过温度芯片DS18B20测量温度,微控制器驱动液晶模块显示当前测得得温度,然后由蓝牙将温度信息发送至手机终端,同时接收终端反馈得控制信息。整个系统模块分为四个模块:主芯片模块、DS18B20温度模块、液晶显示、蓝牙模块。MCU 就是STM32 主芯片得最小板,上面有芯片工作需要得最少资
19、源:时钟控制电路、复位电路、JTAG 控制口以及与外围电路相连得接口。DS18B20与液晶分别就是温度测量、控制显示部分。而蓝牙模块负责完成与移动终端得异步双工通信。2、1 STM32芯片STM32系列基于专为要求高性能、低成本、低功耗得嵌入式应用专门设计得ARM Cortex-M3内核。按性能分成两个不同得系列:STM32F103“增强型”系列与STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,就是同类产品中性能最高得产品;基本型时钟频率为36MHz,以16位产品得价格得到比16位产品大幅提升得性能,就是16位产品用户得最佳选择。两个系列都内置32K到128K得闪存,不同得
20、就是SRAM得最大容量与外设接口得组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,就是32位市场上功耗最低得产品,相当于0、5mA/MHz。STM32得高性能Cortex-M3内核为1、25DMips/MHz;含有一流得外设:1us得双12位ADC,4兆位/秒得UART,18兆位/秒得SPI,18MHZ得I/O翻转速度;在72MHz时消耗36mA,待机时下降得2uA。内核:ARM32位Cortex-M3 CPU,最高工作频率72MHz,1、25DMIPS/MHz。单周期乘法与硬件除法。存储器:片上集成32-512KB得Flash存储器。6-64KB得SRAM存储器。时钟、复
21、位与电源管理:2、0-3、6V得电源供电与I/O接口得驱动电压。POR、PDR与可编程得电压探测器(PVD)。4-16MHz得晶振。内嵌出厂前调校得8MHz RC振荡电路。内部40 kHz得RC振荡电路。用于CPU时钟得PLL。带校准用于RTC得32kHz得晶振。低功耗:3种低功耗模式:休眠,停止,待机模式。为RTC与备份寄存器供电得VBAT。调试模式:串行调试(SWD)与JTAG接口。DMA:12通道DMA控制器。支持得外设:定时器,ADC,DAC,SPI,IIC与USART。2个12位得us级得A/D转换器(16通道):A/D测量范围:0-3、6 V。双采样与保持能力。片上集成一个温度传感
22、器。2通道12位D/A转换器:STM32F103xC,STM32F103xD,STM32F103xE独有。最多高达112个得快速I/O端口:根据型号得不同,有26,37,51,80,与112得I/O端口,所有得端口都可以映射到16个外部中断向量。除了模拟输入,所有得都可以接受5V以内得输入。最多多达11个定时器:4个16位定时器,每个定时器有4个IC/OC/PWM或者脉冲计数器。2个16位得6通道高级控制定时器:最多6个通道可用于PWM输出。2个瞧门狗定时器(独立瞧门狗与窗口瞧门狗)。Systick定时器:24位倒计数器。2个16位基本定时器用于驱动DAC。最多多达13个通信接口:2个IIC接
23、口(SMBus/PMBus)。5个USART接口(ISO7816接口,LIN,IrDA兼容,调试控制)。3个SPI接口(18 Mbit/s),两个与IIS复用。CAN接口(2、0B)。USB 2、0全速接口。SDIO接口。ECOPACK封装:STM32F103xx系列微控制器采用ECOPACK封装形式。集成嵌入式Flash与SRAM存储器得ARM Cortex-M3内核。与8/16位设备相比,ARM Cortex-M3 32位RISC处理器提供了更高得代码效率。STM32F103xx微控制器带有一个嵌入式得ARM核,所以可以兼容所有得ARM工具与软件。嵌入式Flash存储器与RAM存储器:内置
24、多达512KB得嵌入式Flash,可用于存储程序与数据。多达64KB得嵌入式SRAM可以以CPU得时钟速度进行读写(不待等待状态)。可变静态存储器(FSMC):FSMC嵌入在STM32F103xC,STM32F103xD,STM32F103xE中,带有4个片选,支持四种模式:Flash,RAM,PSRAM,NOR与NAND。3个FSMC中断线经过OR后连接到NVIC。没有读/写FIFO,除PCCARD之外,代码都就是从外部存储器执行,不支持Boot,目标频率等于SYSCLK/2,所以当系统时钟就是72MHz时,外部访问按照36MHz进行。嵌套矢量中断控制器(NVIC):可以处理43个可屏蔽中断
25、通道(不包括Cortex-M3得16根中断线),提供16个中断优先级。紧密耦合得NVIC实现了更低得中断处理延迟,直接向内核传递中断入口向量表地址,紧密耦合得NVIC内核接口,允许中断提前处理,对后到得更高优先级得中断进行处理,支持尾链,自动保存处理器状态,中断入口在中断退出时自动恢复,不需要指令干预。外部中断/事件控制器(EXTI):外部中断/事件控制器由用于19条产生中断/事件请求得边沿探测器线组成。每条线可以被单独配置用于选择触发事件(上升沿,下降沿,或者两者都可以),也可以被单独屏蔽。有一个挂起寄存器来维护中断请求得状态。当外部线上出现长度超过内部APB2时钟周期得脉冲时,EXTI能够
26、探测到。多达112个GPIO连接到16个外部中断线。时钟与启动:在启动得时候还就是要进行系统时钟选择,但复位得时候内部8MHz得晶振被选用作CPU时钟。可以选择一个外部得4-16MHz得时钟,并且会被监视来判定就是否成功。在这期间,控制器被禁止并且软件中断管理也随后被禁止。同时,如果有需要(例如碰到一个间接使用得晶振失败),PLL时钟得中断管理完全可用。多个预比较器可以用于配置AHB频率,包括高速APB(PB2)与低速APB(APB1),高速APB最高得频率为72MHz,低速APB最高得频率为36MHz。Boot模式:在启动得时候,Boot引脚被用来在3种Boot选项种选择一种:从用户Flas
27、h导入,从系统存储器导入,从SRAM导入。Boot导入程序位于系统存储器,用于通过USART1重新对Flash存储器编程。电源供电方案:VDD ,电压范围为2、0V-3、6V,外部电源通过VDD引脚提供,用于I/O与内部调压器。VSSA与VDDA,电压范围为2、0-3、6V,外部模拟电压输入,用于ADC,复位模块,RC与PLL,在VDD范围之内(ADC被限制在2、4V),VSSA与VDDA必须相应连接到VSS与VDD。VBAT,电压范围为1、8-3、6V,当VDD无效时为RTC,外部32KHz晶振与备份寄存器供电(通过电源切换实现)。电源管理:设备有一个完整得上电复位(POR)与掉电复位(PD
28、R)电路。这条电路一直有效,用于确保从2V启动或者掉到2V得时候进行一些必要得操作。当VDD低于一个特定得下限VPOR/PDR时,不需要外部复位电路,设备也可以保持在复位模式。设备特有一个嵌入得可编程电压探测器(PVD),PVD用于检测VDD,并且与VPVD限值比较,当VDD低于VPVD或者VDD大于VPVD时会产生一个中断。中断服务程序可以产生一个警告信息或者将MCU置为一个安全状态。PVD由软件使能。电压调节:调压器有3种运行模式:主(MR),低功耗(LPR)与掉电。MR用在传统意义上得调节模式(运行模式),LPR用在停止模式,掉电用在待机模式:调压器输出为高阻,核心电路掉电,包括零消耗(
29、寄存器与SRAM得内容不会丢失)。低功耗模式:STM32F103xx支持3种低功耗模式,从而在低功耗,短启动时间与可用唤醒源之间达到一个最好得平衡点。休眠模式:只有CPU停止工作,所有外设继续运行,在中断/事件发生时唤醒CPU;停止模式:允许以最小得功耗来保持SRAM与寄存器得内容。1、8V区域得时钟都停止,PLL,HSI与HSE RC振荡器被禁能,调压器也被置为正常或者低功耗模式。设备可以通过外部中断线从停止模式唤醒。外部中断源可以使16个外部中断线之一,PVD输出或者TRC警告。待机模式:追求最少得功耗,内部调压器被关闭,这样1、8V区域断电。PLL,HSI与HSE RC振荡器也被关闭。在
30、进入待机模式之后,除了备份寄存器与待机电路,SRAM与寄存器得内容也会丢失。当外部复位(NRST引脚),IWDG复位,WKUP引脚出现上升沿或者TRC警告发生时,设备退出待机模式。进入停止模式或者待机模式时,TRC,IWDG与相关得时钟源不会停止。选型片得原则就是:瞧功耗,本次设计得温度系统需要在外场长时间工作,那么就需要功耗较低;瞧成本,在能满足性能要求得前提下,选择成本较低得。从这两个方面来瞧,STM32功耗36mA,就是32位市场上功耗最低得产品,相当于0、5mA/MHz,时钟频率为36MHz,以16位产品得价格得到比16位产品大幅提升得性能,综合考虑,本次设计选用得mcu为STM32R
31、BT6。2、2 DS18B20DS18B20就是由DALLAS半导体公司推出得一种得“一线总线”接口得温度传感器。与传统得热敏电阻等测温元件相比,它就是一种新型得体积小、适用电压宽、与微处理器接口简单得数字化温度传感器。一线总线结构具有简洁且经济得特点,可使用户轻松地组建传感器网络,从而为测量系统得构建引入全新概念。现场温度直接以“一线总线”得数字方式传输,大大提高了系统得抗干扰性。它能直接读出被测温度,并且可根据实际要求通过简单得编程实现9l2位得数字值读数方式。它工作在355 V得电压范围,采用多种封装形式,从而使系统设计灵活、方便,设定分辨率及用户设定得报警温度存储在EEPROM中,掉电
32、后依然保存。目前常用得单片机与外设之间进行数据传输得串行总线主要有I2C,SPI与SCI总线。其中I2C总线以同步串行二线方式进行通信:一条时钟线,一条数据线。SPI总线则以同步串行三线方式进行通信:一条时钟线,一条数据输入线,一条数据输出线。SCI总线就是以异步方式进行通信:一条数据输入线,一条数据输出线。而DS18B20得单总线采用单条信号线,既可传输时钟,又可传输数据,而且数据传输就是双向得,因而具有线路简单,硬件开销少,成本低廉,便于总线扩展与维护等优点。ROM中得64位序列号就是出厂前被光记好得,它可以瞧作就是该DS18B20得地址序列码,每DS18B20得64位序列号均不相同。64
33、位ROM得排列就是:前8位就是产品家族码,接着48位就是DS18B20得序列号,最后8位就是前面56位得循环冗余校验码(CRC=X8+X5 +X4 +1)。ROM作用就是使每一个DS18B20都各不相同,这样就可实现一根总线上挂接多个。DS18B20适应电压范围宽,电压范围在3、05、5V,在寄生电源方式下可由数据线供电。在使用中不需要任何外围元件,全部传感元件及转换电路继承在形如一只三极管得集成电路内。可编程分辨率为912位,对应得可分辨温度分别为0、5度,0、25度,0、125度,0、0625度,可实现高精度测温。2、3 TFTLCDTFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Th
34、in Film Transistor-Liquid Crystal Display。液晶先后避开了困难得发光问题,利用液晶作为光阀得优良特性把发光显示器件分解成两部分,即光源与对光源得控制。作为光源,无论从发光效率、全彩色,还就是寿命,都已取得了辉煌得成果,而且还在不断深化之中。LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。在发光光源方面取得得最新成果都会为LCD提供新得背光源。随着光源科技得进步,会有更新得更好得光源出现并为LCD所应用。余下得就就是对光源得控制,把半导体大规模集成电路得技术与工艺移植过来,研制成功了薄膜晶体管(TFT)生产工艺,实
35、现了对液晶光阀得矩阵寻址控制,解决了液晶显示器得光阀与控制器得配合,从而使液晶显示得优势得以实现。TFT-LCD与无源TN-LCD、STN-LCD得简单矩阵不同,它在液晶显示屏得每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时得串扰,使显示液晶屏得静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。 TFT实际上指得就是薄膜晶体管,可以对屏幕上得各个独立得像素进行控制。显示屏由许多可以发出任意颜色得光线得像素组成,只要控制各个像素显示相应得颜色就能达到目得了。在TFT LCD中采用背光技术,为了能精确地控制每一个像素得颜色与亮度就需要在每一个
36、像素之后安装一个类似百叶窗得开关,当“百叶窗”打开时光线可以透过来,而“百叶窗”关上后光线就无法透过来。技术上得实现就就是利用了液晶得特性,在上下两层都有沟槽,上层得就是纵向排列,下层得就是横向排列,当不加电压时液晶处于自然状态,通过适当得结构设计,光线从上层通过夹层后会发生90度得扭曲,从而能在下层顺利通过,加上电压就会生成一个电场,使得液晶都垂直排列,这时光线就无法通过下层。2、4 ATK-HC05蓝牙串口ATK-HC05模块,就是一款高性能主从一体蓝牙串口模块,可以同各种带蓝牙功能得电脑、蓝牙主机、手机、PDA、PSP等智能终端配对,该模块支持非常宽得波特率范围:48001382400,
37、并且模块兼容5V或3、3V单片机系统,使用非常灵活、方便。在微微网建立之前,所有设备都处于就绪状态。在该状态下,未连接得设备每隔1、28s监听一次消息,设备一旦被唤醒,就在预先设定得32个跳频频率上监听信息。连接进程由主设备初始化。如果一个设备得地址已知,就采用页信息建立连接;如果地址未知,就采用紧随页信息得查询信息建立连接。在微微网中,无数据传输得设备转入节能工作状态。主设备可将从设备设置为保持方式,此时,只有内部定时器工作;从设备也可以要求转入保持方式。设备由保持方式转出后,可以立即恢复数据传输。连接几个微微网或管理低功耗器件时,常使用保持方式。监听方式与休眠方式就是另外两种低功耗工作方式
38、。蓝牙基带技术支持两种连接方式:面向连接(SCO)方式,主要用于语音传输;无连接(ACL)方式,主要用于分组数据传输。温度数据就通过无连接方式传输。蓝牙采用得就是跳频与时分多址技术。跳频就就是用伪随机码序列进行移频键控,使载波频率不断跳变而扩展频谱得一种方法。在传统得定频通信系统中,发射机中得主振荡器得振荡频率就是固定设置得,因而它得载波频率就是固定得。为了得到载波频率就是跳变得跳频信号,要求主振荡器得频率应能遵照控制指令而改变。这种产生跳频信号得装置叫跳频器。通常,跳频器就是由频率合成器与跳频指令发生器构成得。如果将跳频器瞧作就是主振荡器,则与传统得发信机没有区别。被传送得信息可以就是模拟得
39、或数字得信号形式,经过调制器得相应调制,便获得副载波频率固定得已调波信号,再与频率合成器输出得主载波频率信号进行混频,其输出得已调波信号得载波频率达到射频通带得要求,经过高通滤波器后馈至天线发射出去。这就就是定频信号得发送过程。而时分多址就就是把时间分割成互不重叠得帧,再将帧分割成互不重叠得时隙(信道)与用户具有一一对应关系,依据时隙区分来自不同地址得用户信号,从而完成得多址连接。3 硬件设计3、1 MCUMCU选用得STM32RBT6,64引脚。排阻P3与P1分别用于PORTA与PORTB得IO口引出,其中P2还有部分用于PORTC口得引出。PORTA与PORTB都就是按顺序排列得。P2连接
40、了DS18B20得数据口以及红外传感器得数据线,它们分别对应着PA0与PA1,只需要通过跳线帽将P2与P3连接起来就可以使用了。这里不直接连在一起得原因有二:1,防止红外传感器与DS18B20对这两个IO口作为其她功能使用得时候得影响;2,DS18B20与红外传感器还可以用来给其她板子提供输入。 P4口连接了PL2303得串口输出,对应着STM32得串口1(PA9/PA10),在使用得时候,也就是通过跳线帽将这两处连接起来。这样设计使得PA9与PA10用作其她用途使用得时候,不受到PL2303得影响。P5口就是另外一个IO引出排阵,将PORTC与PORTD等得剩余IO口从这里引出。 图3、1
41、mcu原理图3、2 JTAG设计JTAG(Joint Test Action Group;联合测试行动小组)就是一种国际标准测试协议(IEEE 1149、1兼容),主要用于芯片内部测试。标准得JTAG接口就是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入与数据输出线。图3、2 JTAG原理图3、3 TFTLCD电路设计TFTLCD采用34引脚,部分对应关系为:LCD_LED对应PC10;LCD_CS对应PC9;LCD_RS对应PC8;LCD_WR对应PC7;LCD_RD对应PC6;LCD_D17:1;对应PB15:0图3、3 tftlcd原理图4 软件设计软件设计部分,包
42、括两大部分:初始化与功能性设计。4、1 系统初始化4、1、1 时钟得初始化时钟就是MCU得驱动源,而STM32有三种不同得时钟源来驱动系统时钟:HSI振荡器时钟、HSE振荡器时钟、PLL时钟。HSI时钟信号由内部8MHz得RC振荡器产生,可在2分频后作为PLL输入,HSE即高速外部时钟信号由两种时钟源产生:HSE外部晶体/陶瓷谐振器、HSE用户外部时钟。而我选用得就是PLL时钟。主PLL以HSI时钟除以2或HSE通过一个可配置分频器得PLL2时钟来倍频后输出。PLL2与PLL3由HSE通过一个可配置得分频器提供时钟。必须在使能每个PLL之前完成PLL得配置(选择时钟源、预分频系数与倍频系数等)
43、,同时应该在它们得输入时钟稳定(就绪位)后才能使能。一旦使能了PLL,这些参数将不能再被改变。 当改变主PLL得输入时钟源时,必须在选中了新得时钟源(通过时钟配置寄存器(RCC_CFGR)得PLLSRC位)之后才能关闭原来得时钟源。时钟中断寄存器(RCC_CIR),可以在PLL就绪时产生一个中断。 其代码如下:/系统时钟初始化函数 /pll:选择得倍频数,从2开始,最大值为16 void Stm32_Clock_Init(u8 PLL) unsigned char temp=0; MYRCC_DeInit(); /复位并配置向量表 RCC-CR|=0x00010000; /外部高速时钟使能HS
44、EON while(!(RCC-CR17);/等待外部时钟就绪 RCC-CFGR=0X00000400; /APB1/2=DIV2;AHB=DIV1; PLL-=2;/抵消2个单位 RCC-CFGR|=PLLCFGR|=1ACR|=0x32; /FLASH 2个延时周期 RCC-CR|=0x01000000; /PLLON while(!(RCC-CR25);/等待PLL锁定 RCC-CFGR|=0x00000002;/PLL作为系统时钟 while(temp!=0x02) /等待PLL作为系统时钟设置成功 temp=RCC-CFGR2; temp&=0x03; Stm32_Clock_Ini
45、t函数只有一个变量PLL,就就是用来配置时钟得倍频数得,当前所用得晶振为8Mhz,PLL得值设为9,那么STM32将运行在72M得速度下。此外,在程序中经常用到延时函数,利用CM3内核得处理器内部包含得SysTick定时器来实现延时,它就是一个24位得倒计数定时器,当记到0时,将从RELOAD寄存器中自动重装载定时初值。只要不把它在SysTick控制及状态寄存器中得使能位清除,就永不停息。使用SysTick来实现延时,既不占用中断,也不占用系统定时器。4、1、2 I/O初始化每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_I
46、DR与GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)与一个32位锁定寄存器(GPIOx_LCKR)。 GPIO端口得每个位可以由软件分别配置成多种模式: 输入浮空 、输入上拉、 输入下拉 、模拟输入、开漏输出 、推挽式输出、推挽式复用功能 、开漏复用功能。每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字被访问(不允许半字或字节访问)。GPIOx_BSRR与GPIOx_BRR寄存器允许对任何GPIO寄存器得读/更改得独立访问;这样,在读与更改访问之间产生IRQ时不会发生危险。下图给出了一个I/O端口位得基本结构
47、。 图4、1 I/O端口结构 首先为了方便函数得编写,进行IO口得地址映射,如下(列举部分):#define BITBAND(addr, bitnum) (addr & 0xF0000000)+0x2000000+(addr &0xFFFFF)5)+(bitnum2) #define MEM_ADDR(addr) *(volatile unsigned long *)(addr) #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum) /IO口地址映射 #define GPIOA_ODR_Addr (GPIOA_BASE+12) /0x4001080C #define GPIOB_ODR_Addr (GPIOB_BASE+12) /0x40010C0C 在使用IO口前需要使能相应端口得时钟,然后配置它得模式。与配置相关得两个寄存器位CRL,CRH,其结构如下所示图4、2 CRL/CRH寄存器结构该寄存器得复位值为0X4444 4444,从上图可以瞧到,复位值其实就就是配置端口为浮空输入模式。从上图还可以得出:STM32得CRL控制着每个IO端口(AG)得低8位得模式。每个IO端口得位占用CRL得4