位置:51电子网 » 技术资料 » 嵌入式系统

利用微控制器收集压力和加速计数据

发布时间:2008/6/3 0:00:00 访问次数:408

        

    

     图1:采用zilog encore! f64的压力传感器和加速计设计。

    

     大部分低成本的传感器都有需要转变成数字值的输出电压,这样微控制器就可测量并将其转化为二进制或 ascii字节。如今的微控制器具备进行该过程所需的所有功能,略添一些软件,我们就可制成一个低成本系统,以易于阅读的格式读取传感器电压和输出的测量数据。如果方法正确,代码就可成为不同系统应用程序的基本功能构建块。 对于本文所概述的项目,笔者侧重于讨论软件设计和尽可能减轻微控制器工作负担的子程序,从而使其在传感器数据进入系统时可执行其它任务。器件选择如下: * freescale的mpx5100硅压力传感器,它带有片上温度补偿、校准和信号调理功能;压力在0至14.5psi之间时,电压输出与压力成比例; * adi公司的adxl250,具备信号调理功能的±50g全集成双轴加速计,它的输出电压与压力(g)成正比; * zilog encore!微控制器,带有64k闪存程序存储器、4k静态储存器(sram)、8通道10位a/d转换器、通用输入输出(gpio)管脚、串行端口等。图2:采用zilog encore! f64的压力传感器和加速计的电路板布局。更大压力、更大加速度 笔者喜欢构建能以不同方式控制整个系统的短程序或应用程序接口(api)。在主程序(列表1)中,可借助新函数调用为这个主循环添加其他函数;同时评估每个函数在最佳或最差状态下的运行时间。若仅向主循环增加函数调用,该主循环仍会保持清晰和容易遵循。缩减细节讨论,进入固件的下面几层。随后的程序流程是校验和设定位或标记,以及利用switch语句将您的系统引导至不同的操作模式。您可以开启一个标记,这样其他程序就会开始将传感器数据存储到缓冲器,或向switch语句传递口令以设置一个针对传感器输入的跟踪触发点。 在“do"语句以上的函数实现了系统初始化,并启动了压力传感器和加速计。“do"循环内的函数始终运行。在压力传感器和加速计的初始化api中,定时器控制何时启动新的传感器采样。在定时器初始化传感器子程序(isr)中,传感器数据在缓冲器(如果激活)内实现阅读并存储,而其数值须经过告警设置点的校验。这样,告警标记也设在isr之中,一个新采样即已启动。若转向不同的传感器流程,switch语句可控制应用程序所需的不同状态。align="left" border=0 >

     class="maintext">

     图3:密布压力仪的福特f150。 为了解系统定时,请切换至一个崭新的端口管脚,并在一定范围内测量您的设计之中不同的执行时间。保持传感器转换和中断程序都在“幕后”运行,可实现多任务处理。 定时器中断 为了实行多任务处理,需要激活并编译一个定时器中断程序,这将需要耗用一些系统 的mips来执行采样以及传感器api控制程序。例如列表2所示的这种定时器中断程序。 将信息导入函数之中 在设计一个函数时,导入您认为会有助于控制整个系统的一切信息。在上述压力传感器函数中,笔者导入了有助于控制系统的一些变量:列表1:主程序。1. "contin"--转换传感器输入信息并存储至缓冲器中; 2. "buff_size_ps"--用于存储采样值的字的数量。 3. "sample_time_ps"--对传感器采样的频度; 4. "alarm_trip_ps"--传感器中断程序的采样值大于或等于某值时的告警标记。 请谨记将来您还可能会在其他方案中再度使用这些函数,所以应尽可能使这些函数具有灵活性。 福特f150增压器仪表改装实例 根据上述设计思想,笔者的一项有趣应用是改装福特f150超动力哈雷皮卡。福特为该车的增压器设置了压力传感点;而笔者想添置一个外型时尚的模拟压力表,以监控增压器的压力(见图3)。通过添加微控制器,笔者还能增加其他功能,如压力告警启动点(trip point)led、峰值压力点随时间的变化显示、发声等。

     本文小结列表2:一种定时器中断程序。 除了这个有趣的例子,许多的应用程序可从以下罗列的编程方法中获益。在您从事硬件和软件设计时,这种秘诀可用于创建清晰、简短的代码段,便于在其他项目之中复用。 1.校验并测量子程序在最佳和最差状态下的执行时间; 2.保持“主”循环的明晰;在此级别上仅添加函数调用; 3.为函数提供完整标签,例如“pressure_sensor_process()”而非ps(); 4.设定变量的极限并对其进行校验; 5.对您的函数构造原型(prototype); 6.测试所有的“what if”状态。 作者:steven pope

    

    

        

    

     图1:采用zilog encore! f64的压力传感器和加速计设计。

    

     大部分低成本的传感器都有需要转变成数字值的输出电压,这样微控制器就可测量并将其转化为二进制或 ascii字节。如今的微控制器具备进行该过程所需的所有功能,略添一些软件,我们就可制成一个低成本系统,以易于阅读的格式读取传感器电压和输出的测量数据。如果方法正确,代码就可成为不同系统应用程序的基本功能构建块。 对于本文所概述的项目,笔者侧重于讨论软件设计和尽可能减轻微控制器工作负担的子程序,从而使其在传感器数据进入系统时可执行其它任务。器件选择如下: * freescale的m5100硅压力传感器,它带有片上温度补偿、校准和信号调理功能;压力在0至14.5psi之间时,电压输出与压力成比例; * adi公司的adxl250,具备信号调理功能的±50g全集成双轴加速计,它的输出电压与压力(g)成正比; * zilog encore!微控制器,带有64k闪存程序存储器、4k静态储存器(sram)、8通道10位a/d转换器、通用输入输出(gpio)管脚、串行端口等。图2:采用zilog encore! f64的压力传感器和加速计的电路板布局。更大压力、更大加速度 笔者喜欢构建能以不同方式控制整个系统的短程序或应用程序接口(api)。在主程序(列表1)中,可借助新函数调用为这个主循环添加其他函数;同时评估每个函数在最佳或最差状态下的运行时间。若仅向主循环增加函数调用,该主循环仍会保持清晰和容易遵循。缩减细节讨论,进入固件的下面几层。随后的程序流程是校验和设定位或标记,以及利用switch语句将您的系统引导至不同的操作模式。您可以开启一个标记,这样其他程序就会开始将传感器数据存储到缓冲器,或向switch语句传递口令以设置一个针对传感器输入的跟踪触发点。 在“do"语句以上的函数实现了系统初始化,并启动了压力传感器和加速计。“do"循环内的函数始终运行。在压力传感器和加速计的初始化api中,定时器控制何时启动新的传感器采样。在定时器初始化传感器子程序(isr)中,传感器数据在缓冲器(如果激活)内实现阅读并存储,而其数值须经过告警设置点的校验。这样,告警标记也设在isr之中,一个新采样即已启动。若转向不同的传感器流程,switch语句可控制应用程序所需的不同状态。align="left" border=0 >

     class="maintext">

     图3:密布压力仪的福特f150。 为了解系统定时,请切换至一个崭新的端口管脚,并在一定范围内测量您的设计之中不同的执行时间。保持传感器转换和中断程序都在“幕后”运行,可实现多任务处理。 定时器中断 为了实行多任务处理,需要激活并编译一个定时器中断程序,这将需要耗用一些系统 的mips来执行采样以及传感器api控制程序。例如列表2所示的这种定时器中断程序。 将信息导入函数之中 在设计一个函数时,导入您认为会有助于控制整个系统的一切信息。在上述压力传感器函数中,笔者导入了有助于控制系统的一些变量:列表1:主程序。1. "contin"--转换传感器输入信息并存储至缓冲器中; 2. "buff_size_ps"--用于存储采样值的字的数量。 3. "sample_time_ps"--对传感器采样的频度; 4. "alarm_trip_ps"--传感器中断程序的采样值大于或等于某值时的告警标记。 请谨记将来您还可能会在其他方案中再度使用这些函数,所以应尽可能使这些函数具有灵活性。 福特f150增压器仪表改装实例 根据上述设计思想,笔者的一项有趣应用是改装福特f150超动力哈雷皮卡。福特为该车的增压器设置了压力传感点;而笔者想添置一个外型时尚的模拟压力表,以监控增压器的压力(见图3)。通过添加微控制器,笔者还能增加其他功能,如压力告警启动点(trip point)led、峰值压力点随时间的变化显示、发声等。

     本文小结列表2:一种定时器中断程序。 除了这个有趣的例子,许多的应用程序可从以下罗列的编程方法中获益。在您从事硬件和软件设计时,这种秘诀可用于创建清晰、简短的代码段,便于在其他项目之中复用。 1.校验并测量子程序在最佳和最差状态下的执行时间; 2.保持“主”循环的明晰;在此级别上仅添加函数调用; 3.为函数提供完整标签,例如“pressure_sensor_process()”而非ps(); 4.设定变量的极限并对其进行校验; 5.对您的函数构造原型(prototype); 6.测试所有的“what if”状态。 作者:steven pope

    

    

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!