专利名称:基于Linux的SOPC软硬件协同工作系统的制作方法
技术领域:
本发明涉及的是一种计算机操作系统技术领域的装置,具体是一种基于Linux的 SOPC(System-on-a-Programmable-Chip可编程片上系统)软硬件协同工作系统。
背景技术:
当前,随着半导体产业的迅速发展,SOPC作为嵌入式系统的一种新形式,得到了越 来越广泛的应用。采用SOPC技术实现嵌入式硬件加速,作为一种新兴的系统解决模式,有 其巨大的发展威力和广泛的应用前景,而要实现上述要求,软硬件的协同设计和IP硬核的
开发至关重要。在某些特定应用场合,单纯的软件系统改进已经不能满足性能的加速要求,这时 可以通过将原有软件系统进行硬件和软件的重新划分来加速,将原始软件中比较耗时,难 以纯软件加速的部分用硬件FPGA (Field-Programmable Gate Array现场可编程阵列)来 实现。由于硬件具有并行运算的特点,将会大大提高原有软件系统的速度。对于大部分的复杂软件系统都以Linux作为自己的操作系统。因此如何实现基于 Linux的SOPC系统,并实现该系统上的软硬件协同设计,对加速软件系统具有非常重要的 意义,在实际工程中也具有广泛的应用前景。经对现有文献检索发现,期刊名字为电路知识与技术,年卷(期)为 201006 (17),名称为基于SOPC技术的软硬件开发设计,该技术包括搭建SOPC系统和实现 软硬件的系统设计。虽然该方法可以实现软硬件协同工作,但是它是基于SOPC的纯软件系 统和非基于操作系统的软硬件协同工作系统,能实现的软件功能比较少也比较简单。
发明内容
本发明针对现有技术存在的上述不足,提供一种基于Linux的SOPC软硬件协同工 作系统,将SOPC和NFS文件系统Linux结合,并实现了基于该结合的软硬件协同设计系统, 不仅具有开发流程快,实现简单,操作方便的优点,而且还具有易移植和可扩展的特点。本发明是通过以下技术方案实现的,本发明包括S0PC模块、Linux系统模块和网 络服务器模块,其中=Linux系统模块由Linux内核模块和Linux驱动模块组成,Linux内核 模块与Linux驱动模块相连并传输硬件设备请求信息与模块响应信息,Linux系统模块与 SOPC模块相连并传输硬件设备请求信息与模块响应信息,网络服务器模块由DHCP服务器 模块和NFS服务器模块组成,DHCP服务器模块和Linux系统模块相连并传输IP地址和网络 配置信息,NFS服务器模块由挂载文件系统模块和文件系统交互模块组成且分别与Linux 系统模块相连并实时传输文件系统。所述的SOPC模块包括中央处理器模块、总线模块、串口交互模块、内存模块、网 络接口模块、按键模块和硬件IP模块,其中内存模块、网络接口模块、按键模块和硬件 IP模块分别通过总线模块与中央处理器相连接并传输各种命令和数据,串口交互模块和 Linux系统模块相连并传输调试数据和调试信息,按键模块接收基本输入操作。
所述的硬件IP模块用硬件描述语言实现系统中耗时部分,同时将硬件描述语言 经过IP封装后挂载到总线模块。与现有技术相比,本发明的有益效果是1、速度高,实现原有软件系统的硬件加速2、SOPC模块具有自己的网络模块,可以与网络上的其他设备进行网络通信3、Linux系统模块在启动时由网络服务器自动分配IP地址,网络初始化更方便4、Linux系统模块采用NFS作为根文件系统,开发和调试更灵活5、具有串口模块,使开发调试信息非常丰富6、实现了基于Linux操作系统的SOPC软硬件协同工作和加速,该系统也可以很容 易的扩展到Linux上各种应用软件的加速,只需将耗时的部分用硬件实现,并开发驱动实 现软硬件的接口即可。
图1为本发明结构示意图。
具体实施例方式下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行 实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施 例。如图1所示,本实例包括位于开发板的SOPC模块1、Linux系统模块2和位于网 络服务器的服务器模块3,其中S0PC模块1与Linux系统模块2相连并传输硬件设备请求 信息与模块响应信息,SOPC模块1与Linux系统模块相连并传输开发和调试信息,Linux系 统模块2与网络服务器模块3相连并传输Linux系统的IP地址、网络配置信息和网络文件 系统,SOPC模块1与网络服务模块3相连并为网络服务器模块3提供网络接口硬件设备支 持。所述的SOPC模块1提供整个系统开发板的硬件结构,为整个软硬件协同工作系统 和网络连接提供最基础的硬件支持。该模块包括中央处理器模块4、总线模块5、串口交互 模块6、内存模块7、硬件IP模块8、按键模块9和网络接口模块10,其中总线模块5与中央 处理器模块4相连,传输CPU控制指令和响应信息。总线模块5与串口交互模块6、内存模 块7、硬件IP模块8、按键模块9和网络接口模块10相连,传输底层硬件各个模块的调用、 请求和响应数据。串口交互模块6、内存模块7、硬件IP模块8、按键模块9和网络接口模块 10之间通过总线模块5相互连接,传输硬件设备响应信息。串口交互子模块6与Linux系 统模块2相连并传输用户的开发和调试信息。在本实例中,所述的串口交互子模块为RS232 串口接口,通过串口线可以将系统开发版的调试信息在终端上输出显示,也可以将自己的 命令在终端输入。网络接口子模块10分别与网络服务器模块中的DHCP服务器子模块13 和NFS服务器子模块14相连,负责网络传输的硬件设备支持。本实例中,将比较耗时的部 分,通过SOPC模块1中的硬件IP模块8将该部分用硬件描述语言来实现。为了将该硬件 IP模块8与SOPC模块上的中央处理器子模块4相连,需要将该硬件IP模块8首先连接系 统总线模块5并传输该硬件IP模块的调用和响应数据。硬件IP模块8根据SOPC系统的IP封装规范对硬件化模块进行接口设计,将硬件IP模块扩展为实际的IP核。实例化IP核 后,便可以将硬件IP模块8通过系统总线模块5与中央处理器模块4连接,从而与中央处 理器模块4相连传输硬件调用和响应数据。所述的Linux系统模块2提供整个系统的操作系统。该模块包括=Linux内核模块 11和Linux驱动模块12,其中Linux内核模块11是Linux系统模块2的核心,提供Linux 系统模块的管理和分配机制,在本实例中即将Linux系统模块和硬件IP模块的驱动模块相 连并实现两者的协同工作。Linux驱动模块12中的网络驱动与网络服务器模块中的DHCP 服务器子模块和NFS服务器子模块相连,用于网络连接,系统开发板自动启动时的IP地址、 网络配置信息以及实时传输和更新Linux操作系统的文件系统。所述的Linux内核模块11 在本实例中通过配置交叉编译环境、配置内核选项,内核编译三步来完成,其中交叉编译 模块可以实现在本地开发并生成在SOPC系统上执行的可执行文件,配置内核模块可以选 择对应的处理器架构和需要的模块,内核编译模块则生成Linux内核文件。所述的Linux驱 动模块12遵循Linux操作系统的驱动开发模式,在本实例中主要实现硬件IP核的ioctl、 open,write,read,init和exit等驱动模块。而其中IP核驱动的地址则由SOPC模块1自 动生成,并根据SOPC地址分配方式获得该IP核的不同寄存器的地址。经过地址映射和IP 核驱动读写,实现软硬件之间的协同工作。所述的网络服务器模块3为系统开发板的Linux系统模块2中的Linux内核模块 4启动时动态分配IP地址、配置开发板网络以及实时更新Linux系统模块2的根文件系统。 该模块包括DHCP服务器模块13和NFS服务器模块14,其中NFS服务器模块由挂载文件系 统子模块15和文件系统交互子模块16组成。本实例中,服务器模块运行在装有Linux操 作系统的电脑上。在该电脑上分别安装和配置DHCP服务器和NFS服务器,并将根文件系统 存储在NFS服务器指定的文件夹下面。SOPC上的Linux系统模块2的Linux内核子模块 11在启动时自动获得由DHCP服务器模块分配的IP地址和网络配置信息,并挂载位于服务 器上的根文件系统形成自己的NFS网络文件系统。DHCP服务器模块13与SOPC模块1中的 网络接口子模块10通过硬件网卡相连,提供网络的硬件设备相连,DHCP服务器模块13与 Linux系统模块2相连,用于在Linux系统模块2的Linux内核子模块11启动时自动为系 统开发板分配IP地址和网络设置。NFS服务器模块14与SOPC模块1中的网络接口子模块 10通过硬件网卡相连,提供网络的硬件设备连接,NFS服务器模块14中的挂载文件系统子 模块15与Linux系统模块2相连,在本实例中用于在Linux内核子模块11启动完成后为 Linux系统模块2提供根文件系统的网络地址和挂载根文件系统,NFS服务器模块14中的 文件交互系统子模块16与Linux系统模块2相连,在本实例中用于为Linux系统模块2实 时更新Linux系统的文件系统。在本实例中,基于Linux的软硬件协同工作系统流程为通过SOPC模块1和Linux 内核系统2组成系统开发板,然后将原有系统的耗时部分由SOPC模块1中的硬件IP子模 块8硬件化并封装为IP核通过总线模块5连接中央处理器模块4,然后在Linux驱动模块 12中实现该IP模块的Linux驱动模块12,最终实现SOPC模块1和Linux系统模块2之间 软硬件的协同工作。在整个软硬件协同工作的过程中,由网络服务器模块3提供DHCP服务 和NFS服务,用于提供系统开发板的IP数据、网络配置信息和Linux系统模块的根文件系 统。
权利要求
1.一种基于Linux的SOPC软硬件协同工作系统,其特征在于,包括S0PC模块、Linux 系统模块和网络服务器模块,其中=Linux系统模块由Linux内核模块和Linux驱动模块 组成,Linux内核模块与Linux驱动模块相连并传输硬件设备请求信息与模块响应信息, Linux系统模块与SOPC模块相连并传输硬件设备请求信息与模块响应信息,网络服务器模 块由DHCP服务器模块和NFS服务器模块组成,DHCP服务器模块和Linux系统模块相连并 传输IP地址和网络配置信息,NFS服务器模块由挂载文件系统模块和文件系统交互模块组 成且分别与Linux系统模块相连并实时传输文件系统。
2.根据权利要求1所述的基于Linux的SOPC软硬件协同工作系统,其特征是,所述的 SOPC模块包括中央处理器模块、总线模块、串口交互模块、内存模块、网络接口模块、按键 模块和硬件IP模块,其中内存模块、网络接口模块、按键模块和硬件IP模块分别通过总线 模块与中央处理器相连接并传输各种命令和数据,串口交互模块和Linux系统模块相连并 传输调试数据和调试信息,按键模块接收基本输入操作。
3.根据权利要求2所述的基于Linux的SOPC软硬件协同工作系统,其特征是,所述的 硬件IP模块用硬件描述语言实现系统中耗时部分,同时将硬件描述语言经过IP封装后挂 载到总线模块。
全文摘要
一种基于Linux的SOPC软硬件协同工作系统,包括SOPC模块、Linux系统模块和网络服务器模块,Linux系统模块由Linux内核模块和Linux驱动模块组成,网络服务器模块由DHCP服务器模块和NFS服务器模块组成,NFS服务器模块由挂载文件系统模块和文件系统交互模块组成。本发明将SOPC和NFS文件系统Linux结合,并实现了基于该结合的软硬件协同设计系统,不仅具有开发流程快,实现简单,操作方便的优点,而且还具有易移植和可扩展的特点。
文档编号G06F9/46GK102004667SQ201010571909
公开日2011年4月6日 申请日期2010年12月3日 优先权日2010年12月3日
发明者孙宜进, 朱杰, 蓝维洲 申请人:上海交通大学