0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >设计应用 > 基于Altera EP1C6T144C8芯片的CCD相机采集系统设计

基于Altera EP1C6T144C8芯片的CCD相机采集系统设计

来源: 电子发烧友
2019-01-10
类别:设计应用
eye 146
文章创建人 拍明

原标题:基于EP1C6T144C8芯片的CCD相机采集系统设计

  

  1引 言

  随着数字技术的进步与发展,对于数据传输的高速率性和时实性提出了很高的要求,IEEE1394协议的出现,很好地解决了该问题。IEEE1394又名FireWire,是一种高速串行总线,已经发展了IEEE1394b提供最高达3.2 Gb/s的速率,并将传输距离扩展到100 m。由此可以断定1394必然成为未来的“标准”串行总线。

  IEEE1394支持2类事务:等时传输和异步传输。

  异步传输(asynchronous transactions)保证数据传输的正确性,但是不保证数据传输的时实性,主要用来传输控制信息和一些对数据的正确性要求很高的数据。一个异步传输由4部分组成:请求数据包、请求确认数据包、响应数据包和响应确认数据包。确认数据包是和请求数据包、响应数据包同步的,当请求数据包和响应数据包发送之后立即就是确认数据包。

  异步传输不占据固定的带宽,但能保证节点获得时间上的公平访问,每一个执行异步传输的节点都能在单一的间隔内准确地访问总线。

  等时传输(isochronous transactions)对于数据传输的时实性要求很高,而对于数据传输的正确性要求相对较低。等时传输通过一个与等时传输关联的信道号码确定设备,其以固定的时间间隔(125μs)发送数据,所以必须分配固定的总线带宽,有着高于异步传输的优先级,等时传输可用的最大带宽是整个带宽的80%。

  根据协议的结构可以将1394协议分成事务层、链路层、物理层、总线管理层。链路层和物理层目前已经由硬件芯片实现。本设计主要针对芯片的应用,因此对协议本身不做太多介绍和研究。

  2采集系统硬件设计

  根据硬件的特点,设计了基于T1芯片组和FPGA的CCD相机采集系统。系统结构如图1所示。

  系统结构图.png

  FPGA选用Altera公司的Cyclone系列器件EP1C6T144C8,可以为CCD相机提供工作所需的驱动时序,同时接收经过A/D转换的CCD输出图像数据。

  这里主要介绍1394接口的数据采集,FPGA内部的CCD驱动逻辑暂时不介绍。本设计用于大量的数据的传输,因此使用TSB12LV32的DM端口来输入和输出数据。FPGA与TSB12LV32的DM端口的逻辑电路如图2所示。

 FPGA与TSB12LV32的DM端口的逻辑电路图.png

  FPGA内部采用异步FIFO解决CCD输出数据频率和TSB12LV32采集频率不匹配的问题,写时钟由CCD输出位同步信号提供,写请求信号由FIFO的满状态共同控制;读时钟由TSB12LV32的DMCLK提供,读请求信号由DMRW。当TSB12LV32开始传输数据时,在FIFO的满状态和TSB12LV32的DMDONE引脚控制下,由CCD输出位同步信号将数据写入FIFO;在DMWR的控制下,由DMCLK将FIFO中的数据由DM0~DM7引脚读入TSB12LV32,连接如图2所示。

  2.1 MCU软件设计

  软件的设计分为2部分:一个是在PC机上开发设备板的驱动程序;另一个是使用设备板上面使用MCU控制和配置PDI1394L40的软件流程。单片的主要负责初始化各个CRF,设置TSB12LV32的工作模式,配置ROM发送ROM,分析包头,构造包头和数据包。配置ROM是设计的重点也是难点,将设备插入PC的1394端口,通过配置ROM,使得PC机识得设备。配置ROM的流程如图3所示。

  配置ROM的流程图.png

  2.2异步操作

  异步发送“自动插入header的异步包发送”为例,介绍如何进行异步发送操作,其流程图如图4所示。

  异步操作.png

  2.3等时操作

  等时接收的工作流程图图5所示。

等时操作.png

  3驱动开发

  采用Numega公司的DriverWorks工具开发驱动,该软件对DDK中的函数进行很好的封装。使用DriverWizard可以直接生成驱动程序源代码的框架,只需对其做修改即可。

  由于Windows已经提供了总线驱动程序和端口驱动程序,因此只需要开发功能驱动程序即可。DriverWorks将DDK下的1394请求包(IRB)封装成KIrb类,并将总线驱动程序的功能封装在K1394LowerDevice类中,对于等时传输和异步传输也有相应的类对其相应的DDK进行封装。

  1394WDM驱动程序使用IRB(请求包)和总线进行通信,IRB被发送到总线驱动,总线驱动将IRB在总线上执行。DriverWorks使用KIrb类迅速创建一个IRB,同时使用K1394LowerDevice::SubmitIrb函数将IRB发送到总线驱动。

  4结语

  经测试,该系统实现IEEE1394a的传输协议,实现了异步和同步传输。IEEE已经推出1394b标准,1394b的最高速度可以达到3.2 Gb/s,有效传输距离延长到100 m,而且有些公司已经开始推出1394b控制芯片。该系统不但实现了设备端与PC主机之间数据的高速传输,同时还为1394b传输系统的设计和实现提供了有效的铺垫。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