新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 采用FPGA/MCU技术的光电式滚转角测量仪的解决方案

采用FPGA/MCU技术的光电式滚转角测量仪的解决方案

作者: 时间:2010-12-10 来源:网络 收藏

本文引用地址:https://www.eepw.com.cn/article/151256.htm

  系统软件设计

  基于式滚软件流程如图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处理的模拟信号数量,然后通过比较将幅值较小的信号忽略,仅保留最大的两路信号,随后处理方式同上。


  FPGAVHDL语言进行编程,其串口程序包括串口发送、串口接收与时钟分频三个模块,分别与上位机及两片MCU进行通信,通信波特率为标准的9600b/s,数据位为8位,不带校验位。MCU汇编语言编程,C8051F310可通过修改相关寄存器值非常灵活的对片内ADC模块、串口模块进行操作,ADC单端输入方式,以MCU供电电压为参考电压,通过向AD0BUSY位写1启动AD转换。

  结语

  本文设计的基于式滚转角实际运行情况良好,在实验室环境中能较为准确的测量出弹体滚转角度,达到预定要求,此外还可通过增加光敏接收模块或采用红外激光器来进一步提高测量精度。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