亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于POWERPC+FPGA的無線系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2014-04-29 00:00:00楊柏松

        摘 要:在軍事、搶險(xiǎn)、應(yīng)急通信等復(fù)雜環(huán)境中對(duì)無線系統(tǒng)需求日益增多以及多樣化,本文提出一種基于PowerPC+FPGA的無線系統(tǒng)來應(yīng)對(duì)無線系統(tǒng)需求和多樣化的需求,闡述了硬件設(shè)計(jì)與現(xiàn)實(shí),引導(dǎo)程序uboot、嵌入式操作系統(tǒng)linux、設(shè)備樹如何對(duì)新平臺(tái)支持與實(shí)現(xiàn),以及FPGA驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果顯示,本文設(shè)計(jì)的無線系統(tǒng)硬件設(shè)計(jì)合理,uboot和linux工作穩(wěn)定,F(xiàn)PGA驅(qū)動(dòng)設(shè)計(jì)合理高效,實(shí)現(xiàn)無線系統(tǒng)之間點(diǎn)對(duì)點(diǎn)的通信,滿足設(shè)計(jì)要求。

        關(guān)鍵詞:PowerPC;FPGA;CompactPCI;嵌入式操作系統(tǒng);PCI;PCIe;eLBC;eTSEC

        中圖分類號(hào):TP391.41

        在軍事、搶險(xiǎn)、應(yīng)急通信等復(fù)雜環(huán)境中對(duì)無線通信系統(tǒng)需求日益增多,同時(shí)現(xiàn)有的通信網(wǎng)絡(luò)結(jié)構(gòu)又無法滿足對(duì)這些復(fù)雜環(huán)境下的移動(dòng)性、抗毀性、魯棒性、易構(gòu)性等要求[1]。隨著嵌入式處理器設(shè)計(jì)和工藝的發(fā)展,嵌入式處理器的性能越來越高,基于嵌入式的無線系統(tǒng)可以很好的滿足這種復(fù)雜環(huán)境下的應(yīng)用,同時(shí)也能滿足體積和功耗限制的要求。本文選擇用PowerPC和FPGA來實(shí)現(xiàn)無線通信系統(tǒng)的設(shè)計(jì);PowerPC實(shí)現(xiàn)對(duì)操作系統(tǒng)的支持,F(xiàn)PGA實(shí)現(xiàn)了無線通信的鏈路層和物理層,方便無線通信鏈路層和物理層的更新,應(yīng)對(duì)通信系統(tǒng)多樣化的需求,PowerPC的CPU和FPGA都有工業(yè)級(jí)的芯片,能很好滿足復(fù)雜工作環(huán)境下的要求。

        本文介紹基于PowerPC+FPGA的無線系統(tǒng)的硬件設(shè)計(jì)與現(xiàn)實(shí),描述引導(dǎo)程序、嵌入式操作系統(tǒng)、設(shè)備樹如何對(duì)新平臺(tái)的支持與實(shí)現(xiàn),以及FPGA驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)。

        1 設(shè)計(jì)硬件結(jié)構(gòu)

        基于FPGA+FPGA的無線系統(tǒng)可以支持一路無線信號(hào)收發(fā)也可以支持多路無線信號(hào)收發(fā),為了兼容性和互換性,以及項(xiàng)目整體設(shè)計(jì)和結(jié)構(gòu)要求,設(shè)計(jì)時(shí)把CPU+FPGA放在一個(gè)板卡:網(wǎng)絡(luò)基帶板,ADC、DAC和射頻部分放在一個(gè)板卡:射頻板,射頻板實(shí)現(xiàn)了一路無線信號(hào)的接收和發(fā)射;網(wǎng)絡(luò)基帶板和射頻板都做成6U CompactPCI標(biāo)準(zhǔn),通過背板連接。網(wǎng)絡(luò)基帶板主要由CPU核心模塊、FPGA模塊、系統(tǒng)電源、復(fù)位及上電配置電路、系統(tǒng)時(shí)鐘電路組成如圖1。其中CPU核心模塊電路主要包括CPU處理器、FLASH存儲(chǔ)器、DDR2 SDRAM存儲(chǔ)器、RS232串口、JTAG接口、兩個(gè)千兆以太網(wǎng)接口、三個(gè)USB2.0接口、一個(gè)MiniPCIe接口、一個(gè)PCI接口等;FPGA部分主要包括DDR2 SDRAM、SPI FLASH、RS232、LVDS和CMOS信號(hào)接口。射頻板主要由ADC、DAC、正交調(diào)制/解調(diào)電路、混頻器、頻率綜合器、濾波器、功率放大器、LNA以及天線組成,目前實(shí)現(xiàn)了一路無線信號(hào)發(fā)射和一路無線信號(hào)接收功能。本文主要介紹網(wǎng)絡(luò)基帶板的設(shè)計(jì)。

        圖1 無線系統(tǒng)網(wǎng)絡(luò)基帶硬件系統(tǒng)結(jié)構(gòu)圖

        1.1 設(shè)計(jì)CPU模塊

        CPU選擇freescale的MPC8536E處理器,使用兩片16bit數(shù)據(jù)寬度NOR Flash(每片128MB),其中一片F(xiàn)lash存儲(chǔ)引導(dǎo)程序、操作系統(tǒng)和文件系統(tǒng),一片F(xiàn)lash存儲(chǔ)應(yīng)用軟件和日志文件,保證系統(tǒng)軟件和應(yīng)用軟件的隔離,防止系統(tǒng)軟件被迫壞;使用四片16bit DDR2 SDRAM組成64位的數(shù)據(jù)寬度實(shí)現(xiàn)512MB內(nèi)存;CPU的UART控制器連接RS232 Transceiver實(shí)現(xiàn)一個(gè)RS232接口,CPU的兩個(gè)eTSEC以太網(wǎng)控制器分別連接以太網(wǎng)PHY芯片實(shí)現(xiàn)兩個(gè)千兆以太網(wǎng)接口,CPU的PCI控制器直接連接到CompactPCI的J1連接器上實(shí)現(xiàn)32位PCI接口,PCI接口根據(jù)連接到背板的槽位來決定工作在host模式還是device模式,CPU的PCIe控制器直接連接miniPCIe連接器實(shí)現(xiàn)一個(gè)PCIe接口。CPU的三個(gè)USB控制器分別連接USB PHY芯片實(shí)現(xiàn)三個(gè)USB host接口。CPU模塊實(shí)現(xiàn)操作系統(tǒng)的支持和對(duì)無線信號(hào)的收發(fā)控制、無線網(wǎng)絡(luò)和以太網(wǎng)絡(luò)路由轉(zhuǎn)發(fā)或者網(wǎng)橋等功能

        1.2 設(shè)計(jì)FPGA模塊

        FPGA選擇xilinx 的XC5VLX50T,使用一片SPI flash(32Mb)提供FPGA配置文件的存儲(chǔ)、使用四片16bit DDR2 SDRAM組成64位數(shù)據(jù)寬度存儲(chǔ)器(512MB),提供CMOS和LVDS信號(hào)接口和一路RS232接口與射頻板進(jìn)行通信。FPGA模塊實(shí)現(xiàn)鏈路層、發(fā)射機(jī)和接收機(jī)物理層。發(fā)射機(jī)物理層主要完成FEC編碼、交織、加擾、脈沖分組、同步插入、頻率分配、GMSK調(diào)制、脈沖成型等功能;接收機(jī)物理層主要完成同步檢測(cè)、時(shí)鐘頻率回復(fù)、多普勒估計(jì)與消除、GMSK解調(diào)、解擾、解交織、FEC解碼等功能[2]。

        1.3 設(shè)計(jì)電源、復(fù)位及上電配置電路

        系統(tǒng)電源取自CompactPCI接口提供的5V和3.3V,根據(jù)芯片電壓、功耗、上電順序要求,選擇TPS54910、TPS51116、TPS74401來進(jìn)行電源變換,提供的網(wǎng)絡(luò)基帶板芯片所需電源,使用電源芯片的使能ENA信號(hào)、電源正確輸出指示信號(hào)PWRGD和邏輯電路來實(shí)現(xiàn)上電順序。

        根據(jù)CPU和FPGA以及外圍芯片的電源規(guī)格,CPU芯片上電順序要求比較嚴(yán)格,F(xiàn)PGA的上電順序沒有限制;因此電源設(shè)計(jì)以CPU上電順序?yàn)闇?zhǔn)。

        CPU工作電壓上電順序如下:

        (1)VDD_PLAT,AVDD,BVDD,LVDD,OVDD,SVDD,S2VDD,TVDD,XVDD and X2VDD;

        (2)等待POWER_EN使能,來控制VDD_CORE電壓輸出;

        (3)GVDD[3]。

        復(fù)位電路主要完成系統(tǒng)中芯片的復(fù)位功能,選擇復(fù)位芯片同時(shí)監(jiān)控電源,使用邏輯電路監(jiān)控各個(gè)電源的輸出指示信號(hào),同時(shí)邏輯電路還監(jiān)控PCI總線的工作模式是host還是device來選擇PCI總線復(fù)位信號(hào)的輸出還是輸入,最后經(jīng)過邏輯電路給出系統(tǒng)復(fù)位信號(hào),對(duì)CPU、FPGA以及外圍芯片進(jìn)行復(fù)位。

        上電配置電路主要完成上電過程中的功能配置,CPU需要上電配置CCB平臺(tái)時(shí)鐘、e500 core時(shí)鐘、DDR工作時(shí)鐘、SYSCLK輸入時(shí)鐘、CPU啟動(dòng)模式、以太網(wǎng)網(wǎng)絡(luò)接口工作模式、PCI接口及工作時(shí)鐘、PCIe接口工作模式等[4]。

        1.4 設(shè)計(jì)系統(tǒng)時(shí)鐘電路

        系統(tǒng)時(shí)鐘電路為系統(tǒng)中芯片提供時(shí)鐘,其中CPU時(shí)鐘信號(hào)有輸入時(shí)鐘SYSCLK、PCI控制器輸入時(shí)鐘PCI_CLK、RTC輸入時(shí)鐘RTC_CLK、DDR內(nèi)存控制器輸入時(shí)鐘DDRCLK、PCIe控制器輸入時(shí)鐘、eTSEC以太網(wǎng)控制器輸入時(shí)鐘。CPU輸入時(shí)鐘SYSCLK、PCI_CLK、RTC_CLK、DDRCLK可以工作在同步模式也可以工作在異步模式,本設(shè)計(jì)把SYSCLK、RTC_CLK、DDRCLK時(shí)鐘設(shè)置在同步模式,共用同一時(shí)鐘源SYSCLK,通過CPU內(nèi)部的鎖相環(huán)電路倍頻和分頻得到相應(yīng)的工作頻率,而PCI控制器時(shí)鐘選擇異步模式,PCI接口工作在設(shè)備模式輸入時(shí)鐘來自CompactPCI接口,PCI接口工作在host模式輸入時(shí)鐘來自時(shí)鐘驅(qū)動(dòng)器CDCVF2505。選擇9FG108EGILF來提供CPU的PCIe控制器的時(shí)鐘輸入和MiniPCIe接口的時(shí)鐘,CPU的以太網(wǎng)控制器時(shí)鐘輸入使用以太網(wǎng)PHY芯片產(chǎn)生125MHz的時(shí)鐘。

        對(duì)于PCIe控制器的正常工作,CPU要求內(nèi)部CCB平臺(tái)時(shí)鐘必須大于或等于[4],本設(shè)計(jì)選擇PCI Express link with為1。

        1.5 設(shè)計(jì)印制電路板

        印制電路的設(shè)計(jì)首先考慮疊層結(jié)構(gòu)和阻抗要求,其次是布局、設(shè)置布線規(guī)則,最后是PCB布線。完成PCB設(shè)計(jì)文件,還需完成制板和焊接,印制電路板布線圖和實(shí)物圖如圖2。

        圖2 無線系統(tǒng)網(wǎng)絡(luò)基帶板電路板圖

        2 引導(dǎo)程序uboot和操作系統(tǒng)linux

        引導(dǎo)程序選用uboot,uboot是由德國(guó)DENX開發(fā),目前支持多種嵌入式CPU,不僅能支持嵌入式linux的引導(dǎo),還支持NetBSD、VxWorks、QNS等嵌入式操系統(tǒng)。操作系統(tǒng)選擇開源嵌入式操作系統(tǒng)linux,支持多種嵌入式CPU;uboot和linux使用設(shè)備樹來提供硬件相關(guān)信息的配置。

        2.1 引導(dǎo)程序

        uboot選擇u-boot-200908的版本,并添加補(bǔ)丁以對(duì)CPU MPC8536E的支持(補(bǔ)丁從freescale網(wǎng)站下載)。打完補(bǔ)丁之后添加對(duì)網(wǎng)絡(luò)基帶平臺(tái)MPC8536CPCI的支持;支持新的MPC8536E設(shè)計(jì)平臺(tái)需要如下步驟:

        (1)在uboot文件目錄下的Makefile文件添加如下信息

        MPC8536CPCI_config:unconfig

        @$(MKCONFIG)–t$(@:_config=) MPC8536CPCI ppc mpc85xx mpc8536cpci freescale

        (2)添加MPC8536CPCI.h文件

        在uboot文件目錄下include/configs/下添加MPC8536CPCI.h文件,文件給出CPU以及集成PCI、PCIe、DDR SDRAM、eLBC、eTSECs控制器相應(yīng)寄存器的設(shè)置值和CCSRBAR寄存器的重映射地址、Flash的扇區(qū)大小、容量大??;根據(jù)選用的DDR2 SDRAM芯片給出DDR2 SDRAM控制器寄存器設(shè)置值;以太網(wǎng)PHY芯片地址和串口終端及其波特率等。

        (3)添加mpc8536cpci目錄

        在uboot文件目錄的board/freescale下添加mpc8536cpci目錄,然后在此目錄下添加mpc8536cpci.c、ddr.c、law.c、tlb.c、config.mk、Makefile等6個(gè)文件;實(shí)現(xiàn)對(duì)CPU和DDR SDRAM控制器、TLB進(jìn)行相應(yīng)的硬件初始化工作。

        (4)配置和編譯

        先設(shè)置好交叉編譯器Gcc路徑

        PATH=$PATH:/opt/freescale/usr/local/gcc-4.3.74-eglibc-2.8.74-dp-3/powerpc-none-linux-gnuspe/bin/

        #make distclean;

        #make MPC8536CPCI_config;

        #make

        最后得到u-boot.bin(512KB)文件,通過freescale仿真器USB TAP連接網(wǎng)絡(luò)基帶板的CPU Jtag接口,把u-boot.bin燒寫到0xfff80000地址(MPC8536E上電之后從0xfffffffc開始執(zhí)行[4])之后,從新上電網(wǎng)絡(luò)基帶板,調(diào)試uboot。

        2.2 設(shè)備樹

        設(shè)備樹是描述硬件配置的數(shù)據(jù)結(jié)構(gòu),包括CPU、內(nèi)存、Flash、PCI總線、PCIe總線、串口、PHY等設(shè)備信息,linux操作系統(tǒng)對(duì)于所有的PowerPC平臺(tái)支持在啟動(dòng)時(shí)使用了Open Firmware風(fēng)格的設(shè)備樹傳遞給內(nèi)核,操作系統(tǒng)能在啟動(dòng)時(shí)候解析這個(gè)設(shè)備樹并決定如何配置內(nèi)核和加載哪些驅(qū)動(dòng)程序[5]。設(shè)備樹被組織為樹形結(jié)構(gòu),有且僅有單一的根節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都有一個(gè)名字和可能有任意數(shù)量的子節(jié)點(diǎn)。節(jié)點(diǎn)也可以具有一組可選的包含屬性和屬性值,屬性值可以是數(shù)字、字符、字符串或其他數(shù)據(jù)結(jié)構(gòu),設(shè)備樹中數(shù)據(jù)格式遵循IEEE 1275標(biāo)準(zhǔn)。設(shè)備樹編譯工具(Device Tree Compiler)dtc把設(shè)備樹源文件(Device Tree Source)dts格式編譯成被操作系統(tǒng)識(shí)別的二進(jìn)制設(shè)備樹(Device Tree blob)dtb格式文件[5]。

        在linux目錄arch/powerpc/boot/dts/目錄下有設(shè)備樹參考文件,對(duì)支持網(wǎng)絡(luò)基帶板需要在此目錄下的添加mpc8536cpci.dts文件,其中根節(jié)點(diǎn)下model定義平臺(tái)名稱,平臺(tái)名稱要唯一性,compatible是指兼容的平臺(tái),定義如下:

        model=\"dhc,mpc8536cpci\";

        compatible=\"fsl,mpc8536ds\";

        其次是flash布局信息、以太網(wǎng)芯片PHY地址、USRT、SPI、USB、PCI、PCIe控制器信息配置。

        flash@0,0{

        partition@0 {

        label = \" kernel\";

        reg = <0x00000000 0x00400000>;

        };

        partition@400000 {

        label = \" rootfs \";

        reg = <0x00400000 0x07b00000>;

        };

        partition@7F40000 {

        label = \" dts\";

        reg = <0x07F40000 0x00020000>;

        };

        partition@7F60000 {

        label = \" env\";

        reg = <0x07F60000 0x00020000>;

        };

        partition@7F80000 {

        label = \"uboot\";

        reg = <0x07F80000 0x00080000>;

        };

        };

        flash@1,0 {

        partition@0 {

        label = \"user1\";

        reg = <0x00000000 0x04000000>;

        };

        partition@4000000 {

        label = \"user2\";

        reg = <0x04000000 0x04000000>;

        };

        };

        最后完成mpc8536cpci.dts文件,使用dtc命令對(duì)mpc8536cpci.dts進(jìn)行編譯,命令如下:

        #dtc–O dtb-o mpc8536cpci.dtb–b 0-I dts mpc8536cpci.dts

        2.3 操作系統(tǒng)

        linux選用2.6.32-rc5的版本,并添加補(bǔ)丁文件對(duì)CPU的支持(補(bǔ)丁從freescale官網(wǎng)下載),打完補(bǔ)丁之后,在此基礎(chǔ)上添加本系統(tǒng)MPC8536CPCI的支持。內(nèi)核對(duì)每個(gè)平臺(tái)都定義一個(gè)machdep_calls數(shù)據(jù)結(jié)構(gòu),內(nèi)核調(diào)用probe_machine函數(shù)遍歷machine_desc表,并調(diào)用machdep_calls對(duì)應(yīng)的.probe()鉤子函數(shù),每個(gè).probe()檢查設(shè)備樹并返回真,決定設(shè)備樹支持該平臺(tái)的代碼[5]。支持新的MPC8536E設(shè)計(jì)平臺(tái)需要如下步驟:

        (1)在linux目錄下arch/powerpc/platfroms/85xx目錄下添加mpc8536_cpci.c文件;此文件調(diào)用define_machine宏來定義硬件平臺(tái)相關(guān)的數(shù)據(jù)結(jié)構(gòu)machdep_calls,并完成其相應(yīng)成員函數(shù)的定義。

        (2)arch/powerpc/platfroms/85xx/Kconfig文件中添加對(duì)MPC8536CPCI的支持,在if MPC85xx條件語句內(nèi)添加如下信息,支持MPC8536_CPCI配置。

        config MPC8536_CPCI

        bool “Freecale MPC8536E CompactPCI board”

        select DEFAULT_UIMAGE

        select SWIOTLB

        help

        This option enables support for MPC8536E CompactPCI board

        (3)在arch/powerpc/platfroms/85xx/Makefile中關(guān)聯(lián)配置變量和文件,在最后添加一行:

        obj-$(CONFIG_MPC8536_CPCI) += mpc8536_cpci.o

        (4)配置和編譯內(nèi)核

        #make distclean

        #make ARCH=powerpc menuconfig

        #make ARCH=powerpc CROSS_COMPILE=powerpc-none-linux-gnuspe- uImage

        最后得到內(nèi)核鏡像文件uImage,在網(wǎng)絡(luò)基帶板啟動(dòng)之后,在uboot下把uImage和mpc8536cpci.dtb分別通過tftp下載到網(wǎng)絡(luò)基帶板卡指定的內(nèi)存空間,并通過bootm命令引導(dǎo)linux啟動(dòng),命令如下(文件系統(tǒng)使用ramdisk,使用freescale提供的版本進(jìn)行調(diào)試):

        =>tftp 1000000 uImage;tftp 2000000 rootfs.ext2.gz.uboot

        =>tftp c00000 mpc8536cpci.dtb;bootm 1000000 2000000 c00000

        3 FPGA驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)

        FPGA驅(qū)動(dòng)程序?qū)崿F(xiàn)了無,實(shí)現(xiàn)一路無線信號(hào)的發(fā)射和接收。CPU通過SPI總線與FPGA進(jìn)行通信,在驅(qū)動(dòng)設(shè)計(jì)上把FPGA驅(qū)動(dòng)程序按照網(wǎng)絡(luò)驅(qū)動(dòng)來設(shè)計(jì),方便實(shí)現(xiàn)以太網(wǎng)絡(luò)和到FPGA無線的路由轉(zhuǎn)發(fā)或者網(wǎng)橋功能。FPGA網(wǎng)絡(luò)驅(qū)動(dòng)主要包括驅(qū)動(dòng)模塊初始化,網(wǎng)絡(luò)設(shè)備數(shù)據(jù)結(jié)構(gòu)初始化,網(wǎng)絡(luò)設(shè)備訪問方法的實(shí)現(xiàn),F(xiàn)PGA寄存器訪問控制[7]。

        FPGA接口驅(qū)動(dòng)模塊初始化:首先定義spi_driver類型數(shù)據(jù)結(jié)構(gòu)fpga_driver,然后在驅(qū)動(dòng)模塊初始化函數(shù)中調(diào)用spi_register_driver()函數(shù)注冊(cè)fpga_driver[8]。

        static struct spi_driver fpga_driver ={

        .driver = {

        .name = “fpga_net”,

        .owner = THIS_MODULE,

        },

        .probe = fpga_probe,

        .remove = __devexit_p(fpga_remove),

        };

        網(wǎng)絡(luò)設(shè)備數(shù)據(jù)結(jié)構(gòu)初始化,首先要定義私有數(shù)據(jù)結(jié)構(gòu)類型fpga_net、然后在fpga_driver的鉤子函數(shù).probe()中使用alloc_etherdev分配net_device數(shù)據(jù)結(jié)構(gòu),調(diào)用netdev_priv分配fpga_net類型數(shù)據(jù)結(jié)構(gòu),關(guān)聯(lián)net_device和fpga_net類型的數(shù)據(jù)結(jié)構(gòu),關(guān)聯(lián)net_device與net_device_ops類型數(shù)據(jù)結(jié)構(gòu);關(guān)聯(lián)中斷信號(hào)、注冊(cè)中斷處理函數(shù)、關(guān)聯(lián)FPGA寄存器訪問函數(shù),最后調(diào)用register_netdev函數(shù)完成net_device類型數(shù)據(jù)結(jié)構(gòu)注冊(cè)。

        typedef struct fpga_net{

        sruct net_device *netdev;

        struct spi_device * spidev;

        ….

        };

        static int _devinit fpga_probe(struct spi_device *spi)

        {

        struct net_device *ndev;

        struct fpga_net *ks;

        ndev = alloc_etherdev(sizeof(struct fpga_net));

        ks = netdev_priv(ndev);

        ks->netdev = ndev;

        ks->spidev = spi;

        ……

        dev_set_drvdata(spi->dev, ks);

        ndev->if_port = IF_PORT_100BASET;

        ndev->netdev_ops = fpga_netdev_ops;

        ndev->irq = spi->irq;

        ret = request_irq(spi->irq, fpga_net_irq, IRQF_TRIGGER_LOW,

        ndev->name, ks);

        ret = register_netdev(ndev);

        ……

        }

        設(shè)備訪問方法的實(shí)現(xiàn),主要對(duì)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)net_device_ops成員函數(shù)的實(shí)現(xiàn),包括打開網(wǎng)絡(luò)、關(guān)閉網(wǎng)絡(luò)、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、ioctl調(diào)用、mac地址設(shè)置等,還有FPGA寄存器訪問控制函數(shù)。中斷處理函數(shù)主要完成接收隊(duì)列的調(diào)度工作。

        static const struct net_device_ops fpga_netdev_ops ={

        .ndo_open = fpga_net_open,

        .ndo_stop = fpga_net_stop,

        .ndo_do_ioctl = fpga_net_ioctl,

        .ndo_start_xmit = fpga_net_start_xmit

        .ndo_set_mac_address = fpga_net_mac_address,

        .ndo_set_rx_mod = fpga_set_rx_mode,

        .ndo_change_mtu = eth_change_mtu

        .ndo_validate_addr = eth_validate_addr,

        };

        最后完成驅(qū)動(dòng)設(shè)計(jì),還需在mpc8536cpci.dts文件中添加對(duì)fpga驅(qū)動(dòng)的支持;并編譯最新的mpc8536cpci.dts得到mpc8636cpci.dtb,然后編譯fpga驅(qū)動(dòng)模塊得到fpga.ko,通過uboot更新mpc8636cpci.dtb,然后在linux系統(tǒng)啟動(dòng)后加載fpga.ko測(cè)試FPGA驅(qū)動(dòng)。

        4 實(shí)驗(yàn)測(cè)試

        測(cè)試時(shí)把千兆網(wǎng)絡(luò)接口和無線網(wǎng)絡(luò)接口設(shè)置工作在網(wǎng)橋模式,兩臺(tái)無線系統(tǒng)平臺(tái)(網(wǎng)絡(luò)基帶板卡+射頻板)分別連接兩臺(tái)windows XP系統(tǒng)的筆記本電腦,兩個(gè)無線網(wǎng)絡(luò)平臺(tái)之間通過空口無線連接,在筆記本電腦上分別運(yùn)行chariot4.3 和endpoint進(jìn)行UPD協(xié)議下流量測(cè)試,chariot設(shè)置為雙向,每個(gè)方向設(shè)置三個(gè)數(shù)據(jù)流,共計(jì)六個(gè)數(shù)據(jù)流,測(cè)試時(shí)間一個(gè)小時(shí),流量運(yùn)行平穩(wěn),都在10Mbps以上,滿足設(shè)計(jì)要求≥10Mbps。

        5 結(jié)束語

        本文提出了的一種基于PowerPC+FPGA的無線系統(tǒng),該系統(tǒng)包括硬件平臺(tái)、嵌入式linux、uboot、設(shè)備樹以及FPGA驅(qū)動(dòng)軟件的實(shí)現(xiàn),支持無線信號(hào)的一路發(fā)射和一路接收,實(shí)現(xiàn)了無線系統(tǒng)之間點(diǎn)對(duì)點(diǎn)無線通信。在后續(xù)的研究中,需要支持多路無線信號(hào)的發(fā)射與接收,F(xiàn)PGA驅(qū)動(dòng)程序根據(jù)不同無線基帶調(diào)制/解調(diào)設(shè)定參數(shù),自動(dòng)選擇FPGA的配置文件實(shí)現(xiàn)動(dòng)態(tài)加載。

        參考文獻(xiàn):

        [1]常關(guān)羽,許晴.Ad Hoc環(huán)境下基于穩(wěn)定鏈路的語音通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].小型微型計(jì)算機(jī)系統(tǒng),2011(01):107-111.

        [2]Bernard Sklar.數(shù)字通信——基礎(chǔ)與應(yīng)用(第二版)[M].北京:電子工業(yè)出版社,2010.

        [3]MPC8536E PowerQUICC III Integrated Processor Hardware Specifications[M].Rev.5 05/2011 Freescale.

        [4]MPC8536E PowerQUICC III?Integrated Processor Reference Manual[M].Rev.1 05/2009 Freescale.

        [5]Grant Likely,Josh Boyer.A Symphony of Flavours:Using the device tree to describe embedded hardware[R].Ottawa,Canada:Linux Symposium,2008.

        [6]IEEE Standard for Boot(Initialization Configuration)Firmware:Core Requirements and Practices,IEEE Std 1275-1994[M].IEEE Computer Society,345 East 47th St,NewYork NY 10017-2394,USA,1994.

        [7]魏永明,耿岳,譯.Corbet J,Rubini A.Linux設(shè)備驅(qū)動(dòng)程序[M].北京:中國(guó)電力出版社,2006.

        [8]宋寶華,何韶然,史海濱,譯.Sreekrishnan Venkateswaran.精通Linux設(shè)備驅(qū)動(dòng)程序開發(fā)[M].北京:人民郵電出版社,2010.

        作者簡(jiǎn)介:楊柏松(1973-),男,天津人,本科,廣電事業(yè)部嵌入式技術(shù)總監(jiān),助理工程師,研究方向:嵌入式系統(tǒng)。

        作者單位:東華軟件股份公司,北京 100190

        精品av熟女一区二区偷窥海滩| 国产粉嫩美女一区二区三| 青青草绿色华人播放在线视频 | 777国产偷窥盗摄精品品在线| 永久免费观看的毛片手机视频| 美女视频很黄很a免费国产| 少妇久久一区二区三区| 国产成人精品无码片区在线观看 | 国内少妇自拍区免费视频| 男人的天堂av一二三区| 91精品久久久老熟女91精品| 无码精品人妻一区二区三区av| 亚欧AV无码乱码在线观看性色| 青青草免费激情自拍视频| 亚洲视频免费在线观看| 国色天香精品一卡2卡3卡4| 国内免费AV网站在线观看| 黑人一区二区三区啪啪网站| 国产农村妇女精品一区| 麻豆精品久久久久久久99蜜桃| 国产精品一区二区av片| 9l国产自产一区二区三区| 人妻丝袜中文无码av影音先锋专区| 成人做爰视频www| 99色网站| 国产精品性色av麻豆| 人妻丰满熟妇av无码区| 99热成人精品免费久久| 偷拍与自偷拍亚洲精品| 亚洲人成网站18禁止| 吸咬奶头狂揉60分钟视频| 激情亚洲的在线观看| 国产在线观看午夜视频| 无码少妇一区二区性色av| 国产97色在线 | 免| 国产精品后入内射日本在线观看| 久久精品国产亚洲av麻豆长发| 丰满多毛少妇做爰视频| 一区二区三区熟妇人妻18| 真实夫妻露脸自拍视频在线播放| 无码粉嫩虎白一线天在线观看|