嵌入式Linux下PCIE数据采集卡驱动开发

上传人:沈*** 文档编号:152960773 上传时间:2022-09-16 格式:DOC 页数:75 大小:3.10MB
收藏 版权申诉 举报 下载
嵌入式Linux下PCIE数据采集卡驱动开发_第1页
第1页 / 共75页
嵌入式Linux下PCIE数据采集卡驱动开发_第2页
第2页 / 共75页
嵌入式Linux下PCIE数据采集卡驱动开发_第3页
第3页 / 共75页
资源描述:

《嵌入式Linux下PCIE数据采集卡驱动开发》由会员分享,可在线阅读,更多相关《嵌入式Linux下PCIE数据采集卡驱动开发(75页珍藏版)》请在装配图网上搜索。

1、 电 子 科 技 大 学UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA硕士学位论文MASTER THESIS论文题目 嵌入式Linux下PCIE数据采集卡驱动开发 学科专业 测试计量技术与仪器学 号 8作者 周小波指导教师 永乐 教授分类号 密级 UDC注1 学 位 论 文嵌入式Linux下PCIE数据采集卡驱动开发题名和副题名周小波作者指导教师 永乐 教授 电子科技大学 、职称、单位名称 申请学位级别 硕士 学科专业 测试计量技术与仪器提交论文日 论文辩论日期 学位授予单位和日期 电子科技大学 2013年 6 月 日辩论委员会

2、主席 评阅人 注1:注明国际十进分类法UDC的类号。DRIVER DEVELOPMENT OF PCIE DATA ACQUISITION CARD IN EMBEDDED LINUXA Thesis Submitted toUniversity of Electronic Science and Technology of ChinaMajor: Measuring&Testing Technology and InstrumentsAuthor:Xiaobo ZhouAdvisor:Prof. Yongle XieSchool:School of Automation Engineerin

3、g独创性声明本人声明所呈交的学位论文是本人在导师指导下进展的研究工作与取得的研究成果。据我所知,除了文中特别加以标注和致的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何奉献均已在论文中作了明确的说明并表示意。作者签名: 日期: 年 月 日论文使用授权本学位论文作者完全了解电子科技大学有关保存、使用学位论文的规定,有权保存并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全部或局部容编入有关数据库进展检索,可以采用影印、缩印或扫描等

4、复制手段保存、汇编学位论文。的学位论文在解密后应遵守此规定作者签名: 导师签名: 日期: 年 月 日63 / 75摘 要随着信息技术的不断开展,高端嵌入式系统的需求持续加大。Linux的巨大优势使得它在嵌入式领域备受关注。本论文以高速数据采集嵌入式系统研发为背景,采用飞思卡尔MPC85xx处理器,对PCIE数据采集卡的驱动开发进展了讨论。首先,本文讲解了嵌入式数据采集系统的开展现状和需求,并结合需求给出了一款高速数据采集嵌入式系统的方案,并对该方案的各个部件的选取和方案的实施做了简要的讲解。其次,论文讲解了飞思卡尔公司的MPC85XX主控制器的性能参数,同时采用高速采集系统的硬件总体搭建与各个

5、模块分别设计相结合的方法,介绍了高速数据采集系统的硬件结构;同时结合项目讲解了嵌入式Linux开发环境的建立。第三,我们选取U-Boot作为引导程序,对其功能做、结构和编译过程做了详尽的分析;根据主控制器硬件搭载情况,给出了U-Boot的配置、移植方法。第四,我们在对Linux核介绍的根底上,对嵌入式操作系统进展了比拟,并深入分析了Linux核源码结构,结合系统硬件配备情况对Linux核的配置与其移植方法做了介绍;本文还对Linux根文件系统与其构建做了剖析。第五,论述并分析了Linux驱动程序的开发技术,深入剖析了字符设备驱动程序的根本结构,并对PCIE高速数据采集卡驱动程序的设计做了详尽的

6、论述。并给出了linux操作系统的调试方法,并对驱动程序的调试、动静态加载以与测试方法做了详述,并给出其最终的测试结果。本论文介绍的数据采集系统采用的是4个链路,它的理论速度可以到达10Gbps,由于PCI Express的链路可以是8、16甚至是32个,如果增加PCI Express的链路,将到达更高的数据传输速率。MPC85XX控制器具有千兆以太网和SATA硬盘接口,这可将采集到的数据以千兆以太网转发或直接存在大容量硬盘,以提高信息的采集量。关键词:嵌入式系统、Linux核、PCI Express、驱动程序、DMAABSTRACTWith the continuous developmen

7、t of information technology,demands for high-end embedded systems continue to increase.Linux makes itself be the focus of attention in the embedded domain owing to its enormous superiority.Taking research and development of data gathering system as the background and using MPC85xx to be processor,th

8、is thesis discusses the driver development of PCIE data acquisition card.Firstly,this article explains present development situation and the demand of the embedded data acquisition system.Combined with demand,this thesis has given a solution of high speed data acquisition embedded system,and made th

9、e brief explanation to selection of each part of this solution and its specific implementation.Secondly,The paper explains the MPC8536RDK and its performance parameters.we introduce the hardware structure of high speed data acquisition embedded system combined with overall design of data acquisition

