基于PIC单片机的便携式测试记录仪设计

发布者:GoldenEclipse最新更新时间:2011-12-24 关键字:PIC单片机  测试记录仪 手机看文章 扫描二维码
随时随地手机看文章

  基于PIC单片机的便携式测试记录仪(以下简称记录仪)既有一般数据采集装置的实时采集与保存功能,同时又能够对采集数据进行实时处理、显示和打印。适用于对采集速度要求不高、交流供电比较困难以及无须长期留人值班的场合。

  以追求高可靠、低功耗、小体积设计思想的本记录仪具有如下功能:对现场物理量进行实时采集、保存、处理与显示;自动识别现场安装的传感器数量、传感器号和量程;自动和手动两种采集方式,自动采集适用于长期无人值班的固定场合,手动采集便于对分布在不同区域的物理量进行测试;与PC机通讯,可根据需要将采集数据下载至PC数据库;实时打印;自检功能,避免了系统运行过程中可能遇到本身无法容错处理的异常事件而导致的死机现象。

  1 硬件设计

  1.1 总体设计原则

  根据高可靠、低功耗、小体积的设计思想及应用对象几乎对采集速度无要求(此处指系统本身的采集速度已远远超过实际应用要求)的特性,总体设计原则是: 元器件采用低功耗、宽范围工作电源的CMOS集成电路;总线采用口线少的串行总线;允许情况下,尽量用软件实现硬件功能,用中断代替查询工作方式;一旦系统空闲则立即使其进入低功耗休眠状态,当需要时再用外部中断予以唤醒。

  1.2 硬件组成

  根据总体设计原则,硬件组成如图1所示。其中:单片机为美国MicroChip公司的中档产品PIC16C74,+5V供电、4MHz主频时功耗低于2mA;E2PROM存储阵列由超低工作电压(+2.5V~+5.5V)、具有可编程选择多种特性的8KB智能化电可擦除存贮器24LC65芯片组成。其中,0#为传感器识别片(以下简称识别片),保存现场实际安装的传感器数量、传感器号及量程。该芯片被设计在放大器板上,永久安装于现场。传感器号由4位数字组成,前2位表示组号,后2位表示传感器组内号。1# 为字典片,分为三个存储区:第一存储区被设置成高寿命写入区,保存表头参数,如疵点单元计数器、记录计数器、记录指针、自动采集时间等;第二存贮区为字典区,保存传感器修正系数、实时打印所涉及的汉字国标码等,查找时以传感器号为关键字进行指针定位;第三存储区被定义为疵点单元地址队列,保存在写过程中遇到的疵点单元地址。2#~7# 为数据片,保存实时采集的数据。RS232口为最简单的零调制3线经济型,具有双重功能,接上TPμP_T微型打印机,则进行实时打印;接上PC机,则与PC进行全双工通讯。A/D转换器MAX189为串行、12位逐次逼近型,功耗75mW,最大转换时间8.5μs。实时时钟DS1302具有可编程涓流充电功能,能够提供秒、分、时、日、月、星期、年至2100年,并且对闰年和小于31天的月份进行自动调节。键盘由手动、自动、通讯、打印、清零等五个触摸按键组成,通过按键产生外部中断唤醒单片机完成相应功能。液晶显示器(LCD)采用4位半静态方式驱动,用来显示处理后的结果以及系统运行过程中检错的代码。32.768kHz晶振用于自动采集时产生定时中断。

  1.3 工作原理

  本记录仪基本工作原理是:一旦系统完成某项工作后,立即进入低功耗休眠状态,当需要时再由外部中断予以唤醒。

  1.3.1 加电初始化

  加电后,首先初始化有关寄存器和接口,然后自检各功能部件。测试结果无论正常或错误均以代码形式显示在LCD上,进入休眠状态。

  1.3.2 采 集

  本记录仪有自动和手动两种采集方式。

  休眠状态下,当按手动键时则进入手动采集过程。首先读识别片和字典片,以确立现场中实际安装的传感器数量、量程及数据片可写空间。若数据片未写满,则从组内0通道传感器开始,循环对现场中实际安装的所有传感器进行采集、处理、显示,直至当再按一次手动键时,方将传感器号、量程、最近一次采集值(注意:不是实时处理后结果,而是原始A/D转换码值)以及采集时刻的日历信息─年、月、日、时、分、秒等组成的记录写入记录指针指向的数据片中,接着对表头参数进行修改,进入休眠状态。

  休眠状态下,当按自动键时则进入自动采集过程。首先开放定时中断,然后进入采集─保存─休眠─唤醒─再采集─再保存─再休眠─再唤醒的循环状态,直到数据片被写满或人工干预结束自动采集过程为止。上述唤醒由外部中断完成,其单片机从休眠状态到唤醒工作之间的时间间隔有等距和变距两种形式可供选择。所谓等距即每次采集的时间间隔相同。与其相反,变距则每次采集的时间间隔随采集次数的增多而变长或缩短,视实际应用需要而确定。本记录仪出厂设置为等距1小时,即每间隔1小时采集1次。[page]

  1.3.3 通讯和打印

  休眠状态下,当按通讯键时,进入和PC通讯过程。首先由PC端Win98下的专门处理软件完成串口1(若记录仪与PC Com1口相连)或串口2(若记录仪与PC Com2口相连)的自动配置,然后可根据工具条上的图文进行等距、变距、选择、数据下载、事后处理等操作。

  休眠状态下,当按打印键后,则在TPμP_T微型打印机上打印出所有保存的记录。

  1.3.4 清 零

  休眠状态下,当按清零键时,则清除数据片中保存的所有记录,即使记录指针指向数据片首址。

  2 软件设计

  本记录仪软件由实时处理程序和组成记录仪诸功能部件的驱动程序组成。

  2.1 实时处理程序

  实时处理程序调用相关驱动程序完成模拟量采集、数字滤波、插值运算、实时显示、记录合成及记录保存。本记录仪采用的记录格式从高至低依序为:传感器号,量程,采集值,年,月,日,时,分,秒。

  2.2 驱动程序设计

  驱动程序设计的基本思想是:首先完成相关接口、寄存器的初始化,然后根据具体物理部件产生微操作时序,并对操作过程中遇到的异常事件进行容错处理。

  2.2.1 读/写E2PROM 驱动程序

  I2C总线由时钟线(SCL)和数据线(SDA)组成。根据I2C总线协议,将图1所采用的24LC65芯片的读/写操作按操作顺序分解为:使总线处于空闲状态(SCL、SDA均为高电平);发送读/写启动信号(SCL保持高电平,SDA从高变低产生下降沿);在数据线SDA上读或写数据位(SCL高电平时,SDA状态为有效的读或写数据位,SDA状态,即0或1的变化必须在 SCL低电平期间完成);发送读/写结束信号(SCL保持高电平,SDA从低变高产生上升沿)。如果为写操作,每写完1字节数据后,24LC65在数据线SDA上回送握手应答信号,表示该字节数据已被可靠写入。以上微操作通过汇编语言编程实现。

  本记录仪以记录方式读/写数据片。因此,对写来说,首先读字典片,以便用其中的表头参数判断当前数据片是否已写满。若已写满,则在LCD上显示无写空间标记代码,然后返回休眠状态;否则,将记录写入记录指针所指向的数据片中,同时对表头参数进行修改。在写过程中,重要的是处理疵点单元。尽管24LC65在写过程中出现的疵点概率极少,但若不正确处理,则会导致目标数据丢失甚至出现系统死机现象。作者曾采用数据轮询技术进行容错处理,收到了良好的效果。其基本思想是:每当在数据线上写完1字节数据后,便反复查询24LC65回送的应答信号,但最多不超过50次(此数足够24LC65写入时间);若超过查询次数仍无应答信号,便认为该单元为疵点单元,将其地址记入疵点单元地址队列,并使疵点单元计数器加1,然后在下一比邻单元继续写入原数据。如果连续两单元为疵点单元,则认为整个芯片有问题,此时,在LCD上显示该单元所在的芯片号(芯片号参见图1),然后,返回休眠状态。

  对读来说,首先判断数据片是否为空。若为空,则在LCD上显示无记录标记代码,然后返回休眠状态。否则,继续判断数据片是否有疵点,如果无疵点,则从数据片首址开始按序读出所有记录;否则,在按序读记录过程中,根据疵点单元地址队列内容,跳过所有疵点单元,以保证读出的记录连续、真实、可靠。

  2.2.2 采集驱动程序设计

  A/D转换器MAX189所带串口与单片机PIC16C74的SPI口完全兼容。因此,在A/D转换完成后,只要启动单片机SPI口产生13个同步时钟脉冲便可连续两次从SPI数据缓冲器上获得12位转换结果。由于本记录仪采集的参数个数依现场安装的传感器数不同而不同,因此,驱动程序必须能予以自动识别。图2为采集驱动程序流程,其基本设计思想是:首先读识别片,以确定实际安装的传感器数量,然后从0通道传感器开始进行采集,直到实际安装的最后一个传感器采集完毕为止。图2中:CHAN:通道寄存器;COUNT:传感器数量寄存器。

  3 测试设计

  测试设计是通过测试程序完成对记录仪本身各功能硬件的性能测试。测试程序独立于实际应用程序,在单独的单片机中,使用时只要拔掉记录仪模板上的单片机而用其代之即可。测试程序设计的基本思想是:首先根据不同测试对象(即部件)产生不同的测试数据和测试期望数据,然后以测试数据为入口参数,调度相关驱动程序产生目标数据,最后用测试期望数据与目标数据进行比较,以此判断所测硬件性能之良劣。

  3.1 E2PROM测试设计

  E2PROM测试需要与PC机通讯。其基本原理是:首先产生8种测试数据:0x00、0xff、0x55、0xaa、0x0f、0xf0、0x5a、0xa5(0x表示16进制数),然后分别以此8种测试数据为入口参数,交替调度写、读E2PROM驱动程序3次(即先写后读3次)。每读一次,与测试期望数据(此处测试数据与测试期望数据相同)进行比较,若不相等,则对相应片错误计数器加1。测试结果实时地显示在记录仪LCD和PC机上。LCD只显示总错误个数,PC机则依次显示、保存总错误个数及错误单元地址。

  3.2 A/D测试设计

  A/D测试也需要与PC机通讯。由于本记录仪最多可采集8路传感器参数,因此,测试程序对键盘重新定义如下:当手动、自动、通讯、打印、清零键有键按下时,对应测试0~4通道传感器;当手动、自动、通讯键其中之一与清零键同时按下时,则对应测试5~7通道传感器。测试只对放大器满量程的10%、50%、90%等3点进行采集。其原理是:首先,测试程序扫描键盘,当扫描到有键按下时,则调度采集驱动程序对该键盘定义的通道传感器进行连续采集,采集结果不作任何处理,实时地显示在记录仪LCD和PC机上。LCD只显示当前的A/D转换码值,PC机则显示并保存当前A/D转换码值、各点最大、最小转换码值及两者绝对差值。技术人员可以此判断前向通道(传感器、放大器、A/D)工作性能的好坏。笔者曾连续测试0通道传感器6个半小时,发现最大码差为9,表明前向通道工作相当稳定。

  3.3 实时时钟测试设计

  实时时钟DS1302测试需要借助PC机完成。其测试原理是:首先PC机上的测试程序读PC系统日历信息─年、月、日、时、分、秒、星期,并进行发送。记录仪在接收后,立即调度写DS1302驱动程序将接收的PC系统日历信息写入DS1302相关功能寄存器中,并使DS1302以此为时基进行计时。此后,进入记录仪发送、PC接收的无限循环状态,即:每隔10ms,记录仪调度一次读DS1302驱动程序,并将获得的最近日历信息予以迅速发送;而处于接收状态的PC接收后,立即与PC系统当前日历信息进行比较,如此循环,直到人工干预结束测试为止。在上述测试过程中,记录仪LCD只实时地显示日历信息的分、秒两位,PC机则实时地显示记录仪和PC机两端完整的日期、时间及两者比较差。另外,通过观察记录仪LCD上显示的分、秒位变化,也可初步判定DS1302的性能。笔者曾连续运行该测试程序24小时,偏差极小,足以满足本系统的需要。

  4 实际应用

  本记录仪已投入实际应用一年多,其可靠性、稳定性、操作性和精度均受用户欢迎。不足之处是:目前功耗还比较大,作者在+12V供电时测得电流为45.5mA,尚需进一步改进。

 

