当前位置:首页 > 电源 > 数字电源
[导读]1.引言在嵌入式系统特别是数据采集系统中,实时性至关重要,它不仅要求嵌入式微处理器能快速作出响应,还要求嵌入式系统能及时处理数据[1]。在本文设计的数据采集系统中,如采用常规方法传输数据,当采集数据的速度较

1.引言

在嵌入式系统特别是数据采集系统中,实时性至关重要,它不仅要求嵌入式微处理器能快速作出响应,还要求嵌入式系统能及时处理数据[1]。在本文设计的数据采集系统中,如采用常规方法传输数据,当采集数据的速度较高时,由于Windows CE系统和采集系统不能同步,可能会造成数据的丢失,使得系统不能及时准确的传输数据。为解决这一问题,可以使用采集板上内置的先入先出(FIFO)缓冲器。目前国内关于在Windows CE系统中实现FIFO的文献还未见报道。对此,本文讨论了如何在Windows CE.net平台上开发基于FIFO的数据采集板的驱动程序,以保证数据采集数据的准确性。通过试验将常规方法与FIFO进行比较,得到较好的结果

2.系统的软件及硬件平台

嵌入式系统以其体积小、针对性强、实时性好等特点,在通讯、控制和消费电子等诸多领域得到了广泛的应用。本设计中的操作系统就是微软公司推出的专门用于嵌入式系统的实时操作系统Windows CE.net,它是一个32位、多线程、多任务的嵌入式操作系统,以其模块化的结构,良好实时性能力,强大的通信能力和对多种CPU的支持,在各种工业控制、消费电子等领域拥有较好的应用前景[2]。

数据采集系统的硬件平台是研华公司的MIC-2000工业控制计算机,MIC-2000具有良好的机械可靠性和总线扩展能力[3],可用于环境恶劣的工业现场。数据采集板是模拟量输入板MIC-2718,它是一个高增益、高性能的多功能数据采集板,它提供的程序可控增益放大器使用户可以不用外加电源就可以采集很小的输入信号,内置的1K字FIFO缓冲区保证了采集数据的快速性和准确性。MIC-2718为12位100KHz的A/D模块,支持16路单端或8路差分输入最大转换时间为8usec,有软件触发、定时器触发和外部触发三种方式,MIC-2718的功能框图如图1所示。

MIC-2718支持跳线选择16路单端输入或8路差动输入,当选择单端输入时每个通道只需要接一根信号线,信号的参考地为板上的公共地[4]。标准连线图如图2所示。当选择双端输入时每个通道有2根信号线,MIC-2718测量2个模拟信号的电压差,如果信号源没有接地,则称为“浮”信号源,测量“浮”信号源用图3所示的接线方法。

3.Windows CE驱动程序

与其他操作系统一样,Windows CE.net也提供了很多外设的驱动程序,驱动程序将操作系统和设备连接起来,使操作系统能够识别设备并为应用程序提供设备服务[5]。 但是,对于非常规硬件设备(或者说对现有的Windows CE应用系统是非常规的),微软并没有提供驱动程序,因此需要设备的硬件厂商提供WndowsCE的驱动,或是使用者自行开发[6]。目前,还没有MIC-2718的基于Windows CE.net 4.2版本的驱动程序,因此需要自行开发。

Windows CE.net驱动程序的2种模式是本机驱动和流接口驱动模式[7]。本机设备驱动适于集成到基于Windows CE.net平台的设备,如通用LED驱动和电源驱动。流接口驱动模型适用于任何在逻辑上被认为是一个数据源或数据存储的设备的I/O设备(任何以产生或消耗数据流作为主要功能的外围设备)[8],因此在采集系统中,WinCE的外围设备驱动程序一般以流接口驱动程序较多。另外,绝大部分外围设备驱动程序都可映射为流接口驱动程序。无论驱动程序控制的设备是什么类型,流接口驱动都使用相同的接口并导出一组相同的函数(流接口函数)。

针对本文中数据采集系统和Windows CE中驱动程序模型的特点,本设计采用流接口驱动程序模型。

4. FIFO传输方式与常规方式的实现与比较

FIFO存储器有两个端口(输入口和输出口),并按先入先出的顺序来暂时存放数据。当采用常规方式进行数据传输时,如采集板采样速度很快,而系统不能及时读出数据时,新采集的数据会把原来的数据覆盖,这时系统只能传递新的数据,从而造成数据丢失。MIC-2718的FIFO缓冲器可以解决这个问题,FIFO在数据采集卡中作用是缓存数据,解决采集系统中数据丢失的问题,它使采集板在高触发率或多任务操作系统(如Windows操作系统)中实现可靠稳定的高速实时数据采集和传输。

