基于MSP430单片机的嵌入式手持数据采集系统

发布者:温柔阳光最新更新时间:2021-06-11 来源: eefocus关键字:MSP430  单片机  嵌入式 手机看文章 扫描二维码
随时随地手机看文章

简介:uC/OS在手持数据采集系统的成功应用为手持设备软件系统的设计探索了一条新的道路。使用uC/OS设计嵌入式软件克服了传统的前后台式的软件设计方法的弊端,提高了系统的实时性和稳定性,使得软件系统代码模块化,更进一步增强了系统升级扩展的能力。未来,在嵌入式系统软件设计中uC/OS的应用领域必将变得更加的广泛。


本数据采集系统主要是使用TI公司的MSP430单片机与嵌入式系统uC/OS相结合而设计的,uC/OS在手持数据采集系统的成功应用为手持设备软件系统的设计探索了一条新的道路。使用uC/OS设计嵌入式软件克服了传统的前后台式的软件设计方法的弊端,提高了系统的实时性和稳定性,使得软件系统代码模块化,更进一步增强了系统升级扩展的能力。未来,在嵌入式系统软件设计中uC/OS的应用领域必将变得更加的广泛。采用了uC/OS的多任务的软件设计方式代替了传统的前后台式的嵌入式软件设计方法,使得软件系统模块化,并且克服了前后台式软件设计的弊端,增前了系统的实时性。


1)前言

近年来随着IC设备功耗和体积的不断减小,手持设备的应用领域变的越来越广泛。但是另一方面,传统的前后台式的软件设计方法却限制了硬件系统功能的充分发挥,影响了系统的实时性与稳定性。本文介绍了一种基于嵌入式操作系统uC/OS上设计系统软件的方法,即克服了原有前后台式软件设计的一些弊端,又充分发挥了硬件特性,增强了系统稳定性,很好的解决了手持数据采集设备多任务软件系统实时性不强的问题。


2)uC/OS简介

uC/OS是由EAN J.LABROSSE个人开发的嵌入式操作系统。该系统是一个源代码完全公开的实时内核,设计人员在应用过程中可以按照自己的需求对内核进行裁减和扩展,以满足不同工程对应用软件设计的要求。uC/OS是完全占先式的实时内核,支持多任务操作,并且每个任务都有自己单独的栈,这样就清晰了任务之间的界限,增强了系统的稳定性。uC/OS还提供了很多的系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请和释放、时间函数等,并且还支持多达255层的中断嵌套。利用这些系统服务就能轻而易举的完成复杂逻辑的要求,从而缩短系统开发的周期,降低开发的成本。同时uC/OS良好的可扩展性和可移植性,使其能够广泛的应用到各种架构的微处理器上。


3)硬件系统设计

3.1 硬件系统设计要求

手持数据设备的硬件设计具有一些特殊的要求,首先手持系统一般都是采用自身携带的电池供电,对硬件设备功耗的要求十分严格,另外手持设备还需要具有一个良好的人机交互的功能,一方面要能显示各种数据的变化,令一方面也要能响应外部的人为命令。考虑到这些因素,系统选取了TI公司的MSP430单片机作为硬件设计的核心平台。


3.2MSP430硬件简介

MSP430是TI公司近几年推出的16位系列单片机,采用了TI公司最新的低功耗技术,使其在众多的单片机中独树一帜。MSP430工作在1.8~3.6V电压下,有正常工作模式(AM)和4种低功耗工作模式(LPM1、LPM2、LPM3、LPM4),在电源电压为3V时,各种模式的工作电流分别为:

AM:340uA

LPM1:70uA

LPM2:17uA

LPM3:2uA

LPM4:0.1uA

单片机可以方便的在各种工作模式之间切换。MSP430也具有非常高的集成度,单片集成了多通道12bit的A/D转换、片内精密比较器、多个具有PWM功能的定时器、斜边A/D转换、片内USART、看门狗定时器、片内数控振荡器(DCO)、大量的I/O端口以及大容量的片内存储器,单片可以满足绝大多数的应用需要,节省了大量的板上空间。此次设计中选择了MSP430F149作为硬件设计平台,其多种功耗模式完全适合设计低功耗的要求,丰富的片上资源又能够满足交互界面的开发。更重要的是其多达60KB的闪速存储器和2KB的RAM为uC/OS的移植与稳定运行提供了充分的空间。


3.3 手持数据采集系统硬件结构

对于本次设计,一个完整的手持数据采集系统还需要具有以下硬件模块:

1)A/D转换模块,板上内置传感器,预留模拟信号输入接口。

2)DS1302外部实时时钟。

3)两个RS232串口,用来和上位机和其他设备通信。


整体的硬件示意图如下所示:


