基于ARM的微伏信号在线监测系统设计

2011-08-05 10:57:28来源: 互联网 关键字:ARM

1   引言

  在线监测系统中,待测信号幅值在50μV左右,而背景噪声幅值在50mV以上,用一般的采集和测量系统无法准确检测该信号。针对被背景噪声覆盖的微小信号,采用滤波降噪和差分放大手段,提高信噪比,保证待测信号能被准确采集;采用基于ARM核的32位微处理芯片S3C44B0X和基于μClinux操作系统的嵌入式图形用户界面MicroWindows,完成实时显示测量结果和实现故障自动报警,同时具有体积小、功耗低、操作灵活的特点,为实现微伏信号在线监测功能提供了一种良好的解决方案。
 

  2   系统硬件设计

  整个微伏信号在线监测系统硬件主要分为两个部分,即前置放大电路和基于ARM的数据采集与显示电路,如图1所示。

  

基于ARM的微伏信号在线监测系统设计

 

  图1 系统方案示意图

  2.1  前置放大电路

  待测信号幅值为50μV,而背景噪声幅值在50mV以上,SNR(信噪比值)在1/1000以下,所以必须根据信号特点进行降低噪声功率,提高信噪比。通过实验,发现信号与噪声频谱不重叠,噪声频率主要集中在高频段。利用滤波器的频率选择特性,可设置低通滤波器,其通带范围能够覆盖信号的频谱,使信号通过滤波器衰减很少,同时噪声频率处于通带之外,通过滤波器后功率大幅度衰减,因此信噪比得以提高。

  本设计采用二阶有源低通滤波器,经实验对比,取二阶有源低通滤波器的截止频率fH为200Hz,品质因数Q为0.707,可使SNR达10以上,SNIR(信噪改善比)达10000以上。

  在实际应用中发现,待测信号和监测系统之间的参考零电势点之间存在电势差,由于两者由同一电源供电,因而形成“地环流”。电流从电源地线流入被测信号的接地点,然后通过信号地线流入监测系统,又通过监测系统的接地点回到电源地线,导致在线监测的过程中地线上出现很高的共模干扰噪声。在这样的工作环境下,使用普通的低温漂高精度运算放大电路,不能准确放大和测量待测信号。因此本设计采用高增益、高输入阻抗和高共模抑制比的三运放差分放大电路,消除共模干扰,如图2所示。

  

基于ARM的微伏信号在线监测系统设计

 

  图2 三运放差分放大电路

  集成运放A1和A2都接成同相输入、比例运算电路形式,这样电路输入阻抗很高。电路结构采用严格地对称形式,以使漂移、噪声、失调电压及失调电流等互相抵消。同时采用高精密电阻,以提高测量精度。将滤波后的信号线接入Vi+端口,而把信号地线接入Vi-端口,经过三运放差分放大电路输出电压为:

  

基于ARM的微伏信号在线监测系统设计

 

  经实验对比,本设计在强干扰环境下,对微伏信号有较好的放大效果。经过前置放大后的信号,有效地消除了干扰和噪声,具有良好的线性关系,实验结果如图3所示。经过差动放大后的信号,再经过普通运算放大器进行电压平移和放大,即可成为符合A/D采集要求的0~2.5V电压单极性信号。

  

基于ARM的微伏信号在线监测系统设计

 

  图3 前置放大电路的线性关系

2.2  数据采集与显示电路

 

  本设计中数据采集和显示电路的核心器件采用32位ARM7内核嵌入式处理器S3C44B0X。S3C44B0X内置部件有8通道10位ADC(模数转换器)、8KB cache(高速缓存器)、内置SDRAM(同步动态存储器)、LCD控制器、2通道UART(通用异步收发器)、4通道DMA(直接存储器存取)、71个通用I/O端口等。

  本设计中使用S3C44B0X完成A/D数据采集、LCD控制液晶显示器、键盘输入和故障报警四个主要功能。经前置放大电路处理完成之后的0~2.5V电压电极性信号,由S3C44B0X的10位精度片上A/D采集到CPU中。S3C44B0自带LCD控制器,利用DMA控制器从系统RAM中的显示缓冲区读取显示数据,提供给LCD控制器刷新液晶显示屏。键盘和报警电路利用S3C44B0通用I/O端口进行控制。

  3   系统软件设计

  本系统软件设计基于μClinux操作系统和MicroWindows图形用户界面。μClinux操作系统是从Linux内核派生而来,在标准的Linux基础上进行了适当的裁剪和优化,具有易配置、体积小、易移植的优点。用MicroWindows图形用户界面实现类似桌面电脑的视窗效果,易于实现人机交互

  系统软件包括操作系统自带的设备驱动程序、操作系统运行环境、根据用户需要自定义的设备驱动程序、封装了底层驱动的中间层接口程序、高级应用程序几个部分。在本系统软件设计中,分别在驱动层和高级应用层程序中实现,其中高级应用层程序框图如图4所示。

  

