一种实验装置及实验系统的制作方法

文档序号:12363638阅读:404来源:国知局
一种实验装置及实验系统的制作方法

本发明涉及计算机技术领域,具体的说,涉及一种实验装置及实验系统。



背景技术:

目前国内的计算机硬件课程实验设备的发展趋势是集中化管理,即采用服务器集中管理实验设备,在这种发展趋势下各高校都有自己的解决方法,一部分使用串口作为通信接口,但是这种使用串口的方式传输速度成为了瓶颈;另一部分使用USB接口,但是由于USB接口耗电量大以及传输距离的限制一台服务器只能管理很少的实验设备;其与的部分也是使用其他种类的慢速接口,究其原因现有的设备没有处理器来处理高速数据,只能通过可编程器件模拟低速设备。

因此,亟需一种能够解决现有的实验设备与实验服务器之间传输速率低的实验装置。



技术实现要素:

本发明的目的在于提供一种实验装置及实验系统,以解决现有的实验设备与实验服务器之间传输速率低的技术问题。

本发明提供一种实验装置,该装置包括:

实验单元,其用于写入实验代码进行实验,并与服务器进行实验过程中产生的网络数据的通信;

通信单元,其用于接收服务器的下发的实验控制数据并发送给所述实验单元,实现服务器对于实验单元的控制,并在服务器与所述试验单元之间进行实验数据的传输。

所述通信单元中设置有高速网口,所述通信单元通过所述高速网口与服务器进行所述实验控制数据和实验数据的传输。

所述实验单元中设置有实验网口,所述实验单元通过所述实验网口与所述服务器进行实验过程中产生的网络数据的通信。

所述实验单元与所述通信单元通过高速总线进行所述实验控制数据和实验数据的传输。

所述通信单元和所述实验单元通过网线接口或背板连接器与服务器连接。

本发明还提供一种实验系统,该系统包括:

多个所述的实验装置;

服务器;

所述通信单元与服务器进行实验控制数据和实验数据的通信,构成控制网络,所述实验单元与服务器进行实验过程中产生的网络数据的通信,构成实验网络。

所述控制网络通过所述服务器监控所述实验网络,并向所述实验网络中发送数据和/或从所述实验网络中采集数据。

本发明提供的实验装置及实验系统能够实现服务器和实验设备之间的高速数据交换和管理,使用了高速系统总线与下游实验设备通信,配合100M网口使得数据传输速度有了极大的提高。实验装置硬件结构包括嵌入式解决方案(arm9处理器、内存、nandflash、串口、USB、wifi、网口、触摸屏),控制FPGA、实验FPGA、实验网口以及用于支持实验的各类实验接口。本发明还提供了基于以上硬件基础设计开发的服务器实验数据高速交换与控制协议、高速系统总线驱动、控制FPGA桥接逻辑以及双网络结构。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:

图1是本发明实施例提供的实验装置示意图;

图2是本发明实施例提供的实验单元示意图;

图3是本发明实施例提供的实验装置使用示意图;

图4是本发明实施例提供的实验系统示意图;

图5是本发明实施例提供的AHB总线从设备状态机示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

本发明实施例提供一种实验装置,如图1和图3所示,该装置包括:通信单元1、实验单元2。实验单元2用于写入实验代码进行实验,并与服务器进行实验过程中产生的网络数据的通信。通信单元1用于接收服务器的下发的实验控制数据并发送给实验单元,实现服务器对于实验单元的控制,并在服务器与试验单元之间进行实验数据的传输。

在本发明的一种实施方式中,通信单元1的功能集成在ARM-CPU上,通信单元1中设置有高速网口,通信单元1通过高速网口与上游设备服务器进行实验控制数据和实验数据的通信,可选的,高速网口选择百兆网口。ARM-CPU选择的是三星公司的ARM9系列的S3C2440芯片,其主频是400Mhz,这样的性能完全可以满足高速数据处理的需求。通过ARM-CPU与服务器通信,其传输速度不会成为实验系统的瓶颈,为通过服务器远程跨平台控制实验装置提供了基础硬件条件。

进一步的,如图2和图3所示实验单元2包括:总线控制模块7、实验模块3、存储模块4、实验控制模块5和解析模块6。

