通过设置BF533的FIO_DIR,FIO_FIAG_C,FIO_FLAG_S寄存器可使可编程I/O接口PF0为低电平,PF1为高电平,从而使LCD处于工作状态,图像传感器处于复位状态。之后,可以用如下代码对PPI接口进行配置。
*pPPI_CONTROL=0x009e;//POLSIPACK_EN |Ox0010 | XFR_TYPE | PORT_DIR;
*pPPI_DELAY=0xcb;//在进行写操作前延时106个时钟周期
*pPPI_COUNT=959;//每行传输960个数据点然后,可采用如下代码对DMA0控制器进行配置,以将DAM0控制器配置为RESTART和FLOW_AUTO模式,从而使它能够循环实现对缓冲区DisplavBuffer中的数据的输出。
*pDMA0_PERIPHERAL_MAP=Ox0;//映射为PPI接口
*pDMA0_CONFIG=0x1030;//FLOW_AUTO |RESTART | DMA2D | WDSIZE_8;
*pDMA0_START_ADDR=&DisplayBuffer[0][0];//要显示数据的首地址
*pDMA0_X_COUNT=960;
*pDMA0_X_MODIFY=1;
*pDMA0_Y_COUNT=262;
*pDMA0_Y_MODIFY=1;
对定时器TIMER1,TIMER2进行配置,可以使其对TFTLCD提供行同步和帧同步信号,以将其设置为PWM_OUT输出模式,并将定时时钟设置为采用PPI_CLK接口输入的20 MHz时钟信号,其代码如下:
*pTIMER1_PERIOD=1224;//TH
*pTIMER1_WIDTH=5;//THP,最小值
*pTIMER1_CONFIG=0x02a9;//EMU_RUN |CLK_SEL|TIN_SELIPERIOD_CNTlPWM_OUT
*pTIMER2 PERl0D=320688;//TV=262*TH=262*1224=320668
*pTIMER2_WIDTH=3672;//TVP=3*TH=3*1224=3672
*pTIMER2_CONFIG=0x02a9;
最后,再启动PPI接口、DAM0控制器和相应的定时器,开始图像的显示,并延时5秒,以使图像在LCD上稳定的显示5秒钟。其显示软件流程图如图4所示。
4 结束语
经过调试和修改,该系统能够实现对图像的采集并正确显示图像的处理结果,本设计可以满足预期的数据显示需求。本文经过对BF533的PPI接口进行合理应用,实现了对图像采集和显示的分时工作,能够满足一些情况下的应用。因为BF533只有一路PPI接口,所以无法实现对采集图像的实时显示。而要实现的对所采集数据的实时显示,则可采用BF561DSP,该DSP可提供两路PPI接口,因而能够满足图像的采集与实时显示。