总第252期 计算机与数字工程 Computer&Digital Engineering Vo1.38 No.1( 159 2010年第1O期 基于C805 1 F340数据采集系统的设计 尹杰君姚旺生喻济兵 武汉430033) (海军工程大学电子工程学院计算机工程系摘要针对某设备运行状态实时监控的需要,研制了一个高速数据采集装置,该装置采用带USB接口的C8051F340 单片机为核心,同时具有多路信号切换,A/D变换等功能。采用Keil uVision3进行固件开发,实现了温度压力超限报警功 能。该系统的电路结构简单、可靠。 关键词C8051F340;USB;数据采集;故障预警 TP274.2 中图分类号A Desgin Method of Data Acquisition System Based on C805 1 F340 Yin Jiejun Yao Wangsheng Yu Jibing (Electronic Engineering College,Naval University of Engineering,Wuhan 430033) Abstract This high speed data acquisition device is developed to meet the requirement of real time monitoring on the running status of the equipments.The core unit of the system is a c8051f340 SCM equipped with USB interface,also,it can be switched among multi signals and has A/D converting function.The system is developed by keil Uvision 3.Alarm will be activated when the temperature or pressure overload is detected.The circuit structure of the system is simply and reliable. Key Words C8051F340,USB,data-acquisition,breakdown prewarning Class Number TP274.2 1 引言 电子设备运行状态的稳定性直接影响到现代企 业的生产,设备发生故障后高昂的维修费以及设备 停机后给企业生产带来的损失,使得各个企业纷纷 采取措施,降低设备的故障率。通过数据采集系统 准确的获取设备运行特征数据,并对数据进行分析, 判断设备的运行状态是否良好,达到提前预防故障 出现、减少停机检修的目的。实际应用中对数据采 集系统的可靠性,准确性和便携性要求很高。目前 款高速度低成本的数据采集系统,采集信号包括该 设备输出气体的温度、压力和流量等14个参数,适 用于特定设备运行状态的数据采集工作。 2 系统设计 系统设计图如图1所示,系统主要由C8O51F340 数据采集模块与上位1K;机构成。需要监控的数据通 过系统前端的传感器转换后送人预处理电路,从预处 理电路输出的数据通过I/O端口送人AD转换端口, 经过AD转换将数据保存到C8051F34O单片机,最后 常用的数据传输网络(如RS232/RS485,CAN等)已 经不能满足大量采集数据和高速实时数据传输的要 通过USB把数据送人上位PC机保存处理。 传感器获 l C8051F340 l求[3]。而USB传输具有高速可靠传输的优势,具有 成本低、可靠性高、维护方便等优点。本文以带有片 上USB和高速AD转换器的C8051F340为核心控 取些辗需 图1系统设计框图 露 制器件,利用USB总线高速传输的特性,设计了一 *收稿日期:2010年4月27日,修回日期:2010年5月25日 作者简介:尹杰君,男,硕士研究生,研究方向:人机接口技术。姚旺生,男,教授,研究方向:人机接口技术、嵌入式系 统等。 16O 尹杰君等:基于C8051F340数据采集系统的设计 第38卷 3硬件设计 在整个硬件设计中C8051F340单片机是系统 重要的组成部分。C8051F340单片机是Silicon 主程序负责初始化单片机的各个端口和功能模 块,设置相应的IO端口为数据输人端口,完成各项 初始化后通过void USB_API—TEST_ISR(void)函数 进入USB中断服务,在中断服务中通过调用Get—In— terruptSource()函数获得USB中断源。然后根据 _Laboratories公司推出的完全集成的混合信号片上 系统型MCU。具有高速、流水线结构的8051兼容 的微控制器内核(可达48MIPS);通用串行总线 (USB)功能控制器,有8个灵活的端点管道,集成 收发器和1K FIFO RAM;真正1O位200ksps的单 不同的人口情况,来进行相应的处理。比如收到初 始化命令时,复位单片机内的各个状态参数。 AD数据转换模块主要负责AD转换时的转换 时间间隔、采样精度的设置。C8051F340单片机的 端/差分ADC,带模拟多路器;片内电压基准和温 度传感器;精确校准的12MHz内部振荡器和4倍 时钟乘法器;多达64KB的片内FI ASH存储器; 多达4352字节片内RAM(256+4KB);多达4O个 端口I/O(容许5V输入)采集系统的电路设计_6]。 由于C8051F340本身集成众多硬件电路的特 性,硬件接口设计变得非常简单,不需要再添加额 外的电子元器件就能实现USB的数据传输和AD 转换等,使得系统的硬件结构简单,集成度高,可靠 性好。如图2所示,单片机通过片上USB接口与 上位PC机连接进行数据的传输。C8051F340上 的P2.0~P2.6引脚作为数据采集的输入端口,接 受来自预处理电路输送过来的数据,最后通过单片 机的模拟多路选择器(AMUX)最终决定进入AD 转换的通道。 PC 图2数据采集硬件原理图 4 软件设计 系统的软件部分包括单片机固件和上位PC 机客户端程序。单片机固件主要负责单片机初始 化及与上位机的通信准备,而客户端程序则负责对 固件中相应控制的调用,实现数据的传输控制、数 据保存以及故障的预警。 4.1单片机固件(firmware) 单片机固件采用Keil uVision3软件进行编 写,由主程序,AD数据转换,USB通讯三个模块组 成。 AD转换启动有6种触发方式,由ADC0CN中的 ADC0转换启动方式位(ADOCM2-0)的状态决定 采用哪一种方式。本系统则是是通过单片机中的 定时器2的每次计时溢出来触发AD转换。为确 保每次定时器触发AD转换时上一次数据转换完 全结束,因此定时器2溢出后到下一次计时溢出的 时间间隔(Tcont)必须要大于AD转换时间,才能 保证每次AD转换的完整进行。AD转换时间由建 立转换时间(Tsettle)和采样时间(Tsample)构成。 图3所示为在差分方式下等效的AD转换的输入 电路。对于一个给定的建立精度(SA)的系统中, 所需要的ADC建立时间(Tsettle)可以用方程1来 确定。而采样时间(Tsample)通过查询技术手册得 知需要1O个SAR时钟。Tcont则必须要满足式 (2)和式(3),才能满足设计要求。 mux选择 — ,L —] —— JRm 。二5K 丰c E=5pE 网 j}=_ ¨=_ ! 肚 .・ 一 选择 图3 AD转换等效输入电路 in( ) R *C唧 (1) 其中:SA是建立精度,用一个LSB的分数表示(例 如,建立精度0.25对应1/4I SB);t为所需要的建 立时间(Tsettle),以秒为单位; 为ADC的分辨 率,用比特表示。R 为AMUX电阻与外部信号 源电阻之和;C 北为ADC采样电容[ ] 丁c。7z =(65535一K)* (2) 其中:K为定时器2溢出后重载的计数数值;clk为 系统时钟频率。 Tcont ̄Tsettle4-Tsample: (3) USB通讯模块则设置单片机与主机的数据传 输模式。根据USB通信协议要求,设置相应寄存 2010年第1O期 计算机与数字工程 器来配置USB中端点0与端点2跟上位主机进行 了对底层硬件操作中USB复杂的通信协议,简化 了USB通信开发,使得开发USB通信的程序变得 更容易 。程序流程图如图4所示。 数据通信,其中端点0负责与主机的控制命令接收 与响应,端点2负责将采集的数据传输到上位主 机,同时配置端点2在USB0的FIFO分配中256 字节使用空间全部为数据输出。由于C8051F340 整合的是10位ADC控制器,采集到的数据填充为 l6位数据,以先低8位,后高8位将数据保存到系 统的RAM中,而一次AD转换能得到2个字节的 数据,因此为了每次数据上传时充分利用端点2的 使用空间,在ADC中断响应函数中添加一个变量i 来检测进行转换的次数,在进行完128次AD转换 后通过调用Blockwrite()函数向主机发送数据。 部分代码如下: void AdcConvCompleteISR(void)interrupt 10 static BYTE i一0; 启动设备。 。.▲T ...j T InPacketl[2* ]一ADCOH; In Packet1[2* +1]一ADCOL; ++: if(i一一128) t 一0: ADOINT一0: BlockWrite(InPacketl,256); } } 4.2上位PC机客户端程序 上位PC机客户端程序包括USB驱动程序和 用户应用程序两个部分。 USB驱动程序是一个软件组件,封装了应用 程序存取硬件设备的功能函数。有些设备具有相 同的属性,把它们归为一组标准类别,可以定义设 备类规范作为该类设备的主机驱动框架。设备类 驱动程序使用相似的函数,处理不同设备问的通 信,这样使设备类驱动程序的开发可以脱离设备制 造商[1]。本系统的驱动程序使用了Silicon Labo ratories公司提供的USB Xpress开发包,在Visual C++6.0环境下开发,封装成动态链接库DI L的 形式供用户应用程序调用 J。 用户应用程序采用C++编写,由客户交互界 面,USB数据通信,数据保存显示,设备故障预警 四个模块组成。在USB数据通信模块设计中,使 用Silicon Laboratories公司提供的SI GetNum— Devices,SI GetProductString(),SI Open(),SI Close( SIRead( SI—Write()等API函数,屏蔽 图4客户端应用程序流程图 诱发设备出现故障的原因很多,为保证设备正 常运行需要检测多方面的数据,本系统主要是检测 设备的温度和压力等的数据,检测获得的数据一旦 超过某个界限,表示设备可能出现故障。因此为了 保证设备长时间的稳定工作,需要对获取的实时数 据与事先设好的临界值进行对比,一旦超过临界 值,系统则发出警报提醒工作人员对设备进行故障 排查,起到了故障预警的效果。 5 结语 基于USB数据采集系统可供选择的方案很 多,而本设计从便携式和高速传输考虑,编写了固 件和客户端数据传输协议,使得该数据采集系统方 便携带,数据传输高速准确,具有良好的人机交互 界面,并能对一定的设备故障进行预警提醒,有较 大的使用价值。而且单片机端口资源还没有用完, 还有开发和扩展的空间。 参考文献 [1]李英伟.USB2.0原理与工程开发[M].北京:国防工业 出版社,2007 E2]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设 计[M].北京:北京航空航天大学出版社,2007 [3]夏益民,王广君.基于USB的高速数据采集系统[J].国 外电子元器件,2003(10):20 ̄23 [43张迎新,雷文,姚静波.C8051F系列SOC单片机原理及 其应用[M].北京:国防工业出版社,2005 [5]王福芮.单片机测控系统设计大全[M].北京:北京航 空航天大学出版社,1997 [6]SiliconLab.C8051F340DataSheet[DB/OL].http:/ www.silabs.corn/public/Document/tpubdoc/dsheet/ Microcontro1lers/USB/en/c8051f34x,2006 [7]SiliconLaboratories. USBXpressProgrammer’sGuide [EB/OL].[2008—1 1-4].http www.xl11.corn.cn/ AN169USPrXpressProgrammersGuide.pdf [8].基于USB2.0的外置式数据采集系统的设计与实 现[D_.北京:清华大学精密仪器与机械学系,2006