一种宽带接入网中逻辑文件的动态加载方法

文档序号:7808128阅读:171来源:国知局
一种宽带接入网中逻辑文件的动态加载方法
【专利摘要】本发明公开了一种宽带接入网的逻辑文件动态加载方法,通过TCP协议实现FPGA逻辑文件动态加载,在加载完成之后不需重启系统,并且在单板运行过程中,任何时候均可以加载新版本的FPGA逻辑文件去替代当前运行的FPGA逻辑文件,这样在保证了传输效率和可靠性的同时又提高了系统的灵活性;在实际运行过程中,只需要将客户端的连接IP地址设置为单板的IP地址,这样又扩大了应用范围,且简单易行符合当前嵌入式系统发展的需要。
【专利说明】一种宽带接入网中逻辑文件的动态加载方法

【技术领域】
[0001] 本发明属于嵌入式系统【技术领域】,更为具体地讲,涉及一种宽带接入网的逻辑文 件动态加载方法。

【背景技术】
[0002] VxWorks是美国风河公司开发的一套实时嵌入式操作系统,因其优良的性能而广 泛的应用在各个嵌入式设备上,尤其是无源光网络PON(Passive Optical Network)、路由 器、交换机等网络设备;TCP协议实现若干台主机的相互通信,一种应用程序访问通信协议 的操作系统调用套接字;基于接入网的嵌入式在比较复杂的需求下,所需要加载的文件有 不同功能的多个版本文件需要对单板上芯片控制以保证整体运行在特定的功能;在接入网 中,在处理不同的Ρ0Ν模式逻辑文件,需要不同功能的编译文件加载到单板上运行。接入网 中的无源光网络Ρ0Ν是一种纯介质网络,避免了外部设备的电磁干扰和雷电影响,减少了 线路和外部设备的故障率。Ρ0Ν的业务透明性较好,原则上可适用于任何制式和速率信号。
[0003] 众所周知,通常任何一款嵌入式系统编译的逻辑文件都需要传输到单板上才能控 制单板的正常工作。接入网应用中也可能需要通过嵌入式控制具体的功能,在目前接入网 的嵌入式逻辑文件加载方法中,其一般加载都是基于串口和文件传输协议TFTP(Trivial File Transfer Protocol)传输到单板上。使用TFTP与串口加载存在的缺点:1、其一般是 在开启单板时或者整个系统复位之后加载,相对于是一种静态加载方式;2、其需要串口与 TFTP同时工作才能够加载逻辑文件,即同时需要串口与网口都与单板链接,相对使用的范 围比较狭隘;3、TFTP协议传输数据速率比较低,传输较大的逻辑文件时需要时间特别长; 4、TFTP协议传输相对于TCP协议可靠性更低,使得在传输过程中可能出现任何错误,降低 了传输文件的可靠性;5、对于有多个版本需要加载的FPGA逻辑文件,其不能在运行过程中 动态加载,使得对于相对比较复杂的工程,其不能完成相对应的功能,降低了系统可用性。
[0004] 在现有的技术中,嵌入式系统应用程序动态加载的方法,通过将应用程序的 固件文件存入嵌入式设备自带的外部存储空间中,并设置操作系统和应用程序间的函 数接口来进行动态加载[李敬来.嵌入式系统应用程序动态加载的方法:中国[P]. CN102541579A. 2012-07-04];-种嵌入式操作系统加载逻辑文件的方法和嵌入式系统,将 逻辑文件添加到嵌入式操作系统自身的数据中,使嵌入式操作系统可以通过调用自身数据 来加载逻辑文件[杨霆,王伟,曾云刚.一种嵌入式操作系统加载逻辑文件的方法和嵌 入式系统:中国[P].CN1900909. 2007-01-24]。在以上专利只能解决加载一种模式的逻辑 文件,在运行过程中不能在线动态加载,对于有多种模式需要变化的需求,其不能实现动态 加载,其加载过程需要单板重启,无疑增加了复杂性,并且在特定的环境不能实现特殊的功 能。


【发明内容】

[0005] 本发明的目的在于克服现有技术的不足,提供一种宽带接入网的逻辑文件动态加 载方法,通过TCP协议实现FPGA逻辑文件动态加载,这样提高了应用范围,同时具有灵活性 高、传输时间快以及传输可靠的优点。
[0006] 为实现上述发明目的,本发明一种宽带接入网中逻辑文件的动态加载方法,其特 征在于,包括以下步骤:
[0007] (1)、编译需要加载的FPGA逻辑文件
[0008] 在PC端,选择对应使用的FPGA芯片型号,通过quartus II编译需要加载的FPGA 逻辑文件,,将编译后的FPGA逻辑文件存放在PC端的加载目录下;
[0009] ⑵、运行当前版本的FPGA
[0010] 加载VxWorks系统文件到单板的CPU上,待VxWorks系统文件加载完成后,读取PC 端加载目录存放的默认FPGA逻辑文件,将默认版本的FPGA逻辑文件并加载到单板的CPU 上,并配置该默认FPGA逻辑文件到FPGA中,使默认版本的FPGA逻辑文件正常运行;
[0011] (3)、更换默认版本的FPGA逻辑文件
[0012] 将单板中CPU的TCP Socket服务器端的传输端口与PC端中客户端的传输端口设 置相同,并将单板CPU中的TCP Socket服务器端和PC端中的客户端同时开启TCP Socket 服务,并将PC端中客户端的连接IP地址设置为单板的IP地址;
[0013] 选择需要需动态加载的FPGA逻辑文件,PC端中的客户端从存放FPGA逻辑文件的 加载目录下读取该需动态加载的FPGA逻辑文件,并用功能函数识别出文件大小信息,然后 组装成数据帧传送给单板中CPU的TCP Socket服务器端;
[0014] 单板中CPU的TCP Socket服务器端监听到发送来的数据帧后进行接收,再根据功 能函数解析接收的数据帧获取到该需动态加载的FPGA逻辑文件的大小信息,根据该需动 态加载的FPGA逻辑的文件信息向CPU申请分配动态内存,CPU进行分配并记录分配动态内 存的首地址;
[0015] PC端中的客户端持续分组发送该需动态加载FPGA逻辑文件内容,单板中CPU的 TCP Socket服务器端每接收到一组从PC端中的客户端发送来的该需动态加载FPGA逻辑 文件内容后,发送接收确认信息给PC端中的客户端,PC端中的客户端接收到单板中CPU的 TCP Socket服务器端发送来的接收确认信息后发送下一组FPGA逻辑文件内容,否则将持 续发送当前一组FPGA逻辑文件内容数,如果在一定的时间内不能成功发送一组FPGA逻辑 文件内容,则返回发送失败信息给PC端中的客户端;
[0016] 单板中CPU的TCP Socket服务器根据接收FPGA逻辑文件内容的长度不停偏移接 收的首地址,并存入单板中CPU的内存中,待需动态加载的FPGA逻辑文件全部传送到单板 的CPU完成后,从分配的动态内存中拷贝FPGA逻辑文件内容到CPU的flash中,作为新版本 的FPGA逻辑文件,并同时覆盖旧版本的FPGA逻辑文件,待拷贝完成释放申请的动态内存;
[0017] (4)、运行新版本的FPGA逻辑文件;
[0018] 通过单板中CPU的控制命令,把CPU的flash中的新版本FPGA逻辑文件通过CPU、 FPGA连接的localbus传送到FPGA芯片上,待传输完成后,配置新版本FPGA逻辑文件的时 钟以及数据的输入/输出接口,使新版本FPGA逻辑文件在要求时钟下运行,然后控制整个 VxWorks系统工作在新版本FPGA逻辑文件的模式下。
[0019] 进一步地,所述的数据帧由帧头和数据部分组成,而数据部分又由数据类型、数据 长度、功能函数组成,其中,数据长度用于申请动态内存,数据类型对应解析接收的数据帧 调用的功能函数。
[0020] 所述的步骤(4)中,通过单板的CPU的控制命令将新版本FPGA逻辑文件传送到 FPGA芯片上的过程为:通过片选方式将新版本FPGA逻辑文件传送到FPGA芯片上;其中,新 版本FPGA逻辑文件的数据传输是由localbus数据线与localbus地址线完成,localbus数 据线用来传送新版本FPGA逻辑文件对应的二进制数据,localbus地址线用来指定传送的 地址。
[0021] 本发明的发明目的是这样实现的:
[0022] 本发明宽带接入网中逻辑文件的动态加载方法,通过TCP协议实现FPGA逻辑文件 动态加载,在加载完成之后不需重启系统,并且在单板运行过程中,任何时候均可以加载新 版本的FPGA逻辑文件去替代当前运行的FPGA逻辑文件,这样在保证了传输效率和可靠性 的同时又提高了系统的灵活性;在实际运行过程中,只需要将客户端的连接IP地址设置为 单板的IP地址,这样又扩大了应用范围,且简单易行符合当前嵌入式系统发展的需要。
[0023] 同时,本发明宽带接入网的逻辑文件动态加载方法还具有以下有益效果:
[0024] (1)、通过使用TCP协议实现FPGA逻辑文件动态加载,保证了数据传输的高效性和 可靠性;
[0025] (2)、对FPGA逻辑文件加载的前后,不要对系统进行重启,且能动态加载多版本的 FPGA逻辑文件,这样扩大了应用的范围,同时保证了系统的灵活性;
[0026] (3)、本发明能够兼容多版本的FPGA逻辑文件的加载,不要额外增加硬件开销,又 具有低成本的特点。

【专利附图】

【附图说明】
[0027] 图1是本发明宽带接入网的逻辑文件动态加载方法的原理图;
[0028] 图2是本发明宽带接入网的逻辑文件动态加载方法的流程图;
[0029] 图3是数据帧的结构图。

【具体实施方式】
[0030] 下面结合附图对本发明的【具体实施方式】进行描述,以便本领域的技术人员更好地 理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许 会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0031] 实施例
[0032] 图1是本发明宽带接入网中逻辑文件的动态加载方法的原理图。
[0033] 在本实施例中,如图1所示,宽带接入网的FPGA逻辑文件动态加载时,在PC端使 用的是windows系统作为客户端,单板CPU使用VxWorks6. 8系统,实现过程中使用C/C++ 语言与TCP协议进行数据传输,并验证传输结果。在此,以版本2 (需要加载的)FPGA逻辑 文件代替版本1 (默认版本)FPGA逻辑文件,所实施的过程,单板起始加载版本1FPGA逻辑 文件,在运行过程中,根据需求需要加载版本2。
[0034] 本发明宽带接入网中逻辑文件的动态加载方法,如图2所示,包括以下步骤:
[0035] S1)、编译需要加载的FPGA逻辑文件;
[0036] 通过quartus II编译软件编译需要加载的版本1和版本2的FPGA逻辑文件,编 译时需要正确选择对应使用的FPGA芯片型号;编译后的FPGA逻辑文件以二进制数据组成, 由于不同的版本的FPGA逻辑文件所对应的二进制数据是不一样的,因此,用不同的名字区 分不同版本的FPGA逻辑文件;
[0037] S2)、存放编译后的FPGA逻辑文件;
[0038] 将编译后的版本1和版本2的FPGA逻辑文件存放在PC端的加载目录下;
[0039] S3)、运行当前版本的FPGA ;
[0040] 加载VxWorks系统文件到单板的CPU上,待VxWorks系统文件加载完成后,读取PC 端存放FPGA逻辑文件的加载目录,将版本1FPGA逻辑文件读取并加载到单板的CPU上,并 配置版本1的FPGA逻辑文件到FPGA中,使版本1的FPGA逻辑文件正常运行;
[0041] S4)、开启 TCP Socket 服务;
[0042] 将单板中CPU的TCP Socket服务器端的传输端口与PC端中客户端的传输端口设 置相同,并将单板CPU中的TCP Socket服务器端和PC端中的客户端同时开启TCP Socket 服务,并将PC端中客户端的连接IP地址设置为单板的IP地址;
[0043] S5)、PC端发送需要加载的FPGA逻辑文件大小信息;
[0044] 选择需要需动态加载的FPGA逻辑文件,PC端中的客户端从存放FPGA逻辑文件的 加载目录,读取版本2FPGA逻辑文件,并用功能函数识别出文件大小信息,并把版本2FPGA 逻辑文件大小信息封装成数据帧传送给单板中CPU的TCP Socket服务器端。
[0045] 其中,如图3所示,数据帧由帧头和数据部分组成,而数据部分又由数据类型、数 据长度、功能函数组成,其中,数据长度用于申请动态内存,数据类型对应解析接收的数据 帧调用的功能函数;
[0046] S6)、TCP Socket服务端接收PC端发送的FPGA逻辑文件大小信息并向CPU申请 分配动态内存;
[0047] TCP Socket服务器端监听到发送来的数据帧后进行接收,再根据功能函数解析接 收的数据帧获取到版本2FPGA逻辑文件的大小信息,并记录下版本2FPGA逻辑文件的大小 信息,再根据版本2FPGA逻辑文件的大小信息向CPU申请分配动态内存,CPU进行分配并记 录分配动态内存的首地址;
[0048] S7)、TCP Socket服务器接收PC端发送的FPGA逻辑文件内容;
[0049] PC端中的客户端持续发送版本2FPGA逻辑文件内容,TCP Socket服务器根据接收 FPGA逻辑文件内容的长度不停的偏移接收地址,由于TCP协议每次能传输1518字节数据, 在此定义每组传送1024字节,每接收一组数据对应的地址需要往后移1024字节,准备存放 下一组接收FPGA逻辑文件内容。
[0050] 单板中CPU的TCP Socket服务器端每接收到一组从PC端中的客户端发送来的该 需动态加载FPGA逻辑文件内容后,发送接收确认信息给PC端中的客户端,PC端中的客户 端接收到单板中CPU的TCP Socket服务器端发送来的接收确认信息后发送下一组FPGA逻 辑文件内容,否则将持续发送当前一组FPGA逻辑文件内容数,如果在一定的时间内不能成 功发送一组FPGA逻辑文件内容,则返回发送失败信息给PC端中的客户端。
[0051] S8)、存放接收的FPGA逻辑文件;
[0052] 待版本2FPGA逻辑文件全部传送到单板的CPU完成后,从分配的动态内存中拷贝 版本2的FPGA逻辑文件内容到CPU的flash中,这样将版本2FPGA逻辑文件存放在CPU固 定地址的flash内存中,并覆盖版本1FPGA逻辑文件,待拷贝完成释放申请的动态内存;
[0053] S9)、运行当前版本的FPGA逻辑文件;
[0054] 通过单板中CPU的控制命令,采用片选的方式把CPU的flash中版本2FPGA逻辑 文件通过CPU、FPGA连接的localbus传送到FPGA芯片上,其中,FPGA逻辑文件的数据传输 是由localbus数据线与localbus地址线完成,localbus数据线用来传送FPGA逻辑文件 对应的二进制数据,localbus地址线用来指定传送的地址;
[0055] 这样使整个VxWorks系统工作在版本2FPGA逻辑文件模式下,待传输完成后,配置 版本2FPGA逻辑文件的时钟以及数据的输入/输出接口,使版本2FPGA逻辑文件在要求时 钟下运行,然后控制整个VxWorks系统工作在版本2FPGA逻辑文件的模式下。
[0056] 尽管上面对本发明说明性的【具体实施方式】进行了描述,以便于本【技术领域】的技术 人员理解本发明,但应该清楚,本发明不限于【具体实施方式】的范围,对本【技术领域】的普通技 术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些 变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
【权利要求】
1. 一种宽带接入网中逻辑文件的动态加载方法,其特征在于,包括以下步骤: (1) 、编译需要加载的FPGA逻辑文件 在PC端,选择对应使用的FPGA芯片型号,通过quartus II编译需要加载的FPGA逻辑 文件,,将编译后的FPGA逻辑文件存放在PC端的加载目录下; (2) 、运行当前版本的FPGA 加载VxWorks文件到单板的CPU上,待VxWorks系统文件加载完成后,读取PC端加载 目录存放的默认FPGA逻辑文件,将默认版本的FPGA逻辑文件并加载到单板的CPU上,并配 置该默认FPGA逻辑文件到FPGA中,使默认版本的FPGA逻辑文件正常运行; (3) 、更换默认版本的FPGA逻辑文件 将单板中CPU的TCP Socket服务器端的传输端口与PC端中客户端的传输端口设置相 同,并将单板(PU中的TCP Socket服务器端和PC端中的客户端同时开启TCP Socket服务, 并将客户端的连接IP地址设置为单板的IP地址; 选择需要需动态加载的FPGA逻辑文件,PC端中的客户端从存放FPGA逻辑文件的加载 目录下读取该需动态加载的FPGA逻辑文件,并用功能函数识别出文件大小信息,然后组装 成数据帧传送给单板中CPU的TCP Socket服务器端; 单板中CPU的TCP Socket服务器端监听到发送来的数据帧后进行接收,再根据功能函 数解析接收的数据帧获取到该需动态加载的FPGA逻辑文件的大小信息,根据该需动态加 载的FPGA逻辑的文件信息向CPU申请分配动态内存,CPU进行分配并记录分配动态内存的 首地址; PC端中的客户端持续发送该需动态加载FPGA逻辑文件内容,单板中CPU的TCP Socket 服务器端每接收到一组从PC端中的客户端发送来的该需动态加载FPGA逻辑文件内容后, 发送接收确认信息给PC端中的客户端,PC端中的客户端接收到单板中CPU的TCP Socket 服务器端发送来的接收确认信息后发送下一组FPGA逻辑文件内容,否则将持续发送当前 一组FPGA逻辑文件内容数,如果在一定的时间内不能成功发送一组FPGA逻辑文件内容,则 返回发送失败信息给PC端中的客户端; 单板中CPU的TCP Socket服务器根据接收FPGA逻辑文件内容的长度不停偏移接收 的首地址,并存入单板中CPU的内存中,待需动态加载的FPGA逻辑文件全部传送到单板的 (PU完成后,从分配的动态内存中拷贝FPGA逻辑文件内容到CPU的flash中,作为新版本的 FPGA逻辑文件,并同时覆盖旧版本的FPGA逻辑文件,待拷贝完成释放申请的动态内存; (4) 、运行新版本的FPGA逻辑文件; 通过单板中CPU的控制命令,把CPU的flash中的新版本FPGA逻辑文件通过CPU、 FPGA连接的localbus传送到FPGA芯片上,待传输完成后,配置新版本FPGA逻辑文件的时 钟以及数据的输入/输出接口,使新版本FPGA逻辑文件在要求时钟下运行,然后控制整个 VxWorks系统工作在新版本FPGA逻辑文件的模式下。
2. 根据权利要求1所述逻辑文件的动态加载方法,其特征在于,所述的单板可以在运 行状态下动态更换FPGA逻辑文件,且不需要对单板重启。
3. 根据权利要求1所述逻辑文件的动态加载方法,其特征在于,所述的数据帧由帧头 和数据部分组成,而数据部分又由数据类型、数据长度、功能函数组成,其中,数据长度用于 申请动态内存,数据类型对应解析接收的数据帧调用的功能函数。
4.根据权利要求1所述的逻辑文件的动态加载方法,其特征在于,所述的步骤(4)中, 通过过CPU端的控制命令将新版本FPGA逻辑文件传送到FPGA芯片上的过程为:通过片选 方式将FPGA逻辑文件传送到FPGA芯片上;其中,FPGA逻辑文件的数据传输是由localbus 数据线与localbus地址线完成,localbus数据线用来传送FPGA逻辑文件对应的二进制数 据,localbus地址线用来指定传送的地址。
【文档编号】H04L29/08GK104090792SQ201410314207
【公开日】2014年10月8日 申请日期:2014年7月3日 优先权日:2014年7月3日
【发明者】张崇富, 刘载伟, 凌云, 肖能武, 邱昆 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1