【正文】
安裝嵌入式Linux系統(tǒng)到目標(biāo)板,嵌入式Linux系統(tǒng)的移植包括系統(tǒng)引導(dǎo)啟動程序Uboot的移植、Linux內(nèi)核移植以及根文件系統(tǒng)的制作。 本章小結(jié)本章主要介紹了高速數(shù)據(jù)采集嵌入式系統(tǒng)的硬件原理結(jié)構(gòu)和嵌入式交叉編譯環(huán)境的建立。在這里,由于在系統(tǒng)驅(qū)動的開發(fā)過程中,為了避免頻繁的向目標(biāo)板傳輸驅(qū)動程序,我們在開發(fā)的時候采用了NFS服務(wù)啟動目標(biāo)板的方式,以是開發(fā)更方便,NFS搭建如下:(1)在根文件下建立tftpboot目錄,將其權(quán)限改為777,鏈接rootfs文件到tftpboot下,并在電腦服務(wù)器端下載并安裝NFS$ sudo ln –s /home/bobo/ltib/rootfs /tftpboot/rootfs $ sudo aptget install nfskernelserver portmap(2)配置共享文件,在/etc/exports文件最后添加/tftpboot/rootfs/ *(rw,no_root_squash,async)$ gedit /etc/exports(3)重啟NFS服務(wù)$sudo /etc/$sudo /etc/交叉編譯環(huán)境是否搭建成功,應(yīng)該進(jìn)行相應(yīng)的測試,檢查編譯器是否正常,可在終端輸入:powerpcnonelinuxgnuspegcc –c –o 如果編譯通過,則成功。 LTIB配置界面交叉開發(fā)環(huán)境的搭建。在Freescale官網(wǎng)下載LTIB的BSP包,根據(jù)用戶手冊,在ubuntu環(huán)境下運(yùn)行LTIB的安裝程序并編譯LTIB。安裝完成后,應(yīng)當(dāng)搭建編譯環(huán)境,安裝相應(yīng)的工具gcc、buildessential、zlib1gdev、libncursesdev、mbison、rpm等。,開發(fā)環(huán)境的建立應(yīng)該是依次在主機(jī)上安裝ubuntu和飛思卡爾開發(fā)工具M(jìn)PC8536RDKltib,以下是開發(fā)環(huán)境的建立步驟:ubuntu的安裝。目標(biāo)機(jī)是MPC85XX系列板。 開發(fā)環(huán)境建立底層開發(fā)的整體環(huán)境為嵌入式交叉開發(fā)調(diào)試環(huán)境,[[] MontaVista.MontaVista Linux Professional Edition Userls Guide ,]。LTIB的主要特征包括:遵循GPL的開源;能夠在大多數(shù)流行Linux主機(jī)版本上運(yùn)行;具有Curse配置界面的命令行接口;支持多目標(biāo)體系結(jié)構(gòu);根文件系統(tǒng)包設(shè)置;支持bootloader和內(nèi)核鏡像制作;配置時工具鏈可選;支持glibc和uclibc;RAMDISK和JFFS2 flash鏡像創(chuàng)建支持等。 LTIB開發(fā)工具LTIB(Linux Target Image Builder)是用來開發(fā)和移植包括Powerpc、X8SH等諸多嵌入式目標(biāo)平臺的板級支撐包的一個工具。所謂交叉開發(fā),就是指在一種型號的處理器上編譯生成可在另一型號處理器上運(yùn)行的代碼。嵌入式Linux開發(fā)工具包含了目標(biāo)板的開發(fā)所具備的所有工具,同時應(yīng)當(dāng)按照主機(jī)的環(huán)境來集成這些工具。開發(fā)環(huán)境的搭建就是在一定的主機(jī)上(這個主機(jī)要指明它的CPU和操作系統(tǒng))構(gòu)建相應(yīng)的開發(fā)工具。DDRII作為緩存設(shè)備為快速傳輸提供了大容量的存儲空間,它利用FPGA的IP Core技術(shù)實現(xiàn)。在FPGA的控制下,ADC對模擬通道送來的數(shù)據(jù)進(jìn)行采集,并存在DDR中,同時將其由PCIE接口傳到嵌入式控制器中。這些數(shù)據(jù)是原始的數(shù)據(jù),可以對這些數(shù)據(jù)作相應(yīng)處理和分析??刂破鞯墓δ苤饕浅跏蓟⒆R別采集卡,獲取采集卡上的資源,控制采集卡上DDR的數(shù)據(jù)和控制器上內(nèi)核空間內(nèi)的數(shù)據(jù)進(jìn)行交換,并可以將該數(shù)據(jù)與應(yīng)用程序進(jìn)行交換。它具有如下特征:一個32位高性能BookE增強(qiáng)型e500v2核,而且還具有36位物理尋址的能力;一個具有ECC能力的512K字節(jié)的L2高速緩存,能XOR加速的SEC(Integrated security engine);先進(jìn)的電源管理控制器,動態(tài)的功耗管理方式使功耗降低;、設(shè)備雙角色控制器;兩個具有TCP/IP加速和歸類能力的10/100/1000兆增強(qiáng)型三速以太網(wǎng)控制器,并具有通過SerDes接口支持串行GMII接口和對IEEE ;三個使用SerDes接口的PCI Express174。它的CPU頻率為1GHZ,內(nèi)存大小為512MB。 高速數(shù)據(jù)采集系統(tǒng)硬件框架 嵌入式控制器及其功能本論文所述的嵌入式主控制器是基于飛思卡爾的MPC8536E PowerQUICC控制器。 系統(tǒng)硬件 系統(tǒng)硬件總體結(jié)構(gòu),它由對輸入信號進(jìn)行調(diào)理的模擬前端、對數(shù)據(jù)進(jìn)行采集和傳輸?shù)腜CIE高速數(shù)據(jù)采集卡以及對數(shù)據(jù)進(jìn)行接受和處理的嵌入式控制器三個部分組成。采用交叉編譯的方式編譯內(nèi)核、uboot以及驅(qū)動程序,開發(fā)工具是飛思卡爾的MPC85xxltib。根據(jù)項目我們選擇了powerpc體系結(jié)構(gòu)的MPC85xx系列處理器作為主控。還簡單講解了數(shù)據(jù)采集卡驅(qū)動的開發(fā)總體流程。PCIE驅(qū)動的功能和性能指標(biāo)由測試程序完成。綜合以上兩點,PCIE數(shù)據(jù)采集卡驅(qū)動的核心工作——數(shù)據(jù)的傳輸采用DMA和中斷配合的方式來實現(xiàn),這是編程中的重點。在PCIE數(shù)據(jù)采集系統(tǒng)中,數(shù)據(jù)傳輸?shù)乃俣瓤?、?shù)據(jù)量大的兩大特點,要求采用一種即高效又不需要長期占有CPU的傳輸方式,無疑DMA(直接內(nèi)存訪問)的方式是最合理的。對于數(shù)據(jù)采集卡來說,這就要求CPU應(yīng)當(dāng)按照采集卡的需求作出響應(yīng)。根文件系統(tǒng)采用Busybox工具制作。根文件系統(tǒng)是嵌入式系統(tǒng)的重要部分,內(nèi)核啟動時將首先掛載根文件系統(tǒng)。內(nèi)核應(yīng)該根據(jù)硬件控制器的配置情況做相應(yīng)的添加代碼、配置選擇。Linux系統(tǒng)的移植包括三個部分:(1) 系統(tǒng)引導(dǎo)程序的移植UBoot是Linux系統(tǒng)中一種功能強(qiáng)大、使用最多的內(nèi)核引導(dǎo)程序,它將為內(nèi)系統(tǒng)內(nèi)核的啟動設(shè)置軟硬件環(huán)境、建立內(nèi)存映射圖,并將內(nèi)核加載到內(nèi)存中指定的地址,以使內(nèi)核啟動。在主機(jī)環(huán)境中,還應(yīng)當(dāng)安裝能夠?qū)崿F(xiàn)主機(jī)與目標(biāo)控制器的數(shù)據(jù)傳輸與共享的服務(wù),如TFTP、NFS服務(wù)等。在本文中使用了集成的開發(fā)工具——LTIB工具。因此,一般都事先在主機(jī)上安裝交叉編譯環(huán)境,也就是在主機(jī)上編譯的程序可以在控制器上運(yùn)行。 驅(qū)動開發(fā)的流程主機(jī)上建立叉編譯環(huán)境硬件部分已經(jīng)調(diào)試無誤后,應(yīng)當(dāng)在主控制器中安裝嵌入式Linux操作系統(tǒng)來管理資源。而且,一般嵌入式控制器的操作系統(tǒng)都需要根據(jù)控制器的情況來移植。是它本身具有諸多與我們開發(fā)目標(biāo)板相符合的優(yōu)點,給我們的開發(fā)帶來了極大的方便。 PCI Express鏈路與帶寬PCI Express鏈路數(shù)X1X2X4X8X12X16X32傳輸帶寬(Gb/s)有效帶寬(Gb/s)(3)嵌入式操作系統(tǒng)選取Linux的開發(fā)現(xiàn)在已經(jīng)成為免費、自由源碼軟件合作最流行的例子:基本的源碼可以被遵循GNU GPL的任何人以商業(yè)或非商業(yè)目的使用、修改和發(fā)布。,單通道的PCIe可以提供全雙工500MBps的帶寬,如果采用雙通道x2,其帶寬可以達(dá)到1個Ghz[[] Express體系結(jié)構(gòu)導(dǎo)讀[M].北京:機(jī)械工業(yè)出版社,],而PCIe總線提供了xxx1x1x32模式。PCIe標(biāo)準(zhǔn)定義了插槽和連接器的多鏈路寬度:x1,x4,x8,x16,x32。兩個設(shè)備之間的PCIe鏈路可以是1到32個通道的任何一個。相較下來,PCI總線的速度僅為一半。串行總線不會出現(xiàn)時序偏差,因為在每個通道的每個方向上,只有一個差分信號。高速串行總線的提出,為解決并行總線固有的缺陷找到了出路,其中最出色之一的是PCI Express。PCI總線雖然在并行總線中優(yōu)勢巨大,但是它卻無法跨越并行總線的固有缺陷:可互聯(lián)的設(shè)備相對不多、比較難于擴(kuò)展、并行總線的個信號線之間的干擾相對較大以致使之無法正常工作;連接的設(shè)備過多將會導(dǎo)致帶寬的急劇變小而導(dǎo)致速度下降。PCI總線在1992年發(fā)布,因其結(jié)構(gòu)簡單、成本低、設(shè)計簡單等眾多優(yōu)點,在過去的幾十年中取得了巨大的成功,在并行總線中,在今天看來還具有很高的先進(jìn)性,但是現(xiàn)在看來他有很多地方顯得力不從心。高速數(shù)據(jù)采集系統(tǒng)的數(shù)吉赫茲的采樣率的特性決定總線的帶寬高、抗干擾能力強(qiáng),經(jīng)過比較我們認(rèn)為PCI Express是合適的。即便是PowerPC的通信處理能力再強(qiáng)、內(nèi)存的處理速度再高,如果作為運(yùn)輸通路的總線負(fù)載能力弱,同樣會使數(shù)據(jù)交流緩慢,而起不到作用。正是由于MPC85xx的上述有很好的契合了高速數(shù)據(jù)采集系統(tǒng)控制器的要求,因此我們選擇它作為主控。在PowerPC芯片上一般都集成了PCIE、DDR、SATA控制器、千兆以太網(wǎng)等控制器。(1)控制器選取嵌入式硬件控制器的種類繁多,它不僅體系結(jié)構(gòu)眾多,如主流的x8ARM、PowerPC等,而且很多生產(chǎn)廠商提供相同的體系結(jié)構(gòu)的處理器,供開發(fā)人員選擇的余地很大。 高速數(shù)據(jù)采集嵌入式系統(tǒng)的方案 方案中各部件選取高速數(shù)據(jù)采集系統(tǒng)方案的選擇是基于它的數(shù)據(jù)傳輸速度快、傳輸數(shù)據(jù)量大的特性。PCIE數(shù)據(jù)采集卡通過PCIE接口連接到嵌入式控制器上,嵌入式控制安裝Linux操作系統(tǒng)并編寫PCIE采集卡驅(qū)動程序。我們看到,高速數(shù)據(jù)采集系統(tǒng)由硬件層、系統(tǒng)層和應(yīng)用層構(gòu)成。從而以簡化開發(fā)流程,節(jié)約時間,降低開發(fā)成本。應(yīng)用中對系統(tǒng)功能、性能的要求成為系統(tǒng)設(shè)計的目標(biāo)。(6)PCIE高速數(shù)據(jù)采集卡驅(qū)動開發(fā)為PCIE高速數(shù)據(jù)采集卡開發(fā)了驅(qū)動程序,并對其調(diào)試及對設(shè)計的預(yù)期功能和性能進(jìn)行測試。安裝了Linux操作系統(tǒng),本文簡單介紹了Linux及其優(yōu)缺點,然后詳細(xì)的闡述了Linux內(nèi)核源碼結(jié)構(gòu)及其啟動過程,并給出了Linux內(nèi)核移植的具體方法和步驟;本文還對Linux文件系統(tǒng)做了概述,在此基礎(chǔ)上,對Linux根文件系統(tǒng)制作的方法做了介紹。UBoot是Linux的啟動引導(dǎo)程序,在系統(tǒng)移植之前,先行移植UBoot。還簡單講解了數(shù)據(jù)采集卡驅(qū)動的開發(fā)流程。本課題的主要工作如下:(1)嵌入式數(shù)據(jù)采集系統(tǒng)的發(fā)展和需求分析本文首先從嵌入式數(shù)據(jù)采集系統(tǒng)的發(fā)展現(xiàn)狀出發(fā),分析了高速數(shù)據(jù)采集系統(tǒng)研發(fā)的必要性和實用性。而操作系統(tǒng)要識別采集卡并接受來自它的數(shù)據(jù),應(yīng)當(dāng)編寫采集卡的Linux驅(qū)動程序,在驅(qū)動程序中實現(xiàn)系統(tǒng)對采集卡初始化、提供設(shè)備與用戶程序的接口、實現(xiàn)與控制器的數(shù)據(jù)交互。基于這些優(yōu)點,本課題在采集系統(tǒng)的嵌入式控制器上移植了Linux操作系統(tǒng)。傳輸?shù)倪^程中,用到了資源豐富、功能強(qiáng)大的嵌入式控制器,嵌入式控制器上需要安裝操作系統(tǒng)來管理控制器上的資源。所以,該系統(tǒng)具有較為強(qiáng)大的實用價值。并在主控制器上安裝Linux操作系統(tǒng),編寫PCIE數(shù)據(jù)采集卡驅(qū)動程序,以實現(xiàn)高速數(shù)據(jù)采集?;谏鲜鲂枨?,本文搭建了一種高速數(shù)據(jù)采集的軟硬件系統(tǒng)。在高速信號經(jīng)過模擬通道的調(diào)理,通過采集卡轉(zhuǎn)換為數(shù)字信號并經(jīng)由相應(yīng)的傳輸途徑傳入控制器中,再根據(jù)處理需要將數(shù)據(jù)通過網(wǎng)絡(luò)發(fā)送到相應(yīng)處理端做處理或者通過高速高容量存儲設(shè)備存儲起來。然而數(shù)字技術(shù)發(fā)展迅速,系統(tǒng)中信號的帶寬和動態(tài)范圍的不斷增大,不僅對AD的采樣率和帶寬的要求變高,而且對采集到的信號的傳輸途中的各個功能部件的要求愈來愈高,如數(shù)據(jù)處理速度、內(nèi)存資源等方面不在滿足需求。 課題研究意義數(shù)據(jù)采集系統(tǒng)是一個用來將模擬信號轉(zhuǎn)換成數(shù)字信號并發(fā)送到相應(yīng)的信號處理系統(tǒng)的典型嵌入式系統(tǒng)。按照中國軟件業(yè)的比重來劃分,嵌入式軟件的占比在中國軟件業(yè)中超過的30%。據(jù)預(yù)測,隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)張和以ARM為代表的低價處理器的出現(xiàn)和持續(xù)更新,嵌入式將如影隨形伴隨在大眾的身邊。現(xiàn)代人類對智能家電的需求,是嵌入式能夠一展身手,同時推動了自身的大步前進(jìn)。嵌入式行業(yè)發(fā)展近幾年,產(chǎn)品日臻完善,并在全世界各行業(yè)得到廣泛應(yīng)用。有很多如Linux、Vxworks、Wince、Uc/OSII 等系統(tǒng)都屬于嵌入式操作系統(tǒng)。板級支撐包主要是做一些對硬件進(jìn)行初始化及其配置、以及數(shù)據(jù)的輸入、出等相應(yīng)工作。一個嵌入式硬件系統(tǒng)至少需要一個嵌入式處理器,這是嵌入式系統(tǒng)的心臟;能夠?qū)?shù)據(jù)進(jìn)行存取的存儲器,例如作為內(nèi)存的SDRAM、安裝文件系統(tǒng)的FLASH等等;還有相應(yīng)的接口,如串口、網(wǎng)口、USB口等等;再添加系統(tǒng)供電的電源系統(tǒng)、時鐘系統(tǒng)和數(shù)據(jù)存取的存儲器既可以得到一個嵌入式控制板。嵌入式系統(tǒng)的功能比較少,相對來說比較簡單,因此大小和成本受到了限制。就是系統(tǒng)的應(yīng)用軟件和系統(tǒng)的硬件融為一體。由于嵌入式計算機(jī)主要用于專門領(lǐng)域,它的硬件的配置各不相同,不像通用計算機(jī)那樣搭載的外設(shè)及其接口相差無幾,它是根據(jù)不同的需求來訂制。關(guān)鍵詞:嵌入式系統(tǒng)、Linux內(nèi)核、PCI Express、驅(qū)動程序、DMAIABSTRACTWith the continuous development of information technology,demands for highend embedded systems continue to makes itself be the focus of attention in the embedded domain owing to its enormous research and development of data gathering system as the background and using MPC85xx to be processor,this 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 with demand,this thesis has given a solution of high speed data acquisition embedded system,and made the brief explanation to selection o