基于μC/OS-Ⅱ的数据采集系统设计与应用
时间:03-08
来源:互联网
点击:
1引言
随着科学技术的不断发展,人们对数据采集的性能指标要求越来越高,传统的数据采集方式已经不能满足需要。通用串行总线因 (USB)具有传输速度快、即插即用、易于扩展、占用系统资源少等优点;嵌入式实时操作系统 (RTOS)中的 ?C/OS-Ⅱ则具有代码效率高、占用空间小、良好的实时性和可靠性等特点。本文将二者与传统的数据采集技术相结合,设计实现了一种基于 USB通信和 ?C/OS-Ⅱ的集数据采集、分析、显示为一体的数据采集系统。
2 系统体系结构
基于 USB通信的数据采集系统的体系结构如图 1所示。系统的工作过程就是一个数据采集的过程,其中的每一步都需要不同组的支持。首先,温度和压力参数经传感器转换成模拟信号,模拟信号经过 A/D转换变单片机可识别的数字信号。单片机将数字信号进行处理之后,就可以送往 LED显示或者发送给 USB接口芯片。USB接口芯片在主机需要的时候,把接收到的数据经 USB总发送给主机进行处理和显示。主机和 USB接口的通信则需要设备固件程序、USB设驱动程序和 USB主机应用程序的支持。
3 USB数据采集系统的硬件电路设计
USB数据采集系统的硬件电路结构主要包括以下几个部分:USB通信电路部分、数据采集电路部分、数码显示电路部分和固件程序下载电路部分。这些模块的功能都是在以 ATmega16为核心的硬件平台上实现的。
3.1 USB通信电路的设计
USB通信电路的功能是实现数据采集系统设备端和主机端之间的通信,这一功能主要是由核心微控制器 ATmega16和 USB控制器件 PDIUSBD12实现的。其中, PDIUSBD12是符合 USB1.1协议的芯片,在 USB通信电路中起着联系设备和主机的桥梁的作用。微控制器 ATmegal6和 USB控制器 PDIUSBD12之间通过 8位并行总线进行通信, 8位并行总线在 ATmegal6端需要连接 8个 I/O口。PDIUSBD12片内集成了时钟乘法 PLL,晶振电路使用 6MHZ的晶振和两个 2pF到 68pF的电容。 PDIUSBD12的信号输出端 D+/D一上要各串接一个 18欧的匹配电阻。通信电路如图 2所示。
3.2 数据采集电路的设计数据采集电路的功能就是将现场的温度、压力以及应力等数据转换成合适的模拟信号,再把模拟信号传送给 A/D转换电路。此模块包括温度采集模块和压力采集模块两部分。
由于 ATmegal6片内集成了可调增益的差分放大电路和 A/D转换通道,所以温度采集电路仅由一个用于测温的电桥组成。具体做法是根据热电阻阻值随温度变化的特性,将铜热电 阻作为电桥的一臂,当温度改变时,电桥输出电压也随之发生变化。将电桥输出电压送至 ATmegal6内部的采样保持电路,然后进行放大、 A/D转换,再经过固件程序的换算就可以得到测量温度了。
在本系统中,测量压力采用的器件是广州森纳士仪器有限公司生产的压力变送器,其量程是 0.0lMPa,输出信号是 4~20mA的电流。当压力改变时,输出电流也随之发生变化,所以在信号输出端接一个精密电阻,然后对电阻两端的电压进行采样和转换,再经过固件程序的换算就可以得到测量压力了。
3.3 固件程序下载电路
固件程序下载电路的功能就是将编译好的程序代码下载到 ATmegal6单片机的 Flash中去。 ATmega16支持多种编程模式,其中比较简单也比较方便的一种就是 ISP(In-system-programming,在系统编程)模式,即通过串行 SPI(serial peripheral Interface,串行外设接口)总线将在 windows中调试、编译好的程序代码下载到 ATmegal6的存储器。 Flash程序存储器、 EEPROM数据存储器、熔丝位和加密锁定位都可以在这种模式下编程。固件程序下载电路如图 3所示。
3.4 LED显示部分设计
如图 4所示,系统的显示是使用 MAX7219实现的 8位稳定静态显示,MAX7219是串行共阴极数码管动态扫描显示驱动芯片,仅使用 3线串行接口传送数据,可直接与单片机接口,用户还可以方便地修改其内部参数以实现多位 LED显示,因此可以方便地使用单片机的串口送出显示数据,并且其占用的时间少,方便编程及对信号的检测。
4 USB数据采集系统的软件开发
USB数据采集系统是一个多任务系统,而且程序结构也比较复杂,为了提高开发率,增强系统的稳定性,降低开发和维护成本,就需要一个嵌入式操作系统作为系统发和运行的平台。?C/OS-Ⅱ作为一个源码公开的免费型嵌入式实时操作系统,其稳定性好、可靠性高,而且 ?C/OS-Ⅱ还具有移植性好、可固化、可裁剪等特点,非常适合作为 USB数据采集系统的开发平台。
USB数据采集系统的软件由三个部分组成:USB设备固件程序、主机 PC上的 USB设备驱动程序和主机上的客户应用程序。系统软件的组成及各部分之间的关系如图 5所示。
固件程序按功能可以划分为 USB通信程序、A/D转换程序和 LED显示程序,其中 USB通信程序是整个固件程序的主要部分,其功能是实现 USB设备枚举和数据传输。USB设备枚举是 USB设备插上之后,主机与设备交换信息并自动配置的过程,枚举成功后, USB接口与主机就可以进行通信了。
设备驱动程序是连接设备和主机应用程序的纽带,它向上提供应用程序的访问接口 (API),向下则实现对具体设备的访问和管理功能。驱动程序与设备硬件和上层用户程序密切相关,在 USB体系的中间起到信息转换和传递的中介作用。在开发 USB设备时,设备驱动程序的设计是一个非常重要的环节,直接影响到整个设备系统的性能。
本系统采用 Driverworks开发 WDM型 USB设备驱动程序应用程序的主要功能是在设备驱动程序中查找设备,与设备交换数据,并将设备发送来的数据进行处理和显示。应用程序和驱动程序的通信是通过访问应用程序接口 (API)函数实现的,所以应用程序的开发必须在能访问 API函数的平台上进行。 Microsoft公司提供的visualC++6.0是一种功能强大的支持 API函数的编程工具,本设计的主机应用程序就是以VC为平台进行开发的,其功能主要包括查找 USB设备,与 USB设备交换数据和动态显示数据曲线。
随着科学技术的不断发展,人们对数据采集的性能指标要求越来越高,传统的数据采集方式已经不能满足需要。通用串行总线因 (USB)具有传输速度快、即插即用、易于扩展、占用系统资源少等优点;嵌入式实时操作系统 (RTOS)中的 ?C/OS-Ⅱ则具有代码效率高、占用空间小、良好的实时性和可靠性等特点。本文将二者与传统的数据采集技术相结合,设计实现了一种基于 USB通信和 ?C/OS-Ⅱ的集数据采集、分析、显示为一体的数据采集系统。
2 系统体系结构
基于 USB通信的数据采集系统的体系结构如图 1所示。系统的工作过程就是一个数据采集的过程,其中的每一步都需要不同组的支持。首先,温度和压力参数经传感器转换成模拟信号,模拟信号经过 A/D转换变单片机可识别的数字信号。单片机将数字信号进行处理之后,就可以送往 LED显示或者发送给 USB接口芯片。USB接口芯片在主机需要的时候,把接收到的数据经 USB总发送给主机进行处理和显示。主机和 USB接口的通信则需要设备固件程序、USB设驱动程序和 USB主机应用程序的支持。
3 USB数据采集系统的硬件电路设计
USB数据采集系统的硬件电路结构主要包括以下几个部分:USB通信电路部分、数据采集电路部分、数码显示电路部分和固件程序下载电路部分。这些模块的功能都是在以 ATmega16为核心的硬件平台上实现的。
3.1 USB通信电路的设计
USB通信电路的功能是实现数据采集系统设备端和主机端之间的通信,这一功能主要是由核心微控制器 ATmega16和 USB控制器件 PDIUSBD12实现的。其中, PDIUSBD12是符合 USB1.1协议的芯片,在 USB通信电路中起着联系设备和主机的桥梁的作用。微控制器 ATmegal6和 USB控制器 PDIUSBD12之间通过 8位并行总线进行通信, 8位并行总线在 ATmegal6端需要连接 8个 I/O口。PDIUSBD12片内集成了时钟乘法 PLL,晶振电路使用 6MHZ的晶振和两个 2pF到 68pF的电容。 PDIUSBD12的信号输出端 D+/D一上要各串接一个 18欧的匹配电阻。通信电路如图 2所示。
3.2 数据采集电路的设计数据采集电路的功能就是将现场的温度、压力以及应力等数据转换成合适的模拟信号,再把模拟信号传送给 A/D转换电路。此模块包括温度采集模块和压力采集模块两部分。
由于 ATmegal6片内集成了可调增益的差分放大电路和 A/D转换通道,所以温度采集电路仅由一个用于测温的电桥组成。具体做法是根据热电阻阻值随温度变化的特性,将铜热电 阻作为电桥的一臂,当温度改变时,电桥输出电压也随之发生变化。将电桥输出电压送至 ATmegal6内部的采样保持电路,然后进行放大、 A/D转换,再经过固件程序的换算就可以得到测量温度了。
在本系统中,测量压力采用的器件是广州森纳士仪器有限公司生产的压力变送器,其量程是 0.0lMPa,输出信号是 4~20mA的电流。当压力改变时,输出电流也随之发生变化,所以在信号输出端接一个精密电阻,然后对电阻两端的电压进行采样和转换,再经过固件程序的换算就可以得到测量压力了。
3.3 固件程序下载电路
固件程序下载电路的功能就是将编译好的程序代码下载到 ATmegal6单片机的 Flash中去。 ATmega16支持多种编程模式,其中比较简单也比较方便的一种就是 ISP(In-system-programming,在系统编程)模式,即通过串行 SPI(serial peripheral Interface,串行外设接口)总线将在 windows中调试、编译好的程序代码下载到 ATmegal6的存储器。 Flash程序存储器、 EEPROM数据存储器、熔丝位和加密锁定位都可以在这种模式下编程。固件程序下载电路如图 3所示。
3.4 LED显示部分设计
如图 4所示,系统的显示是使用 MAX7219实现的 8位稳定静态显示,MAX7219是串行共阴极数码管动态扫描显示驱动芯片,仅使用 3线串行接口传送数据,可直接与单片机接口,用户还可以方便地修改其内部参数以实现多位 LED显示,因此可以方便地使用单片机的串口送出显示数据,并且其占用的时间少,方便编程及对信号的检测。
4 USB数据采集系统的软件开发
USB数据采集系统是一个多任务系统,而且程序结构也比较复杂,为了提高开发率,增强系统的稳定性,降低开发和维护成本,就需要一个嵌入式操作系统作为系统发和运行的平台。?C/OS-Ⅱ作为一个源码公开的免费型嵌入式实时操作系统,其稳定性好、可靠性高,而且 ?C/OS-Ⅱ还具有移植性好、可固化、可裁剪等特点,非常适合作为 USB数据采集系统的开发平台。
USB数据采集系统的软件由三个部分组成:USB设备固件程序、主机 PC上的 USB设备驱动程序和主机上的客户应用程序。系统软件的组成及各部分之间的关系如图 5所示。
固件程序按功能可以划分为 USB通信程序、A/D转换程序和 LED显示程序,其中 USB通信程序是整个固件程序的主要部分,其功能是实现 USB设备枚举和数据传输。USB设备枚举是 USB设备插上之后,主机与设备交换信息并自动配置的过程,枚举成功后, USB接口与主机就可以进行通信了。
设备驱动程序是连接设备和主机应用程序的纽带,它向上提供应用程序的访问接口 (API),向下则实现对具体设备的访问和管理功能。驱动程序与设备硬件和上层用户程序密切相关,在 USB体系的中间起到信息转换和传递的中介作用。在开发 USB设备时,设备驱动程序的设计是一个非常重要的环节,直接影响到整个设备系统的性能。
本系统采用 Driverworks开发 WDM型 USB设备驱动程序应用程序的主要功能是在设备驱动程序中查找设备,与设备交换数据,并将设备发送来的数据进行处理和显示。应用程序和驱动程序的通信是通过访问应用程序接口 (API)函数实现的,所以应用程序的开发必须在能访问 API函数的平台上进行。 Microsoft公司提供的visualC++6.0是一种功能强大的支持 API函数的编程工具,本设计的主机应用程序就是以VC为平台进行开发的,其功能主要包括查找 USB设备,与 USB设备交换数据和动态显示数据曲线。
总线 USB 嵌入式 传感器 单片机 LED 电路 电容 电阻 电压 电流 相关文章:
- 一种新型防伪读码器的设计(01-01)
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 基于ARM核的AT75C220及其在指纹识别系统中的应用(05-24)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
- 基于FPGA安全封装的身份认证模型研究(05-27)
- 高精度压力测控系统的试验研究(04-08)