MIC-2718在完成第一次A/D转换后将数据存入MIC-2718的A/D数据寄存器(地址为BASE+0和BASE+1(BASE为MIC- 2718的基地址))和FIFO缓冲区的第一个存储单元,下一次A/D转换时,新的数据会覆盖A/D数据寄存器中的数据,但是如果缓冲区的第一个存储单元中的元素没有被系统读取,FIFO会自动将此次转换的数据存入缓冲区的下一个存储单元,上一次的数据仍然保留。每一次转换的数据都被依次存入FIFO的缓冲区中,最多可以存储1024次A/D转换的数据。转移数据时,只需读取FIFO数据寄存器(地址为BASE+23和BASE+24)中的数据,它也是 FIFO缓冲区中的第一个存储单元的数据,此时缓冲区中第一个数据被读出,下一个存储单元的数据自动代替它的位置。通过采集板中FIFO的状态寄存器(地址为BASE+25)可以判断FIFO缓冲器当前的状态。状态寄存器的D0位EF是FIFO为空的标志,D1位HF是FIFO半满的标志,D2位FF是 FIFO为满的标志。另外,对BASE+25寄存器的任何写操作都将清空FIFO缓冲器,EF被置1,HF、FF置0。

Windows CE系统提供的驱动程序开发包(Windows CE Driver Development Kit,Ceddk)中提供了丰富的驱动程序函数(地址映射、总线访问、建立DMA缓冲和I/O操作等),可以满足硬件平台上任何总线的需要[8],它通常被实现为动态库Ceddk.lib文件。由于MIC-2718是基于ISA总线的,可以直接对采集板的地址进行读写操作,同时,由于FIFO读写操作是相互独立的,可以同时进行,所以不必考虑采集板与Windows CE系统数据传输时的时序配合问题,但是在对FIFO进行读写操作时,要判断FIFO的状态,只有在缓冲区中数据未满时才能写入,未空时才能读出[9],以避免一些错误的操作。

[!--empirenews.page--]

当数据采集板通过程序控制方式、定时器触发方式或外部触发方式采集到模拟信号后自动进行A/D转换后将数据放入A/D数据寄存器并依次写入FIFO 缓冲区中,Windows CE.net中的用户应用程序通过检测FIFO标志寄存器和MIC-2718状态寄存器(地址为BASE+8)的状态来确定是否进行了有效的A/D转换。下面给出在Windows CE开发平台上对FIFO进行读操作的部分代码,设MIC-2718的基地址为300H:
PUCHAR ioPortBase=MapIoSpace(300H);//将物理地址影射为虚拟地址
BYTE aistatus=READ_PORT_UCHAR(ioPortBase+8);//读MIC-2718的状态寄存器
BYTE status=READ_PORT_UCHAR(ioPortBase+25);//读FIFO的状态寄存器
BYTE ad0,ad1;
if(aistatus&0x10)//若MIC-2718状态寄存器的A/D转换位有效
{
if(status&1!=0)//若FIFO不为空,则读FIFO
{
ad0=READ_PORT_UCHAR(ioPortBase+23);
ad1=READ_PORT_UCHAR(ioPortBase+24);
}
}

表1  A/D数据寄存器与FIFO数据寄存器的比较

在使用MIC-2718的某一通道分别用常规方式和FIFO方式对一个持续变化的电压源做连续的信号采集和传输时,两种方式传输的数据如表1所示。可以看出,第2和第8组中A/D数据寄存器中的数值是错误的,可见使用普通A/D传输方式存在数据丢失问题,因此并不能准确传输数据,而使用FIFO方式可以保证数据传输的完整性。

[!--empirenews.page--]

5.结束语

通过实际测试,在Windows CE的高速数据采集系统中,采用FIFO可以保证数据采集的可靠性,并且编程简单,程序调试方便,可以极大地提高数据采集板的采样效率。本文作者的创新点在于在Windows CE.net系统下实现FIFO数据数据传输,从而保证了数据传输的可靠性。

