此外FPGA的UARTTX、UARTRX引脚与MAX3232CSE相连,将TTL电平转换成232电平,使用异步串口与上位机进行通信,电路连接如图7所示。
LED显示模块:由于滚转角度值范围在0度-360度之间,因此使用三位八段数码管可满足使用要求,选用力达公司的LDS-2381共阳数码管,其封装如图8所示。FPGA的八个引脚通过限流电阻与LED的A-G、DP引脚相连,由于LED消耗电流较大,而FPGA的引脚驱动能力不足,因此另外三个片选引脚分别先连接到NPN管的基集,NPN管的发射集再与LED的8、9、12引脚相连,从而提高电流驱动能力。FPGA采用动态扫描方式,通过控制片选引脚使数码管轮流显示个位、十位、百位的数字,每一位的持续时间为8ms,但在人眼看来可产生同时显示的效果。
电源模块:光敏三极管偏置电压为9V,FPGA需要3.3V与1.5V联合供电,MCU、FPGA外接有源晶振、LM318D等均为3.3V供电。系统输入电源采用9V直流供电,因此还需使用电源转换模块降至3.3V与1.5V,如图9所示,选取TI公司的TPS76801与TPS76733两种低压差稳压器。TPS76801是单路可调LDO,最大压降仅为230mV,容限为2%,纹波小,适合为FPGA内核供电,通过在OUT引脚、FB引脚与 GND之间连接不同阻值的电阻,可灵活设置TPS76801的输出电压为1.5V,阻值计算公式,式中 Vref="1".1834V,R24=30.1kΩ,R23=8kΩ。TPS76733也是单路固定输出LDO,输出电压为3.3V,典型压差350mV,每个LM318D仅需消耗1mA左右的电流,EP
FPGA/MCU信息处理模块、电源模块、LED显示模块都集中布置在主控板上,其实物如图10所示,主控板与各个光敏接收模块之间通过导线连接,传输采集到的模拟信号并进行供电。
系统软件设计
基于FPGA/MCU的光电式滚转角测量仪软件流程如图11所示。光敏接收模块g1-g37接收到红外光信号,经过光电转换及信号调理之后将高电平送至FPGA上各相关引脚,FPGA以固定频率对A1-A37各引脚进行扫描,扫描频率通过对有源晶振的输入频率进行分频得到,如果扫描到仅有一个引脚是高电平,则说明只有该引脚对应的光敏接收模块收到光信号,滚转体此时刚好旋转到某已知角度,通过FPGA控制LED显示模块输出该角度,并通过串口将滚转角度值传送给上位机。但如果有两路引脚都为高电平,那么FPGA首先判断该由哪片MCU对这些信号进行处理,随后通知该MCU进行AD转换并确定滚转角度,比如A5、A6均为高电平,则FPGA以串口通讯方式通知MCU A对A5、A6进行AD转换,转换结果A5的信号幅值为2.50V,A6的信号幅值为3V,已知A5对应的滚转角为40度,A6对应的滚转角为50度,则此时的滚转角度为40+[2.5/(2.5+3.0)](50-40)=44.55度,MCU再通过串口把信息反馈给FPGA。还有可能出现3路或者3路以上的引脚为高电平的情况,此时应调节光敏接收模块的初级运放信号放大倍数,尽量减少MCU处理的模拟信号数量,然后通过比较将幅值较小的信号忽略,仅保留最大的两路信号,随后处理方式同上。
FPGA采用VHDL语言进行编程,其串口程序包括串口发送、串口接收与时钟分频三个模块,分别与上位机及两片MCU进行通信,通信波特率为标准的 9600b/s,数据位为8位,不带校验位。MCU采用汇编语言编程,C
结语
本文设计的基于FPGA/MCU的光电式滚转角测量仪实际运行情况良好,在实验室环境中能较为准确的测量出弹体滚转角度,达到预定要求,此外还可通过增加光敏接收模块或采用红外激光器来进一步提高测量精度。