参考文献

1 窦振忠. PIC系列单片机原理和程序设计.北京:北京航空航天大学出版社,1998

2 王福瑞. 单片机测控系统设计大全. 北京:北京航空航天大学出版社,1999

3 王幸之. 单片机应用系统抗干扰技术. 北京:北京航空航天大学出版社,2000

关键字:PIC单片机  测试记录仪 引用地址:基于PIC单片机的便携式测试记录仪设计

上一篇:基于PIC单片机与TC787芯片的三相半控整流电路设计
下一篇:基于PIC单片机在电话远程控制器中的低功耗设计

推荐阅读最新更新时间:2024-03-16 12:49

PIC单片机实现多回路温度控制系统的设计
pic单片机应用较多,生活中许多控制系统均基于pic单片机设计得到。对于pic单片机,小编曾带来诸多介绍。本文中,将为大家带来pic单片机实例,以增进大家对于pic单片机的认知。 1.引言 对于塑料制瓶工艺,塑料加热处于溶融状态, 经高压注射成为管胚, 短时间冷却以后,经过高压空气的吹胀, 在制瓶模具中成型。其工艺特点之一是:溶融状态下的塑料定时流动; 成为管胚之后, 将与外部空气接触 2 秒钟时间左右, 产品质量不可避免地受到环境温度的影响。 制瓶工艺要求在不同的制瓶过程中, 恒定在不同的温度下, 其温度控制是制瓶的关键技术之一。目前这种设备的温度控制装置通常采用单回路的通用温度控制仪表, 温度控制无法与工艺过程直接产生
[单片机]
<font color='red'>PIC单片机</font>实现多回路温度控制系统的设计
什么是PIC单片机PIC单片机应用和设计
PIC单片机(Peripheral Interface Controller)是一种用来开发的去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是CPU,PIC 共享的部分相当于人的神经系统。 PIC 单片机是一个小的计算机 PIC单片机有计算功能和记忆内存像CPU并由软件控制允行。然而,处理能力—存储器容量却很有限,这取决于PIC的类型。但是它们的最高操作频率大约都在20MHz左右,存储器容量用做写程序的大约1K—4K字节。 时钟频率与扫描程序的时间和执行程序指令的时间有关系。但不能仅以时钟频率来判断程序处理能力,它还随处理装置的体系结构改变(1*)。如果是同样的体系结构,
[单片机]
一种高性能便携式PIC单片机湿度检测仪的研制
    摘 要: 介绍了一种高性能便携式PIC单片机湿度检测仪的研制,详细阐明了有关的工作原理和关键技术。本测试仪充分应用PIC单片机自身的软硬件资源,具有智能化,小型便携、可编程等优点,在农业、水文系统、环境监测、气象等许多领域具有广泛的应用。     关键词: PIC单片机 湿度测试仪 土壤含水量     适时准确地测量周围环境的湿度和土壤含水量在国民经济发展的许多领域中具有广泛的应用,如在农业上为了科学地对土壤进行管理,需要经常测试土壤含水量;在水利工程中,如水文站、堤坝上也需经常测试土壤含水量,此外,土壤湿度测量在环保、气象、国防施工中更是不可缺少的测量项目。如何使这种繁琐的测量以及相关数据处理实现