参考文献
1. 刘大鹏,马孝江,基于Windows CE的嵌入式操作系统实时性分析[J],自动化技术与应用,2002(1): 41
2. Microsoft Corporation. About Windows Embedded[EB/OL]. http://www.microsoft.com/windows/embedded/about.mspx,2005
3. Advantech Co,Ltd. PC-Based Modular Industral Computer Designed for Industrial Automation MIC-2000 Modular Industuial Computer Series[Z].1996-5
4. Advantech Co,Ltd. PC-Based Modular Industral Computer Designed for Industrial Automation MIC-2718 High-Performance DAS Module[Z].1998-4
5. 周毓林,宁杨,卢贵强,付林林,Windows CE.net内核定制及应用开发[M],(北京)电子工业出版社,2005.2
6. 王少红,徐小力,李海燕,Windows CE平台上开发采集板驱动程序[J],北京机械工业学院学报,2004,19(3):23
7. 杨军波,须文波,基于WinCE环境的CAN适配卡驱动程序的设计与实现[J],微计算机信息,2005,21(12):26
8. 张冬泉,谭南林,王雪梅,焦风川,Windows CE实用开发技术[M],(北京)电子工业出版社,2006.4
9. 曾照福,成继勋,采用FIFO的CAN总线接口卡的设计[J],工矿自动化,2002(9): 33
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着科技的飞速发展,电子设备间的连接与数据传输变得越来越重要。Type-C转接头作为连接各种设备的桥梁,其性能与标准也不断升级。本文将详细探讨Type-C转接头2.0与3.1之间的区别,帮助读者更好地理解和选择适合自己的...

关键字: 电子设备 数据传输 Type-C

随着科技的不断进步,移动通信技术也迎来了飞速的发展。从最初的2G时代到如今的5G时代,每一次技术的升级都为我们带来了更快捷、更便利的通信体验。作为最新一代的移动通信技术,5G以其超高速率、低时延和大连接数的特点,正逐步改...

关键字: 移动通信 数据传输 5G

随着信息技术的飞速发展,数据通信作为连接世界的桥梁,其重要性日益凸显。为了确保数据通信的高效、稳定和可靠,我们需要关注一系列关键的技术指标。本文将深入解析数据通信的主要技术指标,并探讨其前沿发展。

关键字: 数据通信 数据传输

船载通信系统是现代船舶中不可或缺的重要组成部分,它为船舶提供了与外界通信和数据传输的渠道。船载通信系统行业设计方案涵盖了多个方面,包括系统架构、硬件设备、软件系统、通信协议等。本文将详细介绍船载通信系统的行业设计方案。

关键字: 船载通信 数据传输 通信协议

12月22日,由广州日报主办的2023年高质量发展年度峰会在广州举行。OPPO凭借持续创新和技术积累,入选2023年广东创新TOP100榜10强,展现出在科技创新领域的领先实力。

关键字: 智能手机 数据传输

短距离无线通信技术是一种利用无线电波进行数据传输的技术,适用于距离较短、对传输速率要求不高的场景。近年来,随着物联网、智能家居等技术的不断发展,短距离无线通信技术也得到了广泛应用。本文将对常见的短距离无线通信技术进行介绍...

关键字: 无线通信 数据传输 物联网

数字通信是指以数字信号作为载体来传输消息,或用数字信号对载波进行数字调制后再传输的通信方式。它可传输电报、数字数据等数字信号,也可传输经过数字化处理的语声和图像等模拟信号。在数字通信中,信号通常是经过抽样、量化和编码后形...

关键字: 数字通信 数据传输

通信模块的作用是实现数据传输和通信。通信模块可以将数据从一台设备传输到另一台设备,或者在一个设备内部的不同部件之间进行传输。通信模块的应用非常广泛,包括工业自动化、电力系统、安防监控、智能家居、医疗设备、交通工具等领域。

关键字: 通信模块 数据传输

串口通信,也称为串行通信,是一种数据传输方式,它按照二进制位(bit)顺序进行数据传输。在串口通信中,数据从一个设备(发送器)的串口发送到另一个设备(接收器)的串口,这两个设备通过共享的通信通道进行通信。

关键字: 串口通信 数据传输

日前,智慧芽发布《2023年度中国科创力坐标报告》和《2023年度全球科创力坐标》,OPPO凭借持续创新和技术积累,入选2023年全球科创领袖TOP100、中国科创领袖TOP100榜单,展现出在科技创新领域的领先实力。

关键字: OPPO 数据传输 中国科创领袖TOP100
关闭
关闭