基于ARM的微伏信号在线监测系统设计

 

  图4 高级应用程序框图

  高级应用程序的设计以控制算法为核心,多个任务为控制服务。系统内核定时将测得的数据通过回调函数传递给高级应用程序。高级应用程序为每个被测通道分配一个数据缓冲区,数据缓冲区是个含有10个无符号整型数的数组,GCC编译器默认无符号整型数长度为16位。测量电路中ADC为10位模数转换器,缓冲区中的每个单元的低10位存储数值,最高位为1表示该数据无效或者已经被处理,为0表示该数据有效并等待处理,第10~14位表示数据编号,用以区分不同通道的数据。内核驱动程序把测量数据按格式准备好后,回调函数把数据传送给高级应用程序。应用程序只要使用“与”、“或”操作就可以提取数据类型、实际数据等信息。

  3.1  自定义设备驱动

  设备驱动程序是操作系统和硬件设备之间的接口,它主要完成对设备初始化、实现内核和应用程序与设备之间的数据交换、检测处理设备错误等功能。在μClinux操作系统使用设备文件的方式来进行设备管理应用,一个具体的物理设备被映射为一个设备文件,用户程序可以像对其它文件一样对此设备文件进行打开、关闭、数据读写等操作。

  系统软件设计中的驱动层部分,除了使用μClinux操作系统自带的设备驱动程序以外,需要对外部设备编写自定义的设备驱动程序,以满足操作系统的要求。以字符设备为ADC为例,主要对其编写自定义的驱动程序。使用结构体file_operations{}作为ADC字符设备的函数接口,内核通过这个函数接口来操作设备。自定义后的file_operations{}结构体如下:

  struct file_operations ADC_fops = {

  read:           ADC_read,   //从设备中读数据操作

  poll:        ADC_poll,   //查询设备

  ioctl:       ADC_ioctl,   //进行读、写以外的IO控制操作

  open:       ADC_open,   //打开设备

  release:      ADC_release, //关闭设备

  ……};

  编写自定义的驱动程序完成后,内核调用相应的函数即对ADC设备文件进行open、ioctl等具体操作。

  3.2  图形用户界面设计

  图形用户界面(GUI)把图形视窗引入到嵌入式平台上,其友好的界面为大多数用户所接受,也得到越来越广泛的应用。本设计采用MicroWindows来实现图形界面,以窗口形式显示测量数据及其它参数。MicroWindows是一个较早出现的、开放源码的嵌入式图形用户界面软件,它提供了比较完整的图形功能,支持多种外部设备输入,具有占用空间小、可移植性好的优点。在μClinux操作系统上使用MicroWindows易于图形程序的开发。

  MicroWindows采用了层次化结构:在底层提供设备的驱动,在中间层通过一个可移植图形引擎实现绘制多边形、区域填充、使用颜色等,在顶层实现多种API以适应不同的应用环境。MicroWindows API 之间采用消息传递的基本通信机制。消息被储存在应用程序的消息队列中,不同消息对应不同的事件,核心的API通过传递对应相应事件的消息来实现各种功能,如窗口的创建、绘制、移动等等。

  在本设计中,编写基于Microwindows的应用程序,基本结构为初始化、创建窗口与资源、进入消息循环三部分。主程序中相关部分如下所示:

  int WINAPI WinMain()

  {MwRegisterEditControl(NULL);  // 申明不使用控件

  wndclass.style= CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;

  wndclass.lpszClassName = szAppName;  // 创建窗口属性的结构体变量

  RegisterClass(&wndclass);

  hwnd=CreateWindowEx();  //创建窗口

  while (1)

  {if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))  //消息查询

  {TranslateMessage(&msg);DispatchMessage(&msg);}  //传递消息至窗口处理程序

  ScanKey_function();  //扫描键盘

  RxKeyvalue(hedit_Param);

  ……}}

  在调用窗口创建函数CreateWindowEx()后,系统在内存中创建了一个虚拟的窗口,之后调用窗口显示函数ShowWindow()就可将虚拟窗口显示为可视窗口,成为Windows风格的视窗界面。在本设计中,主程序运行时不断调用提取消息函数PeekMessage(),查看消息队列是否收到任务信息,当有信息产生时,就执行对应的消息处理函数。同时,在消息循环里也反复调用键盘缓冲区查询函数RxKeyvalue (),查看是否有键盘输入,以便随时响应。

  4. 抗干扰措施

  在本设计中,采用低温漂的基准稳压电源为前置放大电路供电,并且在每个元件的电源管脚处加去耦电容。元器件选用高精度、漂移小的精密运算放大器;选用高精度、低温漂的精密电阻;信号线采用双绞线或屏蔽线。印刷板布线时,尽量缩短前置放大电路的信号线,并确保了电路接地、屏蔽良好。

  5  结语

  本文创新点在于设计和实现了一种基于ARM的微伏信号在线监测系统,以差动放大方式消除外界对测量信号的干扰,利用S3C44B0X微处理器和μClinux操作系统实现液晶屏显示数据、人机交互和故障自动报警功能,为实现微伏信号在线监测提供了一种体积小、功耗低、操作灵活的解决方案。本设计已投入使用,长时间工作稳定。

关键字:ARM

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0805/article_7804.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:门限图像隐藏技术的实施与改进
下一篇:DSP芯片加工及选型参数

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
ARM

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved