以C8051F340单片机为核心的数据采集系统设计

发布者:幸福时光最新更新时间:2024-01-03 来源: elecfans关键字:C8051F340  单片机  数据采集系统 手机看文章 扫描二维码
随时随地手机看文章

1引言

电子设备运行状态的稳定性直接影响到现代企业的生产, 设备发生故障后高昂的维修费以及设备停机后给企业生产带来的损失, 使得各个企业纷纷采取措施, 降低设备的故障率。通过数据采集系统准确的获取设备运行特征数据, 并对数据进行分析,判断设备的运行状态是否良好, 达到提前预防故障出现、减少停机检修的目的。实际应用中对数据采集系统的可靠性, 准确性和便携性要求很高。目前常用的数据传输网络(如RS232 /RS485, CAN 等)已经不能满足大量采集数据和高速实时数据传输的要求。而USB传输具有高速可靠传输的优势, 具有成本低、可靠性高、维护方便等优点。本文以带有片上USB 和高速AD转换器的C8051F340为核心控制器件, 利用USB总线高速传输的特性, 设计了一款高速度低成本的数据采集系统, 采集信号包括该设备输出气体的温度、压力和流量等14个参数, 适用于特定设备运行状态的数据采集工作。


2系统设计

系统设计图如图1所示, 系统主要由C8051F340数据采集模块与上位PC机构成。需要监控的数据通过系统前端的传感器转换后送入预处理电路, 从预处理电路输出的数据通过I/O端口送入AD转换端口,经过AD转换将数据保存到C8051F340单片机, 最后通过USB把数据送入上位PC机保存处理。

以C8051F340单片机为核心的数据采集系统设计

图1 系统设计框图


3 硬件设计

在整个硬件设计中C8051F340 单片机是系统重要的组成部分。C8051F340单片机是S ilicon Laboratories公司推出的完全集成的混合信号片上系统型MCU。具有高速、流水线结构的8051兼容的微控制器内核( 可达48M IPS ); 通用串行总线(USB )功能控制器, 有8 个灵活的端点管道, 集成收发器和1K FIFO RAM; 真正10位200ksps的单端/差分ADC, 带模拟多路器; 片内电压基准和温度传感器; 精确校准的12MH z内部振荡器和4 倍时钟乘法器; 多达64KB 的片内FLASH 存储器; 多达4352字节片内RAM ( 256+ 4KB ); 多达40个端口I/O (容许5V 输入)采集系统的电路设计。

由于C8051F340本身集成众多硬件电路的特性, 硬件接口设计变得非常简单, 不需要再添加额外的电子元器件就能实现USB 的数据传输和AD转换等, 使得系统的硬件结构简单, 集成度高, 可靠性好。如图2所示, 单片机通过片上USB 接口与上位PC 机连接进行数据的传输。C8051F340上的P2. 0~ P2. 6引脚作为数据采集的输入端口, 接受来自预处理电路输送过来的数据, 最后通过单片机的模拟多路选择器( AMUX) 最终决定进入AD 转换的通道。

以C8051F340单片机为核心的数据采集系统设计

图2 数据采集硬件原理图。

4 软件设计

系统的软件部分包括单片机固件和上位PC 机客户端程序。单片机固件主要负责单片机初始化及与上位机的通信准备, 而客户端程序则负责对固件中相应控制的调用, 实现数据的传输控制、数据保存以及故障的预警。

4. 1 单片机固件( firmw are)

单片机固件采用K eil uV ision3软件进行编写,由主程序, AD数据转换, USB通讯三个模块组成。

主程序负责初始化单片机的各个端口和功能模块, 设置相应的IO 端口为数据输入端口, 完成各项初始化后通过vo id USB_API_TEST _ISR ( void)函数进入USB中断服务, 在中断服务中通过调用Get_Interrupt_Source( )函数获得USB 中断源。然后根据不同的入口情况, 来进行相应的处理。比如收到初始化命令时, 复位单片机内的各个状态参数。

AD数据转换模块主要负责AD转换时的转换时间间隔、采样精度的设置。C8051F340单片机的AD转换启动有6 种触发方式, 由ADC0CN 中的ADC0转换启动方式位( AD0CM2..0)的状态决定采用哪一种方式。本系统则是是通过单片机中的定时器2的每次计时溢出来触发AD 转换。为确保每次定时器触发AD 转换时上一次数据转换完全结束, 因此定时器2溢出后到下一次计时溢出的时间间隔( Tcon t)必须要大于AD 转换时间, 才能保证每次AD转换的完整进行。AD 转换时间由建立转换时间( Tsettle)和采样时间( Tsample)构成。图3所示为在差分方式下等效的AD 转换的输入电路。对于一个给定的建立精度( SA ) 的系统中, 所需要的ADC 建立时间( Tsettle)可以用方程1来确定。而采样时间( Tsamp le)通过查询技术手册得知需要10个SAR 时钟。Tcon t则必须要满足式( 2)和式( 3), 才能满足设计要求。

