APP下载

基于LPC2148的动态信号采集系统设计

2017-02-09杨泽林

关键词:缓冲区指针中断

杨泽林,何 莉

(重庆理工大学 电气与电子工程学院,重庆 400054)

基于LPC2148的动态信号采集系统设计

杨泽林,何 莉

(重庆理工大学 电气与电子工程学院,重庆 400054)

为了适应动态信号处理算法,保证信号采样质量,提出了动态信号采集系统的多采样方式、连续无丢失高速数据传输和抗干扰能力关键性能指标,并利用ARM7 LPC2148 MCU和AD7606 ADC设计了动态信号采集系统。采取电源及USB接口隔离措施抑制系统内(外)部干扰,保证模拟信号的质量;构建采样函数程序库,通过赋值ARM MCU的中断服务程序入口地址寄存器实现多采样方式,给出了关键程序代码;设计了双指针环形缓冲区模型,实现高速连续的数据传输,降低了对MCU性能和内存容量的要求;给出了以此模型为基础的系统软件架构、功能组成原理及程序流程。重型卡车变速箱一轴内锥孔锥度现场在线测量结果表明:50 kHz双通道采样时,环形缓冲区长度为8 K,可连续采集和传输32K点数据而不丢失数据且无误码,采集系统模拟部分电源纹波小于5 mV,锥度测量误差小于3″。

动态信号采集系统;采样方式;双指针环形缓冲区;信号干扰

在重型卡车变速箱一轴内锥孔加工过程的质量控制中,需在线快速自动测量其大、小端的圆度和直径,并计算拟合出锥孔的锥度,因此需要双通道采集被测量工件的表面形状误差与回转误差动态信号,并采用互相关原理进行测量[1]。为自动完成整个测量过程,首先在测头位置调整阶段采用定时器触发A/D的自由采样方式观察处理信号。在锥孔参数测量阶段,采用外部圆光栅触发A/D的空间跟踪360°整周期采样方式[2-3],同时采集的动态信号应实时传输给上位机,以便进行处理和过程控制。因为误差动态信号十分微弱,容易受到干扰,直接影响测量精度,所以采集系统还应有较好的抗干扰能力。为此,利用体积小、成本低且功能丰富的ARM7 LPC2148 MCU与AD7606 ADC转换器相结合,设计了相应采集系统硬件,并通过USB接口与上位机相连。根据测量过程要求,结合ARM的中断控制管理策略,编写一组采样函数,作为外部中断0的中断服务程序,通过改写ARM MCU向量地址寄存器VICVectAddr2,选择执行具体的采样函数,实现测量过程中的多采样方式;由于LPC2148内存较小,设计双指针环形缓冲区模型,以实现大容量数据连续、高速地传输给上位机。将采集系统划分为上位机、MCU数字电路和模拟电路3个部分,采取电源隔离等措施彼此隔离,降低对误差动态信号及模拟电路的干扰。

1 采集系统硬件设计

1.1 AD采样及控制电路

ARM7 LPC2148 MCU[4]片内SRAM为40 kB,内部时钟最高可达60 MHz,具有快速GPIO功能,自备的USB2.0传输速度达12 Mb/s。AD7606 ADC[5]转换芯片具有16位精度,8个输入通道同时采样,每通道最高转换速度可达200 kHz,满足机械测试等动态信号采样要求,转换结果可以并行和串行输出,控制时序与接口简单,不需要初始化。AD采样及控制电路如图1所示。

图1 AD采样及控制电路Fig.1 AD sampling and control circuit diagram

DB0:15为AD转换结果,Con为AD启动信号,Busy为AD转换结束信号,下降沿有效。为多采样方式提供硬件支撑,将ADC的启动信号Con接口通过多路开关进行扩展,可以由定时器、程序控制GPIO和外部圆光栅等信号提供。Eint1用于相位或位置参考信号输入。

当开关K拨向T0,ADC由定时器或程序GPIO触发,可实现定时器触发和程序控制GPIO触发的自由采样方式。当开关K拨向圆光栅信号,ADC由外部设备触发,可实现空间位置跟踪采样方式。参考信号用于起停采样进程,实现位置/外部事件同步采样方式。信号T0、GPIO、外部圆光栅、参考信号组合便可产生多种采样方式。

