基于MSP430的手持式仪器核心模块设计
2010-12-18 09:55:32
来源:《半导体器件应用》2009年12月刊
点击:1845
0 引言
手持式仪器是嵌入式系统应用开发的重要领域,手持式仪器具有便于携带、操作方便、LCD显示清晰等优点[1]。本文结合手持式电量测量仪开发项目,设计了以MSP430F449为核心的手持式仪器。系统采用16位A/D转换器AD7705和128×64像素LCD图形显示器设计互动式图形用户界面,用于显示测量结果数字和图形。符合人体工程学的按键和易于操作的菜单,实现了仪器的4按键图形菜单操作。设计了对测量数据进行分析处理并实时存储的应用软件。仪器具有测量精度高、数据处理能力强、信息容量大、智能化、体积小、功耗低等特点,适合于电池供电的工作环境。
1 核心模块硬件设计
1.1 16位嵌入式处理器MSP430F449单片机
MSP430[2-3]系列单片机是一种16位超低功耗微处理器,德州仪器公司产品。低供电电压范围为1.8~3.6V,1MHz时钟运行时耗电电流在0.1μA~400μA之间,并具有多种低功耗模式,关断模式下耗电仅为0.1μA;从中断请求到CPU唤醒只要6μs;具有丰富的片内资源。本系统中选用的是MSP430F449单片机,该单片机具有5种节电模式(LPMO~LPM4),1MHz下工作电流0.1μA~280μA,具有2个16位和1个8位定时器;具有1个12位A/D转换器,2个串行通信接口,可通过软件选择UART/SPI模式;Flash存储器多达60KB,RAM多达2KB。
手持式仪器核心模块基本组成的硬件电路框图如图1所示。
1.2 FIash数据存储器
由于系统要存放大量的数据,因此需要大容量的存储芯片。可选用的存储芯片主要有EEFPROM、Flash、FRAM等类型。FRAM存储器虽然擦写次数无限制但其价格昂贵,EEPROM、Flash型存储芯片虽有擦写次数的限制但价格较低,其中Flash存储容量更大。本文选用AT45DB041B[4]串行Flash芯片作为数据存储器。AT45DB041B与AT45DB041、AT45DB041A完全兼容,但供电电压更低,为2.5V~3.6V或者2.7V~3.6V,功耗更低,且封装尺寸和引脚数更少。该存储器主存储页容量为4Mb,共分为2048页,每页容量为264字节。此外还具有2个264字节的缓存(BUFFERl、BUFFER2),在主存被编程时仍可接收数据。它采用SPI串口模式0~3可与任何单片机或微机进行通信,几乎无需外接元器件。电路开发较为简单,而且数据存储量大,安全性较好。
1.3 16位A/D转换器AD7705[5]
模数转换器选择ADI公司的16位∑-△A/D转换器AD7705。该器件提供双三通道、低成本、高分辨率的模数转换功能。由于采用∑-△结构并具有可编程增益放大器,应用于低频测量的模拟前端,可以直接接收来自传感器的低电压输入信号,实现16位无丢失代码并产生串行的数字输出。当电源电压为3.3V,基准电压为1.225V时,可处理0mV~1.0mV或0V~1.225V的单极性模拟输入信号;双极性模拟输入信号范围是±10mV及±1.225V,无需外部仪表放大器,简化了仪器硬件电路的设计。AD7705工作电压为2.7V~3.3V,与系统CPUMSP430F449的3.3V端口电压兼容,可直接与MSP430F449连接。AD7705的CMOS功耗极低,3V电压时最大功耗为1mw。器件带有节电模式,方便电池供电。AD7705能确保14位的准确度,分辨率达到小数点后4位,满足系统对测量数据小数点后3位的准确性要求。在本仪器核心电路设计中,采用MSP430F449的并行口模拟SPI串行口时序,实现对AD7705的操作。在AD7705的PCB设计时,应避免在器件下布置数字信号线,否则会导致片内噪声成倍增加。同时,应注意模拟地与和数字地在一点接地。
1.4 128×64 LCD显示器
液晶模块选用北京青云创新科技发展公司的LCM128645ZK液晶模块,显示内容为128×64点阵,外形尺寸为93mm×70mm×13mm,视域尺寸为70.7mm×38.8mm,显示类型为STN黄绿模式,正向显示,控制器为ST7920,工作电压3.3V,和微处理器供电电压兼容。该模块自带8000多GBl、GB2中文汉字字库,具有8位、4位并行编程模式和3线串行编程模式。引脚定义如表1所列。串行编程模式下所需I/O口线少,硬件连接简单。本系统即采用串行编程模式。
2 核心模块通用功能函数设计
核心模块设计了通用功能函数,便于编写应用程序时调用。通用功能函数在IAR Embedded Workbench环境下采用C语言设计开发。
2.1 Flash数据存储器函数设计
系统采用MSP430F449的P3口对Flash存储器AT45DB041B进行控制,它和MSP430F449的连接如图2所示。P3.6连接片选端,P3.5连接串行时钟端,P3.4连接串行数据输入端,P3.3连接串行数据输出端,配合P3.0和P3.1的操作实现对存储器的读写等操作。
2.2 核心模块LCD显示函数设计
在系统内,单片机MSP430F449通过P5口与液晶模块LCM128645ZK串行通信,P5.7接液晶的RS(CS)端,P5.6接液晶的R/W(STD)端,P5.5接液晶的SCLK端,如图3所示。P4.7通过1个三极管构成开关电路来控制液晶是否供电,达到系统最低功耗的目的。
2.3 核心模块A/D转换函数设计
在系统内,单片机MSP430F449与AD7705的接线原理如图4所示,P2.0连接SCLK端,P2.1连接CS选择端,P2.2连接DIN端,P2.3连接DOUT端,P2.4连接DRDY端,2路输人采用差分输入方式。通过访问AD7705的8个寄存器实现对AD7705的所有操作。
①通信寄存器。所有对器件的通信必须从写通信寄存器开始。上电或复位后,默认为等待指令,写入通信寄存器。由通信寄存器选择位RS2~RS0指定下次访问的寄存器。R/w位选择下次是读操作还是写操作,输入通道选择位CH1、CH0选择输入模拟通道。
②设置寄存器。可读/写的8位寄存器,用于设置工作模式、增益、极性、缓冲器控制和滤波器同步。
③时钟寄存器。可读/写的8位寄存器,用于设置有关AD7705运行频率参数和A/D转换输出更新速率。
④数据寄存器。16位只读寄存器,存放AD7705最新的转换结果。
⑤测试寄存器、零标度校准寄存器、满标度校准寄存器等。用于测试和存放校准数据,可用来分析噪声和转换误差。
部分核心函数如下:
AD7705_write_com_reg(0x21);
//选择通道1,下次操作为写时钟寄存器
AD7705_write_clock_reg(50);
//输出更新率50Hz,滤波器截止频率1311Hz
AD7705_write_com_reg(0x11);
//选择通道1,下次操作为写设置寄存器
AD7705_write_setup_reg(1.0x01);
//设定增益值为1,首先工作在自校准模式下
while (1) {
while (rPDATC&0x02); //等DRDY信号变低
AD7705_write_com_reg(0x39);
//写通信寄存器,设定下一次操作为读数据寄存器
result=(AD7705_read 16>>2); //只取14位确定值
}
2.4 核心模块电源设计
电源设计是手持式仪器系统设计的难点,本课题权衡了低功耗、低成本、稳定可靠等诸多因素。由电源芯片IM1117-3.3提供MSP430F449微处理器的集成I/O和Flash、A/D、128×64像素LCD等外设的工作电源;LMlll7-5超低压降线性稳压电源芯片实现电池电压到5V的转换,并由HZD05-12D12模块为前端传感器提供±12V电源。其中HZD05-12D12为双路输出,均衡负载直流一直流双输出模块,输入电压范围9V~18V,输出电压±12V,额定输出电流±O.21A。系统电源电路如图5所示。
该电路可以满足系统不同部件的供电需求。仪器由外接AC电源变换/充电器或内置12.6V的锂电池组供电。
3 结语
本文讨论手持式仪器核心电路的硬件和软件设计。采用MSP430F449作为手持式仪器的控制核心,用LCMl28645ZK LCD模块作为仪器显示器。采用16位A/D转换器AD7705,设计多通道、高性能、高精度的测量部件。手持式仪器核心电路还设计了可提供3.3V、5V、±12V的4路电压的电源模块。此手持式仪器核心电路系统已用于手持式电量测量仪中。实践证明,该系统具有手持式使用、测量精度高、数据处理能力强、功耗低、电池供电等特点。本文介绍的MSP430的手持式仪器核心模块硬件软件具有通用性,可直接应用于手持式仪器中。
手持式仪器是嵌入式系统应用开发的重要领域,手持式仪器具有便于携带、操作方便、LCD显示清晰等优点[1]。本文结合手持式电量测量仪开发项目,设计了以MSP430F449为核心的手持式仪器。系统采用16位A/D转换器AD7705和128×64像素LCD图形显示器设计互动式图形用户界面,用于显示测量结果数字和图形。符合人体工程学的按键和易于操作的菜单,实现了仪器的4按键图形菜单操作。设计了对测量数据进行分析处理并实时存储的应用软件。仪器具有测量精度高、数据处理能力强、信息容量大、智能化、体积小、功耗低等特点,适合于电池供电的工作环境。
1 核心模块硬件设计
1.1 16位嵌入式处理器MSP430F449单片机
MSP430[2-3]系列单片机是一种16位超低功耗微处理器,德州仪器公司产品。低供电电压范围为1.8~3.6V,1MHz时钟运行时耗电电流在0.1μA~400μA之间,并具有多种低功耗模式,关断模式下耗电仅为0.1μA;从中断请求到CPU唤醒只要6μs;具有丰富的片内资源。本系统中选用的是MSP430F449单片机,该单片机具有5种节电模式(LPMO~LPM4),1MHz下工作电流0.1μA~280μA,具有2个16位和1个8位定时器;具有1个12位A/D转换器,2个串行通信接口,可通过软件选择UART/SPI模式;Flash存储器多达60KB,RAM多达2KB。
手持式仪器核心模块基本组成的硬件电路框图如图1所示。
1.2 FIash数据存储器
由于系统要存放大量的数据,因此需要大容量的存储芯片。可选用的存储芯片主要有EEFPROM、Flash、FRAM等类型。FRAM存储器虽然擦写次数无限制但其价格昂贵,EEPROM、Flash型存储芯片虽有擦写次数的限制但价格较低,其中Flash存储容量更大。本文选用AT45DB041B[4]串行Flash芯片作为数据存储器。AT45DB041B与AT45DB041、AT45DB041A完全兼容,但供电电压更低,为2.5V~3.6V或者2.7V~3.6V,功耗更低,且封装尺寸和引脚数更少。该存储器主存储页容量为4Mb,共分为2048页,每页容量为264字节。此外还具有2个264字节的缓存(BUFFERl、BUFFER2),在主存被编程时仍可接收数据。它采用SPI串口模式0~3可与任何单片机或微机进行通信,几乎无需外接元器件。电路开发较为简单,而且数据存储量大,安全性较好。
1.3 16位A/D转换器AD7705[5]
模数转换器选择ADI公司的16位∑-△A/D转换器AD7705。该器件提供双三通道、低成本、高分辨率的模数转换功能。由于采用∑-△结构并具有可编程增益放大器,应用于低频测量的模拟前端,可以直接接收来自传感器的低电压输入信号,实现16位无丢失代码并产生串行的数字输出。当电源电压为3.3V,基准电压为1.225V时,可处理0mV~1.0mV或0V~1.225V的单极性模拟输入信号;双极性模拟输入信号范围是±10mV及±1.225V,无需外部仪表放大器,简化了仪器硬件电路的设计。AD7705工作电压为2.7V~3.3V,与系统CPUMSP430F449的3.3V端口电压兼容,可直接与MSP430F449连接。AD7705的CMOS功耗极低,3V电压时最大功耗为1mw。器件带有节电模式,方便电池供电。AD7705能确保14位的准确度,分辨率达到小数点后4位,满足系统对测量数据小数点后3位的准确性要求。在本仪器核心电路设计中,采用MSP430F449的并行口模拟SPI串行口时序,实现对AD7705的操作。在AD7705的PCB设计时,应避免在器件下布置数字信号线,否则会导致片内噪声成倍增加。同时,应注意模拟地与和数字地在一点接地。
1.4 128×64 LCD显示器
液晶模块选用北京青云创新科技发展公司的LCM128645ZK液晶模块,显示内容为128×64点阵,外形尺寸为93mm×70mm×13mm,视域尺寸为70.7mm×38.8mm,显示类型为STN黄绿模式,正向显示,控制器为ST7920,工作电压3.3V,和微处理器供电电压兼容。该模块自带8000多GBl、GB2中文汉字字库,具有8位、4位并行编程模式和3线串行编程模式。引脚定义如表1所列。串行编程模式下所需I/O口线少,硬件连接简单。本系统即采用串行编程模式。
2 核心模块通用功能函数设计
核心模块设计了通用功能函数,便于编写应用程序时调用。通用功能函数在IAR Embedded Workbench环境下采用C语言设计开发。
2.1 Flash数据存储器函数设计
系统采用MSP430F449的P3口对Flash存储器AT45DB041B进行控制,它和MSP430F449的连接如图2所示。P3.6连接片选端,P3.5连接串行时钟端,P3.4连接串行数据输入端,P3.3连接串行数据输出端,配合P3.0和P3.1的操作实现对存储器的读写等操作。
2.2 核心模块LCD显示函数设计
在系统内,单片机MSP430F449通过P5口与液晶模块LCM128645ZK串行通信,P5.7接液晶的RS(CS)端,P5.6接液晶的R/W(STD)端,P5.5接液晶的SCLK端,如图3所示。P4.7通过1个三极管构成开关电路来控制液晶是否供电,达到系统最低功耗的目的。
2.3 核心模块A/D转换函数设计
在系统内,单片机MSP430F449与AD7705的接线原理如图4所示,P2.0连接SCLK端,P2.1连接CS选择端,P2.2连接DIN端,P2.3连接DOUT端,P2.4连接DRDY端,2路输人采用差分输入方式。通过访问AD7705的8个寄存器实现对AD7705的所有操作。
①通信寄存器。所有对器件的通信必须从写通信寄存器开始。上电或复位后,默认为等待指令,写入通信寄存器。由通信寄存器选择位RS2~RS0指定下次访问的寄存器。R/w位选择下次是读操作还是写操作,输入通道选择位CH1、CH0选择输入模拟通道。
②设置寄存器。可读/写的8位寄存器,用于设置工作模式、增益、极性、缓冲器控制和滤波器同步。
③时钟寄存器。可读/写的8位寄存器,用于设置有关AD7705运行频率参数和A/D转换输出更新速率。
④数据寄存器。16位只读寄存器,存放AD7705最新的转换结果。
⑤测试寄存器、零标度校准寄存器、满标度校准寄存器等。用于测试和存放校准数据,可用来分析噪声和转换误差。
部分核心函数如下:
AD7705_write_com_reg(0x21);
//选择通道1,下次操作为写时钟寄存器
AD7705_write_clock_reg(50);
//输出更新率50Hz,滤波器截止频率1311Hz
AD7705_write_com_reg(0x11);
//选择通道1,下次操作为写设置寄存器
AD7705_write_setup_reg(1.0x01);
//设定增益值为1,首先工作在自校准模式下
while (1) {
while (rPDATC&0x02); //等DRDY信号变低
AD7705_write_com_reg(0x39);
//写通信寄存器,设定下一次操作为读数据寄存器
result=(AD7705_read 16>>2); //只取14位确定值
}
2.4 核心模块电源设计
电源设计是手持式仪器系统设计的难点,本课题权衡了低功耗、低成本、稳定可靠等诸多因素。由电源芯片IM1117-3.3提供MSP430F449微处理器的集成I/O和Flash、A/D、128×64像素LCD等外设的工作电源;LMlll7-5超低压降线性稳压电源芯片实现电池电压到5V的转换,并由HZD05-12D12模块为前端传感器提供±12V电源。其中HZD05-12D12为双路输出,均衡负载直流一直流双输出模块,输入电压范围9V~18V,输出电压±12V,额定输出电流±O.21A。系统电源电路如图5所示。
该电路可以满足系统不同部件的供电需求。仪器由外接AC电源变换/充电器或内置12.6V的锂电池组供电。
3 结语
本文讨论手持式仪器核心电路的硬件和软件设计。采用MSP430F449作为手持式仪器的控制核心,用LCMl28645ZK LCD模块作为仪器显示器。采用16位A/D转换器AD7705,设计多通道、高性能、高精度的测量部件。手持式仪器核心电路还设计了可提供3.3V、5V、±12V的4路电压的电源模块。此手持式仪器核心电路系统已用于手持式电量测量仪中。实践证明,该系统具有手持式使用、测量精度高、数据处理能力强、功耗低、电池供电等特点。本文介绍的MSP430的手持式仪器核心模块硬件软件具有通用性,可直接应用于手持式仪器中。
本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
暂无评论