以C8051F340单片机为核心的数据采集系统设计

图3 AD 转换等效输入电路。

以C8051F340单片机为核心的数据采集系统设计

其中: SA 是建立精度, 用一个LSB 的分数表示(例如, 建立精度0. 25对应1 /4LSB ); t为所需要的建立时间( Tsettle), 以秒为单位; n为ADC 的分辨率,用比特表示。Rtota l为AMUX 电阻与外部信号源电阻之和; C samp le为ADC采样电容:

以C8051F340单片机为核心的数据采集系统设计

其中: K 为定时器2溢出后重载的计数数值; clk 为系统时钟频率。

以C8051F340单片机为核心的数据采集系统设计

USB通讯模块则设置单片机与主机的数据传输模式。根据USB 通信协议要求, 设置相应寄存器来配置USB中端点0与端点2跟上位主机进行数据通信, 其中端点0负责与主机的控制命令接收与响应, 端点2 负责将采集的数据传输到上位主机, 同时配置端点2在U SB0的FIFO 分配中256字节使用空间全部为数据输出。由于C8051F340 整合的是10位ADC控制器, 采集到的数据填充为16位数据, 以先低8 位, 后高8位将数据保存到系统的RAM 中, 而一次AD 转换能得到2个字节的数据, 因此为了每次数据上传时充分利用端点2的使用空间, 在ADC中断响应函数中添加一个变量i来检测进行转换的次数, 在进行完128次AD转换后通过调用B lock_W rite( )函数向主机发送数据。部分代码如下:

以C8051F340单片机为核心的数据采集系统设计

4. 2 上位PC 机客户端程序

上位PC 机客户端程序包括USB 驱动程序和用户应用程序两个部分。

USB驱动程序是一个软件组件, 封装了应用程序存取硬件设备的功能函数。有些设备具有相同的属性, 把它们归为一组标准类别, 可以定义设备类规范作为该类设备的主机驱动框架。设备类驱动程序使用相似的函数, 处理不同设备间的通信,这样使设备类驱动程序的开发可以脱离设备制造商。本系统的驱动程序使用了Silicon Laboratories公司提供的USB Xpress开发包, 在V isua l C ++ 6. 0环境下开发, 封装成动态链接库DLL 的形式供用户应用程序调用。

用户应用程序采用C + + 编写, 由客户交互界面, USB数据通信, 数据保存显示, 设备故障预警四个模块组成。在USB 数据通信模块设计中, 使用S ilicon Laboratories公司提供的S I_GetN umDevices,S I_GetProductString ( ), SI_Open( ), SI_C lose( ) , SI_Read( ) , SI_W rite( ) 等API函数, 屏蔽了对底层硬件操作中USB 复杂的通信协议, 简化了USB 通信开发, 使得开发USB 通信的程序变得更容易 。

程序流程图如图4所示。

以C8051F340单片机为核心的数据采集系统设计

图4 客户端应用程序流程图。

诱发设备出现故障的原因很多, 为保证设备正常运行需要检测多方面的数据, 本系统主要是检测设备的温度和压力等的数据, 检测获得的数据一旦超过某个界限, 表示设备可能出现故障。因此为了保证设备长时间的稳定工作, 需要对获取的实时数据与事先设好的临界值进行对比, 一旦超过临界值, 系统则发出警报提醒工作人员对设备进行故障排查, 起到了故障预警的效果。


5 结语

基于USB 数据采集系统可供选择的方案很多, 而本设计从便携式和高速传输考虑, 编写了固件和客户端数据传输协议, 使得该数据采集系统方便携带, 数据传输高速准确, 具有良好的人机交互界面, 并能对一定的设备故障进行预警提醒, 有较大的使用价值。而且单片机端口资源还没有用完,还有开发和扩展的空间。


关键字:C8051F340  单片机  数据采集系统 引用地址:以C8051F340单片机为核心的数据采集系统设计

上一篇:8051单片机在机器人技术和医疗领域的应用
下一篇:基于8051单片机制作一个酒精测试仪

推荐阅读最新更新时间:2024-10-30 18:05

