历史上的今天
返回首页

历史上的今天

今天是:2026年01月13日(星期二)

正在发生

2023年01月13日 | ARM芯片S3C2440A智能小车可移动视频监控系统

2023-01-13 来源:elecfans

  本文介绍的智能小车可移动视频监控系统,以“飞思卡尔杯”智能小车竞赛提供的车模装置为基础,利用ARM芯片S3C2440A控制图像采集、网络传输、速度采集干扰小的模块,利用FPGA芯片控制电机驱动、舵机控制、电量采集干扰大的模块,当上位机通过Internet访问智能小车服务器时,在监控界面上点击按钮来控制小车的运行、图像拍摄、速度采集。


  1 系统总体设计

  该系统采用三星公司的ARM芯片S3C2440A作为主控制芯片及Altera公司的FPGA芯片EP2C5T144C8作为辅助控制芯片,ARM上装有Windows CE5.0操作系统。S3C2440A内置丰富的外设资源包括中断控制器、GPIO、I2C、相机接口等接口电路,其内核为16/32位的ARM920T处理器,它集MMU,AMBA BUS和Harvard高速缓冲体系结构与一体,主频可达400 MHz。

系统具体组成 www.elecfans.com


  2 系统硬件电路设计

  2.1 图像采集电路设计

  图像采集模块选用OmniVision公司的CMOS图像传感器OV9650,可达130万像素,具有标准SCCB(seTIal camera control bus)接口,通过该接口可以方便地设置图像像素大小、输出YCbCr顺序、白平衡、色饱和等重要参数。


  S3C2440A可以直接和CMOS图像传感器OV9650连接,如图2所示。OV9650的PWDN引脚与S3C2440A的GPG12引脚相连,这样可以控制OV9650的工作状态。当无须采集图像时,将GPG12输出高电平,OV9650芯片处于掉电模式,节省电能消耗。OV9650可输出YCbCr,RGB两种格式的数据,当输出YCbCr格式时,要用到数据线的D2~D9;当输出RGB格式时,则需要用数据线D0~D9。本文采用YCbCr格式,数据线D2~D9与S3C2440A的CAMDATA0~CAMDATA7相连。

  

S3C2440A可以直接和CMOS图像传感器OV9650连接 www.elecfans.com


  S3C2440A芯片具有相机接口CAMIF,其内部单元如图3所示,CAMIF支持ITU-R BT.601/656YCbCr 8 b标准的图像数据输入,最大可采样4 096×4 096像素的图像。该接口可以使用两种通道将图像数据存储在SDRAM中:一种是预览通道模式,将从相机接口采集到的图像数据转为RGB数据,并在DMA控制下传输到SDRAM,这种模式通常用来提供图像预览功能;另一种是编码通道模式,将图像数据按照YCbCr 4:2:0或者YCbCr 4:2:2的格式传输到SDRAM,这种模式主要为JPEC,MPEG-4,H.263等编码器提供图像数据的输入。

  


  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数据,为图像压缩提供数据源。


  3.2 速度采集程序设计

  速度传感器由红外反射式传感器和施密特触发器组成,经过施密特触发器整形后信号的频率与速度相关,通过测量该信号频率计算车模行驶速度。在Windows CE中,API函数SetTImer()可以设置定时器编号和定时时间,当定时时间到达时,执行消息响应函数OnTimer。速度采集流程如图7所示。调用SetTimer函数设置定时器初值,当外部中断EINT_19产生时,即一个脉冲信号到来,计数变量CNT加1,当SetTimer()函数设置的时间到来时,执行OnTimer()函数,该函数负责计算车模速度并将计数变量CNT清0。

  


  计数变量CNT虽然与速度成正比关系,但它并不是真正的行驶速度,需要经过一定的数学转换,才能传送到远程监控端并显示。假设车模后轮直径为D,光栅编码盘黑白相间的个数为M,在定时时间T秒内记得脉冲个数为N,则车模行驶速度:

  


  3.3 网络传输程序设计

  该系统网络传输程序是基于TCP协议来实现的。S3C2440A组成的嵌入式设备作为服务器负责图像采集、速度采集、车模控制。服务器调用accept()函数等待客户端的连接请求,服务器端接收该连接请求后,双方就此建立了连接。客户端通过send()发送请求命令,服务器调用recv()函数接收该请求命令,通过命令解析来执行具体的操作,若收到图像采集命令,服务器端打开摄像头驱动,设置图像像素大小后,将采集到YCbCr数据进行JPEG的压缩并保存为.jpg?imageView2/2/w/550格式的图片。然后将该图片发送到客户端,客户端将该图片在图像显示区域显示;若收到速度采集命令,服务器端打开定时器,打开外部中断EINT19,用于计数,当定时时间到后,将计数脉冲转换为以cm/s为单位的速度发送到客户端,客户端将采集到速度在速度显示区显示;若收到控制车模运行状态,如前进、后退、左转、右转,服务器端打开GPIO驱动,通过GPIO端口输出控制信号,控制FPGA输出占空比可调的PWM信号,即可控制车模的运行状态。


  客户端负责发送控制车模、图像采集、速度采集的命令,然后将服务器端发送过来的图像、速度信息进行显示。客户端的监控界面如图8所示。

  