其中,实验模块3用于学生写入实验代码进行实验,实验模块3为FPGA芯片,在本发明的具体应用中,将该FPGA芯片称为实验FPGA。实验FPGA开放给学生由学生烧入实验代码完成实验,实验FPGA上还提供了常用的实验接口LED、数码管、串口等。实验模块3中设置有实验网口,实验模块3通过实验网口与服务器通信,搭建实验网络,该实验网口是实验网络的接入口。

其中,串口提供了实验FPGA的另一种接入方式。指示灯用于显示实验FPGA上的数据,让实验者了解目前数据的内容。数码管在对于需要采用数码管显示的实验中,进行数据显示。手拨开关在需要手拨开关手动拨入数据的实验中,供实验者手动向实验FPGA拨入数据。

本发明实施例提供的实验装置中,还包括wifi接口、USB接口、串口和液晶屏幕。wifi接口、USB接口、串口以及LCD控制器集成在ARM-CPU中,共同构成嵌入式解决方案,使得实验装置可以通过多种方式接入,并且LCD控制器最高支持4K色的STN和16M色的TFT,包括一个LCD DMA,可以给学生一个清晰的可视界面,学生可以更加便捷的进行实验。

总线控制模块7与通信单元1通过高速总线连接,总线控制模块7用于通过高速总线与通信单元1进行实验控制数据和实验数据的通信。在本发明实施例中,高速总线选择高级高性能总线(Advanced High Performance Bus,AHB)总线,在本发明实施例中高级高性能总线以下统一称为AHB总线,其工作频率为100MHZ数据位宽为32位。总线控制模块7通过AHB总线与通信单元1进行数据通信。

进一步的,总线控制模块7还用于将高速总线的地址分配给实验模块、存储模块和实验控制模块,使得实验模块、存储模块和实验控制模块可以与通信单元通过高速总线进行通信。

实验控制模块5用于控制实验模块完成实验。实验控制模块5内的代码是针对实验事先设计完成的,将会围绕实验单元FPGA芯片将特定实验所需要的总线状态和监测逻辑配置完毕。在整个实验过程中将实验模块FPGA芯片中需要观察的信号通过寄存器访问总线获取得到,向上发送。

解析模块6用于对总线控制模块接收到的实验控制数据和实验数据进行解析,并将解析后的数据内容发送给实验模块、存储模块和实验控制模块。

总线控制模块7、实验控制模块5和解析模块6集成在一块FPGA芯片上,在本发明实施例中将该FPGA芯片称为控制FPGA。

存储模块4用于存储实验数据,存储模块为存储器SRAM。在需要存储代码和一些文件的实验中,我们将代码写入存储模块4中。存储模块4读写信号是由实验控制模块5来发出的。当需要写存储器的时候,存储模块发送给存储器相关的写信号和地址,当读取存储器的时候,存储模块发送给存储器相关的读信号和地址。

在本发明实施例中,通信单元1的功能集成在ARM-CPU上,总线控制模块7实验控制模块5和解析模块6集成在一块FPGA芯片上。这种以ARM作为整版核心控制的模式之所以能够得到采用,依赖于FPGA和ARM的高速发展,功能足够强大、管脚数量足够多、成本不断压缩。而采用这种控制模式的好处也是显而易见的,使用ARM作为控制CPU可以极大的减少下游控制FPGA逻辑的复杂程度,使得整个系统能够更快速更稳定的运行。

可选的,通信单元和实验单元通过网线接口或背板连接器与服务器连接。多数实验平台都会有两种使用模式,一种是实验箱模式,这种模式直接使用网线接入跟服务器连接;另一种是机柜模式,通过背板接插件跟机箱的背板连接;在本发明实施例中,考虑这两种使用模式,设计了一组跳线可以选择使用网线接口RJ45接入服务器还是使用背板连接器接入服务器。

本发明实施例提供一种实验系统,如图4所示,该实验系统包括:多个实验装置和服务器。

实验装置中的通信单元与服务器进行实验控制数据和实验数据的通信,构成控制网络。即嵌入式解决方案中的网口接入到控制网络跟服务器通信;控制网络是主网络,其中的控制网络进程主要负责跟实验装置通信,实现传输控制命令,实验数据等功能。

实验装置中的实验单元与服务器进行实验网络数据的通信,构成实验网络。实验FPGA配置的实验网口接入到实验网络中。实验网络中的实验网络进程负责维护学生通过实验网口搭建的实验网络。控制网络和实验网络是两个相对独立的网络,实验网络不会对控制网络有任何影响。

进一步的,控制网络通过服务器监控实验网络,并向实验网络中发送数据和/或从实验网络中采集数据。在服务器端学生可以通过控制网络进程监控并且采样实验网络中的数据验证实验的正确性,学生还可以通过控制网络进程给实验网络发送测试数据,方便学生完成网络实验。

本发明实施例提供一种ARM-CPU与实验FPGA高速总线的总线驱动方法,该驱动方法包括:

根据cdev在内存中释放高速总线的操作空间实现高速总线的在内存中的卸载。

在LINUX杂项设备驱动中申请次设备号作为高速总线的设备号。ARM芯片S2C2440内存映射提供了两种启动模式一种是norflash启动模式另一种为nandflash启动模式。本设计采用nandflash启动模式。AHB总线是S3C2440存储器控制器提供了8个可用的BANK空间,每个BANK空间提供128MB的空间,其中已经占用的有bank0(NC)、bank4(DM9000)、bank5(SDRAM)、bank6(SDRAM),剩余的均为空闲。在本设计中使用了bank5作为总线的访问空间,其起始地址为0x28000000。在本发明实施例中综合考虑了总线的空间使用大小以及设计的难度只在内存中申请了2M的地址空间作为总线的访问空间。

在本设计中AHB总线驱动是在嵌入式LINUX杂项设备(即主设备号为10)驱动中申请次设备号54作为自己的设备号(即主设备号为10次设备号为54),使用杂项设备驱动申请驱动设备号的好处是开发相对容易并且杂项设备会自动创建设备节点无需mknod手动创建设备节点。

根据所述设备号、设备名称以及操作类型生成高速总线的cdev,高速总线的操作类型包括:开操作、关操作、读操作和写操作;

AHB总线的cdev结构与普通的字符设备驱动的cdev结构略有不同,原因是AHB总线是杂项设备的一个子设备,杂项设备将cdev结构做了封装实际上AHB总线申请的设备号是杂项设备配备的次设备号,以下是封装后的cdev结构:

其中宏定义MISC_DYNAMIC_MINOR功能是随机申请次设备号,本设计中申请到设备号为54。

DEVICE_NAME:此宏定义的是设备名称,在本设计中定义的设备名为fpga_ahb。

dev_fops:该成员定义的是file_operations结构具体定义如下:

可以看出本设计中AHB总线驱动支持的操作有open、close、read、write操作。

根据cdev在内存中申请相应的内存空间作为高速总线的操作空间,实现高速总线的在内存中的加载。设备号和file_operations结构设计完成以后就可以进行初始化的工作了,AHB总线初始化要完成的工作有将bank5映射到内存空间,根据cdev申请设备。相应代码:

在本设计中使用了动态内存映射函数ioremap,申请了2M的内存空间作为AHB总线的操作空间;misc_register函数为设备注册函数。

根据cdev在内存中释放所述高速总线的操作空间实现所述高速总线的在内存中的卸载。总线卸载需要完成的操作是跟初始化相对应的,在初始化中映射了内存空间所以在总线卸载是就需要释放内存;在初始化时注册了设备,在卸载是就应该注销该设备。相应代码:

AHB总线读操作相对比较简单,值得注意的地方有两点:第一点调用readw函数fpga_bas是在总线初始化过程中得到到总线操作基地址,是一个全局变量,offset是读操作传入的偏移地址kbuf=readw((void*)(fpga_base+offset));另一点就是copy_to_user(buf,&kbuf,len)即将上一个操作读回的数据kfuf从内核空间拷贝到用户空间。

AHB总线写操作的过程与读基本类似唯一不同的一点是需要将数据从用户空间拷贝到内核空间。相应代码:

控制FPGA实现的功能是作为AHB总线的从设备,控制FPGA内集成的解析模块完成解析AHB线数据内容,控制FPGA内集成的实验控制模块用于控制实验FPGA完成实验。

如表1所示的AHB总线信号列表,

ADDR[26:0]为27位AHB地址总线;

DATA[31:0]为32位AHB数据总线;

nGCS[7:0]为AHB总线使能信号,0有效,S3C2440这款芯片支持8个BANK的访问,在AHB总线驱动中将BANK5分配给控制FPGA使用;

nW为AHB总线写信号,0有效;

nOE为AHB总线读信号,0有效;

表1

在本发明实施例中使用的是AHB总线的简单模式因此只用到了ADDR、DATA、nGCS、nWE、nOE这一组信号,其余的nXBREQ、nXBACK、nWAIT信号并没用用到,但是在FPGA内部逻辑中需要将这3个信号赋值为高阻态(即'Z'),否则会导致ARM死机。

关于AHB总线访问时序,在FPGA逻辑代码设计时会根据此时序图完成nGCS、nWe、nOE均为低电平有效。该时序图中tacs、tcos、tacc等参数可以通过配置相应寄存器改变AHB总线的访问时间。

控制FPGA需要实现AHB从设备逻辑,在本设计中使用状态机的方式来实现。如图5所示的AHB总线从设备状态机,共有三个状态idle状态、write状态、read状态。

Idle状态:默认状态,在该状态如果触发信号nGCS5、nWe或者nOE满足(nGCS5and(nWe or nOE))等于零则跳转到下一状态,否则留该状态继续等待触发信号,在该状态的操作nXBREQ、nXBACK、nWAIT、DATA四个信号需要置高阻态。

Writ状态:nGCS5等于0并且nWe等于0跳转到该状态,该状态为AHB总线写操作,上位机将数据写入到从设备中,在该设备的操作nXBREQ、nXBACK、nWAIT三个信号置高阻态,将数据总线上的数据写入FPGA内部寄存器。

Read状态:nGCS5等于0并且nOE等于0跳转到该状态,该状态为AHB总线读操作,该操作由上位机发起从设备响应将数据放入数据总线。

如表2下游设备地址分配所示,AHB总线驱动申请了2M的地址空间作为下游芯片的操作空间,AHB总线跟控制FPGA相连,而后通过控制FPGA内部逻辑采用直接编址的方式将地址分配成3段分别提供给控制FPGA本身、实验FPGA、SRAM使用,其中地址范围:0x000000~0x03ffff,大小为256K位宽为32bits分配给控制FPGA,作为内部寄存器空间使用;地址范围为:0x080000~0x0800ff,大小为256位宽为32bits分配给实验FPGA,作为实验FPGA的通信接口;地址范围为:0x100000~0x1fffff,大小为1M位宽为32位分配给SRAM使用,作为CPU访问SRAM的接口。

表2

本发明实施例还提供一种实验系统的实验方法,即实验数据高速交换与控制协议,该方法包括:

在步骤101中,实验装置向服务器发送新设备申请请求,即服务器发现新加入的实验装置后,新加入的实验装置会向服务器发送新设备申请请求,服务器收到该请求后读取实验装置的信息并将实验装置加入到心跳列表里,同时启动心跳定时器。

在步骤102中,新实验装置加入服务器后,服务器向实验装置发送初始化信息,该信息包括系统固件和配置信息。

在步骤103中,实验装置加入服务器后定时向服务器发送心跳包,服务器收到心跳包后会将心跳定时器重置开始新的计时,如果服务器的心跳包计时器多次超时,服务器会认定该实验装置离线,删除该实验装置信息。

在步骤104中,服务器向实验装置发送实验命令和实验数据,学生在服务器端发出相应的实验命令给实验装置,学生事先写好的实验数据发下到实验装置供学生分析使用。

在步骤105中,服务器定时采集实验装置的实验数据,由服务器分析并且在实验界面上显示。

在步骤106中,实验装置离线时通知服务器,服务器会保存实验信息然后删除该实验装置信息。

本发明提供的实验装置及实验系统能够实现服务器和实验设备之间的高速数据交换和管理,使用了高速系统总线与下游实验设备通信,配合100M网口使得数据传输速度有了极大的提高。实验装置硬件结构包括嵌入式解决方案(arm9处理器、内存、nandflash、串口、USB、wifi、网口、触摸屏),控制FPGA、实验FPGA、实验网口以及用于支持实验的各类实验接口。本发明还提供了基于以上硬件基础设计开发的服务器实验数据高速交换与控制协议、高速系统总线驱动、控制FPGA桥接逻辑以及双网络结构。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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