现代显示技术的基本特点是将各种非电置的信息,如声、光、热、力、数、气氛等的信息源通过一定的传感器、处理器进行感知和处理,传输给显示装置,再由显示装置进行处理、转换,最后经由显示器件转换为人类视觉可识别的信息。在显示的过程中,TFT彩色液晶显示模块可以提供更大的信息量。而触摸屏是一种使电子设备改头换面的设备,它赋予电子设备以崭新的面貌,是极富吸引力的全新多媒体交互设备。
总体设计
任何一种基于微控制器的系统设计都包含了硬件设计和软件设计两个大的方面。硬件设计主要根据系统的功能要求选择不同的器件和芯片完成电路的搭建:软件设计是根据硬件的设计编写驱动代码和控制代码来完成特定的功能。硬件设计与软件设计结合起来才是一个完整的系统设计。
系统硬件框图根据系统的设计要求(1)能显示温度、湿度和时间信息:(2)时间信息在外部断电后可以保持;(3)能将温度、湿度和时间等信息进行语音提示;(4)可以对时间进行设置。提出系统的硬件框图如下图所示。
系统软件设计思想要完成这样一个系统,一般都会使用到微控制器的中断系统。基于此,系统软件的设计思想如下:(1)开机检测系统状态,完成相应的初始化(在初始化中打开中断);(2)进入正常工作状态;(3)等待中断触发,在不同的中断中完成不同的功能。
硬件设计
微控制器的选择与最小系统设计在整个系统中,微控制器是一个很重要的核心器件,它主要完成传感器信号的加工与处理、时间信号的加工与处理、显示信号的加工与处理以及人机交互信息的加工与处理。这些信息量是非常大的。
目前市面上单片机的种类与型号是最丰富的,从系统需求和笔者的经验出发,选择高速、高性能的MSP430系列单片机中的2系列单片机作为主控制器。
在2系列单片机中,性价比相对比较高的是MSP430F24X(1)、MSP430F241(×)中的64脚封装的几种型号。它们的管脚是完全兼容的,区别是片内资源的不同。
根据利尔达公司的LSD-FET430UIF这种型号的仿真头的使用说明和MSP430单片机的特性和管脚定义绘制最小系统板原理图如下图所示。
该最小系统板主要是完成MSP430单片机管脚的引出,采用DC3简易牛角插座;同时,对于UART串口使用了一片MAX3232芯片进行电平转换,配合DB9插座,从而可以和PC机进行通信。之所以采用这种插座引出的方式,是为了实现模块化,方便调试、检测和进行替换。
温度与湿度信息获取模块的设计温度与湿度信息都是模拟量,因此必须使用相应的传感器及相关器件组成一定的模块将其转变成单片机可以识别的数字量。目前市面上温度和湿度传感器的品种有很多,已经出现了温湿度一体化的传感器,通过调研,笔者选定了瑞士盛世瑞恩公司的SHT数字温湿度传感器。SHT数字温湿度传感器最大的特点是:①全标定输出,无需标定即可互换使用;②两线制数字接口,无需额外电路。
实时时钟模块的设计实时时钟信号的获取有多种途径,可以利用单片机自身的内部定时器或者中断产生,也可以使用专用的时钟芯片获得。而无论使用哪一种方式,都必须考虑到断电后时钟继续工作的问题。
这个时候,采用专用的时钟芯片来解决这个问题是最简便的方法,本设计中直接使用PCF8563来完成实时时钟模块的设计。
PCF8563是低功耗的CMOS实时时钟/日历芯片,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过12C总线接口串行传递。最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。
语音提示模块的设计目前市面上有多种类型的语音芯片。
对于用量不大的使用者来说,最常见的语音芯片主要分为两大类:一类以Flash为存储器,需要将语音信号进行录入后才可以播放,以后也可以修改语音信号,以ISD系列芯片为代表;一类将语音信号固化在ROM中,通过输入相应的控制和数据代码只能进行放音操作。在本系统中,选择使用第二类芯片。具体的型号是北京宇音天下科技有限公司采用自主核心技术开发的OSYN06188嵌入式中文语音合成芯片。
OSYN06188的特点是:通过UART接收待合成的文本,可直接通过PWM输出方式驱动扬声器,亦可外接单支三极管驱动扬声器,即可实现文本到声音(TTS)的转换。支持国家标准GB2312所有汉字。
人机交互模块的设计人机交互模块是系统设计中非常重要的组成部分,主要包括了信息显示终端与输入终端这两个部分。
在这样一个系统中,信息显示终端必然选择平板显示器件;在平板显示器件中要么选择数码管/LED点阵,要么选择液晶显示模块。输入终端可以选择独立式键盘、矩阵式键盘;当选择使用了液晶显示模块后还可以选择触摸屏作为输入终端。
本系统选择4.7TFT真彩色液晶显示模块做为显示终端,与之配套的触摸屏做为输入终端来完成人机交互模块的设计。
1.汉字显示:标准汉字的点阵为15列16行,在没有硬件汉字库的情况下使用软件对汉字进行取模操作,然后将显示模数据送液晶显示器件进行显示。笔者选用的4.7液晶显示模块中自带了集通数码科技的GT21标准汉字字库芯片。GT21芯片采用了SPI总线,使用相对简单方便。
2.触摸屏:触摸屏是一种极富吸引力的全新交互设备,它极大的简化了系统的使用,使各种类型的系统展现出更大的魅力。触摸屏的三大主要种类是:电阻式触摸屏、声表面波式触摸屏、电容式触摸屏。其中电阻式触摸屏自进入市场以来,就以稳定的质量,可靠的品质及环境的高度适应性占据了广大的市场,占有90%的市场量,已成为市场上的主流产品。本系统即选用电阻式触摸屏。从工作原理来看,要完成电阻式触摸屏的驱动与控制,必须具备以下两个条件。(1)完成电极电压的切换;(2)采集接触点处的电压值(即A/D)。
此时可以通过使用模拟开关与MSP430内部自带的AD转换器来实现电阻式触摸屏的驱动与控制,但是这样会增加系统硬件设计的难度以及软件编写的难度。因此选择使用触摸屏专用控制芯片AD7843是一种简单、有效的解决方式。
3.基于触摸屏的人机交互模块的硬件设计:根据所选择的器件,最终完成的硬件设计如下图所示。
在图中左侧的接口也使用了DC3-10脚插座,与MSP430F2XX最小系统板是一一对应的。连接采用FC3-10芯的排线进行连接。
软件设计
系统工作流程与大多数的微控制器一样,MSP430系列单片机支持汇编与C语言的编程,另外MSP430系列单片机还支持C++语言的编程。由于C语言的优异特性,笔者选用C语言进行编程。目前针对MSP430系列单片机的开发环境中,相对使用比较多的是IAREmbeddedWorkbench。
1MSP430系列单片机低功耗程序结构:由于MSP430系列单片机的在超低功耗的特殊性能,使得基于MSP430系列单片机的编程有自己独到且方便的方面。本系统程序设计选择如下图所示结构。
低功耗的实现是由程序状态寄存器(SR)中的控制位进行控制的。它实现了5种低功耗模式:LPMO、LPM1、LPM2、LPM3、LPM40任何一种低功耗模式都只能与活动模式进行切换,如下图所示。
程序代码编写程序代码要根据不同模块、不同硬件连接方式进行编写。
1Flash驱动:MSP430系列单片机的Flash分为程序Flash和信息Flash。程序Flash按512字节分段,信息Flash按64字节分段。MSP430系列单片机可以对自身的Flash进行读写操作,因此可以将系统设置、状态信息保存在自身的Flash中,从而省去相应的外设。
值得注意的是,Flash的擦除是按段进行的。因此,要改变某一字节的Flash中的内容必须按照以下几个步骤进行。(1)将相应段中的内容读入到内存中保存起来;(2)修改相应字节的内容;(3)段擦除;(4)写入修改后的信息。
2硬件乘法器驱动:硬件乘法器是一个外围器件,它的运算过程与CPU无关,软件通过访问相关的寄存器就可以得到最终的运算结果。(1)操作数1寄存器(OPI)不能直接访问,只能通过4个寄存器MPY、MPYS、MAC或MACS来间接访问,这4个寄存器又代表了不同的乘法操作,分别为无符号乘法运算、有符号乘法运算、无符号乘加运算以及无符号乘加运算:(2)操作数2寄存器(OP2)可以直接访问:(3)当数据写入OP2寄存器时,立即开始相应的运算,运算结果放入RESHI、RESLO以及SUMEXT这3个寄存器中。
3USCI驱动:所谓的USCI指的就是UniversalSerialCommunICationInter-face,通用串行通信接口。MSP430系列单片机提供的USCI包括了硬件的UART、SPI和IIC。
这几种接口有些口线是复用的,有些寄存器也是复用的,在驱动编写中要根据当前不同的器件及其接口在这几个寄存器UCAxCTLO(USCI_AxControlRegistero)、UCAxCTLl(USCI_AxControlRegis-terl)、UCBxCTLO(USCI_BxControlRegisterO)、UCBxCTLl(USCI_BxCon-trolRegisterl)(x=l或2)中进行USCI工作模式的选择。
使用USCI驱动时,可以使用中断方式也可以使用查询方式进行操作。
以查询方式为例,如果通过USCIBO发送一个字节,那么使用如下语句:
第二行代码的作用就是等待发送操作完成。如果通过USCIBO接收一个字节,那么使用如下语句:
第一行代码的作用就是等待接收操作完成。
在这个系统中使用到硬件USCI驱动的芯片有PCF8563(12C)、GT21(SPI)和OSYN06188(UART)。
4数字温湿度传感器驱动:数字温湿度传感器虽然使用了两线串口,但与I2C不兼容。
其时序特点是(1)SCK用于微控制器与SHT之间的通讯同步:(2)DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
在测试的起始要产生启动时序,如下图所示。
由于MSP430系列单片机不支持位操作,因此要将口线某一位置为高电平或者低电平需要使用如下语句:
为了方便代码编写,使用如下预编译语句:5触摸屏控制芯片驱动:
触摸屏控制芯片选用的是AD7843,AD7843是使用了SPI总线的器件。但是经过实验发现AD7843的SPI总线使用MSP430的口线通过编程来模拟SPI总线比较好。
数据是在时钟的上升沿移入AD7843的,所以发送-bit数据的流程就是(1)时钟线置0:(2)设置MOSI线数据;(3)时钟线置1。
如此反复将一个字节数据送入AD7843。数据是在时钟的下降沿移出AD7843的,所以接收-bit数据的流程就是(1)时钟线置1;(2)读取MISO线上的数据;(3)时钟线置0。
6液晶显示模块驱动:选用的液晶显示模块为16位真彩色TFT液晶显示模块,即红色数据5位,绿色数据6位,蓝色数据5位。这款模块的接口是8位的接口,因此对于任何一个像素点都需要送两次字节数据;而模块的命令字依旧是8位的,因此命令只需要送一次字节数据。
7中断服务:在IAREmbeddedWorkbench环境中,中断服务函数有特殊的形式,如下代码所示(P2口的中断服务函数):
在设计中主要使用了P2与P1口的中断服务。
结束语
以硬件设计原理图将MSP430F2XX最小系统板和功能模块通过10芯FC-3排线进行连接,在系统硬件搭建完成后,首先用万用表进行测试,看是否有短路和断路的情况出现。经检测无误,给整个系统供电,对电源模块输出电压进行测试,在正常范围内。打开最小系统板的电源开关,如电源指示灯亮度正常,单片机不发热,即可以进行软硬件统调。
上一篇:利用Proteus虚拟开发技术进行Arduino单片机系统开发
下一篇:基于嵌入式Linux和MiniGUI为平台的智能导诊系统设计
推荐阅读最新更新时间:2024-03-16 15:57