51单片机总线与非总线的程序对比
#include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar code table = The distance is ; uchar code table1 = 00.0cm ; sbit shuru=P1^0; sbit yidianling=P1^0; sbit yidianyi=P1^3;//延时 void delay(uint z) { uint x,y; for(x=z;x 0;x--) for(y=110;y 0;y--); } //1602写地址 void wr
[单片机]
51<font color='red'>单片机</font>总线与非总线的程序对比
用VB 编程语言实现PC机与AVR 单片机的通信
0  引 言 在当今,网络技术越来越多地应用在各个领域,微机技术及单片机也不断发展,因此,目前大多数小型计算机监控系统都采用以PC 机和单片机构成的串行通信网络来完成监控任务。其中,单片机主要进行对数据的实时采集、处理,再通过串口将数据送入PC 机的缓冲区,然后由PC 机对数据进行进一步处理,以便得到所需的图形、图像及实验结果。采用VB 语言中的通信控件能够很好地完成二者之间的通信功能。 1  系统简介 本系统是一个小型的人体心电监测系统,将心电信号采出后经过A/ D 转换,由PC 机绘制出心电图形,进行实时显示,便于医护人员观察和诊断,系统原理如图1 所示。系统的下位机即单片机系统,将现场采集的信号经A/ D 转换送入系统上位机。
[单片机]
用VB 编程语言实现PC机与AVR <font color='red'>单片机</font>的通信
51单片机 AD转换
在数逻的课程中,已经学习过AD转换的概念:将模拟信号采样、量化、编码后转换为数字信号。但是未学习过通过单片机编程,显示结果。 编码分有舍有入、只舍不入两种,量化误差前者更小。=2Vm/(2^n+1 - 1 ) 注意,为了达到精确度高、稳定性好的目的,最好将所有器件的模拟地和数字分别连接,最后将模拟地和数字地仅在一点相连。 此处,使用的是STC12C5A60S2内部的AD转换。 1 /* 功能:使用12C5A60S2内部AD读取外部电压,显示在1602上 */ 2 3 #include STC12C5A60S2.H 4 #include intrins.h 5 sbit RS = P2^6; //1602
[单片机]
利用单片机控制频率合成器 MC145151-2 的输出频率
一、 MC145151-2 是锁相式频率合成器集成芯片,它有 N13~N0 14 个引脚,用于控制输出频率。 其中N13、N11已经接地,N12悬空。 从 MC145151-2 的 PDF 文件中,找到关于控制频率的部分,截图如下: 按照插图,可以看出,N10~N0 对输出频率的控制关系如下: 011 1000 1000 : 输出 5000 KHz 011 1000 1001 : 输出 5001 KHz 011 1000 1010 : 输出 5002 KHz ………………………… ………………………… ………………………… 101 0111 1100 : 输出 5500 KHz 分析可知,最小:0x0388,最大:0x057C。
[单片机]
利用<font color='red'>单片机</font>控制频率合成器 MC145151-2 的输出频率
51单片机 DAC0832
原理图: 代码如下: //程序功能:D/A转换,D12由灭到亮,蜂鸣器响一次,再由亮到灭,蜂鸣器响一次,依次循环 //头文件 #include #include //延时一个机械周期函数所在头文件(_nop_()) //定义宏 #define uint unsigned int #define uchar unsigned char //控制端声明 sbit duanxuan=P2^6; //数码管段选口 sbit weixuan=P2^7; //数码管位选口 sbit DAC0832_CS=P3^2; /
[单片机]
基于USB总线和Aduc831单片机数据采集系统的设计
   由于信息网络化的发展,经常需要将各种设备与主机相连,传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。 PCI总线虽具有高的传输速度(132Mbps),支持"即插即用"功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5~6个)。ISA总线显然存在着同样的问题。RS-232C串行总线虽然连接简单,但其缺点是传输速度慢(56kbps). 而通用串行总线(Universal Serial Bus,简称USB)的出现能很好地解决以上这些冲突。我们利用新型高性能单片机Aduc831设计了基于USB总线的数据采集系统。 1. USB简介 1.1 USB特点     USB的英文全称为Unive
[单片机]
基于USB总线和Aduc831<font color='red'>单片机</font>的<font color='red'>数据采集系统</font>的设计
STM32单片机内部EEPROM的读写
STM32L系列单片机内部提供了EEPROM存储区域,但实质上,其FLASH也是EEPROM类型,只不过有一块区域被开放出来专门用作EEPROM操作而已。STM32L的EEPROM使用寿命设计为100000次擦写以上,容量为2K-4K,这对于一般设备的参数存储来说是非常理想的。但从EEPROM使用方式看,其不适用于被反复修改的数据存储使用,一般作为配置参数,其修改次数往往是比较少量的。 STM32L的EEPROM和FLASH是统一编址,操作共用同一个读写电路,所以在EEPROM读写的时候STM32L核对于FLASH的一切访问和操作都将暂停,只有当EEPROM的操作完成后,才继续执行后续代码,在这期间只有EEPROM的读写电路工
[单片机]
基于51单片机按键控制喇叭发出多种声音
具体实现功能: 51单片机按键控制喇叭发出多种声音。 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 51系列单片机具有以下标准功能: 8k字节Flash,512字节RAM, 32位I/O口线,看门狗定时器, 内置4KB EEPROM, MAX810复位电路, 三个16位定时器/计数器, 一个6向量2级中断结构, 全双工串行口。 另外, 51系列在空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止工作,直到下一个中
[单片机]
基于51<font color='red'>单片机</font>按键控制喇叭发出多种声音
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved