软件总体架构图(共14页).doc

上传人:飞****2 文档编号:14388984 上传时间:2022-05-04 格式:DOC 页数:14 大小:1.03MB
返回 下载 相关 举报
软件总体架构图(共14页).doc_第1页
第1页 / 共14页
软件总体架构图(共14页).doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《软件总体架构图(共14页).doc》由会员分享,可在线阅读,更多相关《软件总体架构图(共14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上1软件总体架构图软件结构如图1.1所示:图1.1 FPGA数据采集软件架构图 以上是系统的软件结构框图,我们下面将就具体每一个步骤的设计进行一个简要的描述:2 MicroBlaze IP核设计IP字面意思是知识产权,在微电子领域,具有知识产权的功能模块成为IP Core或IP核。IP可以用来生成ASIC和PLD逻辑功能块,又称为虚拟器件VC。IP核可以有很多种,比如UART 、CPU、以太网控制器、PCI接口等。根据IP核描述的所在集成电路的设计层次,IP可以分为硬IP、软IP、固IP。硬IP的芯片中物理掩膜布局已经得到证明,所有的验证和仿真工作都已经完成,用它可以直

2、接生产硅片,系统设计者不能再对它进行修改。而软IP是以行为级和RTL级的Verilog 或VHDL代码的形式存在,它要经过逻辑综合和版图综合才能最终实现在硅片上。固IP则介于两者之间。Xilinx 公司的MicroBlaze32位软处理器核是支持CoreConnect总线的标准外设集合。MicroBlaze处理器运行在150MHz时钟下,可提供125 D-MIPS 的性能,非常适合设计针对网络、电信、数据通信和消费市场的复杂嵌入式系统。1MicroBlaze 的体系结构MicroBlaze是基于Xilinx公司FPGA的微处理器IP核,和其它外设IP核一起,可以完成可编程系统芯片(SOPC)的

3、设计。MicroBlaze处理器采用RISC架构和哈佛结构的32位指令和数据总线, 可以全速执行存储在片上存储器和外部存储器中的程序, 并访问其中的数据, 如图4.1所示图2.1 MicroBlaze 内核结构框图(1)内部结构MicroBlaze 内部有32个32位通用寄存器和2个32位特殊寄存器 PC指针和MSR状态标志寄存器。为了提高性能,MicroBlaze还具有指令和数据缓存。所有的指令字长都是32位,有3个操作数和2 种寻址模式。指令按功能划分有逻辑运算、算术运算、分支、存储器读/写和特殊指令等。指令执行的流水线是并行流水线, 它分为3级流水:取指、译码和执行,如图4.2所示。图2

4、.2 MicroBlaze 的流水线(2)存储结构MicroBlaze是一种大端存储系统处理器,使用如图4.3所式的格式来访问存储器。图2.3 大端数据格式(3)中断控制和调试接口MicroBlaze 可以响应软件和硬件中断,进行异常处理, 通过外加控制逻辑, 可以扩展外部中断。利用微处理器调试模块(MDM)IP核,可通过JTAG接口来调试处理器系统。多个MicroBlaze处理器可以用1个MDM来完成多处理器调试。(4)快速单一链路接口MicroBlaze处理器具有8个输入和8个输出快速单一链路接口(FSL)。FSL通道是专用于单一方向的点到点的数据流传输口。FLS和MicroBlaze的接

5、口宽度是32位。每一个FSL通道都可以发送和接收控制或数据字。2. CoreConnect 技术CoreConnect是由IBM开发的片上总线通信链,它使多个芯片核相互连接成为一个完整的新芯片成为可能。CoreConnect技术使整合变得更为容易,而且在标准产品平台设计中, 处理器、系统以及外围的核可以重复使用, 以达到更高的整体系统性能。Xilinx将为所有嵌入式处理器用户提供IBM CoreConnect许可,因为它是所有Xilinx 嵌入式处理器设计的基础。MicroBlaze处理器使用了与IBM PowerPC相同的总线,用作外设。虽然MicroBlaze软处理器完全独立于PowerP

6、C,但它让设计者可以选择芯片上的运行方式,包括一个嵌入式PowerPC,并共享它的外设。CoreConnect总线架构如图4.4所示。它包括片上外围总线(OPB),处理器本机总线(PLB),设备控制寄存器(DCR)总线以及1个总线桥和2个判优器。图2.4 CoreConnect 总线架构(1)片上外设总线(OPB)内核通过片上外设总线(OPB)来访问低速和低性能的系统资源。OPB是一种完全同步总线, 它的功能处于一个单独的总线层级。它不是直接连接到处理器内核的。OPB接口提供分离的32 位地址总线和32位数据总线。处理器内核可以借助“PLB to OPB”桥,通过OPB访问从外设。作为OPB总

7、线控制器的外设可以借助“OPB to PLB”桥,通过PLB访问存储器。(2)处理器本机总线(PLB)PLB接口为指令和数据一侧提供独立的32位地址和64位数据总线。PLB支持具有PLB总线接口的主机和从机通过PLB信号连接来进行读写数据的传输。总线架构支持多主从设备。每一个PLB主机通过独立的地址总线、读数据总线和写数据总线与PLB连接。PLB从机通过共享但分离的地址总线、读数据总线和写数据总线与PLB连接, 对于每一个数据总线都有一个复杂的传输控制和状态信号。为了允许主机通过竞争来获得总线的所有权, 有一个中央判决机构来授权对PLB的访问。(3)设备控制寄存器总线(DCR)设备控制寄存器总

8、线(DCR)是为在CPU通用寄存器(GPRs)和DCR的从逻辑设备控制寄存器(DCRs)之间传输数据而设计的。3.MicroBlaze 的开发应用EDK(嵌入式开发套件)可以进行MicroBlaze IP核的开发。工具包中集成了硬件平台产生器、软件平台产生器、仿真模型生成器、软件编译器和软件调试工具等。EDK中提供一个集成开发环境XPS(Xilinx Platform Studio),以便使用系统提供的所有工具,完成嵌入式系统开发的整个流程。EDK中还带有一些外设接口的IP核,如LMB、OPB总线接口、外部存储控制器、SDRAM 控制器、UART、中断控制器、定时器等。利用这些资源,可以构建一

9、个较为完善的嵌入式微处理器系统。在FPGA上设计的嵌入式系统层次结构为5级,可在最低层硬件资源上开发IP核,或利用已开发的IP核搭建嵌入式系统,这是硬件开发部分;开发IP核的设备驱动、应用接口(API)和应用层(算法),属软件开发内容。利用MicroBlaze构建基本的嵌入式系统如图4.5所示。通过标准总线接口LMB总线和OPB总线的IP核,MicroBlaze就可以和各种外设IP核相连。图2.5 MicroBlaze系统架构图EDK中提供的IP核均有相应的设备驱动和应用接口,使用者只需利用相应的函数库, 就可以编写自己的应用软件和算法程序。对于用户自己开发的IP 核,需要自己编写相应的驱动和

10、接口函数。软件设计流程如图4.6所示。图2.6 软件开发流程3 移植uclinux首先不管什么平台,移植uclinux,整个流程都遵从于:Kernel preparation isntall BSP Build hardware platform Memory test Build kernel image Download 具体来说,如下图4.7所示:图3.1 uclinux移植流程1.搭建开发环境操作系统:Redhat Hat Linux 9,安装的时候添加开发和编译环境。(编译内核)Windows(安装EDK)交叉编译工具:针对不同的CPU系列,有不同的编译环境,通常,程序是在一台计算机

11、上编译,然后再分布到将要使用的其他计算机上。当主机系统(运行编译器的系统)和目标系统(产生的程序将在其上运行的系统)不兼容时,该过程就叫做交叉编译。建立一个交叉编译工具链是一个相当复杂的过程,网上有一些编译好的可用的交叉编译工具链可以下载。下载并安装好,我们的编译环境就搭建好了。(1) 下载并创建BSP从petalogix站点下载BSP,并安装到电脑上。把在EDK下生成的包含硬件系统信息的“auto-config.in”文件复制到linux的/home/devel/srcuClinux-2.4.xarchmicroblazeplatformuclinux-auto路径下。编译器需要从auto-

12、config.in文件里知道“the address map and the processor system”以及其它相关信息。(2) 配置内核在网站上下载源代码包,并安装在系统的任意目录。此时,就可以使用命令来进行内核的配置了: $cd/uClinux-dist $make menuconfig这里,我们需要进行一系列内核配置的选择。(3) 编译内核生成image文件 $cd /uClinux-dist $ make dep $ make clean $ make这个过程期间将完成下面的内容:编译内核 (Build kernel) 编译uclinux的C库 (C libraries )编译

13、用户程序 (user applications)转换成二进制文件 编译内核文件系统 合并内核和文件系统为一个二进制文件 编译成功,你就会在uClinux-dist的目录下发现一个新的目录images。里面就包含了你编译成功的系统文件,image.elf和image.bin两个文件。(4) 下载内核文件到目标板将在上面编译生成的内核文件image.bin下载到目标板上去并运行.4.1 移植工业以太网协议由于Spartan-3E只提供了物理层(PHY)的网络控制器,所以对于处理本装置的物理层以上的网络设备,需要重新制定适合本系统的网络协议。工业以太网EtherNet/IP,是一种适用于工业环境的通

14、讯体系,能够在广阔的区域中支持大量现场设备的连接。它采用通用工业协议(CIP)作为其应用层协议。CIP协议支持各种控制、配置和信息处理服务,包括显式报文(用于信息传输,灵活的报文交换)以及隐式报文(用于控制和实时I/O数据的传输),支持轮询、周期和状态改变数据传输触发机制,点对点单播和广播数据传输方式3。OE服务的设计简化了EtherNet/IP的移植,只需要修改操作环境文件来适合FPGA操作体系。4.2 移植BOA从www.boa.org下载一个主流版本的BOA源码包,本系统用的是boa-0.94.13.tar.gz。第一步:修改Makefile文件,编译BOA源码,生成BOA可执行文件。修

15、改Makefile文件,因为我们要编译的是二进制代码,所以必须修改Makefile中的CC和CPP, 然后运行make进行编译,得到可执行程序BOA。第二步:配置BOA。BOA启动时将加载一个配置文件boa.conf,在boa程序运行前,必须首先编辑该文件。在Boa源码目录下已有一个示例boa.conf,可以在其基础上修改。配置好的主要内容如下:User nobodyGroup 0ServerName XilinxFPGAErrorLog /var/log/boa/error_logAccessLog /var/log/boa/access_logDocumentRoot /var/wwwMi

16、meTypes /etc/mime.typesScriptAlias /cgi-bin/ /var/www/cgi-bin/据此配置,需要创建日志文件目录/var/log/boa,HTML文档的主目录/var/www,将静态网页存入该目录下,CGI脚本所在目录/var/www/cgi-bin,将cgi的脚本存放在该目录下。4.3 CGI网关接口程序CGI(通用网关接口)提供Web服务器一个执行外部程序的通道,这种服务端技术建立了Web浏览器与Web服务器之间的交互。首先,浏览器将远程客户端发送的请求送到Web服务器,Web服务器将数据使用STDIN送给CGI程序,执行CGI程序后获得缓冲区中的

17、设备信息,最后,使用STDOUT输出包含工业设备信息的HTML形式的结构文件,经Web服务器送回浏览器,显示给远程客户端。CGI程序可以用C语言编写,并且能够嵌入HTML脚本。经过编译器编译以后,CGI程序可以使用GET、POST或直接的URL参数传递方法与远程客户端通信。以下是将采集到的设备数据显示到网页上的一段CGI程序,其中用到的数据库是SQLite。SQLite是用一个小型C库实现的一种强有力的嵌入式关系数据库管理体制,它在体积与功能之间做到了较好的平衡,是理想的嵌入式数据库。#include #include sqlite3.hmain()sqlite3* p_db;sqlite3_

18、open(mydb, &p_db);/*打开数据库*/*执行SQL语句选择alarm表中的所有记录,并在查询结果的每一行上执行回调函*/ret=sqlite3_exec(p_db, select * from alarm;, callback,0, &errmsg);sqlite3_close(p_db); /* 关闭数据库*/int callback(void *p_data, int n_columns, char *column_names, char *column_values) /*回调函数*/int i;for(i=0; i hostname MicroBlaze1 (这是给主机

19、起名字,它可以是任何合乎规则的名字,这里是MicroBlaze1)/ ifconfig lo 127.0.0.1/ ifconfig eth0 xx.xx.xx.xx netmask xx.xx.xx.xx broadcast xx.xx.xx.xx确定IP地址以及子网掩码地址,广播地址。然后,可以尝试自己ping自己(按Ctrl+C退出):/ ping 127.0.0.1 PING 127.0.0.1 (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.0 ms 64 bytes from

20、127.0.0.1: icmp_seq=1 ttl=64 time=10.0 ms 64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=10.0 ms 64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=10.0 ms C- 127.0.0.1 ping statistics - 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.0/8.0/10.0 ms 可以试着ping局域网中另外一台

21、机器(这里ping地址192.168.0.41)/ ping 192.168.0.41 PING 192.168.0.41 (192.168.0.41): 56 data bytes 64 bytes from 192.168.0.41: icmp_seq=0 ttl=64 time=10.0 ms 64 bytes from 192.168.0.41: icmp_seq=1 ttl=64 time=0.0 ms 64 bytes from 192.168.0.41: icmp_seq=2 ttl=64 time=0.0 ms 64 bytes from 192.168.0.41: icmp_

22、seq=3 ttl=64 time=0.0 ms 64 bytes from 192.168.0.41: icmp_seq=4 ttl=64 time=0.0 ms C- 192.168.0.41 ping statistics - 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.0/2.0/10.0 ms最后,从网络中另外一台机器远程登录MicroBlaze(使用上面ifconfig命令中分配的IP地址)rootzxt$ telnet MicroBlaze1Trying

23、192.168.0.34.Connected to MicroBlaze1.Escape character is .MicroBlaze1 login: rootNo directory, logging in with HOME=/Welcomeon MicroBlaze.Sash command shell (version 1.1.1)/6 ADC数据采集当前,越来越多的通信系统工作在很宽的频带上,对于保密和抗干扰有很高要求的某些无线通信更是如此,随着信号处理器件的处理速度越来越快,数据采样的速率也变得越来越高,在某些电子信息领域,要求处理的频带要尽可能的宽、动态范围要尽可能的大,以便

24、得到更宽的频率搜索范围,获取更多的信息量。因此,通信系统对信号处理前端的A/D采样电路提出了更高的要求,即希望A/D转换速度快而采样精度高,以便满足系统处理的要求。可编程门阵列FPGA的出现已经显著改变了数字系统的设计方式。应用可编程门阵列FPGA,可使数字系统设计具有高度的灵活性,因此FPGA的应用越来越广泛,Spartan-3E FPGA系列,是赛灵思公司推出的采用先进90nm制造工艺技术生产的系列产品,其自带的双通道AD数模转换控制器,可以方便的实现数据的采集,配上LTC69121的双通道放大器,可以使得收集数据的精确性达到mV级。1高速采集系统介绍数据采集系统原理框图如图1所示,输入的

25、中频信号经A/D采样电路采样后,通过信号放大器,将收集到的信号,调整成为最佳的检测信号,即1.65V1.25V输送到模拟转换器中,模拟信号转换器将收集的模拟信号,转换成为14-bit的数字信号。其中,FPGA的作用是提供始终频率,并且控制放大和转换器的相互协调工作。图6.1 数据采集系统原理图2AMP SPI 控制器(1) LTC6912-1放大器的接口图6.2 LTC6912-1工作原理图当AMP-CS输入是低电平的时候,LTC6912-1放大器开始工作。在放大器的内部, 有八个转换登记器( shift register),它们将产生一个增益的倍速信号,这样就可以按要求放大信号。当AMP工作

26、开始时,它会发送一个增益的倍速给FPGA,这个信号对于大多数应用来说是可以忽略的。当AMP-CS重新回到高电平时,信号增益工作完成。图6.3 LTC6912-1 内置转换登记器工作图放大器内部的八个转换登记器,会为A Gain和B Gain 产生两组编码,它们代表的意思如下:其中,产生的Gain 是增益的倍速,它的可能取值就只有7种情况。Gain值的大小决定于输入电压的大小,不同的Gain值所能适应的电压福特数是不一样的,但整个来说,输入电压的范围是0.41.6625V图6.4 放大器转换编码值表放大器的完整时序图如下:图6.5放大器时序工作图(2) LTC1407-1 AD转换控制器图6.6 LTC1407-1A 工作原理图一个典型的信息传输需要34个循环来实现,其中,有六个循环是来分个不同通道接受的书局,在这六个周期里,因为高阻抗而产生不了信号。信号会从最晚一个信息位开始,因为它是最有价值的信息,一共转换14位。转换的数据是在下一个脉冲开始后才呈现出来的。图6.7 LTC1407-1A AD转换工作示例完整的时序图如下:图6.8 LTC1407-1A完整的时序图如果要用于AD转换和通信的话,SCK的频率不应大于 1.5MHz。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