基于FPGA/MCU的光电式滚转角测量仪
电源模块:光敏三极管偏置电压为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左右的电流,EP1C3T144、C8051F310、有源晶振也都是低功耗器件,TPS76733输出电流最大值可达 1000mA,能满足系统需求。通过在低压差稳压器的输入端连接0.1mF陶瓷去耦电容改善噪声特性,在输出电压引脚与GND之间连接10mF钽电容稳定芯片内部控制回路,此外在PG或者引脚连接上拉电阻防止芯片自动复位。
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采用汇编语言编程,C8051F310可通过修改相关寄存器值非常灵活的对片内ADC模块、串口模块进行操作,ADC采用单端输入方式,以MCU供电电压为参考电压,通过向AD0BUSY位写1启动AD转换。
结语
本文设计的基于FPGA/MCU的光电式滚转角测量仪实际运行情况良好,在实验室环境中能较为准确的测量出弹体滚转角度,达到预定要求,此外还可通过增加光敏接收模块或采用红外激光器来进一步提高测量精度。
- 远程测控中嵌入式Web服务器的FPGA实现(10-30)
- 基于DSP Builder的DDS设计及其FPGA实现(11-03)
- 基于FPGA的DDS调频信号的研究与实现 (11-04)
- 使用混合信号示波器验证测量混合信号电路(11-05)
- 基于速度匹配软件的网络芯片仿真方法(11-06)
- 利用FPGA实现原型板原理图的验证(11-07)