当前位置:首页 > 测试测量 > 测试测量
[导读] 1. 引言  嵌入式系统是能够运行操作系统的软、硬件综合体,且多数系统的应用软件和操作系统是紧密结合在一起的。选配好RTOS(Real-Time Operating System)开发平台,就能合理的实现多任务调度,系统资源利用。

 1. 引言

  嵌入式系统是能够运行操作系统的软、硬件综合体,且多数系统的应用软件和操作系统是紧密结合在一起的。选配好RTOS(Real-Time Operating System)开发平台,就能合理的实现多任务调度,系统资源利用。

  嵌入式系统较一般单片机系统而言,软件资源利用率较高,开发周期短;系统精度较高;实时性也更好。特别适合于数据处理量较大,有联网、通信等要求的场合。

  为了利用嵌入式系统构造一个分布式多点温度测控系统,本文做了一些前期的尝试和开发工作。结合可编程单总线数字式温度传感器DS18B20,用嵌入式系统构造了一个具有温度测量、相关数据处理以及与上位机通信等功能的现场温度测量单元,上位机则主要完成系统监控和人机交互等功能。

  2. 系统组成及工作原理

  温度测量系统总体结构如图1所示。

  图1 系统总体结构图

  本文中,下位机由嵌入式系统组成。根据实际需要,其核心采用了低端的LPC2104芯片。它包含一个支持仿真的ARM7TDMI-S CPU,128K 字节FLASH存储器和64K字节SRAM以及片内总线。数字式温度传感器DS18B20连到LPC2104的一个GPIO管脚P0.8上。LPC2104通过该管脚发送命令和接收温度值,并对读到的温度值进行数字滤波、二—十进制转换等数据处理,还设置了温度超限报警等功能。下位机还可与上位机实时通信,一方面接受上位机的各种指令,另一方面,将测得的温度值传送到上位机。

  上位机为PC机,通过串口与下位机相连。一方面将设定的指令以及人工干预信号发送给下位机,另一方面,对从下位机接收到的温度数据进行适当的处理,并将其以曲线的形式显示出来。

  DS18B20直接将测得的温度值转换成数字量输出,其有效引脚只有三个:DQ(数据)、VDD(电源)和GND(地)。DS18B20是通过带5K上拉电阻的DQ线来读取和发送信息的,它可以不外接电源,也可在VDD端外接一个3v~5.5v电源。DS18B20片内含有ROM和RAM,ROM中保存有一个独立的序列号,因而可将多个DS18B20同时连在一条总线上工作。

  对DS18B20的操作有:复位;对ROM的操作(若只用一个DS18B20,则可跳过ROM匹配);对RAM的操作,即先发送温度转换命令(0x44),使DS18B20将采集到的模拟量数据转换为数字量存到RAM中,再发送读取存储器命令(0xbe),使其将RAM中存储的数据从DQ上按照一定的时序传送出来。传送时,先低位后高位,最后传符号位。

  通过对DS18B20进行时序分析知,复位脉信号应为一个持续480us以上的低电平信号;写信号应满足:先使DQ线降为低电平,若写“1”,则在15us内置DQ为高电平,若写“0”,则仍置DQ为低电平,在两次独立写时序之间至少应保持1us的恢复时间;读信号应满足:先将DQ线从高电平拉到低电平,并使其至少保持1us,因DS18B20的输出数据将在下降沿后15us有效,故在此之前,微机必须释放DQ线,以便读取数据。写、读时序均不得小于60us。根据以上分析,可编写出相应的复位和读、写函数,调用这些函数便可实现对DS18B20的操作。温度测量程序流程见图2,相应的温度测量函数为Measure_Temperature()。

  图2  温度测量程序流程图

  DS18B20的数据精度决定于它的配置(9,10,11或12位),其中12位是出厂设置。这相当于温度精度为0.5°C, 0.25°C, 0.125°C, 或0.0625°C。

  除了温度测量之外,嵌入式系统的另一个重要任务就是实现与上位机的通信。为实现LPC2104与PC机RS-232-C标准接口的互连,采用了芯片MAX3232,它是为RS-232-C标准接口设计的一种电平转换驱动器,使用单一的+5V电源,外接4个0.1uF的电容,就可将LPC2104的TTL电平信号转换成RS-232-C标准电平信号,也可进行相反的电平转换。两者之间的连接如图3所示。

  图3  LPC2104与上位机的连接

  在嵌入式系统的通信程序中用到了中间件(middleware),它是基础软件的一大类,属于可复用软件的范畴。中间件处在操作系统、网络和数据库之上,应用软件之下,是第三方程序。其作用是为应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。基于中间件开发的应用程序可以方便的实现不同系统间的移植。

  本系统用到了串口通信中间件和数据队列中间件,即只需要将中间件程序添加到系统项目表中去,调用中间件的接口函数即可实现串口的通信,如:调用URAT0Init(9600)实现串口的初始化,其中,波特率可直接进行调整;调用URAT0Putch(temp4)实现将temp4中存储的数据通过串口发送出去。当要将应用程序移植到其他系统上时,只要对这两个函数及其他相关函数进行适当修改,而无需改变应用程序。

  上位机的通信程序运用了MSComm 控件,它是Microsoft公司提供的,简化Windows下串行通信编程的ActiveX控件,该控件提供了两种处理通信问题的方法,本系统采用了事件驱动法。当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。在编程过程中,就可以在OnComm事件处理函数中加入相应的处理代码。

  利用MSComm控件实现计算机通信的关键是正确设置MSComm控件的属性和方法。以下是用VB编写的部分设置程序:

  Private Sub Form_Load()

  Me.Show

  MSComm1.CommPort = 1            //选择串口com1

  MSComm1.Settings = "9600,n,8,1"     //设置MSComm的连接属性

  MSComm1.RThreshold = 2           //定义阀值为2

  MSComm1.InBufferSize = 2

  i = 0

  Picture1.Visible = False

  On Error Resume Next

  End Sub

  连接属性"BBBB,P,D,S"中,BBBB 为波特率,P为奇偶校验,D为数据位数,S为停止位数。阀值定为2,则在接收缓冲区中的字节数超过“2”时,就转入OnComm()事件处理程序执行。

  3. 嵌入式系统软件

  采用了嵌入式操作系统uC/OS-II,它是专门为计算机的嵌入式应用而设计的。 uC/OS-II是基于优先级的占先式多任务实时内核。由于在多任务实时操作系统中,应用程序是以任务形式运行的,操作系统的一个重要的作用就是任务的调度,所以要在操作系统下实现应用程序的执行,就必须建立任务,在任务中实现测温和串行通信等操作。建立任务如下:

  #include "config.h"

  #define  TASK_STK_SIZE   64            //定义任务栈的大小为64字节

  OS_STK  TaskStartStk[TASK_STK_SIZE];   //定义任务栈

  void  TaskStart(void *data);                //声明任务

  int main (void)

  {

  OSInit();                               //操作系统初始化

  OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 0); // 建任务

  OSStart();                             //启动操作系统

  return 0;

  }

  在TaskStart任务循环开始前,先进行初始化工作,如调用中间件函数URAT0Init(9600)初始化串口、设置P0.8为GPIO等。然后,在任务循环中调用温度测量函数Measure_Temperature()和串口发送函数URAT0Putch(uint16 data),实现温度的测量并将温度值传送到上位机。嵌入式系统程序总流程见图4。

  基于嵌入式操作系统的应用中,还有一项重要的工作就是操作系统的移植和裁剪。

  所谓移植,就是使一个实时内核能在某个微处理器或微控制器上运行。 uC/OS-II的移植工作主要包括:OS_CPU.H 文件中与微处理器类型及相应硬件有关的常数定义、宏定义和类型定义;分别用汇编语言和C语言编写相关函数,特别是OSTaskStkInit(),在任务创建初期,将由其初始化任务堆栈。

  实时嵌入式操作系统的裁剪,就是只嵌入用户程序需要的函数,这样可以减少软件所需的存储器空间。由于uC/OS-II采用的是条件编译。即当条件满足时编译相应的代码,否则不编译,故只要对编译条件进行控制就可以控制编译后文件的大小,从而实现对操作系统的裁剪。

  4. 系统调试及结果

  JTAG(Joint Test Action Group)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。目前,大多数比较复杂的器件都支持JTAG协议。作为ARM的典型调试手段,JTAG除了可以设置ARM的断点以外,还可以对ARM的内核进行控制,从而实现对外围设备的读写(比如:下载程序到RAM或者Flash空间)。

  ADS是ARM公司为方便用户在ARM芯片上进行应用开发而推出的一整套集成开发工具。

  在保证电源电路、晶振电路和复位电路正常工作的前提下,可通过JTAG接口来调试以LPC2104为核心的目标板。在系统上电前,首先应检测JTAG接口的TMS、TCK、TDI、TDO信号是否已与LPC2104的对应引脚相连。在保证LPC2104已正常工作的情况下,可用ADS通过JTAG接口对片内的部件进行访问和控制。图5为调试系统的硬件连接。

  采用 ADS 下的工具集来进行系统调试:首先建立工程,即将用户文件、操作系统文件、中间件以及目标板的启动代码依次加入到工程中;然后编译程序和链接目标代码;再下载并调试程序。

  经调试,当用手握住DS18B20对其加温时,由上位机显示的温度变化曲线如图6所示。

  5. 结语

  本文构造了一个温度测量系统。该系统用可编程数字式温度传感器DS18B20作为检测元件,以嵌入式芯片LPC2104为核心,除了实现温度测量及相关的数据处理外,还能与上位机通信。实验结果表明,测量精度和速度都符合要求。下一步的工作是,增加温度控制功能并扩充测控点数,构造一个集中监控的分布式温度测控系统。

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

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

军工电子是集红外技术、激光技术、半导体及嵌入式技术与虚拟仿真技术为一体的综合性军工技术体系,是国防信息化建设的基石。军工电子行业包含在军工行业内,专注于军工行业电子产品布局。根据其军工产品的不同可分为卫星导航、通信指挥、...

关键字: 军工电子 嵌入式技术 信息化建设

测试测量

28633 篇文章

关注

发布文章

编辑精选

技术子站

关闭