基于ARM9 的CMOS图像采集系统的设计(7)

2019-04-16 23:10

基于ARM9的CMOS图像采集系统的设计

pISR_CAM = (U32)CamIsr; //中断服务程序设置

CamCaptureStart(CAM_PVIEW_SCALER_CAPTURE_ENABLE_BIT); //开始扑捉图

Uart_Printf(\ while (1) {

if (flagCaptured_P) {

flagCaptured_P = 0;

// Uart_Printf(\ }

if ( Uart_GetKey() == ESC_KEY ) break; }

CamCaptureStop();

Uart_Printf(\ // CamPreviewIntMask();

while(camPviewStatus!=CAM_STOPPED) if (Uart_GetKey()== '\\r') break;

}

其中函数caminit()的功能是根据所采用的lcd显示屏来初始化相关的寄存器,函数的输入参数一共有六个分别为:编码目标的宽和高,预览目标宽和高(即LCD 尺寸),以及预览目标的水平和垂直偏移量,编码DMA和预览DMA的起始地址(即采集图像的缓存空间的首地址)。其函数原型如下所示:

void CamInit(U32 CoDstWidth, U32 CoDstHeight, U32 PrDstWidth, U32 PrDstHeight, U32 WinHorOffset, U32 WinVerOffset, U32 CoFrameBuffer, U32 PrFrameBuffer)

{、、、、、、、、、}

5.1.3 液晶显示程序设计 1)VCLK、CLKVAL、帧速率

TIMEGEN为LCD驱动器产生控制信号,如:VSYNC, HSYNC, VCLK, VDEN, 和 LEND等信号。这些信号与REGBANK(寄存器组)中的LCDCON1/2/3/4/5寄存器的配置密切相关。通过对REGBANK中的LCD控制寄存器进行编程配置,TIMEGEN可以产生不同的合适的控制信号,以支持许多不同类型的LCD驱动[14]。

–26–

基于ARM9的CMOS图像采集系统的设计

VSYNC信号(垂直同步信号)使得LCD行指针跳到显示器最顶端从新开始。VSYNC和HSYNC(水平同步信号)的同步脉冲由LCDCON2/3寄存器的HOZVAL域和LINEVAL域的配置决定。HOZVAL和LINEVAL也可以由LCD面板的尺寸通过以下公式得到:

HOZVAL?(Horizontal LINEVAL?(Verticaldisplaysize)?1 (5.1)

displaysize)?1 (5.2)

VCLK信号速率由LCDCON1寄存器的CLKVAL域决定。下述公式定义了VCLK与CLKVAL的相互关系,CLKVAL的最小值为0.

VCLK(Hz)?HCLK/[(CLKVAL?1)*2] (5.3)

HCLK/[(CLKVAL?1)*2] (5.4)

VCLK(Hz)?帧速率就是VSYNC信号频率,它和LCDCON1/2/3/4寄存器中的VSYNC,VBPD, VFPD,LINEVAL, HSYNC, HBPD, HFPD, HOZVAL, 以及 CLKVAL域有关。大多数LCD驱动器都有它们自己的额定帧速率。其公式如下:

FrameRate?1/{[VSPW?1)(VBPD?1)?(LINEVAL?1)?(VFPD?1)]?[(HSPW?1)?(HBPD?1)?(HFPD?1)?(HOZVAL?1)]?[2?(CLKVAL?1)/(HCLK)]} (5.5)

TFT LCD控制器支持1、2、4、8BPP的有调色板显示,16、24 BPP的无调色板显示。芯片提供256色调色板用于色彩映射的多种选择,提供使用者以灵活的操作。本设计采用的是16BPP的无调色板显示。

S3C2440A芯片提供电源使能功能(PWREN)。当PWREN被设置为PWREN信号使能时,LCD_PWREN引脚的输出值将被ENVID控制,也就是说,当LCD_PWREN引脚与LCD面板的电源开关控制引脚相连时,LCD面板的电源将被自动控制设为ENVID值。芯片同样支持INVPWREN位设置为PWREN信号的反向值。此功能只能当LCD面板具有自己的电源开关控制引脚,并已与LCD_PWREN引脚相连时有效。

2)LCD控制器

S3C2440A的LCD控制器是用于传递图像数据和一些如VFRAME, VLINE, VCLK, VM等必要控制信号。除了控制信号,还有用于传递图像数据的端口VD[23:0]。LCD控制器由REGBANK,LCDCDMA,VIDPRCS,TIMEGEN,和LPC3600(LCC3600)组成[15]。

REGBANK(寄存器组)有17个可编程设置寄存器和一个256*16位调色板内存,用于配置LCD控制器。

LCDCDMA是一个专用的DMA,用于自动地将图像数据由帧缓冲区传递到LCD驱动端。通过该特殊的DMA,图像数据可不用CPU干预而在液晶上显示。

–27–

基于ARM9的CMOS图像采集系统的设计

VIDPRCS从LCDCDMA那接收图像数据,并在将数据转化为合适的数据格式后(如4/8-bit单线扫描、4-bit双线扫描显示类型),通过VD[23:0]数据端口,发送到LCD驱动端。

TIMEGEN由可编程逻辑组成,它们用于支持不同LCD驱动通用的可变接口时序和速率要求。TIMEGEN模块产生VFRAME, VLINE, VCLK, VM等信号。

数据流描述如下:

LCDCDMA有一个FIFO空间,当该空间为空,或部分为空时,LCDCDMA请求以“突发内存传输模式(burst memory transfer mode)”从帧缓冲区获取数据(每个冲突请求连续地向内存提取4Words即16bytes,同时在总线传输过程中,总线控制权不转交给其他总线)。当内存控制器中的总线仲裁接受该传输请求时,主存将发送4个连续字到内部FIFO。FIFO总容量为28Words,其中12Words的FIFOL和16Words的FIFOH。S3C2440A芯片有2个FIFO,以支持双线扫描显示模型。当使用单线扫描时,只有一个FIFO(FIFOH)可被使用。本设计采用TFT LCD,下面对其控制器进行介绍。

(1) (LCDCON1)LCD控制寄存器1 本设计中,对LCDCON1控制如下:

rLCDCON1 =(LCD_PIXCLOCK<<8)|(3<<5)|(12<<1);

//CLKVAL确定为4.VCLK=HCLK/[(CLKVAL+1)*2] 16bpp(TFT)

(2) LCD控制寄存器2

本设计中,对LCDCON2控制如下:

rLCDCON2=(LCD_UPPER_MARGIN<<24)|((LCD_HEIGHT-1)<<14)|(LCD_LOWER_MARGIN<<;//VBPD(vertical back porch):表示在一帧图像开始时,垂直同步信号以后的无效的行数,对应驱动中的upper_margin;

;//VFBD(vertical front porch):表示在一帧图像结束后,垂直同步信号以前的无效的行数,对应驱动中的lower_margin;

;//VSPW(vertical sync pulse width):表示垂直同步脉冲的宽度,用行数计算,对应驱动中的vsync_len; 6)| (LCD_VSYNC_LEN<<0);

–28–

基于ARM9的CMOS图像采集系统的设计

(3)LCD控制寄存器3

本设计中,对LCDCON3控制如下:

rLCDCON3=(LCD_RIGHT_MARGIN<<19)|((LCD_WIDTH-1)<<8)|(LCD_LEFT_MARGIN<<0) ;//HBPD(horizontal back porch):表示从水平同步信号开始到一行的有效数据开始之间的VCLK的个数,对应驱动中的left_margin[16];

;//HFPD(horizontal front porth):表示一行的有效数据结束到下一个水平同步信号开始之间的VCLK的个数,对应驱动中的right_margin;

(4).LCD控制寄存器4

本设计中,对LCDCON4控制如下:

rLCDCON4 = (13 << 8) | (LCD_HSYNC_LEN << 0);

;//HSPW(horizontal sync pulse width):表示水平同步信号的宽度,用VCLK计算,对应驱动中的hsync_len;

(5) LCD控制寄存器5

本设计中,对LCDCON5的控制如下:

#define LCD_CON5((1<<11)|(1<<9)|(1<<8)|(1<<3)|(1<<0));//R:G:B=5:6:5 BLINE/HSYNC脉冲极性相反;VSYNC脉冲极性反相;允许PWREN信号;Swap使能

配置好lcd液晶屏的函数之后在摄像头采集图像的函数Test_CamPreview()进行调用就可以在液晶屏上显示相应的函数。

5.2 网络传输程序设计

TCP/IP协议栈是Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络接口层、网络层、传输层、应用层 组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。

协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。其具体的结构层次如图5.2所示[17]。

–29–

基于ARM9的CMOS图像采集系统的设计

图5.2 TCP/IP栈结构

数据传输时有相对固定的传输格式:

数据帧:帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)

IP数据包:IP头部+UDP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)

UDP数据信息:UDP头部+实际数据 (UDP头包括源和目标主机端口号、校验字等)

其中数据传输的层次结构如图5.3所示。

–30–


基于ARM9 的CMOS图像采集系统的设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:英语科说课的基本程序和内容要点

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: