您的位置 首页 新能源

嵌入式SoPC,以太网,接口设备

SoC(片上系统)的概念已日益普及,而随着FPGA技术的迅速发展,可编程系统芯片(SoPC)作为一种特殊的嵌入式微处理器系统,融合了SoC和 FPGA各自的优点,

SoC(片上体系)的概念已日益遍及,而跟着FPGA技能的敏捷发展,可编程体系芯片(SoPC)作为一种特别的嵌入式微处理器体系,交融了SoC和  FPGA各自的长处,并具有软硬件在体系可编程、可削减、可扩大、可晋级的功用,已逐步成为一个新式的技能方向。SoPC的中心是在FPGA上完结的嵌入式微处理器核,现在首要有Xilinx公司的32位软核MicroBlaze、32位PowerPC系列处理器硬核PowerPC  405,以及Altera公司的Nios系列微处理器软核等。 本文介绍的体系是一个以PowerPC  405为微处理器,根据VME总线的以太网接口设备,它经过以太网和 VME总线接口,完结VME体系与外部局域网的实时数据交换。

硬件开发  开发选用Xilinx公司的EDK7.1(嵌入式开发套件)和ISE7.1东西软件。EDK东西包中集成了硬件渠道生成器(Platgen)、软件渠道生成器(Libgen)、仿真模型生成器(Simgen)、软件编译器(Mb-gcc/ppc-gcc)和软件调试东西(Mb-gdb/ppc-gdb)  等,经过供给的集成开发环境XPS,用户可以调用上述一切东西,来完结嵌入式体系开发的整个流程。  

首先在XPS界面环境下生成硬件体系结构并添加所需的IP核,也可以用文本批改器直接编写硬件描绘文件  (.MHS文件),再调用Platgen将其生成嵌入式处理体系的网表文件(.NGC文件);然后经过体系生成或手艺批改的软件描绘文件(.MSS文件)  来设置体系软件装备,并调用Libgen生成驱动层和库。尽管EDK的IP库中有一些很有用的功用模块和外设接口的IP核,如DCM(数字时钟管理器)、处理器复位、PLB/OPB总线接口、外部存储操控器(EMC)、UART、GPIO、中止操控器、定时器等,充分运用这些资源就可以构建一个较为完善的嵌入式微处理器体系,可是关于许多有特别专用电路的嵌入式计算机体系的运用仍是不行的。

如何将用户专用电路规划到EDK体系中,一般有两种办法,第一种是将EDK工程作为一个子体系在XPS顶用Export  to PorjNav生成ISE工程,然后在ISE中将专用电路和处理器子体系(system.vhd)组成为顶层HDL文件  (system_stub.vhd)后,在ISE中完结归纳布线,最终在XPS顶用Import from  PorjNav得到硬件的.bit文件,便可以回到XPS中完结和运用软件的组成、下载和调试了。第二种办法是将专用电路规划成为用户自界说的IP  Core,然后直接在体系中调用来完结。自界说的IP  Core用HDL规划并要满意EDK的规范,如有专门目录结构和处理器外设界说文件(.MPD)、外设剖析界说文件(.PAO)等。假如自界说的IP  Core要具有软件驱动,那规划还要彻底符合相应的PLB或OPB总线接口规范。完结了硬件和驱动的规划后,就可以在XPS工程中添加运用软件项目并编写运用软件,然后调用处理器对应的编译器编译并和硬件归纳后生成的.bit文件组成后下载到方针板便可以进行调试了。  

本体系硬件组成框图如图1所示。本规划选用Virtex-II Pro系列FPGA芯片XC2VP40,将体系的程序存储器和数据存储器都放在片内用Block  RAM来完结,在体系中添加DCM模块,将外部参阅时钟4倍频供给给PowerPC  405作处理器时钟,并分频后再送给OPB总线作总线时钟,下降慢速外设的总线速度,使体系调配更合理。

图1 体系硬件组成框图

PowerPC  405是此嵌入式体系的中心,它经过PLB总线完结和程序存储器和数据存储器的快速通道,并经过PLB-OPB桥完结了片上的OPB总线,然后经过OPB总线进行各种外设的扩展,OPB外设包括一个RS232串口,一个OPB_EMC用于扩展以太网操控器芯片,一个GPIO作以太网操控器输出的中止请求,一个中止操控器OPB_INTC将GPIO输入的外部中止告诉PowerPC  405并可以设置优先级,还有一个用户自界说的IP Core用于完结和VME总线的接口电路。 PowerPC 405  是专门为嵌入式运用而规划的高功用32位PowerPC系列处理器芯核,关于Virtex-II Pro系列FPGA,其完结型号为PowerPC 405D5。

PLB是处理器本机总线,它为指令和数据一侧供给独立的32位地址和64位数据总线。PLB总线架构支撑多主从设备,每一个PLB主控机经过独立的地址总线、读数据总线和写数据总线与PLB衔接,有一个中心判定组织来授权对PLB的拜访以答应主控机经过竞赛来取得总线的一切权。OPB是片上外设总线,供给别离的32位地址总线和32位数据总线,一般用来拜访低速和低功用的体系资源。它是一种彻底同步总线,但不直接衔接到处理器内核,处理器内核经过“PLB  to OPB”桥和OPB总线来拜访OPB接口外设。

网络操控器选用Cirrus  Logic公司的通用单片10/100M以太网操控器CS8900A,该芯片彻底遵照与IEEE  802.3以太网规范,支撑彻底的全双工操作。运用EDK的OPB_EMC  IP可以很便利地将CS8900A扩展为体系OPB总线上的一个设备,只要将EMC端口的地址、数据总线以及操控信号别离接到CS8900A的地址、数据总线和操控端口上,并将EMC的时序参数设置成与CS8900A手册上要求的共同就可以了。

别的将CS8900A的中止输出INTRQ作为一个GPIO引进体系以完结以太网的中止服务功用。  自界说的IP Core内容如图2所示,它用FPGA内的Block  RAM资源完结64KB的双口RAM用来完结和VME总线上其他设备的通讯和数据交换。咱们用上述的第二种办法来完结将用户专用电路嵌入微处理器体系中,自界说的IP首要包括OPB总线接口和用户电路两部分,咱们用EDK供给的OPB总线的IPIF模板批改后,作为自界说IP的总线接口,64KB的双口  RAM和VME总线接口是真实的用户电路。

图2 自界说的IP Core结构 软件开发

嵌入式开发环境EDK(Embedded  Development  Kit)将软件开发分为两大部分,一是底层体系软件的开发,首要完结BSP(板级支撑包)的功用;另一部分则是用户运用软件的开发(包括用户硬件驱动及用户上层运用软件)。因为EDK中带有许多IP核以及相应的驱动软件,因而底层体系软件的开发大部分可以凭借EDK集成开发环境来完结的,如操作体系的挑选、设备驱动程序的挑选、中止/反常处理例程的设置、操作体系参数设置等在内的各种体系级软件参数的设置。而用户运用软件的开发因为有底层驱动的阻隔,可移植性好。整个用户软件的开发及调试作业都可以在EDK中完结。  

● 底层体系软件开发  

在本规划中,没有运用操作体系,运用所谓的standalone形式,即EDK仅供给硬件初始化及引导代码。此外还需求对GPIO、EMC、RS232、中止操控器等一些外设生成底层驱动,这些都可以经过在EDK集成环境XPS中挑选菜单Project->Software  Platform  Settings的对话框进行设置,如图3所示。其实质是主动批改工程的.MSS文件。例如中止函数的处理例程可在如图4所示的界面中加以设置。也可以手艺批改.MSS文件如下设置:  PARAMETER int_handler = CS8900A_INT_HANDLER, int_port = IP2INTC_Irpt

图3 在XPS中设置操作体系和驱动程序

图4 在XPS中设置中止服务例程

设置完结后在XPS中运转Tools->Generate Libraries and  BSPs将调用LibGen主动生成驱动库文件,这些CPU和外设驱动库的设置、操作函数完结或界说可在工程项目根目录下的以处理器实例名为姓名的目录下的libsrc目录下相应的各模块子目录中找到,参阅其完结有助于深刻理解事实上产生的操作。

