摘 要: 随着微控制器技术的飞速发展,各种微电子器件性能不断提升,功耗却不断降低。技术的进步使得高度、低功耗的数据采集系统得以实现。本文就以此为设计思想,介绍基于 MSP430F14X 芯片制作的黏度计的工作原理及软硬件的设计方法。系统不仅实现了对液体黏度的高精度测量,而且实现了整个测量过程的智能化和自化。
0 前 言
在科学研究、工业检测及其他领域中,数据采集与监测已经成为日益重要的技术。在许多工业测控机械、医疗检测仪器以及消费电子产品中,都对数据采集系统的实时性与功耗提出了进一步要求: 即在满足微功耗、微型化的总体设计原则的基础上,又要能实时反映现场采集数据的变化。这就对系统的功耗、采样速度、数据存储和传输速度等提出了更高的要求。本设计就是以高速度、低功耗作为设计思想来完成数据采集与显示系统的制作。对于 MCU 的选择上,设计中采用的是 TI 公司研制的 MSP430 系列超低功耗单片机作为核心控制元件,用来实现了数据的高速采集与显示。通过使用该类型单片机使得本设计中的系统主要特点为: 功耗低、速度高。而作为一个低功耗的数据采集系统,可以将其作为便携式仪器对被测液体黏度进行实时检测,有很高的实用价值。
1 黏度计数据采集系统总体方案设计
本设计的思想是用传感器对液体的黏度进行测试,将传感器输出模拟电压量进行16 位的 AD 转换成数字量后,传入单片机内进行数据处理。处理后的结果送给点阵显示屏,通过扫描方式由液晶显示出来。而后用FT245BM 芯片来实现单片机和 PC 机之间的通用串口总线进行信息传输,在 PC 机上可以查看测得的数据。图 1为系统方案设计总框图。

2 黏度计数据采集系统的硬件设计
下面将介绍各个模块硬件电路的设计与连接,其中AD7705 的 RESET、SCLK、DIN、DOUT、DRDY 管脚分别接到 MSP430F149 单片机的 P3 口的 3、4、6、5、7 口。用以来控制 AD 的工作方式和读写操作; 液晶的 CDA、SCLK、A0、CS、管脚接在单片机的 P6 口的 0、1、2、3 口。来控制液晶显示的操作。设计中将 17 和 15 脚之间接滑动变阻器通过调节两管教间的电压来调节液晶背景的亮度; 芯片 FT245BM 的数据口接在单片机的 P4口上。其控制管脚 RD 、WR、TXE#、RXF#、PWREN#分别接在单片机 P3 口 0、1、2,P5 口的 1、0 管脚本设计用的是其写的操作。总体硬件电路图如图 2 所示。

3 黏度计数据采集系统的软件设计
本系统的采用 C 语言编写,实现功能包括: 16 位外部 A/D 采样、LCD 显示和 USB 口发送,其中 16 位外部 A/D 采样可由单片机控制采样方式,即循环采样和固定通道采样,LCD 显示采样值,系统通过 USB 数据传输方式和上位机进行通讯。图 3 为本系统软件主流程图:

3. 1 AD 数据采集系统的主程序设计
在本设计中选择时钟寄存器的数据刷新频率为 50 赫兹,设置寄存器的工作方式为自校准,增益 1,单极性,无缓冲,不同步。这样提高了数据采集的精度。在本设计中使用 FT245BM 器件来实现 USB 通信,它的传输速率为 1Mbyte/s。AD 的采集速率完全可以满足其传输速率的要求。
3. 2 单片机与 PC 机接口的程序设计
USB 接口软件是配合接口硬件实现 USB 数据的高效快速传输,包括微控制器端和 PC 端两部分。
3. 2. 1 微控制器端软件的设计
本设计需要向 PC 机发送数据,在管脚设计上用了 WR 和TXE#两个管脚进行操作. 写操作时序见图 4。当 TXE#为低,表示当前 FIFO 发送缓冲区空,可以向发送缓冲区写入数据。在 WR 为高电平时,微控制器将8 位数据 D[0. . . 7]送到并行I / O 口上,在 WR 信号电平由高变低时数据被写入发送缓冲区中。当 TXE#为高时,表示当前 FIFO 发送缓冲区已满或者正在写入上一个字节,此时禁止向发送缓冲区中写入任何数据。微控制器向 FT245BM 写入数据时确保 TXE#为低。