图1: 系统硬件框图_www.schuitron.com


图1: 系统硬件框图


4)软件系统设计

4.1 前后台软件设计方法的弊端

一般的嵌入式软件系统的设计都是采用前后台式的设计方法,前台程序是一个无限循环,循环依次调用相应的函数来完成对应的操作,后台是中断服务程序,负责处理异步事件。这种设计方法在实际应用中存在三个缺陷:

一是中断不能得到及时响应,处理时间过长,无法保证系统的实时要求。

二是当系统任务多时,要实现多个任务实时操作的常规方法是采用多级嵌套来实现多个任务并行处理,这就增加了软件编写的难度,同时降低了软件系统的可靠性。


三是各任务之间信息交换困难。多任务在运行时,任务之间不可避免的有同步和互斥的情况发生。前后台设计方法一般采用全局变量的方法来解决通讯问题,但任务多情况复杂时容易出错,如果调用不当就会发生死锁。


工程中设计的数据采集系统是一个典型的多任务系统,并且要能够响应多个外部信号,传统的前后台式的软件设计方法已经不能满足工程的需要,因此设计中引入了uC/OS,采用了多任务式的软件设计方法。


4.2 基于uC/OS的软件设计

使用uC/OS设计软件系统首先要实现uC/OS在硬件应用平台上的移植,主要就是完成对OS_CPU_C.C,OS_CPU_A.ASM等几个与处理器相关文件的改写,使其能够适应硬件和编译环境的要求,选取的编译器一定要能够支持函数的重载,此次设计选取了IAR公司的IAR for MSP430 1.26A。另外在本次设计中,笔者将空闲任务修改为如下形式。

void OSTaskIdleHook (void)