例如中止向量表可在中段向量操控器模块子目录(本例中为  intc_v1_00_c\src)下的xintc_g.c文件中找到。

● 用户软件开发  

用户软件首要是对网络操控器、GPIO、RS232串口等的操作,其间操控CS8900A的程序是重要部分,它要完结TCP/IP协议。CS8900A一切的操控寄存器和数据寄存器都映射在被称为PacketPage的片上4K地址空间内,这4K空间可映射到主机地址空间中(存储器形式),或经过8个16  位I/O口进行存取(I/O形式)。本规划中CS8900A作业于I/O形式,经过EDK的OPB_EMC  IP作为OPB总线上的一个设备,并给EMC操控器和所映射的设备分配操作地址空间,在程序顶用 Xuint32 XIo_In32(XIo_Address  InAddress); void XIo_Out32(XIo_Address OutAddress, Xuint32 Value);  读写映射的设备,这两个I/O函数同*pDestMem =  Value(直接读写存储器操作)的不同在于前者做了读写同步(调用eieio汇编指令)。参阅芯片手册编写CS8900A的驱动,完结根本I/O操作  CS8900A_SendFrame和CS8900A_RecvFrame。EDK中有需付费的以太网IP  CORE并顺便有一些TCP/IP协议栈,该协议栈完结了大部分常用功用,但也有一些重要功用并未完结,例如TCP包的超时未达重发,收发操作的中止作业办法。经过批改、添加和完善这些软件包,完结了真实面向用户更高层运用软件的网络编程接口。  

● 软件开发中的部分问题

软件开发进程中遇到的几个首要问题归纳如下:

(1)IEEE 802.3网络及网络操控器CS8900A选用的均是Little  Endian编码,而XC2VP40内含的处理器PowerPC 405D5选用的是Big Endian编码办法,因而在数据I/O进程中需求做一下转化。  

(2)可经过编写链接操控脚本文件操控运用程序的链接进程,然后操控程序映像在存储器中的重定位进程。这在FPGA这种存储器资源有限的环境中有时很有用。  

(3)要将EDK供给的默许bootloop程序打包到硬件初始化流中,这样做的意图是供给默许的CPU复位后运转程序,确保CPU处在可预知的状况,而不是因为执行了存储器中的随机代码而处于一种不知道的状况。  

体系调试办法 因为PowerPC 405处理器核中已包括调试模块,并用JTAG端口引出,只要在体系中添加一个叫做JTAGPPC的IP模块并和PowerPC  405相连便可将其调试端口串入FPGA的JTAG链中,这样只需运用FPGA自身的下载电缆和JTAG接口便可完结体系软件调试而不需求添加额定电路。  

EDK供给的软件调试东西首要有XMD和GDB。值得一提的是运用XMD下载可执行程序映像时还会显现各程序段的重定位状况,在产生过错时会陈述过错,比如要求的地址空间大于实践供给的地址空间等过错,而这在EDK集成环境下是看不到的。在存在多种类型存储器资源的状况下,编写链接操控脚本文件操控重定位进程或许可以处理上述某地址空间不行的问题。网络通讯部分的调试首要由Sniffer软件辅佐完结。  

GDB是EDK顺便的GNU的主机方图形界面调试东西,它经过和XMD通讯完结图形界面调试功用,此刻XMD则扮演了一个主机方调试署理的人物,一切的调试通讯是由XMD同方针机通讯完结的。  

结语

SoPC使得硬件规划能真实完结象搭积木相同便利敏捷,而运用EDK开发东西就可以完结一个根据FPGA的嵌入式体系的软硬件一体化的开发,确实大大提高了嵌入式体系的开发功率,可是现在它还有许多不行完善的方面。  

首先是体系规划对规划东西软件的依赖性很大,而这些软件还有许多有待批改完善的当地,规划师无法防止将在运用了解软件方面花许多时刻。其次,IP  Core的不断丰厚和完善是SoPC的根底,贵重的付费IP核晦气于此技能的推行,尤其在国内,而要规划验证用户自己的IP  Core对规划者的要求较高。现在一个完善的嵌入式体系都有实时操作体系在运转,SoPC要成为干流也需求更丰厚的RTOS的支撑。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/135444.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部