USB是一种常用的PC接口,只有四根线,两根电源线,两根信号线。因为信号是串行传输的,USB接口也被称为串行口,其中USB2.0的速度可以达到480Mbps。USB数据传输的实现通过D+、D-的差分线完成。
不仅具有能够提供小电流供应给外接设备以保证其正常工作的能力,而且还具有为USB接口提供检测功能的+5V电源,是USB Port Type A 接口连线中不可忽视的一个关键点。当USB接口中有USB设备接入时,主机中的这个+5V电源直接利用USB中的边线与此USB设备相连通。然后整个导通电路开始工作,首先USB外设中的控制芯片利用两只10K的电阻来检验USB设备是否已经接入了主机上的USB端口。当检测到两个引脚一个为低电平而另一个正好为高点平时,就说明USB外设已经与USB接口正常连接,此时外部设备的控制芯片正常通电并利用DATA+、DATA-向外送出数据,开始整个电路的正常工作。这时主机接收数据后,就会提示发现新硬件,并开始安装新硬件驱动。
本系统中使用一个USB Port Type A接口。其USB Port Type A 接口连线图如图7所示。
图7 USB Port Type A 接口连线
RS232接口与PC机串口总线相连, 通过PC机对嵌入式系统进行相关信息的显示和控制。JTAG接口主要将程序烧写到FLASH中, 并通过FLASH对系统进行调试。
3. 系统软件设计
3.1 系统软件平台
在嵌入式Linux和Qt/Embedded的操作平台上实施系统的软件设计。首先,将交叉编译环境构筑与宿主机,成功实现VIVI编译移植后编译移植Linux2.6.29内核。在Busybox1.13.3上建立文件设置环境,这其中包括ZC301P型号的摄像头和LCD触摸屏等的设置。
针对于不同的设计需求,可能需要附加QTE4.5.3图形库及支持Tslib1.4触摸屏的数据库最终在开发板上下载能够独立完成存储中的图像数据的编码和解码的Lib Jpeg库。QTE4.5.3是面向嵌入式系统的Qt版本,采用了Frame Buffer作为底层图形接口,具有良好的可移植性和丰富的控件资源,系统中的应用程序以及环境都是基于Qt /Embedded来开发的。
视频采集的过程由两部分实现:一是ZC301P摄像头接口驱动的编译;二是视频信息处理及应用程序的开发。
视频采集程序实现的软件方面主流程图如图8所示。
图8 视频采集程序主流程图
3.2 Linux操作系统对USB启动工作命令的控制
Arm开发板上摄像头的移植有两种方法:第一,将驱动程序添加到内核,通过编译内核,烧写到板子上;第二种,通过动态加载摄像头驱动模块的方法进行硬件的驱动。
处于Linux操作系统下的USB摄像头,主机的驱动命令包括摄像头的主机控制器、核心及各类设备的驱动。
在MINI2440上移植2.6.29版本,因为该内核可扶持UVC(符合应用编程接口规范V4L2,是视频设备技术规范的一种,为USB的驱动提供相应的开源项目)控制中的摄像头的驱动程序,当使用V4L2进行现场视频片段获取时,只需在Linux 2.6.29的内核上编译UVC驱动程序。
本此设计选取的是专门在数字摄像模块和USB接口之间进行转换操作,且囊括二者及视频压缩的实时引擎控制的ZC301P型号的USB。利用此种型号的芯片实现视频信息数据由摄像头接口至操作系统领域的传达,进而对图像做进一步的加工[2]¬¬¬。
本此设计中,首先在PC的Linux系统进行摄像驱动程序的移植,保证驱动程序版本正确,然后将驱动程序编译成模块,通过文件系统挂载到板子,然后进行加载,进而创建摄像头设备节点。
3.3 视频图像采集接口设计
S3C2440A摄像头接口主要包含一个输出时钟信号CAMCLKOUT,三个来自摄像头的输入同步时钟信号及像素同步CAMPCLK,帧同步时钟CAMVSYNC和行同步时钟CAMHREF,一个输出复位信号CAMREST以及8位来自摄像头的输入数据信号CAMDATA,它们分别和摄像头相应的引脚相连。 基于ARM的视频监控系统设计+源程序+流程图(4):http://www.youerw.com/zidonghua/lunwen_1341.html