武汉理工大学毕业设计(论文)
感器网络,从而为测量系统的构建引入全新概念。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~l2位的数字值读数方式。它工作在3—5.5 V的电压范围,采用多种封装形式,从而使系统设计灵活、方便,设定分辨率及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
目前常用的单片机与外设之间进行数据传输的串行总线主要有I2C,SPI和SCI总线。其中I2C总线以同步串行二线方式进行通信:一条时钟线,一条数据线。SPI总线则以同步串行三线方式进行通信:一条时钟线,一条数据输入线,一条数据输出线。SCI总线是以异步方式进行通信:一条数据输入线,一条数据输出线。而DS18B20的单总线采用单条信号线,既可传输时钟,又可传输数据,而且数据传输是双向的,因而具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。
ROM中的64位序列号是出厂前被光记好的,它可以看作是该DS18B20的地址序列码,每DS18B20的64位序列号均不相同。64位ROM的排列是:前8位是产品家族码,接着48位是DS18B20的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5 +X4 +1)。ROM作用是使每一个DS18B20都各不相同,这样就可实现一根总线上挂接多个。
DS18B20适应电压范围宽,电压范围在3.0~5.5V,在寄生电源方式下可由数据线供电。在使用中不需要任何外围元件,全部传感元件及转换电路继承在形如一只三极管的集成电路内。可编程分辨率为9~12位,对应的可分辨温度分别为0.5度,0.25度,0.125度,0.0625度,可实现高精度测温。
2.3 TFTLCD
TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。液晶先后避开了困难的发光问题,利用液晶作为光阀的优良特性把发光显示器件分解成两部分,即光源和对光源的控制。作为光源,无论从发光效率、全彩色,还是寿命,都已取得了辉煌的成果,而且还在不断深化之中。LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。在发光光源方面取得的最新成果都会为LCD提供新的背光源。随着光源科技的进步,会有更新的更好的光源出现并为LCD所应用。余下的就是对光源的控制,把半导体大规模集成电路的技术和工艺移植过来,研制成功了薄膜晶体管(TFT)生产工艺,实现了对液晶光阀的矩阵寻址控制,解决了液晶显示器的光阀和控制器的配合,从而使液晶显示的优势得以实现。
TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。
TFT实际上指的是薄膜晶体管,可以对屏幕上的各个独立的像素进行控制。显示屏由许多可以发出任意颜色的光线的像素组成,只要控制各个像素显示相应的颜色就能达到目的了。在TFT LCD中采用背光技术,为了能精确地控制每一个像素的颜色和亮度就需要
6
武汉理工大学毕业设计(论文)
在每一个像素之后安装一个类似百叶窗的开关,当“百叶窗”打开时光线可以透过来,而“百叶窗”关上后光线就无法透过来。技术上的实现就是利用了液晶的特性,在上下两层都有沟槽,上层的是纵向排列,下层的是横向排列,当不加电压时液晶处于自然状态,通过适当的结构设计,光线从上层通过夹层后会发生90度的扭曲,从而能在下层顺利通过,加上电压就会生成一个电场,使得液晶都垂直排列,这时光线就无法通过下层。
2.4 ATK-HC05蓝牙串口
ATK-HC05模块,是一款高性能主从一体蓝牙串口模块,可以同各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对,该模块支持非常宽的波特率范围:4800~1382400,并且模块兼容5V或3.3V单片机系统,使用非常灵活、方便。
在微微网建立之前,所有设备都处于就绪状态。在该状态下,未连接的设备每隔1.28s监听一次消息,设备一旦被唤醒,就在预先设定的32个跳频频率上监听信息。连接进程由主设备初始化。如果一个设备的地址已知,就采用页信息建立连接;如果地址未知,就采用紧随页信息的查询信息建立连接。在微微网中,无数据传输的设备转入节能工作状态。主设备可将从设备设置为保持方式,此时,只有内部定时器工作;从设备也可以要求转入保持方式。设备由保持方式转出后,可以立即恢复数据传输。连接几个微微网或管理低功耗器件时,常使用保持方式。监听方式和休眠方式是另外两种低功耗工作方式。蓝牙基带技术支持两种连接方式:面向连接(SCO)方式,主要用于语音传输;无连接(ACL)方式,主要用于分组数据传输。温度数据就通过无连接方式传输。
蓝牙采用的是跳频和时分多址技术。跳频就是用伪随机码序列进行移频键控,使载波频率不断跳变而扩展频谱的一种方法。在传统的定频通信系统中,发射机中的主振荡器的振荡频率是固定设置的,因而它的载波频率是固定的。为了得到载波频率是跳变的跳频信号,要求主振荡器的频率应能遵照控制指令而改变。这种产生跳频信号的装置叫跳频器。通常,跳频器是由频率合成器和跳频指令发生器构成的。如果将跳频器看作是主振荡器,则与传统的发信机没有区别。被传送的信息可以是模拟的或数字的信号形式,经过调制器的相应调制,便获得副载波频率固定的已调波信号,再与频率合成器输出的主载波频率信号进行混频,其输出的已调波信号的载波频率达到射频通带的要求,经过高通滤波器后馈至天线发射出去。这就是定频信号的发送过程。而时分多址就是把时间分割成互不重叠的帧,再将帧分割成互不重叠的时隙(信道)与用户具有一一对应关系,依据时隙区分来自不同地址的用户信号,从而完成的多址连接。
7
武汉理工大学毕业设计(论文)
3 硬件设计
3.1 MCU
MCU选用的STM32RBT6,64引脚。排阻P3和P1分别用于PORTA和PORTB的IO口引出,其中P2还有部分用于PORTC口的引出。PORTA和PORTB都是按顺序排列的。
P2连接了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 mcu原理图
8
武汉理工大学毕业设计(论文)
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_D[17:1];对应PB[15:0]
图3.3 tftlcd原理图
9
武汉理工大学毕业设计(论文)
4 软件设计
软件设计部分,包括两大部分:初始化和功能性设计。
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的配置(选择时钟源、预分频系数和倍频系数等),同时应该在它们的输入时钟稳定(就绪位)后才能使能。一旦使能了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; //外部高速时钟使能HSEON while(!(RCC->CR>>17));//等待外部时钟就绪
RCC->CFGR=0X00000400; //APB1/2=DIV2;AHB=DIV1; PLL-=2;//抵消2个单位
RCC->CFGR|=PLL<<18; //设置PLL值 2~16 RCC->CFGR|=1<<16; //PLLSRC ON FLASH->ACR|=0x32; //FLASH 2个延时周期 RCC->CR|=0x01000000; //PLLON while(!(RCC->CR>>25));//等待PLL锁定 RCC->CFGR|=0x00000002;//PLL作为系统时钟 while(temp!=0x02) //等待PLL作为系统时钟设置成功 {
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于stm32的温度测量系统(3)在线全文阅读。
相关推荐: