首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于NiosⅡ的图像采集和显示的实现 03

基于NiosⅡ的图像采集和显示的实现 03

整个系统中,初始化是DMA关键,其初始化流程如图7所示。

  以下给出DMA初始化的源代码:

  np_dma*dma_cmos_con;
  dma_cmos_con=( np_dma*)DMA_0_BASE;
  np_dma* pdma=(np_dma*)dma_cmos_con;
  alt_irq_register(DMA_0_IRQ,(void*)pdma,(void*)isr_dma);
  pdma->np_dmacontrol=0;
  pdma->np_dmastatus=0;
  pdma->np_dmalength=1600*1200;
  pdma->np_dmareadaddress=(int)Sdram_address;
  pdma->np_dmawriteaddress=(int)na_cmos_cont;
  pdma->np_dmacontrol=
  np_dmacontrol_go_mask |
  np_dmacontrol_i_en_mask |
  np_dmacontrol_byte_mask |
  np_dmacontrol_reen_mask |
  np_dmacontrol_rcon_mask |
  np_dmacontrol_leen_mask;
  在注册DMA设备的函数中,NiosⅡ会调sys_dev_init函数完成DMA HAL层的初始化,同时指明中断服务程序的函数入口地址,而其他语句主要是完成DMA寄存器的正确配置。
  3.3 数据整理
  采集的原始图像数据为Bayer模式,如表2所示。而采用了CFA技术,则需要转换成BT666的数据格式,用于TFT的LCD液晶显示。由于TFT液晶像素的分辨率为QVGA(320×240),而从图像传感器采集到的图像像素为SVGA(1600×1200),所以需要裁剪原来的图像。采取了16:1的抽取方式来显示图像,这些数据的处理都可以在NiosⅡ IDE的软件环境中灵活处理。

  图8便是最终调试采集到的一幅200万像素的CMOS图像。它通过在NiosⅡ的环境中采用PIO内核,遵循CompactFlash Card接口协议模拟出CF卡的控制器,同时在NiosⅡIDE的环境中通过对采集到的RAW图像数据进行整理插补还原,按照FAT16的文件系统写到CompactFlash Card中。



  从采集实验得到的图像可以看出,图像的质量很好,图像的信噪比高。由此在SOPC平台上开发图像的采集和显示控制器,能增强系统的灵活性和适应性。同时,由于一些组织提供了公开的IP核,将其应用到自开发系统上,可以缩短设计开发周期,也是一种低成本的途径。这种'软'硬件全新的设计概念,将会在智能测量、自动控制、便携式仪器仪表等领域得到广泛应用。

返回列表