1.2 抗干扰措施

1.2.1 电源隔离电路

采集系统主要分为上位机、MCU控制单元数字电路、信号调理及AD转换模拟电路3个部分,彼此干扰,严重影响误差动态信号质量和模拟电路性能。实验和理论表明:干扰源主要是上位机和MCU控制单元等数字电路,通过电源及地回路引入[6]。因此,除采用单点接地外[7],还必须对各部分的电源回路采取隔离措施,阻断干扰的传导途径。电源隔离电路如图2所示。

图2 电源电路原理图 Fig2 circuit diagrams of power

L1和C1组成的差模隔离电路用以隔离上位机与MCU控制单元的差模干扰,共模电感L2/L5,C2组成的共模隔离电路用以隔离上位机与NCU控制单元的共模干扰。同样,由电感L3、共模电感L4/L6、电容C3和C4对模拟电路与数字电路进行隔离。

1.2.2 USB通讯接口隔离电路

为了保证采样数据高速传输稳定,对USB通讯接口也要采取相应措施进行隔离[8]。如图3所示。

图3 USB接口电路图Fig.3 USB interface circuit diagram

C11、C12构成抗差模干扰电路, C10、R1、R2构成抗共模干扰电路作为USB通讯接口电路,起到隔离和抗干扰的作用。

2 多采样方式实现

多采样方式是动态信号采集系统的一个重要功能,用以很好地配合不同的动态信号处理算法。如图1所示,AD转换结束信号Busy输出到LPC2148的外部中断Eint0,AD转换结束后,其下降沿将触发外部中断0,这样可以通过中断服务程序读取AD转换结果和进行相应的信号采样工作。根据ARM MCU的中断管理策略,中断服务程序的入口地址由向量地址寄存器VICVectAddr确定,它具有函数指针的属性[4],只要改变VICVectAddr的指向值就可执行不同采样方式的中断函数。

将外部中断Eint0划定为优先级2的VIC中断,中断服务程序入口地址由VICVectAddr2确定。为不同采样用方式编写对应的采样函数,组成采样方式函数库。由于函数名就是函数指针,所以定义一个函数指针数组,将所有的采样函数作为这个数组中的元素[9],根据上位机命令将数组对应的元素赋给VICVectAddr2,即可实现多采样方式,主要的程序形式如下:

//采样函数声明

void __irq Timer_FreeMode(void);//定时自由采样方式

void __irq Space_TrackMode(void);//空间跟踪采样方式

……

//定义采样函数指针数组并赋初始值

void (*SampMode[])(void)=

{ Timer_FreeMode,//定时器自由采样方式

Space_TrackMode,//空间跟踪采样方式

}

//采样方式选择函数

Viod SampModSel(uint i) //i 采样方式序号

{

VICVectAddr2=(unsigned int) SampMode[i];

}

//定义采样函数

Void_irqTimer_FreeMode(void)//采样函数体

{

}

Void __irq Space_TrackMode(void) //采样函数体

{

}

上位机根据各个测量阶段所需的采样方式,将采样函数序号i传递给采集系统,通过采样方式选择函数进行切换。这样,采样方式函数库能非常简单灵活地进行采样方式扩充与完善,不断增加动态信号采集系统的核心功能。

3 采集系统软件设计

3.1 双指针环形缓冲区模型

在测量过程中,上位机需要实时观察和处理被测量信号,因此需将采集的数据实时传输给上位机。由于LPC2148的内存容量较小,不能大量临时缓冲存储采样数据,为了不丢失数据以保持信号的连续性,在内存中开辟一段缓冲区,构成如图4所示的环形结构[10]。

图4 双指针环形缓冲区模型Fig.4 Dual pointer ring buffer model

Wptr为写指针偏移量,指向A/D转换结果写入的位置。Rptr为读指针偏移量,指向程序读出A/D转换结果的位置。读出的数据写入LPC2148 MCU的USB控制器缓冲区。L为缓冲区的大小。Δn为两个指针的距离,每写入1个数,Δn加1,Wptr循环加1;每读出1个数,Δn减1,Rptr循环加1。读写数据时2个指针以不同的速度绕着环形缓冲区旋转,Wptr在前,Rptr在后。开始采样时,2个指针处于同一位置,Δn=0,Wptr=Rptr。

若Δn=0,表明传输速度高于A/D转换速度,缓冲区空,此时传输应处于等待状态,Rptr停止旋转;反之,若Δn=L,表明传输速度低于A/D转换速度,缓冲区处于满状态,A/D转换结果将会溢出,会丢失数据,此时Wptr应停止旋转,并报错。可以通过增大缓冲区的大小进行改善。

随着读写指针的旋转,环形缓冲区被动态地反复使用,大大地提高了缓冲区的效率,降低了对MCU内存容量的要求。缓冲区的大小可以根据实际最高采样频率通过实验确定。

3.2 程序设计

采集系统的测控软件架构以双指针环形缓冲区模型为基础,主要由主程序和采样中断服务程序两部分构成。主程序负责与上位机的通讯,接收上位机命令,选择采样方式及采样参数,将环形缓冲区的采样结果转移至USB等通讯接口缓冲区。采样中断服务程序负责读取A/D转换结果,根据采样方式要求判断有效数据及起止点,将有效数据存入环形缓冲区等。流程如图5、图6所示。

图5 主程序流程Fig.5 Main program flow chart

图6 中断采样程序流程Fig.6 Interrupt sampling program flow chart

4 结束语

系统的采样函数库,满足锥孔参数自动测量过程中对多采样方式的需求。应用与实验测试结果表明:环形缓冲区长度L=8 K字时,可以实现双通道50 kHz采样速度下连续采样传输32 K点数据且无误码;采取电源、接口隔离抗干扰措施后,模拟电源纹波小于5 mV,动态信号质量很高。产品设计锥度为12°57′34″,测量结果与作为基准的Tailor Honbson-265圆柱度仪相比较,最大误差小于3″,保证了测量精度。采样系统的功能与性能均达到设计要求。

多采样方式、数据高速连续传输及抗干扰能力是动态信号采集系统的主要功能与性能指标。该采集系统充分挖掘和利用了LPC2148 MCU硬件资源的优势,原理十分简单,抗干性能优越。利用ARM中断管理策略,采用中断函数库的方法,简单地实现了多采用方式。根据双指针环形缓冲区模型设计的测控软件,架构科学合理,具有小内存资源下采集数据并实时高速传输的能力。采集系统软硬件开放性好,二次开发容易,作为数据采集子系统,可以方便地嵌入到各类测控系统之中,为专业技术人员提供了高性能、实用开放、通用的动态信号采集系统。

[1] 杨泽林,何云祥.高精度锥度(角)现场自动测量系统的研制[J].工具技术,2008,23(11):82-84.

YANG Zelin,HE Yunxiang.Auto-Field Measuring System with High Pricision for Cone Angle[J].Tool Engineering,2008,23(11):82-84.

[2] 丰田利夫.设备现场诊断的开展方法[M].机械工业出版社,1985.

TOYODA R.Method for carrying out the field diagnosis of equipment[M].Machinery Industry Press,1985.

[3] 杨世锡,梁文军,于保华.振动信号多通道同步整周期数据采集卡设计[J].振动、测试与诊断,2013,33(1):23-28.

YANG Shixi,LIANG Weijun,YU Baohua,et al.Desing of Vinration Signal′s Multi-channel Inteter Period Synchronous Acquisition Card[J].Journal of Vibration,Measurement & Diagnosis,2013,33(1):23-28.

[4] 周立功.ARM嵌入式系统设计与应用[M].北京航空航天大学出版社,2012.

ZHOU Ligong.Design and application of ARM embedded system[M].Beijing University of Aeronautics and Astronautics Press,2012.

[5] Analog Devices,Inc.AD7606 8 Channel DAS with 16 Bit,Bipolar Input,Simultaneous Sampling ADC data sheet[Z],2004.

