微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C8051F064单片机在远端测控装置中的应用

C8051F064单片机在远端测控装置中的应用

时间:09-28 来源:互联网 点击:

  本文介绍了C8051F系列单片机在远端测控装置中的应用,给出了整个系统的结构,包括硬件配置和系统网络构成,对一些技术问题也做出了详尽的说明。

  一 系统简介

  远端测控装置是一种现场可编程的控制器,它能完成数据的采集控制,而通过远程通信的方式(如电台、CDMA、拨号等)将数据上传至中心站或接收中心站的遥控指令。它往往被安装在比较分散、环境比较恶劣、无电源保障(经常断电或使用太阳能)且无人值守的地方,因此它运行的可靠性和功耗就显得尤为重要了。C8051F单片机的工业级工作温度(-40℃~+84℃)、低电压、低功耗、自带看门狗和多复位源等特点满足了此系统的要求。

  基于此系统的定位,选用C8051F064做主控部分,C8051F236做从属部分。系统要求具有输入/输出点可灵活配置、多通信端口、可现场修改配置等性能。

  系统结构如图1所示,系统采用220VAC或24VDC供电,主单元功耗3.3W,每个从单元功耗2.2W,最多可以扩展8个从单元。

  

  二 主单元结构

  主单元结构如图2所示,根据系统的特点将C8051F064的功能做如下配置:

  存储器

  C8051F064内部自带4352字节RAM和128字节的Flash,由于系统对数据的实时性要求不高且采用远程通信方式,为了降低功耗,往往将大量数据缓存,在一定的时间集中发送,所以需要比较大的数据存储区,利用外部数据和地址总线可以扩展32KB的RAM。另外,作为现场可编程设备,需要设定大量的参数,而这些参数都需要掉电保持,所以,除了使用单片机内部的128字节的非易失RAM之外,还扩展了一个8KB的E2PROM.

  地址和数据总线的利用

  地址和数据总线采用复用的方式,C8051F064支持64KB的外部存储空间,扩展RAM为32KB,所以,剩下地址线A15是空余的,利用A15和其他低位的数据线,用与非门就可以构成片选信号,用来选择总线上的设备。在总线上还外挂了一个实时时钟,用来作为系统的时间标志,由于此芯片内带有电池保持的RAM,对于频繁操作且需要保持的数据就可以存在此处,这样可以避免内部非易失RAM和E2PROM的复杂操作。另外,现场的数字I/O也可以用总线和片选经光电隔离构成,这样可以大量缩减单片机的引脚。

  

串口

  C8051F064内部带有两个UART,其中串口0经光电隔离转换为RS-485信号,用于跟现场的其他设备连接,串口1再加上6个GPIO口经电平转换后成为全功能标准的RS-232接口,用于与Modem、电台、CDMA等连接。用C8051F064的SPI口经MAX3100扩展成UART,通过外部的可选配件,转变成RS-232或RS-485信号。

  模拟量

  C8051F064的模拟量输入最高不超过3.6V,所以接入信号时要注意其范围,针对此系统,由于现场信号大部分是4mA~20mA电流,因此用100Ω的精密电阻,配上2.5V的精密电压源,可以将模拟量的精度调整到1‰。另外,启动内部ADC0的窗口检测功能,可以方便地实现模拟量的上下限越限报警功能。

  数字量

  大部分数字量直接挂在总线上,另外,有两路开关量输入直接接到单片机引脚,并在内部分配这两个引脚为定时/计数器的输入,这两路就可以兼做脉冲量了。

  单片机资源分配

  C8051F064的端口功能分配使用交叉开关的方式,而且还带有优先级,这种方式很灵活,但是要求设计师在电路设计时就要将内部的功能分配就绪,也就是说电路板加工完成后就不可以随意修改交叉开关了。

  复位

  C8051F064除了实现传统的RESET信号复位外,还有上电、掉电、外部信号、软件命令、比较器0、时钟丢失检测及开门狗等复位功能,共7种复位方式。单片机复位后可以通过查询寄存器得知是何原因引起的复位,这对数据的处理和故障分析都是很有用的。本系统使用的是上电、软件命令、时钟丢失和看门狗,增加软件命令复位的原因是:由于这些设备的安装地点都是比较偏远的,当中心站察觉此设备异常时,可以将其重新启动,以解决一些异常问题。

  

  三 一些技术问题

  数据的存储

在这个系统中有多个可以存储数据的存储器,如256字节的内部RAM、4KB的内部扩展RAM、32KB的外扩RAM、128字节的Flash、实时时钟内114字节的电池保持RAM和外扩8KB的E2PROM,这么多的数据存储区,一定要仔细分配其用途,以便充分发挥功能和速度。本系统作如下分配:256字节的内部RAM读写速度最快,而且它是单片机内核所占用的,所以要减少使用,它用在对速度要求较高且频繁使用的地方,如中断内的变量等;4KB内部扩展RAM和32KB外扩RAM的地位是等同的,一般用作程序的中间变量;128字节的Flash是整片修改的,所以修改之前要把所有数据读到缓冲区,将要修改的字节改掉,再把整片擦除,然后把数据写入。虽然写比较麻烦,但是读取很方便,所以用它存放一些不经常改动而

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top