10、 system hardware structure and its each module.This article explains how to set up the embedded Linux development environment based on the project. Thirdly,we select U-Boot as the booting procedure and explain its function,and make detail analysis of its structure and compilation process.According t

11、o hardware of the host controller,we present the configuration and porting method of U-Boot.Fourth,we compare the embedded operating system on the basis of introducing Linux kernel,and analyse Linux kernel source code structure.According to hardware of system,we present the configuration and porting

12、 method of linux kernel.This paper also analyse Linux root file system and its construction. Fifth,this article discusses and analyses development techniques of Linux driver,and analyses the basic structure of a character device driver in detail.Moreover,this article elaborates PCIE card driver.At l

13、ast,we give debugging,loading and testing method of the Linux and driver,and its final test results.Key words: Embedded system,Linux Kernel,PCI Express,Driver Program,DMA目 录第一章 绪论11.1 课题研究背景11.2 课题研究意义21.3 课题工作3第二章 数据采集卡驱动开发总体方案52.1 高速采集系统总体方案介绍52.2 方案中各部件选取62.3 数据采集卡驱动的开发流程82.4 本章小结10第三章 系统硬件与Linux

14、开发环境的搭建113.1 系统硬件11系统硬件总体结构11嵌入式控制器与其功能11高速数据采集卡133.2 嵌入式Linux开发环境的建立13开发工具14开发环境建立143.3 本章小结16第四章 Linux系统移植174.1 U-Boot移植17简介17移植要点17系统嵌入式控制器的U-Boot移植194.2 Linux核移植20概述20核移植214.3 构建Linux根文件系统24根文件系统24根文件系统制作254.4 本章小结29第五章 Linux驱动程序305.1 设备驱动概述30设备的种类和特点30设备驱动与计算机软硬件系统的关系315.2字符设备驱动325.3 Linux设备驱动的

15、阻塞335.4 中断34中断处理架构34中断编程345.5 本章小结35第六章 PCIE高速数据采集卡驱动程序开发366.1 PCI EXPRESS的配置空间366.2 PCI EXPRESS的接口功能存放器376.3 PCIE高速数据采集卡驱动程序开发38驱动模块加载39结构注册40驱动支持的硬件设备40成员函数41操作45中断处理46文件操作48函数49模块卸载506.4 本章小结50第七章 系统各局部调试、加载与测试517.1 Linux系统和驱动的调试517.2 PCIE驱动程序的加载537.3 PCIE驱动程序的测试55功能测试55采集卡配置存放器空间测试56采集卡传输速度577.4

16、 本章小结58第八章 完毕语59致 61参考文献62第一章 绪论1.1 课题研究背景需求可以推动开展,当今社会人们对信息的渴求,对智能系统的期望,对网络的依赖,使得嵌入式获得了飞速开展的动力源泉。从1990年代开场,嵌入式经历了由初生到起步直到现在的飞速开展时期,已经在工业、消费等各个领域得到应用和开展。由于嵌入式计算机主要用于专门领域,它的硬件的配置各不一样,不像通用计算机那样搭载的外设与其接口相差无几,它是根据不同的需求来订制。嵌入式系统的特点在于在系统中嵌入了处理器,专门针对特定的需求而设计、从本质属性来讲它又是一个计算机系统。就是系统的应用软件和系统的硬件融为一体。嵌入式系统与通用计算

17、机上的系统不同,同时它在一定围又具有较大的通用性,因此它又和那些为专门需求而设计的嵌入式系统又有所差异。嵌入式系统的功能比拟少,相对来说比拟简单,因此大小和本钱受到了限制。嵌入式系统由硬件、板级支撑包和软件构成 纪金水.嵌入式系统组成与设计M.XX:XX大学,2010.6 。一个嵌入式硬件系统至少需要一个嵌入式处理器,这是嵌入式系统的心脏;能够对数据进展存取的存储器,例如作为存的SDRAM、安装文件系统的FLASH等等;还有相应的接口,如串口、网口、USB口等等;再添加系统供电的电源系统、时钟系统和数据存取的存储器既可以得到一个嵌入式控制板。板级支撑包BSP处于系统的硬件和软件的中间,起到隔离

18、软硬件的作用,同时又起到一个软硬件的桥梁的作用,当上层开发人员进展软件开发的时候,不用关心硬件的具体细节,只需要根据板级支撑包呈现的接口来编程即可。板级支撑包主要是做一些对硬件进展初始化与其配置、以与数据的输入、出等相应工作。 嵌入式软件局部那么包含给用户管理软硬件资源的操作系统、进展文件管理的文件系统、给用户呈现图形的图形界面、以与提供网络的网络系统通等。有很多如Linux、Vxworks、Wince、Uc/OS-II 等系统都属于嵌入式操作系统。Linux操作系统因其本钱低、可裁剪、占用资源少、移植性强等特点,在嵌入开发领域得到巨大的开展和应用。嵌入式行业开展近几年,产品日臻完善,并在全世

19、界各行业得到广泛应用。嵌入式的开展带动相关行产业链的开展,它的研发、生产已经带动了我国信息技术产业的业绩的持续增长,已经成为我国国民经济开展的重要推动力量。现代人类对智能家电的需求,是嵌入式能够一展身手,同时推动了自身的大步前进。现代的智能网络电视、物联网、数码相机、3G/4G智能手机、智能洗衣机、汽车电子、智能游戏机等等,都是嵌入式领域的具体表达。据预测,随着网络技术的飞速发和以ARM为代表的低价处理器的出现和持续更新,嵌入式将如影随形伴随在群众的身边。随着需求的不断增大,我国嵌入式软件行业的开展越来越快,它的速度已然超越了全球嵌入式软件与中国软件业的开展,它在中国软件行业中已经占据重要位置

20、。按照中国软件业的比重来划分,嵌入式软件的占比在中国软件业中超过的30%。中国嵌入式软件的开展之所以这么强劲和快速,主要跟良好的环境、政府加大支持、旺盛的需求等有关。1.2 课题研究意义数据采集系统是一个用来将模拟信号转换成数字信号并发送到相应的信号处理系统的典型嵌入式系统。在早期的开发阶段,基于微控制器单元的数据采集系统一度广泛应用。然而数字技术开展迅速,系统号的带宽和动态围的不断增大,不仅对AD的采样率和带宽的要求变高,而且对采集到的信号的传输途中的各个功能部件的要求愈来愈高,如数据处理速度、存资源等方面不在满足需求。目前国对高速数据采集系统的研发还处于初级阶段,因此对高速数据采集系统提出

21、了需求。在高速信号经过模拟通道的调理,通过采集卡转换为数字信号并经由相应的传输途径传入控制器中,再根据处理需要将数据通过网络发送到相应处理端做处理或者通过高速高容量存储设备存储起来。高速信号通过这些设备就要求采集卡采集速度块、与主控制器的数据传输能力强,主控制器功能强大,操作系统的稳定性高、处理能力强。基于上述需求,本文搭建了一种高速数据采集的软硬件系统。在这个系统中使用Freescale的MPC85xx作为主控制器,通过PCIE接口将FPGA作为主控制器的数据采集卡连接到主控制器上,搭建起高速数据采集嵌入式系统的硬件平台。并在主控制器上安装Linux操作系统,编写PCIE数据采集卡驱动程序,

22、以实现高速数据采集。本课题目的在于研发一套性能优良、功能强大的高速数据采集系统。所以,该系统具有较为强大的实用价值。数据由采集系统的硬件端到用户,用户可以通过这些采集到的数据做相应的处理工作。传输的过程中,用到了资源丰富、功能强大的嵌入式控制器,嵌入式控制器上需要安装操作系统来管理控制器上的资源。Linux核是一个资源管理器,管理进程、存和硬件设备,它的开源、免费、稳定、高效等优点使得它在嵌入式操作系统中经常被用到。基于这些优点,本课题在采集系统的嵌入式控制器上移植了Linux操作系统。采集卡是数据采集的核心局部,它采集到的数据必须通过相应外围接口传输到控制器的Linux核空间中才能被用户使用

23、。而操作系统要识别采集卡并承受来自它的数据,应当编写采集卡的Linux驱动程序,在驱动程序中实现系统对采集卡初始化、提供设备与用户程序的接口、实现与控制器的数据交互。1.3 课题工作课题在已搭建的硬件平台根底上,按照控制器的硬件配备情况,配置并移植U-Boot、Linux操作系统,以与安装根文件系统,并设计了能够进展主总线DMA传输的PCIE高速数据采集驱动程序。本课题的主要工作如下:1嵌入式数据采集系统的开展和需求分析本文首先从嵌入式数据采集系统的开展现状出发,分析了高速数据采集系统研发的必要性和实用性。2PCIE数据采集系统总体方案的搭建文章对根据需求建立了一种高速数据采集系统方案,并对各

24、功能部件的选取作了说明。还简单讲解了数据采集卡驱动的开发流程。3系统硬件机卡发环境介绍4Linux系统移植Linux系统移植包括U-boot移植、核移植与根文件系统制作。U-Boot是Linux的启动引导程序,在系统移植之前,先行移植U-Boot。本文在对Bootloader的简介的根底上,详细的介绍了U-Boot的结构与其启动过程,并对U-Boot的移植做了深入剖析。安装了Linux操作系统,本文简单介绍了Linux与其优缺点,然后详细的阐述了Linux核源码结构与其启动过程,并给出了Linux核移植的具体方法和步骤;本文还对Linux文件系统做了概述,在此根底上,对Linux根文件系统制作

25、的方法做了介绍。5Linux驱动程序的研究本文在对Linux驱动程序与其分类做了概述的根底上,对字符设备驱动程序的根本结构做了详解,并对字符设备驱动中的注册、文件操作、阻塞、中断等做了详细的说明。6PCIE高速数据采集卡驱动开发为PCIE高速数据采集卡开发了驱动程序,并对其调试与对设计的预期功能和性能进展测试。第二章 数据采集卡驱动开发总体方案系统的设计方案是基于实际需求中提出的要求、指标来建立。应用中对系统功能、性能的要求成为系统设计的目标。用到的开发手段,应当是现阶段常被用到的或者已经具有一定的成熟度,并受到广泛的认可。从而以简化开发流程,节约时间,降低开发本钱。2.1 高速采集系统总体方

26、案介绍我们搭建起了一种高速数据采集嵌入式系统的方案。如图2.1所示,我们看到,高速数据采集系统由硬件层、系统层和应用层构成。其中,硬件包含主控制器和数据采集卡;系统层包含嵌入式Linux操作系统和PCIE数据采集卡驱动程序。PCIE数据采集卡通过PCIE接口连接到嵌入式控制器上,嵌入式控制安装Linux操作系统并编写PCIE采集卡驱动程序。系统工作的流程:信号经由模拟前端的电路调理后输入到数据采集卡的缓冲区中,在嵌入式控制器的控制下,通过驱动程序初始化采集卡并实现传输操作,将采集卡上的数据传输到Linux操作系统核,通过驱动程序的文件操作接口将数据由核空间传输到用户以便使用。图2.1 高速数据

27、采集嵌入式系统的方案2.2 方案中各部件选取高速数据采集系统方案的选择是基于它的数据传输速度快、传输数据量大的特性。这对系统的软硬件架构提出了要求:主控制器的功能强大、要求总线传输速度快、操作系统运行稳定可靠等等。1控制器选取嵌入式硬件控制器的种类繁多,它不仅体系结构众多,如主流的x86、ARM、PowerPC等,而且很多生产厂商提供一样的体系结构的处理器,供开发人员选择的余地很大。在众多体系结构中,PowerPC芯片性能出色、技术先进,一般运用于通信、工业控制、网络存储等领域。在PowerPC芯片上一般都集成了PCIE、DDR、SATA控制器、千兆以太网等控制器。而在Freescale的MP

28、C85xx控制器中,集成了一个具有显像、网络以与通信应用所需要的的系统逻辑的PowerPC处理器核心。正是由于MPC85xx的上述有很好的契合了高速数据采集系统控制器的要求,因此我们选择它作为主控。2采集卡与主控制器互联方式的选取在本采集系统中,总线担当了采集卡与主控制器的通道,它是硬件设备之间的传输数据通路,总线的带宽、速度等因素对一个系统的性能影响巨大。即便是PowerPC的通信处理能力再强、存的处理速度再高,如果作为运输通路的总线负载能力弱,同样会使数据交流缓慢,而起不到作用。因此有人将总线誉为计算机系的中枢。高速数据采集系统的数吉赫兹的采样率的特性决定总线的带宽高、抗干扰能力强,经过比

29、拟我们认为PCI Express是适宜的。在谈我们谈到PCI Express之前,我们就不得不提到PCI (Peripheral Component Interconnect)总线。PCI总线在1992年发布,因其结构简单、本钱低、设计简单等众多优点,在过去的几十年中取得了巨大的成功,在并行总线中,在今天看来还具有很高的先进性,但是现在看来他有很多地方显得力不从心。如表2.1所示,32位PCI总线能够提供峰值带宽从133MB/s到2131MB/s 马鸣锦,朱剑冰,何红旗,杜威.PCI、PCI-X和PCI Express的原理与体系结构M.:清华大学,2007.4,但是随着需要传输处理的数据量越

30、来越大,加之速度不断提高的传输方式如光纤、万兆以太网的开展,显然它是不够的。PCI总线虽然在并行总线中优势巨大,但是它却无法跨越并行总线的固有缺陷:可互联的设备相对不多、比拟难于扩展、并行总线的个信号线之间的干扰相对较大以致使之无常工作;连接的设备过多将会导致带宽的急剧变小而导致速度下降。考虑到价格因素和使线间的干扰到达较低的水平,可以采用降带宽或者地址、数据总线分时段分别使用的方式来解决,但是这样又会出现新问题:带宽利用率低。高速串行总线的提出,为解决并行总线固有的缺陷找到了出路,其中最出色之一的是PCI Express。表2.1 PCI总线的时钟频率与带宽总线类型时钟频率MHz峰值带宽MB

31、/sPCI 32/64位33/66133/266PCI 32/64位66/132266/532PCI-X 32/64位66/132266/532PCI-X 32/64位133/266533/1066PCI-X 32/64位266/5321066/2132PCI-X 32/64位533/10662131/4262由于并行总线同时传输一个字,在并行总线上的信号的传输时间和到达时刻不同,这将导致时序偏差。串行总线不会出现时序偏差,因为在每个通道的每个方向上,只有一个差分信号。一个通道由两个差分信号对组成:一个承受数据,一个传输数据,每一个通道由四线组成。相较下来,PCI总线的速度仅为一半。每一个通道

32、都可以进展全双工字节流传输,在每个方向上在一个链路的两个设备之间传输8位字节格式的数据包。两个设备之间的PCIe链路可以是1到32个通道的任何一个。在多通道链路中,数据包通过这些通道传输,而且它的数据吞吐量跟整体带宽向适应。PCIe标准定义了插槽和连接器的多链路宽度:x1,x4,x8,x16,x32。这就使得PCIe可以同时应用于那些对价格敏感而对高吞吐量不做要求和对性能苛刻诸如3D图形显示、10GB以太网和光纤通信等领域。PCIe的频率为2.5Ghz,单通道的PCIe可以提供全双工500MBps的带宽,如果采用双通道x2,其带宽可以到达1个Ghz 王齐.PCI Express体系结构导读M.

