新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM和FPGA的智能小车监控系统

基于ARM和FPGA的智能小车监控系统

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


2.2 网络传输模块电路设计
网络传输模块选用DAVICOM公司推出的一款高速以太网接口芯片DM9000A,内部集成10/100M物理层接口,16 KB SRAM用作接收发送的F-IFO缓存,支持8/16 b内存数据存取接口。
S3C2440A内部没有专用以太网控制器,需要外部总线外挂一个以太网控制器,才能实现S3C2440A连接以太网的需要,该系统选用DM9000A作为以太网的物理层接口。DM9000A与S3C2440A的连接比较简单,如图4所示。S3C2440A数据总线DATA0~DATA15与芯片的SD0~SD15连接;地址线ADDR2与芯片的CMD连接;片选线nGCS3与芯片nCS的相连;9号外中断与芯片的INT相连。DM9000A以太网控制器的工作基址为0x300,而S3C2440A的地址线ADDR2与芯片的命令/数据使能端CMD相连,所以对其进行操作时的地址是0x300(地址端口)或0x304(数据端口)。
2.3 运动控制电路设计
速度采集模块由红外传感器和脉冲整形电路组成,经整形后的脉冲送往ARM中断进行脉冲捕获。运动控制模块选用型号为RS-380SH的直流电机控制车模的前进或后退,选用型号为FUTABA-S3010的舵机控制车模的转向,电机驱动芯片选用L298N实现对电机调速、正反转的控制。


该系统运动控制包括电机控制和舵机控制两部分。电机控制如图5所示,PWM1,PWM2用于控制电机的转速,IN11,IN12,IN21,IN22用于控制电机正反转。舵机控制电路简单,外接有3根线,红色为电源线,黑色为地线,另外一个为PWM信号输入线。两者的主要控制信号是PWM信号,S3C2440A发送命令控制FPGA输出占空比可调的PWM信号。舵机PWM信号的周期固定为20 ms,脉宽分布在1~2 ms之间,因此选定PWM信号频率为50 Hz,占空比固定在5%~10%之间。直流电机PWM信号频率选定10 kHz,占空比可在0%~100%波动,当IN11=1,IN12=0,电机正转且转速随PWM1信号的占空比不同而变化,当IN11=0,IN12=1,电机反转且转速也随着PWM1信号占空比变化。

3 系统软件设计
3.1 图像采集驱动开发

该系统图像采集模块硬件电路由CMOS图像传感器芯片和S3C2440A的CAMIF单元组成。为此在编写图像采集驱动程序时,就需要对图像传感器芯片的寄存器和S3C2440A的CAMIF单元的寄存器同时配置,否则就得不到正常图像。S3C2440A以I2C总线的方式对CMOS图像传感器芯片的寄存器进行配置。
在WinCE下,图像采集驱动是基于流接口设计的。首先在CIS_Init函数下对相机接口的寄存器进行配置,主要配置功能包括:设置相机接口输出时钟;设置图像输入输出格式;设置裁剪图像偏移量;设置帧缓冲区中图像像素大小;设置编码通道和预览通道帧缓冲区起始地址。然后S3C2440A以I2C总线方式对OV9650的寄存器进行配置,需要注意的是相机接口的配置功能要和OV9650的配置功能完全一致,否则采集不到图像,两者之间通信协议如图6所示。最后利用API函数CreateThread()创建中断服务线程。


中断服务线程函数负责具体的中断操作,在该线程函数内利用CreateEent()函数创建CAMIF单元的中断事件。然后调用InterruptInitia-lize()函数将该中断事件与CAMIF单元的逻辑中断相关联。最后调用Wait For SingleObject()等待中断事件的到来,当中断到来时,将读取事件置位,在应用程序中即可利用ReadFile()函数读取YCbCr数据,为图像压缩提供数据源。



关键词:收发器

评论


相关推荐

技术专区

关闭