客户端的监控界面 www.elecfans.com


  远程地址栏输入服务端IP地址,点击“创建连接”按钮即可和服务器端进行连接,连接成功后,就可以进行一系列的命令发送。


  4 结语

  该设计在自制电路板板上进行了软、硬件的系统集成及测试。测试结果为:图像采集时钟24 MHz;图像采集速度为30 f/s;行同步频率为14.5 kHz,图像采集像素为640×480;JPEG压缩比达到10:1;运动控制命令响应时间为5μs,网络传输速率达10 Mb/s。


推荐阅读

史海拾趣

Design Gateway公司的发展小趣事

随着Gateway业务的不断发展,公司开始寻求更多的市场曝光。1987年,Gateway在《Computer Shopper》杂志上投放了一版独特的广告,吸引了众多消费者的目光。1991年,公司推出了彰显其牧场起家背景的别具一格的奶牛花斑盒状商标,这一创新举措获得了全国消费者的认可,进一步提升了Gateway的品牌知名度和市场地位。

(请注意,由于篇幅限制,以上两个故事为简化版。在实际写作中,可以进一步扩展每个故事,包括更详细的背景信息、人物对话、市场反应等。)

由于篇幅所限,这里只提供了两个故事概要。如果需要更多关于Gateway或其他电子公司的发展故事,可以进一步研究和撰写。

CAMBION公司的发展小趣事

CAMBION公司自成立以来,始终将技术创新作为核心驱动力。在早期,公司研发团队成功开发了一款具有革命性的芯片技术,显著提升了电子设备的处理速度和能效。这一技术迅速在行业内引起关注,为CAMBION赢得了大量订单和合作伙伴。随着技术的不断完善和应用范围的扩大,CAMBION逐渐在电子行业中崭露头角。

Global Power Technology Co., Ltd公司的发展小趣事
可能是温控器故障、电源电压不稳定或冰箱内部摆放物品过多导致风道堵塞。
AdaptivEnergy公司的发展小趣事

为了进一步扩大市场份额,维峰电子积极开拓国内外市场。公司通过与国内外知名企业的合作,成功进入了多个领域,包括工业控制、汽车和新能源等。特别是新能源领域,维峰电子凭借其在电子连接器方面的技术优势,成功开发出多款适用于新能源领域的产品,受到了市场的广泛认可。

Emerson公司的发展小趣事

1954年至1973年,Emerson在总裁帕森斯的领导下,开始实施多元化战略。公司通过一系列并购活动,成功收购了包括威诺、美国电气电机、里奇工具等在内的36家公司,进一步拓宽了业务范围。同时,Emerson还注重研发和创新,通过不断推出新产品和技术,巩固了其在电气行业的领先地位。在此期间,公司的规模迅速扩大,从最初的2家工厂、4000名员工和5600万美元产值发展到82家工厂、31000名员工和8亿美元产值。

Display Engineering Services公司的发展小趣事

1890年,Emerson在美国密苏里州圣路易斯市成立,最初是一家电机和风扇制造商。1892年,新公司靠交流电机起家,并生产出了第一批销往北美的电风扇,净销售额接近6万美元。随着技术的不断革新,Emerson于1897年开始生产吊扇,这一创新使得高层建筑更加宜居,吊扇业务迅速成为公司的重要收入来源。

问答坊 | AI 解惑

你所学的专业和现在的工作一致性高吗

还是延续我之前的帖子,那个学EE的朋友最终做了完全不沾边的工作。而我当年的专业是古典文献,说通俗些,就是标点、注释古书的,还是那种竖版的从没有标点过的。现在做的工作却是电子类网站,实在是相差太远,以致于同门聚会时,大家对我的工作总是 ...…

查看全部问答>

SMDK2450 上调试u-boot问题

我使用 SMDK2450 板子配套的u-boot编译出来的u-boot.bin,无论是用 sjf 工具烧写到 nandflash 还是通过 irom 方式启动,串口都只输出一个\"OK\",用点灯大法测试,一直到使能 MMU 的代码之前,灯都是可以点亮的。 问题一:使能 MMU 之后如何继续点 ...…

查看全部问答>

谁介绍下嵌入式,eda相关的活跃的论坛

嵌入式linux arm fpga 等相关的,谢谢,100分…

查看全部问答>

关于EVC 4代码生成设置多线程问题

我用evc4.0 编译工程提示如下错误: C:Program FilesMicrosoft Visual Studio 8VCceatlmfcincludeafxver_.h(77) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds 后来在网上找到解决方案: 这里我们通过打开Projec ...…

查看全部问答>

multisim里有没有可变直流信号源啊?从哪找啊?

multisim里有没有可变直流信号源啊?从哪找啊?…

查看全部问答>

[急!!!]关于程序从PC到WINCE的移植

在模拟器上通过的程序,怎样将它移植到实体机上去运行?我将它生成的exe以及它的obj文件全部拷过去了,在实体机运行下提示的错误"是找不到该程序某一个组件,请确认路径和文件名正确和所需要的库全部可用".应该要怎样移植才行?????…

查看全部问答>

请求一个视频叠加电路

目前我只知道M6237,可以进行字符与视频叠加,可找不到比较完整的M6237电路原理图,请行业工程师帮忙提供一下,谢谢啦! 邮件:hanbing086@163.com…

查看全部问答>

转帖:一个小公司老板的日常管理

一个小公司老板的日常管理1. 小公司如何留住骨干:2.关于授权3.有的钱不能省5.关于招聘6.老板尽量唱红脸7.公司里的亲戚8.当老板和开车9.按时发工资10.学会说“不”11.不要在公司内部奢望交朋友12.避免当场做决定13.政策的制定14.矬子里拔将军15.有 ...…

查看全部问答>

Cotex-M3有浮点出来单元嘛?浮点运算能力如何?

                                 谢谢?Cotex-M3好像运算能力挺强的吧,不知道浮点运算能力如何?…

查看全部问答>

回车/换行组合符(VB.NET)

成员常量等效说明CrLfvbCrLfChr(13) + Chr(10)回车/换行组合符。CrvbCrChr(13)回车符。LfvbLfChr(10)换行符。NewLinevbNewLineChr(13) + Chr(10)新行符。NullCharvbNullCharChr(0)值为 0 的字符。navbNullString值为 0 的字符串与零长度字符串 (\"\ ...…

查看全部问答>