33、:机械工业,2010.3,而PCIe总线提供了x4、x8、x12、x16、x32模式。由此推之,可知它可以提供比PCI高得多、围广得多的带宽。下表2.2为PCIe的不同链路时的带宽。表2.2 PCI Express链路与带宽PCI Express链路数X1X2X4X8X12X16X32传输带宽Gb/s5.010.020.040.060.080.0160.0有效带宽Gb/s4.08.016.032.048.064.0128.03嵌入式操作系统选取Linux的开发现在已经成为免费、自由源码软件合作最流行的例子:根本的源码可以被遵循GNU GPL的任何人以商业或非商业目的使用、修改和发布。Linux

34、核是一个资源管理器,管理进程、存和硬件设备,决定系统的性能和稳定性。在众多操作系统中我们之所以选择Linux与其2.6版本的核,是它本身具有诸多与我们开发目标板相符合的优点,给我们的开发带来了极大的方便,同时2.6版本核的性能在原来根底上具有重大提升。2.3 数据采集卡驱动的开发流程嵌入式Linux驱动的开发不仅仅是开发某一设备的驱动代码,因为驱动程序本身就属于开发操作系统的一局部。而且,一般嵌入式控制器的操作系统都需要根据控制器的情况来移植。因此,数据采集卡的驱动开发流程如以下图2.2所示,一共应当完成四项工作即:主机上建立穿插编译环境、Linux操作系统移植、采集卡驱动的开发、测试驱动。图

35、2.2 驱动开发的流程1、主机上建立叉编译环境硬件局部已经调试无误后,应当在主控制器中安装嵌入式Linux操作系统来管理资源。由于目标板一开场只是一个没有操作系统的电路板,因此不能用它来编译能够在自身上运行的操作系统和应用程序,加之目标板的专用性,它编译程序很慢。因此,一般都事先在主机上安装穿插编译环境,也就是在主机上编译的程序可以在控制器上运行。穿插开发环境的建立主要包括了穿插工具链、glibc、各种效劳和中断控制台minicon等。在本文中使用了集成的开发工具LTIB工具。该工具由Freescale公司提供,这个工具提供了穿插工具链、glibc、eglibc等工具,并具有U-Boot、核镜

36、像和文件系统的构建功能。在主机环境中,还应当安装能够实现主机与目标控制器的数据传输与共享的效劳,如TFTP、NFS效劳等。2、Linux系统移植由于嵌入式控制器的专用性和根据不同需求而设计的特点,应该按照硬件的配置情况来编译、安装的操作系统。Linux系统的移植包括三个局部:(1) 系统引导程序的移植U-Boot是Linux系统中一种功能强大、使用最多的核引导程序,它将为系统核的启动设置软硬件环境、建立存映射图,并将核加载到存中指定的地址,以使核启动。2Linux核的移植U-Boot启动之后加载核到存中,是核镜像从静态存储中拷贝到存中解压执行。核应该根据硬件控制器的配置情况做相应的添加代码、配

37、置选择。3根文件系统制作。根文件系统是嵌入式系统的重要局部,核启动时将首先挂载根文件系统。它包括Linux核的配置文件,启动系统的文件和脚本,以与应用程序与其需要的库文件。根文件系统采用Busybox工具制作。3、PCIE数据采集卡驱动的开发数据采集卡在有数据到来时,处理器才承受、并处理该数据;当采集卡处于空闲状态,没有数据提供给系统时,CPU应当执行其它任务。对于数据采集卡来说,这就要求CPU应当按照采集卡的需求作出响应。而这种机制比拟合理的方式就是中断的方式:当采集卡有数据提交给系统时,采集卡产生中断,打断CPU的当前工作,是它处理这些数据。在PCIE数据采集系统中,数据传输的速度快、数据

38、量大的两大特点,要求采用一种即高效又不需要长期占有CPU的传输方式,无疑DMA直接存访问的方式是最合理的。DMA的传输方式在提高了系统数据的吞吐能力,又防止了CPU被长时间占用而导致的大量系统开销。综合以上两点,PCIE数据采集卡驱动的核心工作数据的传输采用DMA和中断配合的方式来实现,这是编程中的重点。4、驱动的测试PCIE驱动的安装调试完成之后,应对其功能和性能指标测试,以检验其能否满足设计要求。PCIE驱动的功能和性能指标由测试程序完成。2.4 本章小结文章对根据需求建立了一种高速数据采集系统方案,并对各功能部件的选取作了说明。还简单讲解了数据采集卡驱动的开发总体流程。第三章 系统硬件与

39、Linux开发环境的搭建本论文所讲述的高速数据采集嵌入式系统主要功能是进展数据采集,支持PCIE总线等。根据项目我们选择了powerpc体系结构的MPC85xx系列处理器作为主控。硬件以MPC85xx处理器为核心,嵌入式系统核版本为支持飞思卡尔某板的Linux-rc5,以通用引导程序u-boot作为系统的bootloader。采用穿插编译的方式编译核、u-boot以与驱动程序,穿插编译的主机环境是ubuntu11.04,开发工具是飞思卡尔的MPC85xx-ltib。本章介绍了系统硬件的根本情况和穿插编译环境的搭建。3.1 系统硬件3.1.1 系统硬件总体结构高速数据采集嵌入式系统总体设计框图如

40、图3.1所示,它由对输入信号进展调理的模拟前端、对数据进展采集和传输的PCIE高速数据采集卡以与对数据进展承受和处理的嵌入式控制器三个局部组成。这里主要对PCIE高速数据采集卡和嵌入式控制器进展简要说明。图3.1 高速数据采集系统硬件框架3.1.2 嵌入式控制器与其功能本论文所述的嵌入式主控制器是基于飞思卡尔的MPC8536E PowerQUICC控制器。MPC8536E集成了一个具有显像、连络以与通信应用所需要的的系统逻辑的PowerPC处理器核心,MPC8536E使用e500核和高速互连技术,以平衡处理器与I/O系统的吞吐量性能。它的CPU频率为1GHZ,存大小为512MB。E500核心实

41、现增强的BookE指令集体系结构,并提供了前所未有的硬件和软件调试支持。它具有如下特征:一个32位高性能BookE增强型e500v2核,而且还具有36位物理寻址的能力;一个具有ECC能力的512K字节的L2高速缓存,能XOR加速的SECIntegrated security engine;先进的电源管理控制器,动态的功耗管理方式使功耗降低;三个USB2.0主、设备双角色控制器;两个具有TCP/IP加速和归类能力的10/100/1000兆增强型三速以太网控制器,并具有通过SerDes接口支持串行GMII接口和对IEEE Std.1588TM准确时间协议的硬件支持;三个使用SerDes接口的PCI

42、 Express控制器;两个串行ATA接口;DDR2/DDR3 SDRAM存控制器,它提供了对主存的存取并支持最大32GB的主存;可编程中断控制器PIC,支持OpenPIC体系的逻辑可编程结构,支持外部、信息、部中断和全局高分辨率时钟;增强型串行外设接口eSPI;四通道DMA控制器;两个I2C控制器;双通用异步接收器/发送器DUART;增强型本地总线控制器eLBC;16个可独立配置的通用I/O信号;低本钱PCB封装引脚 MPC8536E datasheet.PowerQUICC III Integrated Processor Reference Manual,2009.5。控制器的功能主要是

43、初始化并识别采集卡,获取采集卡上的资源,控制采集卡上DDR的数据和控制器上核空间的数据进展交换,并可以将该数据与应用程序进展交换。采集到数据可以在控制器的控制下,由用户程序通过千兆网络接口传输到远端或者将数据通过SATA接口传输到大容量硬盘中。这些数据是原始的数据,可以对这些数据作相应处理和分析。该控制器搭建起来的硬件结构图如图3.2所示。图3.2 MPC85xx主控制器框图3.1.3 PCIE高速数据采集卡我们自行设计了一款高速数据采集卡,其框图如图3.1的虚框所示,它主要由FPGA、DDR II、ADC、PCI Express接口组成。在FPGA的控制下,ADC对模拟通道送来的数据进展采集

44、,并存在DDR中,同时将其由PCIE接口传到嵌入式控制器中。它的控制器为FPGA,可以配置PCIE接口存放器、基地址存放器、存空间,作为主总线DMA的控制器以实现高速数据采集。DDRII作为缓存设备为快速传输提供了大容量的存储空间,它利用FPGA的IP Core技术实现。3.2 嵌入式Linux开发环境的建立要在本系统的嵌入式控制器上进展底层开发,必须建立嵌入式Linux开发环境,因为嵌入式设备的硬、软件资源不支持在目标板直接进展开发,需要在主机上建立嵌入式开发的软件环境,并通过相应的方式将需要的文件加载到目标板上。开发环境的搭建就是在一定的主机上这个主机要指明它的CPU和操作系统构建相应的开

45、发工具。一般来讲,x86体系结构的电脑是我们常用作开发使用的主机,而基于Linux的各种发行版本的操作系统作为主机的操作系统。嵌入式Linux开发工具包含了目标板的开发所具备的所有工具,同时应当按照主机的环境来集成这些工具。在上面我们讲到,主机一般是x86体系架构,而嵌入式目标板一般都是RISC结构的非x86平台。所谓穿插开发,就是指在一种型号的处理器上编译生成可在另一型号处理器上运行的代码。穿插开发优势巨大,具体表达如下:1、在现今,我们所用的电脑一般都具有强大的功能,它的CPU运算速度快、处理能力强、一般都具有功能的强大操作系统予以支撑,这些优点是嵌入式目标板不具有的,这些性能特点使得在主

46、机上开发比在嵌入式目标板下开发更快、更高效;2、由于RISC体系结构处理器的特点,尽管可执行代码的运行速度很快,但其源程序的编译往往需要花费较长时间,如果直接在目标处理器上进展,尤其在较为低档的处理器上,仅编译速度就无法承受 宋国军.MPC8xx嵌入式Linux底层开发应用研究D.XX:XX大学控制理论与控制工程,2004.11。3.2.1 LTIB开发工具LTIB(Linux Target Image Builder)是用来开发和移植包括Powerpc、X86、SH等诸多嵌入式目标平台的板级支撑包的一个工具。LTIB可以用来管理、配置、扩展和创立Linux软件元素,以使创立Linux核目标镜

47、像、根文件系统更加容易。LTIB的主要特征包括:遵循GPL的开源;能够在大多数流行Linux主机版本上运行;具有Curse配置界面的命令行接口;支持多目标体系结构;根文件系统包设置;支持bootloader和核镜像制作;配置时工具链可选;支持glibc和uclibc;RAMDISK和JFFS2 flash镜像创立支持等。本文使用的是由飞思卡尔公司提供的MPC8536RDK-ltib。3.2.2 开发环境建立底层开发的整体环境为嵌入式穿插开发调试环境,如图3.3所示 MontaVistaMontaVista Linux Professional Edition Userls Guide Vars

48、iort3.0,2003.12。图3.3 穿插开发环境图中我们看到主机端处理器是奔腾酷睿双核,在主机上安装的Linux操作系统是ubuntu11.04,并在此系统上安装有飞思卡尔开发工具MPC8536RDK-ltib工具。目标机是MPC85XX系列板,在该板上移植的是linux-rc5核。主机与目标机之间通过串口和局域网连接。根据图3.3所示,开发环境的建立应该是依次在主机上安装ubuntu和飞思卡尔开发工具MPC8536RDK-ltib,以下是开发环境的建立步骤:1、ubuntu的安装。本文是在C盘装有windows xp的主机上,在D盘预留20G空间,采用WUBI安装到系统的D盘。安装完成

49、后,应当搭建编译环境,安装相应的工具gcc、build-essential、zlib1g-dev、libncurses-dev、m4、bison、rpm等。2、MPC8536RDK-ltib的安装。在Freescale官网下载LTIB的BSP包,得到MPC8536RDK-LTIB.iso镜像,根据用户手册,在ubuntu环境下运行LTIB的安装程序并编译LTIB。命令步骤如下:1用超级用户把ISO文件映射到ununtu系统中$mount o loop MPC8536RDK-ltib.iso /mnt2在非超级用户下安装LTIB$ /mnt/install在安装过程中会提示安装的目录,本系统安装

50、在/home/bobo下,安装完成之后可以对LTIB进展配置配置完成就可以生成必要的镜像与文件系统,配置界面如图3.4所示。图3.4 LTIB配置界面3、穿插开发环境的搭建。Ubuntu安装成功后,应在其上搭建与目标机之间通信的效劳,如TFTP、NFS、minicom等,建立穿插开发环境。在这里,由于在系统驱动的开发过程中,为了防止频繁的向目标板传输驱动程序,我们在开发的时候采用了NFS效劳启动目标板的方式,以是开发更方便,NFS搭建如下:1在根文件下建立tftpboot目录,将其权限改为777,rootfs文件到tftpboot下,并在电脑效劳器端下载并安装NFS$ sudo ln s /h

51、ome/bobo/ltib/rootfs /tftpboot/rootfs $ sudo apt-get install nfs-kernel-server portmap2配置共享文件,在/etc/exports文件最后添加/tftpboot/rootfs/ *(rw,no_root_squash,async)$ gedit /etc/exports3重启NFS效劳$sudo /etc/init.d/portmap restart$sudo /etc/init.d/nfs-kernel-server restart穿插编译环境是否搭建成功,应该进展相应的测试,如可编译hello.c,检查编译

52、器是否正常,可在终端输入:powerpc-none-linux-gnuspe-gcc c o hello.o hello.c 如果编译通过,那么成功。而对于主机与目标板间的通信效劳需要连接目标板测试。3.3 本章小结本章主要介绍了高速数据采集嵌入式系统的硬件原理结构和嵌入式穿插编译环境的建立。首先简要介绍了在系统硬件总体原理结构,并对嵌入式主控制器的性能与其主要特征和PCIE数据采集卡做了详细介绍;然后对本项目的嵌入式的穿插编译环境的建立做了详尽的阐述,包括主机操作系统的安装,LTIB工具的安装与编译,以与其它必要工具的搭建。第四章 Linux系统移植在第二章中已经表达了本项目嵌入式开发的任务

53、和步骤,首先完成穿插编译环境搭建,然后安装嵌入式Linux系统到目标板,嵌入式Linux系统的移植包括系统引导启动程序U-boot的移植、Linux核移植以与根文件系统的制作。4.1 U-Boot移植4.1.1 U-Boot简介Bootloader是嵌入式电路板启动时的硬件初始化程序,它我系统核引导准备环境。如通用计算机的启动程序不同,它依赖于具体的嵌入式硬件电路,不存在一劳永逸的bootloader。U-boot,是一种现在用的最多的bootloader,它的全名是universal bootloader,也就我们常说的通用bootloader :/ 。它是一种广泛支持诸如linux引导和管

54、理启动镜像的多平台、开源、通用的引导程序。它的名字“通用有两层含义 韦东山.嵌入式Linux应用开发完全手册M.:人民邮电,2008.8。第一个含义,可以引导多种操作系统,最常用的包括linux、vmworks等。另外一层含义那么是它支持多种架构的CPU,它支持PowerPC,MIPS,x86,ARM,NIOS,XScale等。正是由于U-Boot具有如此广泛的通用性,其源代码的容量已超过了一般Boot Loader的大小,本文使用的u-boot-200910-cd77dd10非压缩源码为53.8MB。相应,U-Boot的映像文件u-boot.bin也扩大到了512KB。U-Boot有如下特点

55、:1、开放源码;2、支持多种处理器系列;3、支持多个操作系统等 朱小远,谢龙汉.Linux嵌入式系统开发M.:电子工业,2012.1。4.1.2 U-Boot移植要点所谓移植,其核心就是找出现有的资源与所期望的目标之间在一些关键细节上的区别,然后在现有资源的根底上,变更这些区别之处,使之不断向期望的目标接近。U-Boot支持的CPU和操作系统繁多,且每块电路板的外设搭配不一样,导致了U-Boot的移植有一定的难度,但是其移植的总体方法是一致的。结合项目所用到的目标板,以下给出了U-Boot具体的移植步骤与其方法:1、获得发布的最新版本U-Boot源码。可以在U-boot官网下载还可以通过参考板

56、的供给商获取;2研究资料。在开发前,应当研究相关资料,以期在开发前勾勒出开发策略,同时在开发过程中出现的问题根本都能找到解决的方式。在U-boot的源码下,有很多说明文档,特别是关于U-boot的说明文档,它给出了初学者如何看懂u-boot配置信息,如何配置U-boot,如何编译的详尽的容;再者官方的DENX u-boot和核指导手册DULG :/ denx.de/twiki/bin/view/DULG/Manual,当你遇到问题时,它可能成为你得力的助手。3确定参考板是移植工作的重中之重。根据目标板上搭载的的处理器、FLASH、SDRAM的情况,找一款与之尽可能相似的参考板,移植该参考板的U

57、-Boot到目标板上。4修改相应文件根据目标板搭载的硬件配置情况,对参考板的相应参数进展修改。移植U-boot应当采用由简到繁的步骤,先以能够正常启动系统为先决条件,然后逐渐添加设备支持,以到达完成整体目标的效果。要能正常启动系统,应当修改以下文件 X刚,赵剑川.Linux系统移植M.:清华大学,2011.1:1目标板的配置头文件,在U-boot的include/configs目录下,我们的参考板头文件为MPC85xxS.h文件,在该文件中,设置了引导的方式有NAND FLASH、RAMBOOT等方式与其相应的基地址;设置了处理器与其他设备的相关参数;设置了大多数的存放器等。2硬件的驱动程序文

58、件文件,如board/freescale/mpc85xxS.c,它是一些硬件的驱动程序,例如PCI、PCIE、SATA、网卡等,并对目标板进展初始化;3其他相关文件,主要是硬件配置与其参数不一致时,应该添加或修改其相关程序,如flash,DDR等。5、串口调试。串口在调试过程中是非常重要的设备,通过串口输出了重要的信息,只有根据这些信息我们才能知道U-Boot是否移植成功,才能找出问题之所在。串口有没有打印信息,跟两个因素密切相关:串口驱动和装载引导程序的设备的存放器设置。任何一个因素出错,串口将无法打印信息。4.1.3 系统嵌入式控制器的U-Boot移植前面已经给出了移植的通用具体过程,就本

59、项目中的U-boot移植而言,其小异,在次设计采用的是将U-boot下载到SD卡上引导核启动。系统启动的基地址为0xf8f80000,目标板属于高位启动类型。它也是目标板U-Boot映像文件u-boot.bin在SD中烧写的具体位置。项目采用MPC85xxS作为参考板,参考板本身支持的设备众多,功能强大。我们所要的功能参考板上已经具备,而参考板本身支持的设备已经超出项目的要求,所以仅需对参考板的U-boot的配置进展裁剪即可到达参考版的要求。移植流程如下:1、修改Makefile,添加config用ltib解压U-boot得到的u-boot-200910-cd77dd10文件,将之从ltib安

60、装目录/rpm/BUILD目录下拷贝出来放/home/bobo目录下:$./ltib -p prep m u-boot修改根下的Makefile,参加对目标板支持的相应信息,增加信息如下:MPC85xxK_config : unconfig$(MKCONFIG) -a MPC85xxK ppc mpc85xx mpc85xxK freescale上一行中的参数含义为:新建工程MPC85xxK,系统体系架构为ppc,cpu为mpc85xx,板级初始化代码在文件夹mpc8536xxK。2、添加板级初始化文件夹在board/freescale目录下新建mpc85xxK文件夹,将mpc85xxS文件夹

61、的容拷贝到新建文件夹下,可以充分利用mpc85xxS里的源代码作为参考代码进展开发。3、如果有设备参加,应当在相应目录下添加Makefile文件,并对参加的文件添加编译项,可以直接拷贝mpc85xxS的Makefile。在include/configs目录下添加mpc85xxK.h文件,该文件可以直接将参考板的配置文件mpc85xxS.h拷贝过来,由于参考支持nand flash和RAMBOOT等启动,我们使用SD启动,启动地址为0xf8f80000,因此做如下配置:#ifdef CONFIG_MK_SDCARD#define CONFIG_RAMBOOT_SDCARD 1#define CONFIG_RAMBOOT_TEXT_BASE 0xf8f80000#endif添加对目标板的支持:#define CONFIG_MPC85xxK 14、编译U-boot移植完成以后对U-boot进展编译,在第二章在安装了开发工具ltib,编译前应该设置环境变量,既设置穿插工具链的路径、名称以与体系结构。设置完成环境变量即可编译生成镜像文件U-boot.bin,具体步骤如下:-3/powerpc-none-linux-gnuspe/bin :/opt/freescale/ltib/usr/bin $

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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