C8051Fxxx单片机是美国Silabs公司推出的完全集成的混合信号系统级芯片,具有与8051指令集完全兼容的CIP-51内核。在项目研制中采用C8051F020单片机,对于熟悉掌握51单片机的技术人员来说,在硬件设计及软件编程上大大提高了研制效率和装备可维护性。测控装置是某型电子装备的实时控制装置,是整个系统最重要的组成部分之一,是系统运行过程中的指挥控制中心。该装置通过构建多单片机系统,实现了复杂时序的实时控制以及多路数据采集,可以提供系统正常工作所需的多路输出控制信号;通过硬件设计和软件编程实现了单片机与单片机、单片机与上位机之间的实时通信,各子系统之间的效据交换和复杂逻辑关系的处理,系统在规定时间可靠输出多路控制信号等功能。
1 测控装置的硬件设计
1.1 总体设计
测控装置主要完成装备运行过程中的参数设置、时序控制、数据采集、输出控制、串口通信等任务,其硬件设计采用了“核心模块+数据采集模块+输出控制模块+数字逻辑模块”的模块化设计思想。其中核心模块包含单片机系统的基本功能,其他三个模块分别完成系统特定功能。这种设计思想既简化了系统硬件设计,又缩短了系统研制周期。测控装置的总体设计框图如图1所示。 (1)核心模块
核心模块由Cygnal单片机(C8051F020)、UT62L1024SRAM、SPI串行方式8 Mb的FLASH存储器AT45DB081、日历时钟S-3530A、10M以太网芯片8019等组成。全部芯片和电路组合在42.5 mmx53.8 mm的PCB板上,由2 mm脚距的40P双排插针与数据采集模块相连接,核心模块在使用时相当于一个“大芯片”。C8051F020单片机实时采集各种数据,根据预先设定在单片机中的参数,对接收数据进行综合处理和分析计算,输出满足要求的各种控制信号。
(2)数据采集模块
数据采集模块上设计有脚距2 mm的40P双排插孔,可以很方便地实现核心模块的转接。每个模块还设计有3个8位数字I/O端口(P1,P2,P3)和一个8通道模拟输入端口(AIN),另外还有RS 485通信端口和电源模块。
通过这些端口单片机可以很方便地对外部传感器输入的信号进行实时采集,并通过RS 485通信与系统其他组件实现数据交换。
(3)输出控制模块
测控装置工作过程中根据时序对外部组件进行供电和控制,需要3 V,5 V,12 V和27 V等多种工作电压,以及多路输出控制信号,为此设计了输出控制模块,通过单片机的可编程数字I/O端口对相关继电器进行实时控制,从而实现多路电压和控制信号的稳定输出。
(4)数字逻辑模块
数字逻辑模块将单片机输出的部分数字信号进行转换,提供给需要的外部组件,同时也可以接收其他单片机和外部组件的数字信号,进行硬件逻辑判决,从而实现在预定时机可靠地输出系统触发信号,最终完成触发外部执行装置的功能。
1.2 传感器数据采集
传感器是能感受规定的被测量并转换成可用输出信号的器件,本系统使用的传感器作为某型电子装备的重要组成部分,根据各自的功能“感知”外界环境变化,完成将各种物理量转化为单片机可以处理的模拟或数字信号,并由单片机对这些信号进行采集和处理。
本系统使用的传感器主要分为两大类,一类是无线电传感器,用来测量系统距目标的距离;另一类是惯性传感器,用来监测系统运行过程中的实时加速度值。其中惯性传感器既有高精度大量程的电子式传感器,又有稳定可靠的机械式传感器。
对于传感器输出的模拟信号,C8051F020单片机拥有专用的模拟输入引脚(AIN),通过12位ADC对输入的模拟信号进行采集转换,并利用ADC转换结束引起中断响应,将转换得到的数据进行分析处理。而对于传感器输出的数字信号,经电平转换后即可由数字I/O端口(P1,P2,P3)进行采集,单片机根据采集到的信号分析判断系统当前状态,为适时输出控制信号和系统触发信号提供依据。
2 测控装置的软件设计
单片机采用C语言编程,相对于汇编语言来说,程序的可读性大大提高,采用模块化设计思想也为系统调试和维护带来极大的方便。
测控装置软件采用采用模块化设计,主要包括数据采集模块、串口通信模块,时序控制模块和信号处理模块。数据采集模块又包含ADC数据转换和数字信号采集两个子模块,主要是通过单片机的中断系统实时采集外部模拟和数字信号;串口通信模块主要实现单片机与外部组件间的RS 485通信,接收其他测控设备的控制命令,反馈单片机实时采集的各种数据;时序控制模块利用单片机的定时器精确计时,并根据预先设定的参数,按照系统要求的时序及时准确地发出各种控制信号;信号处理模块对各类传感器发出的信号进行中断处理和分析计算,最终输出所需的系统触发信号。
2.1 主程序设计
测控装置通过串口接收上位机的指令,并存储由上位机发送的系统参数,在运行过程中,通过传感器A和传感器B的动作情况判断测控装置当前所处状态,根据不同的状态输出满足系统需要的各种控制信号。测控装置通过预先设定的参数和从传感器C接收的实时数据,进行分析处理,并结合传感器D发出的各种标志信号进行综合计算,从而确定输出系统触发信号的时机。另外传感器E的信号具有排他性,可以直接导致测控装置输出系统触发信号。测控装置的主程序流程图如图2所示。
2.2 串口通信程序设计
在以单片机为核心构成的数据采集系统中,往往需要实现PC机与单_片机之间的数据交换。传统的基于RS 232协议的串口通信存在传输距离短、速度慢、信号易受干扰等不足,其应用局限性日益突出,而利用RS 485串行通信,可以实现快速、稳定、远距离地传送数据。 测控装置的串口通信模块实现单片机与其他单片机以及上位机之间的信息交互,根据自定义的通信协议发送或接收数据,并通过UART中断服务程序对接收的数据进行分析判断。串口通信模块分为数据发送和数据接收两个子模块。数据发送子模块实现单片机对外传输数据,这些数据主要包括单片机采集的各类传感器数据、主程序执行过程中需要向其他单片机发送的指令和单片机进行数据处理、综合计算产生盼数据。数据接收子模块主要负责接收来自其他单片机和上位机的指令,接收上位机发送的各种参数。测控装置的串口通信程序流程图如图3所示。
3 结语
在实时测控装置研制中采用了多个C8051F020单片机,以22.118 4 MHz的晶体振荡器作为系统时钟,整个系统运行速度得到了很大的提高。较硬件均采用模块化设计,为设备调试和后期维护提供了便利。通过单机调试和系统联调,24路控制信号输出准确无误,外部传感器的48路数据采集及时高效,系统工作性能稳定可靠,较好地完成了实时数据采集、复杂时序控制、多机串行通信等任务,达到了设计要求。 |