[6] 谭志良.电磁兼容原理[M].北京:国防工业出版社,2013.

TAN Z.Principle of electromagnetic compatibility[M].Beijing:National Defence Industry Press,2013.

[7] 包立家,王鑫磊,黄本康,等.双源推挽功率技术和电磁隔离技术在经皮给药中的应用[J].高电压技术,2013,39(1):103-108.

BAO Lijia,WANG Xinlei,HUANG Benkang,et al.Application of a Dual-source Puslrpull Power Amplifier and Electromagnetic Isolation in Transdermal Drug Delivery[J].High Voltage Engineering,2013,39(1):103-108.

[8] 李瑞莲,苏建坡,张斌,等.USB接口便携式中频电治疗仪的设计[J].自动化仪表,2016,37(5):99-102.

LI Ruilian,SU Jianpo,ZHANG Bin,et al.Design of the Portable Intermediate Frequency Electrotherapeutic Apparatus Based on USB Interface[J].Process Automation Instrumentation,2013,39(1):103-108.

[9] 谭浩强.C语言程序设计[M].北京:清华大学出版社,2010.

TAN Haoqiang.C language program design[M].Beijing:Tsinghua university press,2010.

[10]王亚军,李建文,吉方.基于环形缓冲区的实时系统负载平衡技术[J].计算机应用与软件,2005,2(4):38-39.

WANG Yajun,LI Jianwen,JI Fang.Load balancing technology for real time system based on ring buffer[J].COMPUTER APPLICATIONS AND SOFTWARE,2005,2(4):38-39.

(责任编辑 杨文青)

Design of Dynamic Signal Acquisition System Based on LPC2148

YANG Ze-lin, He Li

(College of Electrical and Electronic Engineering, Chongqing University of Technology,Chongqing 400054, China)

In order to adapt to the dynamic signal processing algorithm and ensure the signal acquisition quality,the key performance of the dynamic signal acquisition system is proposed which is a multi sampling method, continuous and no loss high speed data transmission and Anti-interference capability. The acquisition system is designed by using LPC2148 MCU AD7606 and ADC ARM7. To ensure the quality of analog signals, the power and USB interface isolation measures are taken to inhibit the system internal (external) interference. To implement multi sampling method by assigning MCU ARM interrupt service program, the sampling function library is constructed and the key program segment is given. In order to achieve high speed and continuous data transmission and to reduce the requirements of MCU performance and memory capacity, the dual pointer ring buffer model is designed. The system software architecture, program composition and function principle flow chart are all given in the research. In the process of the application of the inner cone angle measurement, it shows that: the analog power ripple is less than 5mv; under dual-channel acquiring 32K points at 50 kHz sampling rate, the data is without losing and Bit-error when the size of ring buffer is 8K word. Taper error is less than 3″.

dynamic signal acquisition system; signal sampling method; dual pointer ring buffer; signal interference

2016-08-08

重庆市教委科学技术研究项目(kj130833)

杨泽林(1962—),男,湖北公安县人,硕士,副教授,主要从事动态测试、信号处理及嵌入式系统方面的研究,E-mail:yzl@cqut.edu.cn。

杨泽林,何莉.基于LPC2148的动态信号采集系统设计[J].重庆理工大学学报(自然科学),2017(1):113-117.

format:YANG Ze-lin, He Li.Design of Dynamic Signal Acquisition System Based on LPC2148[J].Journal of Chongqing University of Technology(Natural Science),2017(1):113-117.

10.3969/j.issn.1674-8425(z).2017.01.018

TP274.2

A

1674-8425(2017)01-0113-05

猜你喜欢

缓冲区指针中断
基于FPGA的中断控制器设计*
基于网络聚类与自适应概率的数据库缓冲区替换*
为什么表的指针都按照顺时针方向转动
跟踪导练(二)(5)
千里移防,卫勤保障不中断
一类装配支线缓冲区配置的两阶段求解方法研究
关键链技术缓冲区的确定方法研究
基于改进Hough变换和BP网络的指针仪表识别
初涉缓冲区
ARM Cortex—MO/MO+单片机的指针变量替换方法