APP下载

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

2013-12-17军,李

电子科技 2013年3期
关键词:时钟指令单片机

蒋 军,李 雄

(昆明船舶设备设计研究中心第5研究室,云南昆明 650051)

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

1 系统硬件结构

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

1.1 单片机C8051F040

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

图1 系统硬件结构框图

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

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

图2 电平转换电路

1.3 时钟芯片DS12887

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

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

图3 DS12887电路图

1.4 串行存储器M25P80

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

图4 指令格式

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

表1 M25P80的指令集

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

图5 M25P80电路图

2 软件设计

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

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

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

图6 软件流程图

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

2.2 DS12887时钟数据存储程序

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

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

2.3 CAN通信程序设计

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

3 结束语

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

[1]万光毅,孙九安,蔡建平,等.SoC单片机实验、实践与应用设计—基于C8051F系列[M].北京:北京航空航天大学出版社,2006.

[2]Maxim Company.DS12887 data sheet[EB/OL].(2007 - 05-7)[2012-08-11]http://www.maxim-ic.com.

[3]ST Conpration.M25P80 data sheet[EB/OL].(2007 - 07 -15)[2012-08-11]http://www.st.com.

[4]孙晓华.PIC单片机与串行闪存的SPI接口设计[J].单片机与嵌入式系统应用,2010(4):46-48.

[5]饶运涛,邹继军,郑勇芸.现场总线CAN原理及应用技术[M].北京:北京航空航天大学出版社,2003.

猜你喜欢

时钟指令单片机
别样的“时钟”
古代的时钟
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
ARINC661显控指令快速验证方法
有趣的时钟
杀毒软件中指令虚拟机的脆弱性分析
时钟会开“花”