DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 100|回复: 0
打印 上一主题 下一主题

基于C8051F340的低成本数据采集器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-21 23:27:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 引言
   
工业现场一般需要数据采集器完成各类数据采集任务。实际应用中要求数据采集器工作可靠,成本低廉,操作简单,便于数据收集和分析,既能与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一个主器件,结构简单,工作稳定,体积小,成本低,现已成功用于工业现场。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-13 21:46 , 耗时 0.096024 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表