谢春华,陈芳,刘利梅,马丹
(1.湖北水利水电职业技术学院,湖北武汉430070;2.武汉亚为电子科技有限公司,湖北武汉430074;
3.黄石市第五中学,湖北黄石435006)
微型多功能数据采集卡的设计与开发
谢春华1,2,陈芳2,刘利梅2,马丹3
(1.湖北水利水电职业技术学院,湖北武汉430070;2.武汉亚为电子科技有限公司,湖北武汉430074;
3.黄石市第五中学,湖北黄石435006)
摘要:为了减小数据采集卡的体积,降低使用成本,介绍了一种采用STM32单片机来进行设计的数据采集卡。利用STM32内部集成了A/D转换、定时计数、脉冲捕捉等功能,外部信号经过转换处理和采集后直接由单片机USB接口输出,上位机LabVIEW程序接收数据完成显示和控制功能,实现了高速、宽量程、功能全、价格低、体积小、使用方便、显示形式多样的目的。
关键词:STM32;数据采集卡;USB通信
数据采集卡是一种将传感器或其他待检测设备发出的电信号按照一定的采样周期发送或存储至上位机,结合上位机软件完成系统实时测量、监测和控制任务的采集控制系统设备,它广泛运用于仪器仪表、安防监控、智能交通、医学影像、雷达图像、机器视觉等各大领域。然大多数数据采集卡外观较大(一般长宽高为92 mm×85 mm×8 mm以上)、通道较多(一般在8通道以上)、使用不便(一般使用PCI接口)、通用性差(受上位机接口限制)、价格较贵(一般在500元以上)[1],因此开发出体积小、适用性强、成本低、使用方便的数据采集卡具有一定的现实意义和广阔的市场前景。
本设计主要选取微型高速、具有A/D输入、PWM频率测量、脉冲计数、I/O功能、USB通信功能的单片机STM32作为处理器(长宽高为7 mm×7 mm×1.4 mm),通过设计外围电路来扩展输入信号的量程,单片机嵌入式程序完成信号采集,单片机自带的USB口完成与上位机的数据传输(最多可接127个相同的采集卡),LabVIEW编制的上位机显示与控制程序完成终端显示与控制。整个采集卡的设计包括硬件设计、嵌入式软件设计和上位机显示与控制软件设计三部分。
1总体设计
采集卡硬件设计主要分为最小系统电路和转换与扩展电路两部分,最小系统电路主要作用是形成单片机运行的基本电路,转换与扩展电路主要作用是电源供电电压的转换,扩大A/D输入信号的量程和信号的处理与保护。嵌入式软件设计主要由A/D采集程序、PWM频率测量程序、脉冲计数程序、开关量I/O输入输出程序和USB通信程序组成,主要作用是采集传感器或其他待检设备发出的模拟信号、PWM频率信号、脉冲个数信号和开关量输入信号并通过USB通信发给上位机,上位机根据控制要求向采集卡发出开关量控制信号,采集卡根据上位机的指令实现对设备的控制。上位机显示与控制软件设计主要是运用可视化编程语言LabVIEW,将采集的数据在电脑上用数字或虚拟仪表显示出来,并根据控制要求向采集卡发出开关量控制信号。采集卡的总体设计框图如图1所示。
图1 采集卡总体设计框图
2硬件设计
从成本、体积大小和综合性能考虑,采用意法半导体公司的48Pin增强型高速单片机STM32F103作为主控芯片。STM32F103是基于的ARM 32位的CortexTM-M3内核架构,稳定工作频率可达72 MHz,是具有丰富资源、高速时钟的精简指令的微处理器。STM32F103拥有从64 kB或128 kB的闪存程序可选存储器,高达20 kB的SRAM,2个12位A/D模数转换器,串行单线调试(SWD)和JTAG接口调试模式等[2]。最小系统原理图如图2所示。
图2 最小系统原理图
为了减小PCB板的面积,芯片的布置采取了菱形布置,引线采用8 mil发散的形式。
转换与扩展电路的核心是将供电电路进行必要的降压和升压,单片机A/D输入信号的量程从0~3.3 V提高至-12~12 V之间以及PWM频率测量、脉冲计数、开关量输入信号进行光耦隔离保护。
单片机的工作电压要求为DC 3.3 V,而一般外接的电源转换器为DC 5 V或DC 12 V。为了减少其体积,可选择上位机USB接口DC 5 V供电,通过电压转换芯片AMS1117芯片转换成DC 3.3 V,原理图的设计如图3所示。
图3 DC 5 V转DC 3.3 V电路原理图
由于A/D转换量程的提高,输入信号转换过程中需要有DC 12 V供电,所以需要将DC 5 V升压至DC 12 V。
采用芯片MC34063完成升压工作,原理图的设计如图4所示[3]。
图4 DC 5 V转DC 12 V电路原理图
单片机A/D输入电压范围为0~3.3 V,为了实现A/D输入电压在-12~12 V的宽量程要求,采用电阻R24、R29分压至-3.3~3.3 V之间。
用LM358运放实现同相加法器电路,进行电压线性变换,电压变换关系如下式。
式中:u11是R24、R29的分压电压;u12是电源电压3.3 V。
u0输出电压在0~6.6 V之间,最后经电阻R30、R32分压成0~3.3 V,原理图设计如图5所示。
图5 A/D输入电压转换电路原理图
PWM频率测量、脉冲计数、开关量输入信号要进行光耦隔离保护,原理图的设计如图6所示。
图6 光耦隔离保护电路原理图
3嵌入式软件设计
单片机仅有2个12位逐次逼近型A/D数模转换器,但USB使用设备可以连接多达127个,因此可以通过同时使用多个微型数据采集卡的方式来弥补采集数量不足的问题。
为了保证采样速度,采样最小时间选择为1 μs,A/D独立模式,单通道、单次、右对齐、按规则通道转换完成的方式。
A/D采集程序设计流程图如图7所示。
图7 A/D采集程序设计流程图
频率测量方法一般有测频法、测周法、多周期同步法,为了保证采集数据的实时性,这里选择测频法[4]。
STM32单片机有3个16位的定时计数器,可在输入引脚上设置脉冲上升沿触发中断,在2个相近的触发中断之间计算脉冲周期即可实现频率的测量。计数过程中要开启定时计数器溢出中断,计算溢出的次数以保证脉冲周期计数的准确性。为提高定时计数器的精度,定时计数器时钟频率选择为72 MHz,则最大采样率为72 MHz/s。PWM频率测量程序设计流程图如图8所示。
单片机可设置输入引脚上升沿触发中断,计算中断次数即为脉冲个数。由于定时计数器为16位,最大计数值是65 535。脉冲计数程序设计流程图如图9所示。
由于开关量输入输出程序比较简单,故本文不再赘述。
图8 PWM频率测量程序设计流程图
图9 脉冲计数程序设计流程图
单片机自带USB2.0全速接口,并且拥有自带完整的USB通信库文件,只需做相应的修改即可完成通信任务[5]。
在库中修改usb_desc.c文件,依次设置设备描述符、配置描述符、接口描述符、报告描述符。使用端点2输入,端点1输出,1次传输最大32 B,输入输出报告为8 B。修改usb_int.c文件设置中断控制方式,修改usb_endp.c文件中的USB_SendData和USB_ReceiveData函数内容,实现数据的发送和接收。
uint32_t USB_SendData(uint8_t *data,uint32_t dataNum)
{
UserToPMABufferCopy(data,ENDP2_TXADDR,dataNum);
SetEPTxCount(ENDP2,REPORT_COUNT);
SetEPTxValid(ENDP2);
return dataNum;
}
uint32_t USB_ReceiveData(uint8_t *data,uint32_t dataNum)
{
uint32_t len=0;
if(dataNum>sizeof(USB_Receive_Buffer)){
dataNum = sizeof(USB_Receive_Buffer);
}
for(len=0;len *data=USB_Receive_Buffer[len]; data++; } return dataNum; } USB通信程序设计流程图如图10所示。 图10 USB通信程序设计流程图 4上位机显示与控制软件设计 上位机显示部分程序要接收采集卡采集的数据,可在LabVIEW上使用USB动态链接库接收USB采集数据,使用图形化界面直接数字显示、虚拟示波器动态显示或虚拟仪表面板显示[6]。 上位机控制部分程序可使用图形化设置按钮完成相应的开关量输出设置并通过USB口输出。图形化程序设计流程图如图11所示,上位机显示与控制软件界面如图12所示。 图11 图形化程序设计流程图 图12 上位机显示与控制软件界面 5结语 通过采用STM32单片机A/D、定时计数器、脉冲捕捉、USB通信等内部功能完成了一个微型数据采集卡的设计,结合LabVIEW上位机显示与控制程序,实现了如下功能: 1)高速、宽量程、多种信号(模拟信号、PWM频率信号、脉冲信号、开关信号)采集; 2)USB通信接口,使用方便、扩展容易(最多可接127个); 3)显示形式多样(数字显示、虚拟示波器动态显示或虚拟仪表面板显示),I/O控制简单; 4)体积小(长宽高为96 mm×52 mm×5 mm)、重量轻、价格便宜。 本微型数据采集卡已在武汉亚为电子科技有限公司实现了小批量生产,通过长期测试与实践使用证明该微型数据采集卡运行稳定、可靠,取得了较好效果。 [参考文献] [1]马海潮.超高速数据采集技术发展现状[J].测试技术学报,2003,17(4):287-292. [2]意法半导体有限公司.STM32F103×8 datasheet.pdf[EB/OL].[2013-08-05].http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf. [3]意法半导体有限公司.MC36063 datasheet.pdf[EB/OL].[2013- 04-24].http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00001232.pdf. [4]杜慧勇,谢春华,王站成.MC9S12DG128单片机在频率测量系统中的应用[J].河南科技大学学报:自然科学版,2009,30(3):40-42. [5]刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013. [6]程龙飞,何闻.基于LabVIEW的USB数据传输技术研究[J].机床与液压,2009,37(7):105-108,140. 责任编辑:陈亮 本刊声明 为了实现编辑、出版工作的网络化,本刊已加入“万方数据—数字化期刊群”。故凡向本刊投稿者,均视为其文稿刊登后可供“万方数据库—数字化期刊群”收录、转载并上网发行;作者文章著作权使用费与稿酬一次性付清,本刊不再另付其他稿酬。如作者不同意文章被收录,请在投稿时告知本刊,本刊将适当处理。 “万方数据库—数字化期刊群”是国家“九五”重点科技期刊攻关项目,本刊全文内容按照统一格式制作,读者可上网查询浏览本刊内容,并征订本刊。 The Design and Development of Miniature Multi-functional Data Acquisition CardXIE Chunhua1,2,CHEN Fang2,LIU Limei2,MA Dan3 (1.Hubei Water Resources Technical College,Wuhan 430070;2.Wuhan Vavii Electronic Technology Co.,Ltd.,Wuhan 430074; 3.The Fifth Middle School of Huangshi,Huangshi 435006) Abstract:The design of data acquisition card based on the STM32 microcontroller was introduced to reduce the size and cost.STM32 has internal functions like A/D converter,timing and counting,pulse capture,the external signal was acquired and output directly on MCU USB interface,and the data was received,displayed and controlled through the LabVIEW program on the computer.High speed,wide measuring range,multi-function,lower price,smaller size,convenient use,multiple display were achieved in the data acquisition card. Key words:STM32;data acquisition card;USB communication 中图分类号:TP368.2 文献标志码:A 文章编号:1671-0436(2015)04-0034-06 作者简介:谢春华(1978—),男,硕士,讲师,工程师。 收稿日期:2015-03-20