工业现场一般都需要数据采集器来完成各类数据采集任务。在很多实际应用中,往往要求数据采集器具有工作可靠、成本低廉、操作简单、数据便于收集和能用于计算机分析等特点。作为新型移动存储设备,U盘以体积小、速度高、抗震动、通用性强的特点而倍受青睐。如果能在嵌入式数据采集系统中实现USB主机功能,那么嵌入式数据采集器就能像PC机一样方便灵活地利用U盘这类USB存储设备进行数据存储。本文以带有片上A/D转换器的C8051F340处理器和U盘读写芯片PB375A为基础,设计了一款可对100kHz以下的低频模拟信号进行10位深度采样的低成本数据采集器。该数据采集器具有USB主机功能,可将采集的数据以FAT32/FATl6文件系统格式直接存储到普通U盘中。数据采集完毕后,用户可从采集器上取下U盘,利用计算机方便地实现对采集数据进行收集和分析处理。
下面分别介绍数据采集器系统方案设计和系统软硬件设计。
一、系统方案
系统方案如图1所示,系统主要由C8051F340单片机和U盘读写芯片芯片PB375A构成。被测信号通过整形电路进行抗混叠滤波和限幅处理后,送给单片机片上A/D转换器进行采样,当采样数据达到512字节后,单片机通过U盘读写芯片PB375A向U盘写入采样数据。采样数据在U盘中以FAT32文件系统格式写入,并以文本文件形式保存。控制输入电路负责输入用户指令,以控制A/D工作模式和改变采样频率。单片机实现U盘读写和FAT32文件系统时,由于PB375A芯片将USBHOST和文件系统集成到芯片内,所以无须去了解USBHOST和文件系统也可以很简单地实现U盘读写功能。
二、系统硬件
C8051F340内部集成了高精度时钟源、电压调节器、A/D转换器以及用于A/D转换的参考电压源等丰富的片上外设,无须外扩上述电路,从而简化了系统硬件结构,提高了集成度和可靠性。
如图2所示,电源模块输出的5V电压,一方面给U盘供电,一方面通过单片机的FEGIN引脚输入到单片机的电压调节器,使单片机自己生成工作所需的3V电压,并可将生成的3V电压通过VDD引脚送出给其他3V器件使用。单片机利用P21~P24通用I/O引脚模拟4线SPI,实现与PB375A芯片的通信。
这里需要注意两点。第一,C8051F340是3V低功耗单片机,PB375A也是3V系统,二者的电平是直接兼容的。由于U盘需要5V电源系统,因此需要5V电源模块给U盘单独供电。第二,图2所示的PB375A电路原理图并不完整,振荡器电路等附加电路没有全部画出,完整的电路可参考相关文献。被测信号经过信号整形电路后,通过单片机P25脚进入单片机片上A/D转换器。
为了使采集器能尽可能多地应用到不同采集领域,采集器A/D转换的参考电压、转化启动时钟、差分或单端采样选择、采样频率等参数设置均可根据图3所示的用户输入控制电路灵活改变。在图3的8位拨位开关中,开关1用于设置是差分采样还是单端采样,开关2用于设置A/D采样是使用内部还是外部参考电压,开关3用于设置A/D采样是由单片机定时器启动还是由外部输入更新时钟启动,开关4~8用于设置采样频率。开关4~8分别代表10ksps、20ksps、30ksps、40ksps、100ksps,通过开关4~8的不同组合,可以实现以10ksps为步进,10ksps~200ksps采样频率的改变。例如,当8位拨位开关全部闭合时,采样频率为200ksps,且A/D转换采用单端采样方式,采样参考电压需从系统外部输入到图2中的VREF脚,采样更新时钟需从系统外部输入到图2中的CNSTR脚。另外,系统还设计了复位按键及用于下载程序代码和进行调试的10针下载调试接口电路,如图4所示。
三、系统软件
系统软件流程框图如图5所示,C8051F340单片机主程序需要首先完成单片机1/O引脚的设置与相关寄存器配置,然后读取P4口用户输入控制指令,并根据用户指令设置A/D转换器参数,接着初始化PB375A通信端口,进而初始化PB375A芯片。然后发送命令检查U盘是否插入,以及插入的U盘是否准备就绪。一旦U盘准备就绪,就在U盘新建文本文件格式的数据采集文件,然后打开文件,并使文件指针指向文件尾部,以方便后面写入采集数据。所有准备工作完成后,就可以启动A/D转换器。如果采样数据达到U盘1个扇区512字节,就可以将采样数据一次性写入U盘的1个扇区中。这里需要注意两点。第一是为了实现不间断实时采样,在设计数据的采集和存储时采用了“乒乓制”,即在单片机开辟了a、b两个512字节的RAM存储区,而a、b两个存储区分别交替完成存储采样数据和将采样数据搬移到U盘中的任务,二者独立工作,互不干扰,可有效地解决存储数据与搬移数据可能出现的冲突。第二,A/D转换器采集到的数据不是真实的电压值,而是真实电压值与参考电压相比的相对值,因此为了方便今后对采样值的分析,还需要计算出真实采样电压值,并将数字转换为字符后再存储到U盘采样数据文件中。
C8051F340单片机通过PB375A访问U盘,是系统软件的核心部分,在实现这部分功能的程序中可以参考PB375A的U盘读写操作例程函数。这里以系统插入U盘,向U盘写入512字节数据,然后拔出的过程为例,简单介绍单片机访问PB375A的程序流程。
1.发送检测U盘是否存在命令,若U盘插入则返回00成功状态码;若不存在则返回U盘未连接状态码。
2.打开文件,根据文件路径打开对应文件,若操作成功则会返回00成功状态码。
3.定位文件到最后,发送0xFF0xFF0xFF0xFF,则表示指针指向文件最后。
4.写入数据命令,若操作成功,返回00成功状态码。
5.关闭文件。
通过以上五步,最终完成对U盘的访问。
四、PB375A性能简介
PB375A作为一款优秀的单片机读写U盘方案芯片,集成USBHOST和文件系统,让其在系统增加U盘读写功能时无须了解底层的USBHOST协议和文件系统,需要做的只是发送几个简单的命令,且对单片机的ROM空间和RAM都要求极小。其主要性能如下:
1.支持1.5Mbps低速和12Mbps全速USB通讯,兼容USBV2.0,外围元器件只需要晶体和电容。
2.支持USB-HOST主机接口,支持等效命令集的USB存储设备(包括U盘/USB、硬盘/USB、闪存盘/USB读卡器)。
3.检测USB设备的连接和断开。
4.支持SD卡以及与其协议兼容的MMC卡和TF卡等。
5.内置FATl6和FAT32以及FATl2文件系统的管理固件,支持容量高达32GB的U盘和SD卡。
6.提供文件管理功能:打开、新建或删除文件,定位文件位置。
7.提供文件读写功能:以字节为最小单位对多级子目录下的文件进行读写。
8.提供SPI设备接口,支持连接到单片机的SPI串行总线。
9.提供异步串口,支持连接到单片机的串行口。
10.3.3V电源电压及3V电源电压,支持低功耗模式。
小结:本文介绍的数据采集器,利用高度集成的C8051F340处理器实现数据A/D转换和系统控制,利用PB375A实现采集器的USB主机及文件系统功能,使采集的数据能以FAT32文件系统格式直接存储到 U 盘中。该采集器数据收集方便,便于计算机分析,仅有C8051F340 和PB375A两个主要器件,结构简单,工作稳定,只有名片大小,成本不足45 元(不包括U 盘),现该方案已成功应用于工业现场。