APP下载

基于C8051F040 状态监测电路设计与实现

2014-03-13军,李雄,宋

电子科技 2014年6期
关键词:航行时钟单片机

蒋 军,李 雄,宋 东

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

航行体内部控制器和相关重要信号需被监测和记录,作为正常航行及故障判断的重要依据。当航行体内部重要信号缺失时,该电路仍能进行一些相关处理,以确保航行体能有效结束航行。

1 系统硬件结构

基于C8051F040 状态监测电路硬件部分由7 个主要功能模块组成[1]:监测信号、电平转换电路、达拉斯DS12887 时钟模块、并行存储器AM29F160DT、单片机C8051F040 模块、CAN/RS232 通讯模块以及驱动输出模块。系统硬件结构框图如图1 所示。

电路工作原理是将被监测电路的电压通过TPL281-4 光耦转换直接与微处理器C8051F040 的I/O 引脚连接,若相应I/O 无电,则将此刻时间和信息存储到AM29F160DT 芯片中,同时发送给相关控制器,并给出相应驱动输出。此外将通讯过程中的CAN 信息也进行存储,以便航行结束后对相关数据进行分析、处理[2]。

图1 系统硬件结构框图

1.1 单片机C8051F040 介绍

C8051F040 由美国Silicon Labs 公司设计,对原51单片机内核进行了较大改造,由原来12 个时钟执行一条指令改进为一个时钟执行一条单周期指令,多数指令执行的时钟周期数与指令的字节数相同,使该款单片机的运行速度大幅提高。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 个捕捉/比较模块的可编程计数器/定时器阵列[3]。

1.2 检测信号及电平转换电路

由于检测信号的电压为24 V,但单片机C8051F040I/O 口能够承受的电压为5 V。因此,需将这些电路的电压进行转换以便给单片机的I/O 识别。该电路电平转换采用光电隔离芯片TLP281-4,其电路如图2所示。

图2 电平转换电路

1.3 时钟芯片DS12887

DS12887 是美国达拉斯半导体公司推出的时钟芯片,采用CMOS 技术制成,将时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部[4]。其主要功能如下:(1)内含一个锂电池,断电后运行10 年以上不丢失数据。(2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。(3)二进制数码或BCD 码表示时间、日历和定闹。(4)有Motorola5 和Inatael 的总线时序选择。

将DS12887 的MOT 引脚接地,表明该电路的数据总线方式为Inatael 总线时序,这样读写使能独立。数据操作需先将地址信息锁存,再进行相应读写,具体电路如图3 所示。

图3 DS12887 电路图

1.4 并行存储器AM29F160DT 模块

存储器AM29F160DT 模块是2 MB 的CMOS 型5 V供电的Flash 存储芯片,存取速度可高达70 ns,每个扇区至少满足100 万次的擦除,数据一次保存时间长达20 年,内部扇区数据结构是顶部数据形式[5]。

将AM29F160DT 的BYTE 引脚下拉接地,表明是8 位数据传输,并将RY/BY、WP、RESET 上拉到电源。然后对应的读、写、片选信号接到微处理相应的引脚即可。具体电路如图4 所示。

1.5 驱动输出模块

考虑到要有足够的驱动能力,故在驱动芯片上使用BTS712N1[6]。而在该驱动芯片之前增加一个光耦进行隔离,以保护单片机相应的I/O。具体驱动电路如图5 所示。

2 软件设计

整个软件设计是以相应CAN 信息为基础进行的,记录相应电路状态信息以及当时的时间信息;一部分电路信号检测是全程监控,另一部分电路信号检测则有时段要求。为此信号检测软件采用100 ms 为周期的中断检测[7]。

系统的软件设计主要包括软件初始化配置程序、电路状态检测程序、DS12887 时钟数据读取、数据存储程序、CAN 通信程序以及串口通讯6 部分[8]。

图4 AM29F160DT 电路图

图5 驱动输出电路图

2.1 电路状态的检测程序设计

电路状态的检测程序设计采用定时器检测的方式,持续检测相应电路状态3 s 并未认定此电路信号出现故障[9]。具体设计流程如图6 所示。

图6 检测程序流程图

2.2 DS12887 时钟数据存储程序

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

时间数据储存程序设计就是通过I/O 按照存储器AM29F160DT 控制时序写入对应控制字,完成对应数据写入、读取以及擦除。

2.3 CAN 及RS232 通信程序设计

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

串行通讯设置是用来向界发送一些内部数据,从而显示整个电路工作状态[10]。

3 结束语

该电路设计已成功应用于某航行体航行监测中,在实际使用中对相关控制器监测起到了较好的数据记录和问题分析。本文设计实现了状态监测电路能应用其他场合的相关状态监测及时刻记录,由于AM29F160DT 存储器具有2 MB 的存储空间,因而能够长时间地进行监测。该设计具有结构简单、功能齐全且系统运行可靠的特点。

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

[2] 杨锋光,王田抬.C8051F060 单片机在数字化操纵杆中的应用[J].电脑开发与应用,2009(9):50-52.

[3] 冯建华.单片机应用系统设计与产品开发[M].北京:人民邮电出版社,2004.

[4] Dallas Conpration.DS12887 Data Sheet[M].DA USA:Dallas Conpration,2003.

[5] Data Conpration.AM29F160DT Data Sheet[M].MA USA:Data Conpration,2003.

[6] Data Conpration.BTS712N1 Data Sheet[M].MA USA:Data Conpration,2003.

[7] 张培仁,孙力.基于C 语言C8051 系列微控制器原理与应用[M].北京:清华大学出版社,2004.

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

[9] 童长飞.C8051F 系列单片机开发与C 语言编程[M].北京:北京航空航天大学出版社,2005.

[10]官波,容太平.AT89C51 的扩展串口与PC 机间的通信[J].国外电子元器件,2001(3):61-63.

猜你喜欢

航行时钟单片机
别样的“时钟”
到慧骃国的航行
古代的时钟
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小舟在河上航行
航行
有趣的时钟