[测试测量]
PIC单片机指令系统基础知识
PIC单片机指令系统基础知识: A 指令系统是指一种单片机所能识别的所有指令的集合.(PIC系列单片机指令系统采用的是精简指令集RISC结构体系) B 指令系统是单片机的核心,人们必须通过指令指挥CPU来完成某项特定的操作. C 如果要为某种单片机编写程序,首先要学习,记忆和应用该单片机指令系统的每一条指令. D 通常单片机的指令都是用指意性很强的英文单词和缩写来代表 E 指令系统中的每一条指令都完成一种特定的操作 例如..数据传送操作 算术运算操作 逻辑运算操作 位操作等等 F 每一条指令都是由 操作码和操作数组成的,也有---个别的指令,,,不带操作数 G 操作码是指令操作功能的记述,,而操作数描述的是操作的对
[单片机]
学习PIC单片机有感
学起PIC,上手还是蛮快的,毕竟已经学了2种16位的单片机,更是接触了一款32位的处理器,再来学习16位的单片机,自然十分容易。刚开始的时候拿到一块dsPIC33FJ128M706单片机开发板,此单片机乃microchip公司较为高端的单片机,具有DSP引擎数字图像处理功能;内置两路SPI,IIC,UART,CAN等多种通信模块;9路16位定时器,其中有八路课组成4路32位定时器;10/12位可选择AD转换模块,其端口可以任意设定,共多达32路;4对含有死区电压的PWM发生器及其他一些常见的模块。如此强大的单片机可谓是单片机中的顶尖角色。所以,我很庆幸现在就接触了这款单片机。 拿到开发板,去官网下载datasheet,发现官
[单片机]
PIC单片机在MPLAB-IDE中使用HitechC编译器
PIC单片机的C语言使用(一) 在MPLAB-IDE中使用HitechC编译器 一、装入编译器: 1、启动MPLAB-IDE,如下图所示选择Project-》Install Language Tool 2、在弹出的安装语言工具对话框里“Language Suite”选项现在显示的是Microchip,点击后面的箭头来选择语言。 我使用的工具是HI-TECH PICCME,所以选择为“HI-TECH PICC”。 3、接下来在“Tool Name”里选择编译器组件的调用路径,这里有“PICC Compiler”(C编译器)、“PICC Assembler”(汇编器)和“PICC Linker”(链接器)3项都需要设置。
[单片机]
<font color='red'>PIC单片机</font>在MPLAB-IDE中使用HitechC编译器
PIC单片机浮点数与十进制数之间的转换
在我们设计的仪表中采用PIC系列单片机,碰到了浮点数的运算问题,查阅其有关资料发现,其浮点数的格式及其与十进制数之间的转换,与我们常用的MCS-51单片机所提供的三字节、四字节浮点数完全不同,本文将说明其浮点数的格式及其与十进制数之间的转换和程序设计步骤。 1 浮点数的格式   Microchip公司单片机所采用的浮点数格式是IEEE-754标准的变异型。32位浮点数格式为:   其中:×表示一位二进制数0或1;eb 为指数的偏差;S为浮点数的符号位,S=0为正数,S=1为负数;小数点“·”在符号位S的右边;BY0 BY1 BY2为尾数的小数部分。 应特别注意:   ⑴ 浮点数隐含其整数部分为1。   ⑵ 十进制数0 的浮点
[单片机]
<font color='red'>PIC单片机</font>浮点数与十进制数之间的转换
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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