该部分设计程序如下:
void sendto_computer( )
{
int i;
i = ( convert_u /1. 91) * 255;
P3DIR & = ~ BIT2;
WDTCTL = WDTPW + WDTHOLD;
while( ( P3IN&BIT2) ! = 0)
{
asm( " nop" ) ;
}
P4DIR = 0xff;
P4OUT = i;
P3DIR | = BIT1;
_NOP( ) ;
_NOP( ) ;
_NOP( ) ;
P3OUT | = BIT1;
P3OUT & = ~ BIT1;
}
3. 2. 2 PC 机端软件的设计
当外设连到主机 USB 接口时,主机会检测到新硬件,这时需要安装一个可从 FTDI 公司的网站上下载的虚拟串口驱动程序,本设计在下面编写了一个针对虚拟串口通信的应用程序,把虚拟串口当作成一个标准的串口去访问.
设计的软件部分可使用 VB 语言中提供的串口通信 MSComm 控件进行应用程序编写,编程时通常把虚拟串口设置为 COM3,即将 MSComm. SetCommPort 置 3,MSComm. SetSdttings 置为”9600,n,8,1”。
VB 具体显示界面如图 5 所示:

3. 3 液晶显示部分程序设计
软件设计的重点,是利用 C51 语言来编写单片机的液晶显示程序。在现代的编程方式中 C 语言编写单片机程序的优越性越来越明显,采用 C 语言编写单片机程序成为一种发展趋势。其中对液晶编程显示流程如图 6 所示:

4 黏度计数据采集系统联机调试与结论
通过硬件电路的调试,每个部分硬件供电正常,管脚连接无误,通过 IAREmbedded Workbench 软件把已经编好的程序烧进单片机 MSP430F149 中,在对AD 进行联合调试发现 AD 的 P4 口的数据传输方向必须用 AD_RESET 来定义,因为管脚为非,当此为高电平时 AD 不复位。否则 AD 不能正常工作。AD 的工作模式上选择了它在自校准的模式下工作,在自校准模式( MD1MD0 = 01)中,AD7705 在内部短接两个输入端( 比如 AIN ( + ) = AIN ( - ) = Vref) ,以得到用来确定校准系数的零标度系数,只要模拟输入引脚上的信号不超出正常范围,它们就不会影响校准过程。而满标度系数则可以在选定的增益下,通过在输入端施加电压 Vref 来确定,确定满程电压便能采回确定电压数据,这样经过校准后,这些数据可以通过液晶用浮点数显示。
在下一部分的调试程序的运行上,经 USB 传输时我定义芯片为发送数据模式,直接用单片机的 I/O 口来进行控制,并将数据以八位数据形式传送,这使得精确度和液晶显示稍有不同,但是基本传输显示功能得到实现,基本完成该设计的要求。
如表 1 所示,经过自校准,AD 采集的电压值可以精确到毫伏的数量级以上。由采样电压分析,AD 采集的电压相对误差最多为 0. 7%,通过 FT245BM 八位数据传输所实现的内容距离电压实测值还有一定的偏差,可以精确到小数点后第二位。

5 结语
通过调试和系统整体性能测试证明该系统能够满足规定要求,实现了对数据实时采集和显示功能。但是要做成实用的产品,系统还有待于改进。主要有以下三点:
( 1) 在恶劣环境下测试系统优化设计方案。
( 2) 降低功耗、减小体积,以便做成便携式产品。
( 3) 考虑优化元件布局和外壳以增加数据采集系统的抗干扰能力。
参考文献:
[1] 王君,凌振宝. 传感器原理及检测技术[M]. 长春: 吉林大学出版社,2003.
[2] 程德福,林君. 智能仪器[M]. 北京: 机械工业出版社,2004.
[3] 王玉彩,王福增,王渝,等. MSP430F1101 单片机在数据采集中的应用[J]. 现代电子技术,2005,28( 21) : 70 -72.
[4] 赵亮,侯国锐. 单片机 C 语言编程与实例[M]. 北京: 人民邮电出版社,2003.
[5] 鞠春阳.12864 点阵液晶显示器资料及程序[EB/OL]. ( 2004 -11 -30) [20111 -12 -20]. http: / /www. mcuzb. com.
[6] 刘立群,孙志毅,金坤善. 基于 MSP430 单片机的超低功耗数据采集器设计[J]. 自动化仪表,2005,26( 4) : 30 -31.
本文作者:康 泰 凌振宝




