薛耀 刘青青
在光电侦察系统中,通常需要使用操纵杆控制器来控制光电侦察系统,实现对目标的搜索、跟踪。操纵杆控制器是光电侦察系统的重要组成部分,广泛应用于建筑机械、医疗设备、光学仪器等领域。
操纵杆控制器的设计主要是实现以下几个功能:① 检测是否有按键被按下;② 采集操纵杆输出的模拟量;③ 通过串口把相应的命令信息发送给光电侦察系统。按键检测的功能主要是通过读取相应I/O端口的信号实现;操纵杆输出的模拟量则需要通过相应的A/D采集电路实现;与光电侦察系统的通讯则使用标准RS422接口实现。
操纵杆控制器系统主要包括操纵杆、按键和信号处理板。操纵杆和按键都是选用成熟的货架产品。信号处理板以自带A/D采集模块的C8051F020 SoC微控制器为核心,把待检测按键的一端接到其I/O口上,另一端接地,通过读取相应端口的值,判断其值是否为低来判断相应按键是否被按下。操纵杆选用的是电位器操纵杆,在电位计两端输入+5V电压,输出端通过一个分压电路将输出信号幅度调整在0V~2.4V之内,再输入给C8051F020片上集成的ADC模块,实现模拟量采集。该系统结构如图1所示。
本系统采用Silicon Laboratories公司的微控制器C8051F020,它是全集成混合信号SoC处理器,具有与8051兼容的高速流水线结构的CIP251内核,速度可达25MIPS,该芯片具有如下特点:① 内置了64K可在线编程 FLASH ROM和4352字节的片内RAM;② 具有两个UART串行接口;③ 片上集成8路12位逐次逼近式 ADC,转换数率最高 100ksps;④ 可通过JTAG接口实现在线调试功能[4]。
图1 系统结构图
C8051F020的ADC使用逐次逼近式A/D转换器,这种转换技术基于逐次逼近寄存器(SAR)或称为权衡转换。采用一个比较器对输入电压和一个N位模数转换器(DAC)的输出进行比较(权衡)。将 DAC输出作为参考电压,经过N+1次比较就可以得到最终转换结果。其中每次比较完成1位转换[5]。第一步将DAC的最高有效位(MSB)保存到转换器SCR中,接着将该值(MSB)对应的电压与输入进行比较,在比较器输出(高或低)被反馈到 DAC,并在下一次比较时对其进行修正。在逻辑控制电路的时钟驱动下,SCR不断的进行比较和移位操作,直到完成LSB位的转换。此时所产生的DAC输出逼近输入电压的1/2LSB。每一位确定后,转换结果被锁存到SAR并作为ADC输出。
设计中采用C8051F020片内集成的8路真正12位的ADC, 直接采用C8051F020内部的2.4V参考电压。接口电路如图2所示。在内部基准电压的输出端和地之间接上4.7μF和0.1μF的旁路电容去除干扰。模拟量输入A_IN1、A_IN2分别接到通道1和通道2上。从传感器传递过来的电压信号强弱差别较大,需根据具体情况采用运算放大器电路或电阻网络将模拟电压变换到0V~2.4V的范围。调理电路采用运放加电阻网络来实现。运放实现电阻匹配,电阻网络实现电压匹配。信号调理电路如图3所示,其中R1,R2主要是完成把操纵杆输出的0V~5V的信号调理成0V~2.4V的信号。
图2 ADC接口电路
图3 信号调理电路
由于单片机C8051F020具有64个I/O,远远大于所使用的按键数量,所以按键接口使用最简单的一个按键对应一个I/O口的设计。每个按键的一端接一个I/O,另一端接地。
设计中采用 C8051F020片内集成的两个 UART串行接口,分别扩展出一个RS422和RS232接口。RS422接口芯片选用MAX490,RS232接口芯片选用MAX3221,两种芯片均使用5V供电,可直接使用系统输入电压。
本操纵杆控制器主要功能为检测相应的按键是否被按下,同时采集操纵杆的位置信息,把相应的信息组合成相应的控制指令,通过标准RS422接口发送给光电侦察平台,以达到控制光电侦察平台的目的。为了系统调试和测试的方便,设计了一个与计算机相连的 RS232接口,可完成操纵杆控制器的测试与调试。整个软件主要分为以下几个功能模块:① 系统初始化;② 完成芯片配置,包括晶振、串口、定时器、AD的初始化;③ 定时器中断。
为了实现定时给下位机发送指令信息,需要使用定时器产生一个80ms 的中断,在这个中断里完成按键检测,AD采集和串口通讯。
为了能够正确的判断按键按下的情况,去除按键抖动的影响,本设计在软件上采取了防抖动措施,即在检测到某一按键按下后,延时20ms后再次检测,如果这一按键还处于按下状态,则认为该按键指令有效,否则认为无效。
当定时器中断发生后,在软件中向ADC控制寄存器的AD0BUSY位用1来启动AD采集。由于每一路被采集的数据都有一定的噪声,为了解决这个问题,在软件中采用简单实用的加权平均法进行处理,即每次数据采集都进行10次,然后取平均值。由于操纵杆的位置变化是一个连续的过程,所以AD采集的结果也是一个连续变化的过程。如果把AD采集的结果直接发送给光电侦察平台,那么在使用的过程就可能会由于操作者手部的抖动而导致执行部件的抖动,为了解决这个问题,需要在软件上对AD采集的数据进行处理。本设计所选用的方法是把整个数据区间分成若干个,在同一个区间都输出同一个数据。AD采集数据处理示意图如图4所示。这个方法在实际使用中效果比较明显,也能很好的解决操纵杆回零不准的问题。
操纵杆控制器串口通讯由UART0和UART1两个串口组成。在每个通讯周期里操纵杆控制器通过UART0接口向光电侦察平台发送操纵杆控制器的控制指令。该控制指令根据光电侦察平台通讯协议的要求封装。每一帧指令由消息头、消息体和消息尾构成。消息头一般由两个字节数据构成。消息体由7个字节构成,分别为每一帧的字节数,光电侦察平台的控制指令,各个传感器的控制指令和光电侦察平台控制指令的参数。消息尾为前面所有数据的校验和。具体帧格式如表1所示。
图4 AD采集数据处理示意图
表1 控制指令消息帧格式
系统测试过程中,操纵杆控制器通过UART1接口把信息同时发与光电侦察平台及计算机,通过相应的通讯控制界面来监视数据的正确性。在系统调试过程中,操纵杆控制器通过UART1接口接收计算机的指令来修改 UART0的工作模式、波特率等参数。整个系统的流程如图5所示。
图5 系统流程图
本设计以C8051F020单片机为核心,实现了操纵杆控制器的设计。充分利用C8051F020丰富的I/O口资源和外设资源,完成实时按键检测、AD采集和串口通讯功能。电路硬件设计可靠,集成度高,运用灵活,在光电侦察平台系统中已有广泛应用,在其它工业控制领域也具有一定的发展前景。
[1] 李冰,杨公训,王磊.Cygnal F020单片机及其应用[J].湖北民族学院学报,2005,23(1):56-59.
[2] [美]Cygnal Integrated Products,Inc. C8051F单片机应用解析[M].北京:北京航空航天大学出版社,2002.
[3] 马忠梅,籍顺心,张凯.单片机C语言应用程序设计.北京:航空航天大学出版社,1999.
[4] 潘琢金.C8051F020/1/2/3混合信号ISP FLASH微控制器数据手册.沈阳航空工业学院计算机系,2002.
[5] 张培仁,孙力.基于C8051F系列微控制器原理与应用[M].北京:清华大学出版社,2007.