嵌入式linux智能小车ppt,基于FPGA嵌入式系统的智能小车全面解析

前言

传统智能小车,特别是嵌入式系统,一般都是基于单片机或者ARM的嵌入式系统,基本上都由软件系统和硬件系统组成的,硬件系统方面,跟传统的搭建硬件环境一样,只能做相对裁剪和功能拓展,但是,本项目的课题是通过xilinx的FPGA开发板搭建嵌入式的硬件环境,从最小系统到IP核的添加,都是根据需要进行拓展的,实现一对一的拓展,不浪费资源,而且基于FPGA的嵌入式系统的最大有优点是,既有PFGA的并行执行效率,又有嵌入式软件的逻辑过程分析控制。

总体方案设计

驱动模块电路

摄像头模块的选择

方案:采用数字摄像头ov6620,控制简单,价格合适,信 稳定。

系统硬件设计

1车体模型

实物如下图所示。

7.2V的输入,稳定输出5V

3Ov6620摄像头传感器模块

OV6620时序分析

OV6620的同步信 时序如下:场同步信 VSYN 为两个正脉冲之间扫描一帧的定时,即

完整的一帧图像在两个正脉冲之间;行同步信 HREF 扫描该帧图像中各行像素的定时,

即高电平时为扫描一行像素的有效时间;像素同步信 PCLK为读取有效像素值提供同步信

,高电平时输出有效图像数据。下图为OV6620 VSYN、HREF、PCLK三个同步信 之

间的时序关系:

BTS7960B 的芯片内部为一个半桥。INH引脚为高电平,使能BTS7960。IN引脚用于确定哪个MOSFET 导通。IN=1 且INH=1 时,高边MOSFET 导通,OUT 引脚输出高电平;IN=0 且INH=1 时,低边MOSFET 导通,OUT 引脚输出低电平。SR 引脚外接电阻的大小,可以调节MOS管导通和关断的时间,具有防电磁干扰的功能。

3.5下图是由FPGA构建的最小嵌入式系统,是根据xilinx官方的EDK要求搭建的。

图10  软件结构框图

5系统调试和测试

调试过程:

5.1硬件平台的方案测试

在EDK设计中,可以新建测试代码,自动生成测试代码,通过串口打印验证结果。

5.2 超声波模块的使用

在增加IP核过程中,需要根据超声波的时序要求,用硬件描述语言描述驱动的过程。

process(Bus2IP_Clk,slv_reg1,the_end)

begin

if slv_reg1=x”00000000″ then

counter

chao_out

div_clk

elsif rising_edge(Bus2IP_Clk) then

if the_end

chao_out

counter

if(counter=x”1F4″) then

counter

chao_out

div_clk

end if;

end if;

end if;

end process;

— implement slave model software accessible register(s) read mux

SLAVE_REG_READ_PROC : process( Bus2IP_Resetn,slv_reg_read_sel, slv_reg0, slv_reg1,Bus2IP_Clk,div_clk ) is

begin

case slv_reg_read_sel is

when “10” =>

if Bus2IP_Resetn = ‘0’ then

TImer_count

the_end

elsif div_clk=’1′ then

if slv_chao_in=’1′ then

the_end

TImer_count

else

slv_ip2bus_data

the_end

timer_count

end if;

else

slv_ip2bus_data

end if;

when “01” => slv_ip2bus_data

when others => slv_ip2bus_data ‘0’);

end case;

end process SLAVE_REG_READ_PROC;

5.3 PWM模块的调试

由于需要两路的PWM来分别操作舵机和直流电机,所有PWM的调试时至关重要的。

代码如下:

intmain()

{

unsignedlongi,j;

//close PWM

PWM_IP_mWriteSlaveReg1(XPAR_PWM_IP_0_BASEADDR,0,0×00);    //PWM0

PWM_IP_mWriteSlaveReg1(XPAR_PWM_IP_1_BASEADDR,0,0×00);    //PWM1

for(i=0;i

PWM_deal(0x2E);

while(1)

{

PWM_deal(0x2E);

delay(60);

PWM_deal(0x38);

delay(60);

PWM_deal(0x2E);

delay(60);

PWM_deal(0x24);

delay(60);

}

return0;

}

voidPWM_deal(unsignedcharreg0)

{

//PWM0 舵机

//PWM 频率

PWM_IP_mWriteSlaveReg1(XPAR_PWM_IP_0_BASEADDR,0,0x1F4);

//PWM 占空比

PWM_IP_mWriteSlaveReg0(XPAR_PWM_IP_0_BASEADDR,0,reg0);

//PWM1 直流电机

PWM_IP_mWriteSlaveReg1(XPAR_PWM_IP_1_BASEADDR,0,0x1F4);   //

PWM_IP_mWriteSlaveReg0(XPAR_PWM_IP_1_BASEADDR,0,reg0);   //slv_reg0

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24985 人正在系统学习中 相关资源:苹果必备软件内含破解工具 iworks2016+office2016+Xcode9 GM-CSDN…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月6日
下一篇 2021年4月6日

相关推荐