{

LPM3;/* Enter low power mode

}

这样当系统进入空闲状态时就会进入低功耗模式LPM3,从而充分发挥硬件低功耗的特性,这也体现了uC/OS应用的灵活性。


完成移植后就要根据工程要求合理划分系统任务,确定任务间的通信机制以及各个中断信号。设计中,我们将整个系统划分为如下几个部分:

任务1 数据采集及显示

任务2 串口通讯

任务3 DS1302实时时钟设定

外部中断:多个外部键盘触发中断,用来唤醒不同的系统任务。

Timer中断:一个timerA中断,用来显示系统时间。


系统软件流程图_www.schuitron.com


图2 系统软件流程图


任务1的功能是采集外部的模拟输入信号,将采集到的数据通过一定的滤波算法和转换处理后显示在LCD上面,并将数据保存到一个数组里面。该任务是系统的最高优先级任务,用邮箱CltMbox1和CltMbox2来控制,当任务开始的时候要等待邮箱CltMbox1或CltMbox2,如果没有邮箱的释放,系统将转到任务2执行。如果有数据采集的外部键盘触发信号产生,当按键时间超过1s时释放邮箱CltMbox2,则系统开始循环执行任务1,直到有外部停止中断信号挂起CltMbox2才中止。如果按键时间小于1s则释放邮箱CltMbox1,任务1循环执行10次后释放邮箱CltMbox1,然后进入等待状态,直到再次有外部信号的触发才开始执行。任务1每次执行后都要将自己挂起1s,这一方面为其他任务的执行提供了时间,另一方面也是考虑到人眼的实际分辨能力,太快的LCD的刷新频率是没有意义的。


任务2实现的是串口通讯功能,主要是用来完成手持设备与上位机的数据交流,其执行也是通过外部键盘的触发信号来控制。当发送按键触发后将会释放一个邮箱SMbox,任务2在得到这个邮箱后将会把采集到的数据发送给上位机,如果需要修改软件的滤波算法或转换公式的参数的话就要触发键盘的接收键,任务2在得到相应的邮箱RMbox后将接收上位机的数据,改变对应的参数。


任务3是外部实时时钟的设定任务,它是3个系统任务中优先级最低的。在传统的前后台软件设计方法中,如果将这个任务放到前台系统中,其大量的耗时将降低系统的实时性,使得其它中断任务得不到及时的响应,如果将其放到后台处理,在中断中调用过大的程序又会降低系统的稳定性,但在uC/OS多任务的体系结构中却很好的解决了这个问题。作为系统的最低优先级的任务,任何处于就绪态的高优先级的任务都能打断外部实时时钟的设定,当在其他更高优先级任务完成后,设定过程会在原先中断的地方继续执行。在外部实时时钟设定的过程中如果有数据采集触发信号产生,任务1将进入就绪态,但是由于数据采集的过程非常的快,当任务1挂起1s的时候任务3将会再次得到系统的控制权,给我们的感觉就像在设定外部时钟的同时又完成了系统的数据采集和显示,从而利用uC/OS提供的这种分时操作的功能,很好的解决了系统的实时性问题,增强了系统的稳定性。


时间显示是系统中调用最多的任务,考虑到系统的功耗问题,设计中将时间显示任务放到了TimerA的中断里面来完成。通过外部键盘的触发将开启TmerA的中断使能,LCD将开始显示外部实时时钟的时间。同样通过键盘控制也可以关闭TimerA的中断使能,这样在没有任何任务就绪的情况下,系统将进入空闲任务中,从而进一步降低了系统的功耗。


4.3系统升级扩展

为了满足远程数据采集处理的要求此系统可以与GSM MODEM联合使用,以达到远程无线传输数据的功能。数据采集系统与GSM MODEM通过RS232通信,将需要发送的数据输给GSM MODEM,然后再通过GSM MODEM发送到远程的数据采集站。增加此功能的软件修改十分简单,只需将此功能作为一个独立的任务添加到uC/OS中,通过键盘触发来完成该任务的调用,而无需再对整个软件系统的逻辑进行修改,这也体现了uC/OS模块化软件设计的优势。需要注意的是GSM MODEM的初始化过程时间较长,在这个过程中尽量不要有任务的切换,从而造成整个发送过程的失败。有效的方法就是将GSM的发送作为最低优先级的任务来处理,在没有其它任务触发后再调用该任务。


5) 结论

uC/OS在手持数据采集系统的成功应用为手持设备软件系统的设计探索了一条新的道路。使用uC/OS设计嵌入式软件克服了传统的前后台式的软件设计方法的弊端,提高了系统的实时性和稳定性,使得软件系统代码模块化,更进一步增强了系统升级扩展的能力。未来,在嵌入式系统软件设计中uC/OS的应用领域必将变得更加的广泛。


6) 参考文献

[1] Jean J.Labrosse著,邵贝贝译.嵌入式实时操作系统μC/OS-Ⅱ(第2版).北京航空航天大学出版社 2002.3.

[2] 魏小龙编著.MSP430系列单片机接口技术及系统设计实例.北京:北京航空航天大学出版社 2002 胡大可主编.MSP430系列单片机C语言程序设计与开发.北京:北京航空航天大学出版社 2002 IAR Company,MSP430 Windows WorkBench,TEXAS INSTRUMENTS。1999 72~83

关键字:MSP430  单片机  嵌入式 引用地址:基于MSP430单片机的嵌入式手持数据采集系统

上一篇:MSP430f5438的IO操作实验
下一篇:基于MSP430单片机实现六自由度机械手模块的设计

推荐阅读最新更新时间:2024-11-02 12:16

嵌入式网络智能控制系统的研究
   摘要 :嵌入式设备与Internet结合将代表着嵌入式技术的真正未来。文中嵌入式网络智能控制系统将嵌入式操作系统与Internet网络相结合,首先给出了基于Web服务器的嵌入式网络智能控制系统的体系结构;然后,设计了软件系统,并给出了嵌入式网络智能控制终端与Web服务器之间信息交换的报文格式,提出了调度服务器的参数计算方法和负载调度算法;最后,给出实验结果和结论。    关键词: 嵌入式操作系统;Web服务器;调度算法    1 引 言   随着 Internet 技术的发展、信息家电的普及应用以及EOS(Embedded Operating System)的微型化和专业化,EOS 开始从单一的弱功能向高专业化的强功
[安防电子]
51单片机教程之基础编(基于C语言)
大家好,我是陈滨,本人是去年9月份开始学单片机,到现在一年多了,现在本人基本掌握了单片机编程,开始深入学习汇编语言了。很多初学者有很多的疑惑,我究竟是先学C语言,还是汇编语言?其实我告诉你,本人认为,先学C语言!为什么呢?C语言是目前使用最广泛的中级语言,就连现在的windows7也是C语言编写的,C语言易读性好,无需对单片机内部结构十分熟悉即会编程,可移植性高,便于维护。C语言只有32个关键字,9种控制语句,而且编译器提供了很多函数库,使用十分方便。而汇编语言达100多条指令,每条指令对应一个机器码,跟单片机内部结构息息相关,而且不提供库函数,每种东西都要自己写。汇编语言最致命的地方是它不同硬件几乎不可移植,维护麻烦。但是读者又有
[单片机]
基于IPP的嵌入式音频解码器设计与优化
  1前言   随着信息技术的飞速发展,形式多样的数字化产品已经开始成为继PC机后的信息处理工具,在这种数字化潮流下,嵌入式系统已成为当前研究和应用的热点之一。嵌入式手持设备的视音频多媒体应用也越来越广泛.由于嵌入式系统的应用要求及成本因素决定了嵌入式系统在系统资源, 包括硬件资源和软件资源方面都是非常精简和高效的。因此通过IPP底层API函数实现针对特定处理器的特定关键算法进行程序结构重组和优化,为嵌入式系统低功耗高代码执行效率提供一种很好的解决方案。   2 Intel IPP简介   Intel集成高性能原件(Intel IPP)是一个交叉架构的跨平台软件库,提供了大量库功能,用于多媒体,音频编码,视频编码,计算机视觉
[手机便携]
支持IO-Link V1.1标准的微控制器开发套件(英飞凌)
英飞凌科技股份公司发布可以支持IO-Link V1.1标准的、基于英飞凌16位XE166和8位XC800微控制器的设计评估套件,基于高实时性XE166和低成本XC800微控制器,可支持最多8个带FIFO缓冲的IO-Link通道。与工业自动化领域经验丰富的合作伙伴携手合作开发的这个IO-Link评估套件,可使设备制造商轻松评估基于IO-Link的完整主机从设备系统的功能。 IO-Link是一种标准化点对点通信标准,可简化工厂自动化系统中传感器和执行器的集成度。该系统为终端用户带来了诸多益处,包括更简易、更便宜的电缆连接,远程诊断和配置等。IO-Link系统由一个IO-Link主设备和一个或多个IO-Link从设备(传感器或执行器)构
[嵌入式]
制作单片机恒温箱的温控系统的方法解析
本设计的主要原理是,单片机实时地将温度传感器所采集的温度值与所设定的恒温值进行比较和处理。从而监控并保持样品容器箱的温度值。本文给出了该系统的方案设计、硬件电路、软件设计、故障排除以及系统调试等内容。 系统的主要性能指标有:(1)恒定温度值设定范围:20-50℃,最小区分度:1℃;f 2)数码管显示实际温度值,显示范围:0-99℃;最小区分度:0.1℃;(3)温度控制误差:≤4-1℃;(4)显示精度:温度控制的绝对误差≤±3℃.鉴于风扇冷却,环境温度高于20℃.恒温下限相应上移。 一、系统方案设计 本系统是基于经典C51系列单片机的应用开发,集环境温度的信号采集、数据的处理及温度的保持控制等等为一体的数字控制系统。同时,该系
[单片机]
制作<font color='red'>单片机</font>恒温箱的温控系统的方法解析
基于51单片机控制的热源自动测试仪
在药品质量监测过程中,热源反应的测温是一项重要内容。药品检测有其特殊性,对测试系统的精度、稳定性、一致性和线性度等指标有着较高的要求。传统老式仪器大多是各类温度计,测试效率和精度都难如人意。根据现场监测要求,研制了基于单片机控制的热源自动测试仪,实现了在实验室内自动巡回测试30路热源,满足了现场测温准确稳定的高标准要求,成功地完成了药检实验室测试仪器的更新换代。 1 测试仪器系统组成与工作原理   本测试仪器的工作原理图如图1所示,对多点测试的热源数据经多路转换开关,送入仪器放大器实现差值放大后,用V/F转换器将电压信号转换成一定频率的脉冲信号,送入8051单片机的T0口,T0为计数器,T1作为定时器,在定时时间内接受脉冲
[单片机]
基于51<font color='red'>单片机</font>控制的热源自动测试仪
一种红外感应泵液器的单片机应用设计
摘要:红外微电脑自动泵液晶是21世纪一个实用的全新的小家电产品。它采用红外技术感应人手,由单片机控制出液量,具有抗干扰能力强、无误操作、省电节能等特点。 关键词:红外 泵液晶 单片机 随着许多日用新产品的出现,人们的生活水平和生活质量不断提高,同时,也逐渐改变了人们传统的生活方式。如液体香皂改变了人们用传统香皂洗手、洗澡、洗脸、洗碗的习惯。液体香皂可高效、安全去除和抑制95%以上有害细菌,特别适合医院和其他经常接触细菌源的行业人员,如银行及证券公司等有台工作人员。强力去污型可有效去除皮肤表层之重油污,并有除菌抗菌之效用,对皮肤无伤害,最适用于经常接触重油污的油田、煤矿、机修等工作人员手部肌肤的清洁养护。现在,各种清洁爽肤、营养
[应用]
51单片机控制的数字温度计
总览部分 MCU部分 显示部分 开仿真以后实时显示温度 因为这个程序比较简单,我就直接上代码了,有不明白的请看我以前的文章,谢谢哦! 参考代码如下: #include “reg51.h” char disp ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; char disp_dot ={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xc0}; sbit DQ = P1^3; //定义通信端口 //晶振12MHz void delay_18B20(unsigned int i) {
[单片机]
51<font color='red'>单片机</font>控制的数字温度计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved