微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 嵌入式系统的存储测试技术及无线传输应用

嵌入式系统的存储测试技术及无线传输应用

时间:02-11 来源:3721RD 点击:

存储测试技术是在特殊环境下记录运动物体参数的最有效的手段。本文介绍了基于ARM7 LPC21xx开发存储测试系统的方法。Philips公司16/32位微控制器LPC21xx是基于支持实时仿真和嵌入式跟踪的16/32 位ARM7TDMIS CPU的微控制器,它具有掉电和空闲两种节电模式,可用电池供电并且长期工作。利用微控制器内部自带的10位A/D转换器来采样,用SPI与nRF24L01模块通信。

引言

存储测试技术[1]方法是记录在特殊环境下运动物体参数的行之有效的方法。它是先将测试数据存入存储器,待装置回收后通过特定接口与上位机进行通信,还原数据信息。在许多消费类电子产品中,对数据采集存储系统的实时性和功耗提出了更高的要求,不仅要同时满足低功耗和微型化设计,还要实时地反映现场采集数据的变化。这样,就必须对系统的采样速率、功耗等提出更高的要求。随着半导体技术的发展,各种技术的进步使得高速度、低功耗的数据采集系统能够实现。

本文主要使用Philips公司16/32位微控制器LPC2148[23]作为核心控制元件,通过与nRF24L01[4]结合使用,实现数据的采集、存储以及发送。

1 系统原理

整个测试系统由模拟适配电路、外部晶振、微控制器、存储器模块、电源管理模块、无线收发模块以及接口电路组成,如图1所示。

图1 系统原理框图

1.1 电源模块

对电源模块的设计是实现整个系统省电的核心部分。即电源只需要在电路各个模块需要的时候给其供电,在不需要的时候断电来减小系统的无效耗电量。可以使用单电池电源供电实现多分枝电源网络管理,使得系统各个模块的电源相对独立供电。但此时要注意带电部分和不带电部分的兼容问题。

1.2 模拟适配电路

由于由传感器测量的信号十分微弱,需要经过适当的放大滤波等修正后才能够进行一系列处理。

1.3 微控制器

本测试系统选用Philips公司16/32位微控制器LPC2148作为核心控制元件。它内部自带10位A/D转换器,无需外加A/D转换器,即可以减小体积,又可以节省成本。同时它还具有掉电模式和空闲模式两种省电模式,合理设计可以减小系统功耗。

1.4 接口电路以及无线收发部分

本测试系统有两种方法与上位机进行通信,一种是通过无线收发模块nRF24L01来实现,另一种是通过特定的接口电路来实现,这样即使无线传输部分出现错误还可以保证事后回收数据。

2 系统主要部分的硬件与软件介绍

2.1 内部A/D转换器的开发

LPC2148内部有两个10位逐次逼近式模数转换器,8个引脚复用为输入脚(ADC0和ADC1),它具有掉电模式,测量范围是0 V~VREF,10位的转换时间≥2.44 μs,具有一个或者多个输入的突发转换模式,可选择由输入跳变或定时器匹配信号触发转换。它的基本时钟由VPB(VLSI外围总线)时钟提供,每个转换器包含一个可编程分频器,可将时钟调整至逐步逼近转换所需的4.5 MHz(最大),完全满足精度要求的转换需要11个这样的时钟。本文用LPC2148的I/O端口来实现,使用ADC模块的通道3 进行电压的测量,定义I/O端口P0.30为AD0.3,通过定时器中断的到来而对电压进行采样,对ADC寄存器的设置如下:

AD0CR=(1<<3)| //SEL=8,选择通道3

((Fpclk/10000001)<<8)| //CLKdiv= Fpclk/10000001,转换时钟为 1 MHz

(0<<16)| //BURST=0,软件控制转换操作

(0<<17)| //CLKS=0,使用11clock转换

(1<<21)| //PDN=1,正常工作模式

(0<<22)| //TEST1:0=00,正常工作模式

(1<<24)| //START=1,直接启动A/D转换

(0<<27)| //直接启动A/D转换时此位无效

DelayNS(10);

ADC_Data=AD0DR;//读取A/D转换结果,并清除DONE标志位

while(1){

AD0CR|=1<<24; //进行第一次转换

while((AD0STAT&0x80000000)==0);//等待转换结束

AD0CR|=1<<24;//再次启动转换

while((AD0STAT&0x80000000)==0);//等待转换结束

ADC_Data=AD0DR;//读取A/D转换结果

}

2.2 SPI与nRF24L01模块的通信

SPI是一个全双工的串行接口。它设计成可以处理在一个给定总线上多个互联的主机和从机。在给定的数据传输过程中,接口上只能有一个主机和一个从机进行通信。在一次数据传输过程中,主机总是向从机发送数据的8~16位,而从机也总是向主机发送一个字节数据。图2 为SPI的4种不同数据的传输格式的时序。

图2 SPI数据传输格式

在设置寄存器的过程中要注意CPOL为0和1时的不同以及SSEL、CPHA之间的关系。

SPI初始化的部分代码如下:

void MSIP_Init(void){

PINSEL0=(PINSEL0&(~(0xff<<8)))|(0x55<<8); //设置引脚连接SPI

SPCCR=0x52;//设置SPI时钟分频

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top