基于C8051F340的低成本数据采集器设计
扫描二维码
随时随地手机看文章
工业现场一般需要数据采集器完成各类数据采集任务。实际应用中要求数据采集器工作可靠,成本低廉,操作简单,便于数据收集和分析,既能与PC机联机工作又能独立采集数据。为此,本文以带有片上USB控制器和D/A转换器的高度集成处理器C8051F340为核心器件,采用SD卡存储技术利用USB总线、虚拟仪器实现软件LabVIEW设计图形用户界面,设计一款低成本数据采集器。该数据采集器可与PC机共同实现数据采集与分析,也可长时间独立工作于工业现场,并将采集数据存放于大容量SD卡,便于数据收集并利用计算机分析。数据采集器的核心器件C8051F340是完全集成的混合信号片上系统型MCU,具有高达48 MI/s速率、流水线结构的8051兼容微控制器内核:全速、非侵入式的在线调试接口;带有8个灵活的端点通道,具有收发器和1 KB FIFO RAM的USB功能控制器;电源稳压器;带有模拟多路器的10位200 KS/s的单端/差分ADC;精确校准的12 MHz内部振荡器和4倍时钟乘法器;多达64 KB的片内Flash存储器;4 352字节片内RAM;具有5个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列;3.3 V工作电压,功耗低且带有片内上电复位、VDD监视器和时钟丢失检测器;容许5 V输入的多达40个I/O端口。还有与此处理器配套的免费集成开发软件Silicon Labs IDE,以及专为其片上USB控制器开发的USBXpress开发套件,从而使得USB软件开发变得容易。
2 系统设计方案
系统设计框图如图1所示,整个系统由PC机和C8051F340数据采集模块组成。PC机部分主要是软件设计,包括LabVIEW软件编写的数据采集图形用户界面和C8051F340单片机片上USB主机API,负责接收、显示和处理由数据采集模块通过USB接口发送的采集数据。而数据采集模块主要由C8051F340处理器、预处理电路和SD卡构成,负责通过C8051F340片上D/A采集经预处理电路的被测信号,再将采集信号存储至SD卡,并经USB总线传输给PC机显示。另外,LabVIEW应用程序和C8051F340应用程序均是采用Silicon Laboratories公司提供的USBXpress开发套件的API和驱动程序来实现对底层USB器件的读写操作。
3 硬件设计
系统的硬件设计主要是数据采集模块。由于C8051F340内部集成了高精度时钟源、USB控制器、电压调节器、A/D转换器以及用于A/D转换的参考电压源等丰富的片上外设,因此在对数据采集模块硬件设计时,无需扩展上述电路,使得系统硬件结构简单,集成度高,可靠性好。如图2所示,通过片上USB接口,C8051F340与PC机相连,从PC机USB接口+5 V端提取电源输入至REGIN引脚,内部电压调节器提供+3.3 V电压。SD卡等元件的供电也由PC机USB接口提供,但需经+5 V至+3.3 V的电压转换电路。此外,系统还具有独立的电源模块,应对系统独立运行而现场USB不能供电的情况。C8051F340通过其片上P00~P03引脚与SD卡连接,实现SPI模式通信。需要说明的是:P01与D0和P02与DI的两条连接线应该分别接10 kΩ和100 kΩ的上拉电阻,图2中省略。系统还设计了复位按键,用于下载程序代码和进行调试的10针下载调试接口,用于对被测信号限幅和防混叠滤波的预处理。PC机和数据采集模块互连的USB连接线应选用带有双磁环保护的连接线,以保护数据采集模块由于USB经常连接带电拔插或其他干扰而遭受损坏。
4 软件设计
系统软件主要包括PC机LabVIEW程序和C8051F340处理器程序。
4.1 PC机LabVIEW程序设计
PC机LahVIEW程序设计主要完成用户图形界面和基于USB主机通信程序两大功能,从而实现人机交互,并将用户输入的指令和采集模块采集的数据通过USB总线在PC机和C28051F340之间传递。用户图形界面属于LabVIEW的前面板设计,较为简单,这里主要讨论LabVIEW的程序面板(后面板)设计。如图3所示,整个程序流程完全围绕USB通信展开,流程图中所涉及的SI_GetNumDevices()、SI_GetProductString()等函数均是Silicon Lab公司专为C8051F340单片机USB功能开发的USB主机端API函数。通过上层应用程序中直接调用这些函数可以方便快捷地实现对USB底层硬件的访问。
4.2 C8051F340处理器程序设计
C8051F340单片机程序设计主要完成两大功能,一是基于USB器件的通信程序,接收从USB主机发送的用户指令并将采集的数据或SD卡中存储的采集数据发送给USB主机;二是A/D转换程序和SD卡读写程序。
图4为C8051F340处理器USB通信程序流程图。整个程序流程是以USB通信为主线,流程图中所涉及的USB Clock Start()、USB Init()等函数均是Silicon Lab公司专为C8051F340单片机USB功能开发的USB端API函数。通过在C8051F340上层应用程序中直接调用这些函数可以方便快捷地实现对USB底层硬件的访问。A/D转换程序简单,可通过设置C8051F340片上定时器确定A/D转换器的采样周期,由定时器的溢出周期性的启动A/D转换器采样被测数据。C8051F340通过SPI接口与SD卡进行通信,完成采集数据的存储或读取。但SD卡上电后默认工作在SD卡通信模式,因此C8051F-340上电后对SD卡的初始化设置时,须将其SD卡通信模式转换为SPI通信模式。具体操作过程:C8051F340先向SD卡发出复位命令CMD0,若SD卡接收到返回值Ox01,则说明SD卡的SPI通信模式设置成功,至少经过74个时钟周期延时,就可进行SPI通信。SD卡的读写是以数据块为单位,数据块的长度最大可设置为512字节,另外出于避免对SD卡过于频繁访问的考虑,被测信号采样后的采样值一般不能直接存储到SD卡中,等采样数据凑足设定的块数据后,再集中存入SD卡。C8051F340通过SPI接口从SD卡读取或存储一块数据的流程如图5所示。需要说明的是C8051F340向SD卡写入数据,在图5所示的流程后,C8051F340将接收到SD卡发送的响应信息,从而确定C8051F340向SD卡写入的数据是否正确。
5 结束语
本文设计的数据采集器利用高度集成的器件C8051F340实现数据A/D转换、USB总线通信和系统控制,可与计算机联机,也可利用大容量SD卡长时间现场独立工作,数据采集方便。该数据采集器仅采用C8051F340一个主器件,结构简单,工作稳定,体积小,成本低,现已成功用于工业现场。