基于AX88180的科学级CCD千兆以太网通信系统及方法与流程

文档序号:14864190发布日期:2018-07-04 09:56阅读:308来源:国知局
基于AX88180的科学级CCD千兆以太网通信系统及方法与流程

本发明涉及图像高速传输与控制系统领域,具体涉及一种基于ax88180的科学级ccd千兆以太网通信系统及方法,该系统和方法通过fpga控制ax88180芯片及phy层芯片,实现千兆以太网通信,并在fpga内部运行通信协议的通信方案。



背景技术:

在科学研究中,常常在微光条件下对物体进行观察和定量分析,此时需要有高灵敏度、低噪声、高线性度以及大动态范围的仪器设备进行图像数据的采集处理,而图像数据采集后能否及时的、准确的传输到pc上位机中,将直接关系到图像采集设备的实用性、可靠性以及图像数据指标。此外,有些观测条件甚至会对观测人会员造成伤害,此时需要图像采集设备可以将图像信号进行远距离传输。

目前,针对科学研究用途的图像采集设备多为通过cameralink以及usb接口进行数据传输以及控制的,例如pi公司的pixis系列相机采用usb2.0接口,该图像采集设备的传输速率较低,难以实现pc上位机同时控制多台图像采集设备,并且传输距离较短,无法实现远距离,较难实现一对多的控制。

随着嵌入式网络技术的发展,越来越多的小型设备将会通过网络接口实现图像数据的高速、远距离传输,且容易实现一台pc上位机通过网络控制多个图像采集设备,若这些图像采集设备将采集到的图像数据传输给pc上位机,会需要一个更加高速的网络,在很多场合,百兆网络会出现通信阻塞,甚至崩溃,造成设备采集到的图像数据丢失,会造成非常严重的损失。



技术实现要素:

本发明的目的是解决现有图像传输系统中百兆网络会出现通信阻塞,甚至崩溃,造成设备采集到的图像数据丢失等问题,提供一种基于ax88180的科学级ccd千兆以太网通信系统及方法,该系统和方法可实现科学级ccd与pc上位机通过千兆网络互连,可将科学级ccd采集到的图像数据高速传输到pc上位机,并可实现对pc上位机的控制命令接收,命令解析,命令处理,命令回传,并可实现udp,arp,icmp(实现ping功能)等网络协议,并可通过发送心跳包检查网络是否阻塞,作出相应处理。

本发明的技术方案是:

一种基于ax88180的科学级ccd千兆以太网通信系统,包括网络通信电路板和至少一块fpga电路板;所述fpga电路板包括fpga芯片、eeprom芯片和sdram芯片,所述fpga芯片与eeprom芯片根据iic协议连接,所述sdram芯片与fpga芯片连接进行数据的存储;所述网络通信电路板包括依次连接的mac层芯片、phy层芯片和rj-45接口,所述mac层芯片为ax88180,所述phy层芯片为88e1111;fpga芯片采集的数据传输给mac层芯片和phy层芯片,经rj-45接口传输给pc上位机;所述fpga芯片内部功能模块包括网络初始化模块、封包解包模块、网络协议模块、命令解析模块、控制调度模块、eeprom参数存取模块;所述控制调度模块分别与网络初始化模块、封包解包模块、网络协议模块、命令解析模块和eeprom参数存取模块连接,负责协调各个模块的启动顺序和数据传递走向,上电复位后,控制调度模块从eeprom参数存取模块中读取参数信息,并配置给网络初始化模块,之后启动网络初始化模块,所述网络初始化模块与mac层芯片、phy层芯片连接,其功能为配置mac层芯片、配置phy层芯片、启动发送和接收子模块;所述网络协议模块进行网络协议的处理,所述网络协议包括icmp协议和arp协议;所述网络协议模块与网络初始化模块相连,负责处理arp协议和icmp协议的数据包;所述封包解包模块与网络初始化模块相连,将封装好的图像数据发送,所述命令解析模块与网络初始化模块相连,负责命令的收发解析,所述命令解析模块可以对命令进行解析,将命令区分并且将各命令回传给pc上位机形成一个回环。

进一步地,所述网络初始化模块包含reset_mac模块、88e1111_phy_initial模块、ax88180_mac_config模块、rec_pack模块、send_pack模块;所述reset_mac模块实现对mac层芯片寄存器的读写以及对mac层芯片的寄存器设置默认初始值;所述88e1111_phy_initial模块实现phy层芯片寄存器的读写,并且确认网络硬件连接介质类型以及phy层、mac层接口的类型;所述ax88180_mac_config模块根据phy层芯片检测到的链路状态配置mac层芯片寄存器,同时协商两端的工作方式;所述ax88180_mac_config模块完成mac地址的配置,确定接收数据包的种类,并开启mac层芯片的收发流量控制功能;所述rec_pack模块通过查询指向接收缓存的寄存器rxcurt以及rxbound的变化来接收数据,并从接收的数据包中得到pc上位机的mac地址、ip地址;所述send_pack模块通过配置寄存器tx_cmd发送数据,并针对不同长度的待发送数据包发送不同的配置。

进一步地,所述封包解包模块将图像数据根据udp协议进行封装,包括解包模块和udp封装模块。

进一步地,所述封包解包模块包括两块ram乒乓缓存模块,使用乒乓结构缓存数据,同步进行封包处理。

进一步地,每个udp封装模块数据包的长度为1074字节。

同时,本发明还提供了一种基于上述系统实现科学级ccd千兆以太网通信的方法,包括以下步骤:

1)上电,进入网络初始化状态;

2)在网络初始化状态,配置phy层芯片和mac层芯片的工作状态;

3)进入侦听状态;

4)建立连接;当确定pc上位机发送“连接”后,记住该pc上位机的ip地址和mac地址,将其存入eeprom的对应位置,然后将命令回传给pc上位机;若是其他pc上位机发出的设置命令的话,回传“拒绝命令”数据包;

5)接收到pc上位机的“采集”命令,开始将图像采集前端采集的图像数据传输给pc上位机;当收到pc上位机对图像采集前端的配置命令时,则在图像输出后将配置命令发送给图像采集前端对应的芯片,将配置信息储存到eeprom中对应的位置,并将该命令回传;当接收到pc上位机的“被动传输”命令时,新到来的图像先传入sdram芯片中,不主动发送,只有等上位机给出“发送”时,图像才开始传输;当pc上位机发送断开命令,系统重新进入侦听状态,等待新的pc上位机连接。

进一步地,还包括步骤6)fpga芯片每隔15秒向pc上位机发送心跳包,如果网络状态正常,pc上位机迅速回复确认包,如果超过2s仍未接收到确认包,则fpga芯片再次发送心跳包,如果仍未接收到确认包,则认为网络堵塞,进入侦听状态,不再发送图像数据。

进一步地,步骤3)具体为:如果接收到的是网络协议,则确定是哪种网络协议,如果是arp协议,则将系统的mac地址和ip地址存入arp数据包中,发送给pc上位机,并记录pc上位机的mac地址和ip地址,之后进入侦听状态;如果是icmp协议,则将回复相应的reply包,之后进入侦听状态,返回相应的udp协议,检查数据包的长度是否与约定的命令数据包长度相等,并检查数据包中是否有命令标志位;如果确定是命令,则进入解析环节,并且将命令回传给pc上位机,否则就认为不是命令,不做任何处理,并继续处于侦听状态。

进一步地,所述phy层芯片和mac层芯片的工作状态包括确定网络连接介质、网络工作速度、mac地址、设置收发流量控制、初始化接收模块、发送模块。

进一步地,所述配置命令包括曝光时间、ad增益、ad或触发延时。

本发明的优点为:

1.本发明以千兆网mac层芯片ax88180和千兆网phy层芯片88e1111作为通信基础,由fpga作为控制芯片,并在fpga内部实现通信协议,控制调度等功能,进而实现了完整的千兆以太网通信,其特点是通信速度高,稳定可靠,对比百兆网,通信带宽增大十倍以上,避免了网络通信数据量增大时百兆以太网会由csma/cd(载波监听/冲突检测)而使得通信速度下降,造成通信阻塞,数据不能发出而被覆盖,造成数据丢失的问题,千兆以太网通信则由于通信速度高,而很好地解决了这个问题。

2.本发明为无cpu设计,仅通过硬件描述语言verilog,实现网络初始化、网络协议,数据封包与解包,处理命令、控制调度等所有的环节,节约了使用成本,无需外嵌处理器或者使用fpga生成软核处理器(niosii或者microblaze等),并且无需软件进行处理,所有功能模块均以硬件电路的形式存在于fpga中,实现了并行高速处理,从而实现成本低,可靠性高的图像传输与控制系统。

3.从使用资源上分析,本发明的mac驱动程序所使用的资源为altera公司提供的triple-speedethernetip核资源的1/2,增加所有的功能模块后,使用的资源仍略低于triple-speedethernetip核。

4.本发明系统在网络稳定状态下,传输速度为280mb/s,可满足高速图像采集设备传输图像数据和视频数据。

5.本发明系统的硬件平台由一块负责网络通信的电路板与一块fpga电路板插接而成,实用性较强,任意fpga电路板,只要引出一定数量的插针,与千兆网通信模块硬件电路连接后均可以驱动这个网络初始化模块,进行数据传输。

6.本发明系统对fpga芯片的适应性较好,仅使用fpga芯片中常见的锁相环ip核、fifo缓存ip核、ram存储ip核,并且不同厂家的fpga芯片中均有这类ip核,且参数和调用方式类似,稍微修改,即可在不同的fpga芯片中用直接使用,跨平台性好。

附图说明

图1为本发明的网络通信电路板结构框图;

图2为本发明fpga电路板结构框图;

图3为本发明fpga电路板各功能模块图;

图4为本发明处理命令流程图;

图5为本发明采集数据流程图;

图6为本发明采用乒乓结构封装数据包示意图。

具体实施方式

下面结合说明书附图对本发明的技术方案进行清楚、完整地描述。

如图1、图2所示的基于ax88180的科学级ccd千兆以太网通信系统,包括网络通信电路板和至少一块fpga电路板;fpga电路板包括fpga芯片、eeprom芯片和sdram芯片,fpga芯片与eeprom芯片根据iic协议连接,sdram芯片与fpga芯片连接进行数据的存储;由fpga的普通io接口连接另外一块电路板,并引出与另外一块电路板相同的引脚,网络通信电路板包括依次连接的mac层芯片、phy层芯片和带网络隔离变压器的rj-45接口,mac层芯片为ax88180,phy层芯片为88e1111;rj-45接口用于连接到网线,mac层芯片与phy层芯片的接口为rgmii接口;mac层芯片引出与另一块电路板连接的引脚,本发明选用eeprom芯片为24lc256,sdram芯片为hy57v641620e,但是本发明不限制fpga芯片的选型,只要该fpga芯片有一定量的逻辑存储资源,一定量的io口,支持锁相环ip核,以及fifo的ip核即可,fpga芯片采集的数据传输给mac层芯片和phy层芯片,经带网络隔离变压器的rj-45接口传输给pc上位机;fpga属于现场可编程逻辑器件,通过在fpga内部实现各个功能模块,控制其他外设芯片的工作,进而实现千兆网络通信的功能。

如图3所示,fpga芯片内部功能模块包括网络初始化模块、封包解包模块、网络协议模块、命令解析模块、控制调度模块、eeprom参数存取模块;其中网络初始化模块可以使网络芯片正常工作,封包解包模块是将数据封装成能在网络上传输的格式,或者从接收的网络数据包获取相应的数据,网络初始化模块进行网络协议的处理,命令解析模块可以对命令进行解析,控制模块处于调度协调的作用。控制调度模块处于中心位置,与网络初始化模块、封包解包模块、网络协议模块、命令解析模块和eeprom参数存取模块连接,负责协调各个模块的启动顺序和数据传递走向,上电复位后,控制调度模块从eeprom参数存取模块中读取参数信息,如mac地址,ip地址等,并配置给网络初始化模块,之后启动网络初始化模块,网络初始化模块与mac层芯片、phy层芯片连接,其功能为配置mac层芯片、配置phy层芯片、启动发送和接收子模块;网络协议模块进行网络协议的处理,网络协议包括icmp协议和arp协议;网络协议模块与网络初始化模块相连,负责处理arp协议和icmp协议的数据包;封包解包模块与网络初始化模块相连,将封装好的图像数据发送出去,命令解析模块与网络初始化模块相连,负责命令的收发解析工作,命令解析模块可以对命令进行解析,将命令区分并且将各种命令回传给pc上位机,以形成一个回环。

本发明以千兆网mac层芯片ax88180和千兆网phy层芯片88e1111作为通信基础,由fpga作为控制芯片,并在fpga内部实现通信协议,控制调度等功能,进而实现了完整的千兆以太网通信,其特点是通信速度高,稳定可靠,对比百兆网,通信带宽增大十倍以上,避免了当网络通信数据量增大时,百兆以太网会由csma/cd(载波监听/冲突检测)而使得通信速度下降,造成通信阻塞,数据不能发出而被覆盖,造成数据丢失,千兆以太网通信则由于通信速度高,而很好地解决了这个问题。

下面对所有模块进行详细说明:

网络初始化模块主要包含以下几个子模块:reset_mac模块,88e1111_phy_initial模块,ax88180_mac_config模块,rec_pack模块,send_pack模块;

其中reset_mac模块首先实现对mac层芯片寄存器的读写,然后再对mac层芯片的寄存器设置默认初始值。

88e1111_phy_initial模块实现phy层芯片寄存器可以正常读写,并且确认网络硬件连接介质类型,是光线还是普通网线,以及phy层与mac层接口的类型。

ax88180_mac_config模块在确定了phy初始化完成后,根据phy检测到的实际链路状态配置mac寄存器,确定工作速度是10mbs,100mb还是1000mb,还可以协商两端的工作方式,全双工还是半双工;

ax88180_mac_config模块主要完成mac地址的配置,确定接收数据包的种类(广播、组播、单播和任意播的一种或者几种),并开启mac层芯片的收发流量控制功能。

rec_pack模块通过查询指向该接收缓存的寄存器rxcurt以及rxbound的变化来接收数据,并从接收的数据包中得到pc上位机的mac地址、ip地址。

send_pack模块,通过配置寄存器tx_cmd等寄存器用来发送数据,并且针对不同长度的待发送数据包,有不同的发送配置。

mac层芯片有一个32k的接收缓存,通过一种环形存取方式,将接收到的phy层芯片发送过来的数据循环放置在这个接收缓存,并产给封包解包模块。

封包解包模块包括解包模块和udp封装模块,用于将图像数据根据udp协议进行封装,并按照与pc段上位机预定好的长度,并加入上位机需要的参数,最终发送到网络中,当图像数据过大时,会使用乒乓结构缓存数据,并行封包,进而提供封包效率。

网络协议模块,网络协议包括icmp、arp协议,不同的协议会有不同的处理方式。在icmp协议模块中,本发明针对request包与reply包中数据校验和的关系,设计了一种简化的校验和生成方式,request包为电脑端发送来的查询包,reply包通信系统为需要回复的数据包,通常reply包需要生成一个校验和,但是由于request包的校验和与reply包的校验和相差16′h0800,因此不必单独计算校验和,而读取到request包的校验和,加上这个差值即可。

命令解析模块,本发明系统与pc上位机间的命令包括两大类,一类是控制千兆网通信模块本身的命令,如链接,断开,采集等,另一类是控制与系统相连接图像采集模块的命令,如曝光时间、增益、偏置、内外触发等。在命令解析模块,需要将命令区分开,并且将还要将各种命令回传给pc上位机,以形成一个回环,保证链路完整性,对于错误的命令还要及时发送拒绝指令给相应的pc上位机。

eeprom参数存取模块,在意外掉电等情况下,图像采集设备已经配置好的参数将丢失,需要将有效命令存入eeprom芯片中,这里还包括pc上位机的mac地址和ip地址。

控制调度模块处于核心的位置,因为mac层芯片与fpga芯片之间的通道是半双工的,通道要么用来网络外部传来的数据,要么用来发送数据到网络外部去,因此控制模块用于分配该通道的使用权,使得整个这个系统流畅工作,而不出现冲突。

为防止网络拥塞,本发明增加了心跳包模块,图像采集设备定时向pc上位机发送心跳包,通过检测回复包来判断网络是否已经堵塞,并作出相应处理。

如图6所示,在封包解包模块,由于图像采集前端是将图像一行一行传输给本系统的,先将一行图像缓存到ram中,为提高运行速度,本系统开辟两块ram乒乓缓存模块进行缓存,乒乓操作,同步进行封包处理,封包过程要根据udp协议填写各种包头信息,并且填写与pc上位机约定好的参数信息,然后在填写图像数据,本系统约定的每一个udp封装模块数据包的长度为1074字节。

本系统与图像采集前端的连接方式比较灵活,常用方案如下:

将fpga电路板直接与图像采集前端,并提供图像采集芯片(cmos或ccd)的驱动时序和配置命令,ad模数转换芯片的驱动时序和配置命令,进而将图像采集前端获得的图像数据直接引入fpga。将fpga电路板与另外一块电路板相连接,由另外一块fpga板驱动图像采集前端,两块fpga电路板之间传递图像数据和命令。

本发明还提供了基于上述系统实现科学级ccd千兆以太网通信的方法,处理命令的过程如图4所示,采集图像过程如图5所示,各个功能模块运行方式包括以下步骤;

1)上电后,先维持200ms的系统复位时间,之后本系统进入网络初始化状态:

2)在网络初始化状态,主要配置好phy层芯片和mac层芯片的工作状态,phy层芯片和mac层芯片的工作状态包括确定网络连接介质(光线还是双绞线网线),网络工作速度,mac地址,设置收发流量控制,初始化接收模块,发送模块,本系统的网络传输速度可以根据实际情况确定,一般情况下,会设置成1000mb的工作模式,mac层与phy层的工作方式为全双工通信;

3)进入侦听状态;

如果接收到的是网络协议,则确定是哪种网络协议,如果是arp协议,则将本系统的mac地址和ip地址协议存入arp数据包中,发送给pc上位机,并记录pc上位机的mac地址和ip地址,之后进入侦听状态;

如果是icmp协议,则将回复相应的reply包,之后进入侦听状态,返回相应的udp协议,则检查该数据包的长度是否与事先约定好的命令数据包的长度相等,并检查该数据包中是否有命令标志位;

如果确定是命令,则进入解析环节,并且将该命令回传给pc上位机,否则就认为不是命令,不做任何处理,并继续处于侦听状态,本系统与pc上位机约定的命令长度为50字节,并约定相应的命令标志位;

4)当本系统与pc上位机还未建立连接时,必须接收“连接”命令,才进行下一步的处理,其他的命令都会失效,当确定pc上位机发送“连接”后,本系统进行响应,首先记住该pc上位机的ip地址和mac地址,将其存入eeprom的对应位置,然后将该命令回传给pc上位机,之后本系统会接收该pc上位机的各种设置命令,并及时回传;如果是其他pc上位机发出的设置命令的话,会回传“拒绝命令”数据包;

5)当本系统接收到pc上位机的“采集”命令时,将开始将图像采集前端采集到图像数据传输给pc上位机;

当本系统受到pc上位机对图像采集前端的配置命令(如曝光时间,ad增益,ad,触发延时等),则在一幅图像传输输出后将这些命令发送给图像采集前端对应的芯片,并将这些配置信息储存到eeprom中对应的位置,并将该命令回传;

当本系统接收到pc上位机的“被动传输”命令时,新到来的图像先传入sdram中,不主动发送,只有等上位机给出“发送”时,图像才开始传输;

如果pc上位机发送断开命令,并清除eeprom中存储的命令参数,重新进入侦听状态,等待新的pc上位机连接。

6)为了防止网络阻塞,当pc上位机与本系统建立连接后,本系统在会每隔15秒向pc上位机发送心跳包,如果网络状态正常的话,pc上位机会迅速向本系统回复确认包,如果超过2s仍未接收到确认包,则本系统再次发送心跳包,如果仍未接收到确认包,则认为网络堵塞,本系统进入侦听状态,不再发送图像数据,以免恶化网络阻塞状态,丢失成图像数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1