完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
引言
MSP430系列单片机是由美国TI公司生产的新一代16位单片机,它具有处理能力强,运行速度快、资源丰富、开发方便等优点,具有很高的性价比,最近几年在国内得到了很广泛的应用。通用串行总线(USB)是现代数据传输的发展趋势,它具有高速、可热插拔、易扩展、接口通用、无需外接电源等优点在数据传输方面得到和广泛的应用。数据采集在工业测试系统中是一个很重要的环节,其精确性和可靠性是至关重要的,MSP430和USB为此提供了理想的解决方案。本文以沥青桥面防水层检测仪为背景,阐述了基于MSP430和USB的数据采集系统。 系统硬件设计 本系统采用TI公司的MSP430F149和PHILIPS公司的USB接口芯片PDIUSBD12。PDIUSBD12符合通用串行总线USB1.1规范,是一款高性能的USB接口器件,它集成了SIE、FIFO存储器、收发器和电压变换器。SIE完成USB协议层,并完成高速硬件连接,无需软件干预。此模块功能包括:同步模式识别、并串转换、位填充、解填充、CRC校验/产生、地址识别和握手相应/产生等。MSP430F149芯片片内包括一个12位的A/D转换器ADC12、采样保持器和模拟多路器,ADC12与一般的ADC相比较,具有高速、通用的特点,适合于精密的数据采集和转换,能够对8个外部模拟通道和4个内部电压通道(包括内部温度传感器反馈的电压信号通道)进行A/D转换。ADC12还提供了高性能的采样/保持电路,为用户提供了更多的采样触发方式和转换时钟周期的选择。ADC12提供了4种转换模式:单通道单次转换,系列通道单次转换,单通道多次转换,多通道多次转换。数据采集流功能框图如图1所示。 图1 数据采集功能框图 本系统中MSP430F149和PDIUSBD12的硬件接口电路图如图2所示。PDIUSBD12的8位并行数据接入MSP430的P5口,传输数据或者命令。MSP430的P17引脚接PDIUSBD12的A0,作为PDIUSBD12的命令或数据选择线。当A0=0,MSP430向PDIUSBD12发送数据,当A0=1时,向PDIUSBD12发送命令。它们之间的数据交换采取中断查询方式,通过查询P14(P14接PDIUSBD12的INT_N引脚)是否为低电平来确定是否接受到上位机的数据或命令,再结合D12_WR和D12_RD引脚实现MSP430与PDIUSBD12的数据交换。PDIUSBD12的GL_N接LED来对其进行监控,当USB设备接入PC机时,LED亮,当在进行数据传输时,LED将不断闪烁。 图2 MSP430F149与PDIUSBD12接口电路图 MSP430的P6口为其ADC12模块8个外部通道的输入端,由于传感器输出的信号比较微弱,同时在沥青桥面测试现场存在着很多车辆噪声和工频信号的干扰,传感器采集到的数据需要经过一定的放大和低通滤波,才能被送到MSP430的ADC12模块进行采集和转换,信号调理电路如图3所示。 图3 信号调理电路 主放大器我们选用美国ADI公司的精密仪表放大器AD620。 图3中运放U2部分组成了一个二阶压控低通有源滤波器。传感器信号通过调节放大之后被送到滤波器的输入端,通过滤波后将干扰部分消除。其传递函数为:。其中为特征角频率。 由于传感器测量的是拉、压力信号,即放大滤波后输出的电压信号为双极性信号,范围约为-10V~+10V,必须将它转换为单极性信号,即对信号进行直流偏置,在此采用简单的电阻分压方式,如图3所示。所需要的+2.5V电压基准可以由MSP430F149提供。 软件设计 本系统的软件设计主要包括单片机程序、USB驱动程序、PC机应用程序。单片机部分的程序也称为固件,它包括USB设备的连接、USB协议和中断处理等。PDIUSBD12可以按照USB1.1协议对数据进行封装,然后与PC机进行数据交换。MSP430根据接受到的命令通过PDIUSBD12与PC机的应用程序进行交互。 MSP430向PDIUSBD12发送数据/命令部分程序如下: void outportb(unsigned char port, unsigned char val) { P1OUT&=0xBF; /使PDIUSBD12的WR引脚为低电平 &nbs p; P5DIR=0xFF; /P5口为输出模式 if(port) P1OUT|=A0; /A0为高电平,传输命令 else P1OUT&=~A0; /A0为低电平,传输数据 P5OUT=val; /向PDIUSBD12写数据 P1OUT|=~0xBF; /恢复PDIUSBD12的WR引脚为高电平 } MSP430从PDIUSBD12读取数据的部分固件程序如下: unsigned char inportb(void) { unsigned char dat; P1OUT&= 0xDF; /使PDIUSBD12的RD引脚为低电平 P5DIR=0x00; / P5口为输入模式 dat; /从PDIUSBD12读取数据 P1OUT|=~0xDF; /恢复PDIUSBD12的RD引脚为高电平 return i; } MSP430中ADC12模块提供了4种转换模式,在此采取序列通道单次转换模式,以方便上位机实时控制。四个通道A/D转换只须启动一次,最后一个通道转换完成后设置中断标志位。对转换模式、转换采样时序以及转换通道的设置如下: ADC12CTL0=ADC12ON+SHT0_2+MSC; /打开ADC12并设置采样时间 ADC12CTL1=SHP+CONSEQ_1; /序列通道单次转换模式 ADC12MCTL0=INCH_0; /选择通道0 ADC12MCTL1=INCH_1; /选择通道1 ADC12MCTL2= INCH_2; /选择通道2 ADC12MCTL3= INCH_3+EOS; /选择通道3和序列结束标志 ADC12CTL0|=ENC; /启动AD转换 整个数据采集的过程都是由PC机为中心,PC机通过向MSP430发送命令来控制A/D转换的开始和结束。对于MSP430收到的控制数据(命令),我们在此规定: 字节1:0xFF----启动A/D转换,0xFE----停止A/D转换 如果MSP430收到的数据第一个字节是0xFF,先设置标志adflag=1,然后启动A/D转换并设置相应其他的参数,当四个通道的数据采集和转换均完成,最后通过USB接口向PC发送采集到的数据。当MSP430收到的数据的第一个字节是0xFE,则设置adflag=0,不启动A/D转换。 PC机端的应用程序是VB.NET环境下开发,它主要完成对采集到的数据进行解封装、显示,控制整个数据采集系统的进行、停止、并设置相应的一些参数,以及最后的数据分析处理工作。上位机程序框图如图4所示。 图4 上位机程序框图 结语 桥面防水层测试仪对桥面沥青和水泥之间的防水层的测试包括拉拔、撕裂、剪切等试验,本系统将三种试验的电气硬件部分通用化,通过上位机软件的设置对不同试验的数据进行相应的解封装、显示和处理分析。在沥青桥面测试现场中,由于天气、温度、湿度等一些不确定的因素,对测试结果造成了一定的影响,这就要求测试周期应尽量短,试验点应尽量多,高速、实时、便携式、多通道测试仪的优点在此得到了充分的体现。试验表明,该系统应用到拉拔仪、剪切仪试验中,用户界面友好,操作简便,测试的精度、速度以及系统的可靠性完全满足要求。 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2543 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2331 浏览 5 评论
3156 浏览 3 评论
2801 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2759 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
607浏览 1评论
852浏览 0评论
965浏览 0评论
618浏览 0评论
445浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:34 , Processed in 1.101368 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号