基于C8051的状态监测电路设计
摘要 为记录某航行体航行是否正常,采用监测有无重要电路电压和存储通讯CAN信息的方式。将被监测电路的电压通过TPL281-4光耦转换直接与微处理器C8051F040的I/O引脚连接,若相应I/O无电,则将此刻时间和信息存储到AM29F160DT芯片內。应用结果表明,该监测电路达到了设计要求,具有一定的应用价值。
本文引用地址:http://www.amcfsurvey.com/article/256542.htm航行体内部控制器和相关重要信号需被监测和记录,作为正常航行及故障判断的重要依据。当航行体内部重要信号缺失时,该电路仍能进行一些相关处理,以确保航行体能有效结束航行。
1 系统硬件结构
基于C8051F040状态监测电路硬件部分由7个主要功能模块组成:监测信号、电子转换电路、达拉斯DS12887时钟模块、并行存储器AM29F 160DT、单片机C8051F040模块、CAN/RS232通讯模块以及驱动输出模块。系统硬件结构框图如图1所示。
电路工作原理是将被监测电路的电压通过TPL2814光耦转换直接与微处理器C8051F040的I/O引脚连接,若相应I/O无电,则将此刻时间和信息存储到AM29F160DT芯片中,同时发送给相关控制器,并给出相应驱动输出。此外将通讯过程中的CAN信息也进行存储,以便航行结束后对相关数据进行分析、处理。
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个捕捉/比较模块的可编程计数器/定时器阵列。
1.2 检测信号及电平转换电路
由于检测信号的电压为24 V,但单片机C8051F040I/O口能够承受的电压为5 V。因此,需将这些电路的电压进行转换以便给单片机的I/O识别。该电路电平转换采用光电隔离芯片TLP281-4,其电路如图2所示。
1.3 时钟芯片DS12887
DS12887是美国达拉斯半导体公司推出的时钟芯片,采用CMOS技术制成,将时钟芯片所需的晶振和外部锂电池相关电路集于芯片内部。其主要功能如下:(1)内含一个锂电池,断电后运行10年以上不丢失数据。(2)计秒、分、时、天、星期、日、月、年,并有闰年补偿功能。(3)二进制数码或BCD码表示时间、日历和定闹。(4)有Motorola5和Inatael的总线时序选择。
将DS12887的MOT引脚接地,表明该电路的数据总线方式为Inatael总线时序,这样读写使能独立。数据操作需先将地址信息锁存,再进行相应读写,具体电路如图3所示。
1.4 并行存储器AM29F160DT模块
存储器AM29F160DT模块是2 MB的CMOS型5 V供电的Flash存储芯片,存取速度可高达70 ns,每个扇区至少满足100万次的擦除,数据一次保存时间长达20年,内部扇区数据结构是顶部数据形式。
将AM29F160DT的BYTE引脚下拉接地,表明是8位数据传输,并将RY/BY、WP、RESET上拉到电源。然后对应的读、写、片选信号接到微处理相应的引脚即可。具体电路如图4所示。
1.5 驱动输出模块
考虑到要有足够的驱动能力,故在驱动芯片上使用BTS712N1。而在该驱动芯片之前增加一个光耦进行隔离,以保护单片机相应的I/O。具体驱动电路如图5所示。
2 软件设计
整个软件设计是以相应CAN信息为基础进行的,记录相应电路状态信息以及当时的时间信息;一部分电路信号检测是全程监控,另一部分电路信号检测则有时段要求。为此信号检测软件采用100 ms为周期的中断检测。
系统的软件设计主要包括软件初始化配置程序、电路状态检测程序、DS12887时钟数据读取、数据存储程序、CAN通信程序以及串口通讯6部分。
2.1 电路状态的检测程序设计
电路状态的检测程序设计采用定时器检测的方式,持续检测相应电路状态3 s并未认定此电路信号出现故障。具体设计流程如图6所示。
2.2 DS12887时钟数据存储程序
时间读取程序设计就是对DS12887芯片内部4个寄存器进行相应的初始化和对其他寄存器数据的读取。
时间数据储存程序设计就是通过I/O按照存储器AM29F160DT控制时序写入对应控制字,完成对应数据写入、读取以及擦除。
2.3 CAN及RS232通信程序设计
由于C8051F040器件内部集成了Bosch CAN控制器,只需对该控制器进行初始化和配置便可实现CAN通信。操作通过特殊功能寄存器直接或间接访问CAN控制器中的相关寄存器。
串行通讯设置是用来向界发送一些内部数据,从而显示整个电路工作状态。
3 结束语
该电路设计已成功应用于某航行体航行监测中,在实际使用中对相关控制器监测起到了较好的数据记录和问题分析。本文设计实现了状态监测电路能应用其他场合的相关状态监测及时刻记录,由于AM29F160DT存储器具有2 MB的存储空间,因而能够长时间地进行监测。该设计具有结构简单、功能齐全且系统运行可靠的特点。
光耦相关文章:光耦原理
电路相关文章:电路分析基础
51单片机相关文章:51单片机教程
晶振相关文章:晶振原理
评论