基于C8051F040多路浸水时刻记录电路模块化设计

控制/MCU

1813人已加入

描述

针对某型航行器自沉系统中,需要掌握某合金材料在海水中因不同温度条件下的受腐蚀时间长短。采用模块化硬件设计,使用浸水传感器为检测单元、时钟芯片DS12887为计时模块;以C8051F040为微处理器和串行M25P80为存储模块设计浸水时间记录系统。外部数据通信采用CAN总线。通过实践证明,DS12887时钟能在掉电后正常运行,但时间长,需要新设定时间,以便准时记录。

在某型水下航行器自沉系统中,某合金材料在海水中一定时间内能正常工作,但正常时间过后会被海水腐蚀;从而实现该航行器的自沉功能。为此设计了该电路,用以测试铝铬合金材料在不同温度的多组时间信息。

1 系统硬件结构

基于C8051F040多路浸水时刻记录电路硬件部分由6个主要模块组成:浸水传感器、信号电平转换电路、达接斯时钟模块、串行存储器M25P80模块、单片机C8051F040模块和CAN通讯模块。系统硬件结构框图如图1所示。

DS12887

1.1 单片机08051F040

C8051F040由美国Silicon Labs公司设计,对原51单片机内核进行了较大改造,由原来12个时钟执行一条指令,改进为一个时钟执行一条单周期指令,多数指令执行的时钟周期数与指令的Byte数相同,使得该款单片机的运行速度大幅提高。C8051F040具有64个数字I/O引脚,片内集成了一个CAN2.0B控制器。主要特性如下:(1)高速、流水线结构的8051兼容的CIP-51内核(可达25 MI·s-1)。(2)控制器局域网(CAN 2.0B)控制器,具有32个消息对象,每个消息对象有其自己的标识。(3)硬件实现的SPI、SMBus/I2C和两个UART串行接口。(4)5个通用16位定时器。(5)具有6个捕捉/比较模块的可编程计数器/定时器阵列。

1.2 浸水传感器及电平转换电路

浸水传感器采用自行研制的浸水模块,该模块接口简单,只需5根线分别为:浸水传感器测试点A、浸水传感器测试点B、供电电源24V、供电电源地、感应输出OUT24V。当浸水传感器测试点A和浸水传感器测试点B接触或之间有水使A、B导通,这样A、B间的电阻由无穷大变为几Ω甚至零。通过比较电路从而输出供电电压24 V,而单片机C8051F040I/O口能够承受的电压仅为5 V。电平转换电路采用光电隔离芯片TLP28 1-4电路图如图2所示。

DS12887

1.3 时钟芯片DS12887

DS12887是美国达拉斯半导体公司推出的时钟芯片,采用CMOS技术制成,把时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部。采用DS12887芯片设计的时钟电路无需外围电路并具有良好的微机接口。DS12887芯片具有微耗、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。其主要功能如下:(1)内含一个锂电池,断电后运行10年以上不丢失数据。(2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。(3)二进制数码或BCD码表示时间、日历和定闹。(4)12小时或24小时制,12小时时钟模式带有PWM和AM指导,有夏令时功能。(5)Motorola5和Inatael总线时序选择。

DS12887有4个状态控制寄存器,它们在任何时间都可访问,即使更新周期也不例外。具体电路连接图如图3所示。

DS12887

1.4 串行存储器M25P80

存储器M25P80存储容量为8 MByte,它采用SPI数据总线的方式进行通信。该存储器有16个扇区,每个扇区有256页,每页256 Byte。工作电压范围2.7~3.6 V,工作温度范围-40~+85℃,最大时钟75 MHz。能进行10万次的擦写,数据保存20年,体积小巧,是一款通用存储器。M25P80支持的操作指令共有12条,指令格式为如图4所示。

DS12887

其中,8位的命令是必需,地址、哑元以及数据字节的有无和长度会因指令的不同而有所差异,详情如表1所列。所有的命令码、地址、串行输入/输出的数据,均是高位在前。

DS12887

由于单片机C8051F040的工作电源3.3 V,M25P80的工作电压范围为2.7~3.6 V故二者可以直接相连接。具体电路图如图5所示。

DS12887

2 软件设计

由于整个浸水腐蚀的时间不确定,需要一个开始记录的时间。这个开始记录时间是以系统通电正常工作的时刻为准。系统的软件设计主要包括浸水传感器数据的检测程序、DS12887时钟数据存储程序和CAN通信程序3部分。

2.1 浸水传感器数据的检测程序设计

浸水传感器数据的检测程序设计采用定时器检测的方式;当持续检测到浸水输出信号3 s,则认为此刻浸水。具体设计框图如图6所示。

DS12887

浸水传感器数据的检测程序初始化后,记录开始时间;在100 ms定时中断中,检测多路的浸水输出信号。针对不同的浸水传感器采用记录对应的编号同时记录该时刻的时间。

2.2 DS12887时钟数据存储程序

时间读取程序设计就是对DS12887芯片的内部的4个内部寄存器A、B、C、D进行相应的初始化和对其它寄存器数据的读取。

时间数据储存程序设计是通过SPI总线,将时间数据存入M25P80当中。C8051F040中有SPI总线模式。

2.3 CAN通信程序设计

由于C8051F040器件内部集成了Bosch CAN控制器,只需要对该控制器进行初始化和配置便可以实现CAN通信。操作通过特殊功能寄存器直接或间接访问CAN控制器中的CAN控制寄存器。

3 结束语

设计的时间记录系统能应用其他场合的时刻记录。该设计具有结构简单、功能齐全、系统运行可靠的特点。需要注意的是,DS12887时钟芯片启动后需要设定时间,这样才能与标准时间一致。实践证明,虽然DS12887时钟能够掉电后正常运行,但时间长(约3个月),需要重新设定时间以便准时记录。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分