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

        ?

        基于EDK的高速數(shù)據(jù)收發(fā)嵌入式用戶IP核設(shè)計(jì)

        2015-12-20 01:09:34范曉星席鵬飛
        電子科技 2015年2期
        關(guān)鍵詞:接收數(shù)據(jù)發(fā)送數(shù)據(jù)內(nèi)存

        范曉星,席鵬飛,孟 琪

        (西安電子科技大學(xué)電子信息攻防對(duì)抗與仿真技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,陜西西安 710071)

        隨著可編程邏輯器件的進(jìn)步和發(fā)展,F(xiàn)PGA在嵌入式系統(tǒng)中發(fā)揮著重要作用。因此,眾多FPGA廠商將專用的嵌入式處理器PowerPC、ARM等嵌入到FPGA芯片中。其集成了嵌入式處理器的FPGA芯片被定義為FPGA平臺(tái)。這種基于FPGA嵌入式平臺(tái)提供了一個(gè)靈活的解決方案,在該方案中,一個(gè)單FPGA芯片上提供了大量不同的IP軟核和硬核資源,這些固件和硬件可隨時(shí)升級(jí)。這種可編程的結(jié)構(gòu)特點(diǎn),大幅縮短了系統(tǒng)的開(kāi)發(fā)時(shí)間,而同一平臺(tái)能應(yīng)用在多個(gè)領(lǐng)域,提高了平臺(tái)的資源復(fù)用率[1]。

        針對(duì)平臺(tái) FPGA設(shè)計(jì),Xilinx公司推出了 EDK(Embedded Development Kit),專門(mén)用于FPGA內(nèi)部嵌入式處理器、軟硬件協(xié)同設(shè)計(jì)工具,包含了大量與PowerPC設(shè)計(jì)相關(guān)的IP核,使用EDK進(jìn)行設(shè)計(jì)可以大幅簡(jiǎn)化設(shè)計(jì)步驟并縮短開(kāi)發(fā)周期,但在EDK中的IP核并不能滿足設(shè)計(jì)人員在設(shè)計(jì)中的使用。而Xilinx公司的另一硬件開(kāi)發(fā)工具ISE(Integrated Software Environment)中具有眾多EDK中沒(méi)有的IP資源。因此,本文提供了一種調(diào)用ISE中的IP核構(gòu)建在EDK環(huán)境下使用的IP核設(shè)計(jì)。該設(shè)計(jì)可完成FPGA與片外的高速串行通信,實(shí)現(xiàn)讀寫(xiě)內(nèi)存的功能。

        1 IP整體結(jié)構(gòu)

        自定義用戶IP核總體結(jié)構(gòu)如圖1所示。

        圖1 自定義用戶IP結(jié)構(gòu)圖

        如圖1所示,IP核基于Xilinx公司Virtex-5 FX系列的PowerPC硬核嵌入式系統(tǒng)設(shè)計(jì)。用戶IP核通過(guò)PLB總線連接在PowerPC系統(tǒng)中;通過(guò)兩路GTX硬核收發(fā)數(shù)據(jù),與FPGA外部進(jìn)行串行通信,數(shù)據(jù)傳輸速率可達(dá)6.0 Gbit·s-1;數(shù)據(jù)通過(guò)緩存模塊和NPI接口寫(xiě)入內(nèi)存控制器 MPMC,或從 MPMC讀出,并通過(guò)MPMC實(shí)現(xiàn)內(nèi)存讀寫(xiě)。

        2 RocketIO GTX硬核

        RocketIO GTX是Xilinx公司FPGA中的硬核,是一種具有通用性、易用性、低功耗、低成本的千兆位串行收發(fā)器。設(shè)計(jì)將使用此硬核完成與FPGA外部的高速串行通信功能。

        設(shè)計(jì)采用Virtex-5 FXT系列FPGA,其GTX主要特性如下[2]:(1)高速全雙工收發(fā),每個(gè)通道支持750 Mbit·s-1~6.5 Gbit·s-1的數(shù)據(jù)傳輸速率。(2)內(nèi)嵌了發(fā)送時(shí)鐘生成和接收時(shí)鐘恢復(fù)模塊,減少了外部電路。(3)自同步時(shí)鐘數(shù)據(jù)發(fā)送方式。(4)5級(jí)可調(diào)輸出差分電壓,提高了兼容性。(5)可編程的發(fā)射預(yù)加重、接收線性均衡器和判決反饋均衡器,提高信號(hào)的完整性。(6)支持直流和交流耦合。(7)可編程的片內(nèi)差分終端50/75Ω電阻,減少了外接終端電阻。(8)支持內(nèi)部的串行和并行回環(huán)測(cè)試模式,方便調(diào)試。(9)8b/10b編解碼,可編程的邊界對(duì)齊字符(COMMA)檢測(cè),方式靈活,支持多種串行通信協(xié)議。(10)具有用戶動(dòng)態(tài)重配置端口。

        根據(jù)設(shè)計(jì)所需,在ISE中按照Xilinx官方GTX核例化向?qū)е笇?dǎo)[3]例化GTX核,測(cè)試收發(fā)數(shù)據(jù)性能。設(shè)計(jì)將 GTX 配置為150 MHz專用時(shí)鐘,3.0 Gbit·s-1串行速率,采用8b/10b編碼,內(nèi)部16 bit數(shù)據(jù),K字符選擇K28.5。

        圖2給出了使用一對(duì)GTX收發(fā)數(shù)據(jù)的時(shí)序,圖2為用Chipscope抓取的時(shí)序圖。

        圖2 GTX數(shù)據(jù)傳輸時(shí)序圖

        在Virtex-5 FPGA上例化出兩通道一對(duì)GTX核tile0,在FPGA外部將tile0_0通道 GTX的發(fā)送端與tile0_1通道GTX的接收端相連,組成tile0_0通道發(fā)送數(shù)據(jù),tile0_1通道接收數(shù)據(jù)的通信回路。通過(guò)發(fā)送遞增碼進(jìn)行測(cè)試,如圖2所示,tile0_1通道接收到的數(shù)據(jù)有30個(gè)周期的延時(shí),這是消耗在鏈路上的時(shí)間。信號(hào)tile0_txcharisk0_i為“00”,說(shuō)明 tile0_txdata0_i在鏈路上發(fā)送的是數(shù)據(jù);信號(hào)tile0_rxcharisk1_i為“00”,說(shuō)明tile0_rxdata1_i接收到的是數(shù)據(jù),而不是控制字符;信號(hào) tile0_rxbyteisaligned1_i為“1”,說(shuō)明 tile0_rxdata1_i接收到的數(shù)據(jù)已經(jīng)對(duì)齊[2]。

        3 內(nèi)存控制器MPMC及NPI總線

        在接收數(shù)據(jù)時(shí),將GTX接收端收到的數(shù)據(jù)通過(guò)高速數(shù)據(jù)總線NPI總線[4]寫(xiě)入內(nèi)存進(jìn)行緩存;在發(fā)送數(shù)據(jù)時(shí),先將數(shù)據(jù)讀入內(nèi)存進(jìn)行緩存,GTX發(fā)送端通過(guò)NPI總線從內(nèi)存中取數(shù)據(jù),然后發(fā)送出去。Xilinx公司在EDK開(kāi)發(fā)工具里提供了內(nèi)存控制器軟核MPMC,對(duì)內(nèi)存的讀寫(xiě)操作通過(guò)調(diào)用MPMC完成,因此本高速數(shù)據(jù)收發(fā)用戶IP需要NPI接口與MPMC進(jìn)行數(shù)據(jù)傳輸。

        3.1 MPMC

        MPMC(Multi-Port Memory Controlletr)是一個(gè)全部支持雙數(shù)據(jù)傳輸模式(DDR和DDR2)和單數(shù)據(jù)傳輸模式(SDRAM)的參數(shù)化內(nèi)存控制器[4]。MPMC有8個(gè)相互獨(dú)立的端口,每個(gè)端口都可以獨(dú)立訪問(wèn)內(nèi)存,MPMC的仲裁器會(huì)按一定的規(guī)則仲裁并決定其先后。同時(shí),MPMC的每個(gè)端口均帶有緩存,所以在寫(xiě)入數(shù)據(jù)時(shí),數(shù)據(jù)是先寫(xiě)入緩存,等這個(gè)端口取得內(nèi)存寫(xiě)入權(quán)后再?gòu)木彺鎸?xiě)入內(nèi)存。數(shù)據(jù)寫(xiě)入緩存再寫(xiě)入內(nèi)存的過(guò)程對(duì)用戶不可見(jiàn)。所以對(duì)用戶的邏輯來(lái)說(shuō),只要將數(shù)據(jù)寫(xiě)入MPMC的端口即可。

        MPMC的每個(gè)端口都可配置成可以連接PowerPC處理器、MicroBlaze、CoreConnect和 MPMC NPI結(jié)構(gòu)的個(gè)性接口模塊(PIMs)。MPMC共提供 PLB、XCL、SDMA和NPI 4種接口。XCL主要在處理器的Cache從內(nèi)存讀取數(shù)據(jù)時(shí)使用;SDMA在外部數(shù)據(jù)要用DMA方式寫(xiě)入內(nèi)存時(shí)使用,其支持SGDMP;PLB接口主要用于處理器通過(guò)PLB總線訪問(wèn)內(nèi)存;NPI接口是讓用戶在設(shè)計(jì)中利用MPMC特性的接口。設(shè)計(jì)采用控制通道與數(shù)據(jù)通道分開(kāi)的方式,不共用總線,提高性能。其中,采用PLB接口與處理器進(jìn)行控制信息和狀態(tài)信息的交換,采用NPI接口訪問(wèn)內(nèi)存。圖3為在EDK環(huán)境下將MPMC的端口配置出PLB和NPI接口。

        圖3 MPMC端口配置

        3.2 NPI接口控制器

        NPI接口有以下特性:(1)提供一個(gè)簡(jiǎn)單的內(nèi)存接口以適應(yīng)不同協(xié)議。(2)提供地址線、數(shù)據(jù)線和控制信號(hào)來(lái)進(jìn)行內(nèi)存操作。(3)允許同時(shí)通過(guò)FIFO進(jìn)行數(shù)據(jù)的讀/寫(xiě)。(4)可以配置成32位或64位的數(shù)據(jù)寬度以適應(yīng)不同的系統(tǒng)需求[4]。

        NPI接口控制器(NPI_CTRL)用于實(shí)現(xiàn)NPI接口協(xié)議,數(shù)據(jù)寬度為64位,支持 burst工作模式,一次burst讀或?qū)懽疃嗫梢詡鬏?56 Byte數(shù)據(jù),每次burst后硬件會(huì)自動(dòng)更新地址,得到下一個(gè) burst的起始地址。

        發(fā)送數(shù)據(jù)時(shí),NPI接口控制器(NPI_CTRL)根據(jù)命令和配置信息從內(nèi)存中指定的起始地址處讀取指定數(shù)量的數(shù)據(jù)到發(fā)送數(shù)據(jù)緩沖區(qū)(send_data_fifo),然后由GTX發(fā)送到FPGA外;接收數(shù)據(jù)時(shí),GTX接收到的數(shù)據(jù)寫(xiě)入接收數(shù)據(jù)緩沖區(qū)(received_data_fifo),然后由NPI接口控制器(NPI_CTRL)根據(jù)命令和配置信息將數(shù)據(jù)寫(xiě)入內(nèi)存中的指定起始地址處。

        圖4和圖5分別是MPMC中64位NPI接口128 Byte長(zhǎng)度burst讀和寫(xiě)時(shí)序圖[4]。圖中,size表示 burst長(zhǎng)度,addr表示起始地址。當(dāng)要進(jìn)行burst讀操作時(shí),先將size設(shè)為0x04,addr設(shè)為0x80,同時(shí)將 addrReq置為有效請(qǐng)求地址仲裁,當(dāng)AddrAck有效時(shí)表示地址請(qǐng)求得到允許,約為25個(gè)時(shí)鐘周期后,RdFIFO_Pop信號(hào)會(huì)有效表示數(shù)據(jù)已讀出,經(jīng)過(guò)1個(gè)、2個(gè)或3個(gè)時(shí)鐘周期延遲后,起始地址0x80處的128 Byte數(shù)據(jù)就會(huì)依次出現(xiàn)在RdFIFO_Data端口。當(dāng)要進(jìn)行burst寫(xiě)操作時(shí),將WrFIFO_Push置為有效,在WrFIFO_Push有效時(shí)寫(xiě)入32 word即128 Byte數(shù)據(jù),WrFIFO_BE為0XFF表示每次寫(xiě)入的64位數(shù)據(jù)均有效,當(dāng)寫(xiě)到32 word的最后一個(gè)時(shí),給出寫(xiě)入的起始地址addr和burst長(zhǎng)度size,同時(shí)將 addrReq置為有效并請(qǐng)求地址仲裁,當(dāng)AddrAck有效時(shí)表示地址請(qǐng)求得到允許,隨機(jī)MPMC控制器將WrFIFO的數(shù)據(jù)寫(xiě)入內(nèi)存指定起始地址處,當(dāng)WrFIFO的數(shù)據(jù)全部寫(xiě)入內(nèi)存時(shí)WrFIFO_empty置為有效。

        圖5 64位NPI接口burst寫(xiě)

        4 數(shù)據(jù)緩存模塊

        由于使用的不是單通道GTX,因此數(shù)據(jù)位寬不匹配。所以無(wú)論是從內(nèi)存中取數(shù)據(jù)由GTX發(fā)出或?qū)TX接收到的數(shù)據(jù)寫(xiě)入內(nèi)存,都需要進(jìn)行緩存處理。

        在接收數(shù)據(jù)時(shí),單一通道GTX的數(shù)據(jù)位寬為16 bit,采用兩通道進(jìn)行數(shù)據(jù)傳輸,所以共32 bit數(shù)據(jù)。NPI接口采用的數(shù)據(jù)位寬是64 bit,所以需要進(jìn)行位寬轉(zhuǎn)換。但接收數(shù)據(jù)是被動(dòng)的,因此兩路GTX接收到的數(shù)據(jù)不一定在時(shí)間上同步,可能有先后到達(dá)的關(guān)系,因此利用異步FIFO構(gòu)建兩級(jí)緩存[5],解決位寬不匹配和時(shí)間不同步問(wèn)題。具體接收數(shù)據(jù)緩存程序結(jié)構(gòu)如圖6所示。

        圖6 接收數(shù)據(jù)緩存模塊結(jié)構(gòu)圖

        由圖6可看到接收數(shù)據(jù)緩存模塊由3個(gè)異步FIFO構(gòu)成。其中First_fifo_1和First_fifo_2為16 bit輸入16 bit輸出,構(gòu)成第一級(jí)緩存;Received_data_fifo為32 bit輸入64 bit輸出,為第二級(jí)緩存。通過(guò)兩級(jí)緩存,將兩路GTX接收到的32 bit不同步數(shù)據(jù)轉(zhuǎn)為64 bit同步數(shù)據(jù),再通過(guò)NPI接口寫(xiě)入內(nèi)存。接收數(shù)據(jù)緩存模塊的工作時(shí)序通過(guò)Chipscope抓取結(jié)果如圖7所示。

        圖7 接收數(shù)據(jù)緩存模塊時(shí)序圖

        圖7中,兩通道GTX發(fā)送的都是遞增碼,F(xiàn)itrst_fifo_1寫(xiě)入數(shù)據(jù)比First_fifo_2寫(xiě)入數(shù)據(jù)早2 027個(gè)時(shí)鐘周期。Received_data_fifo每次同時(shí)從Fitrst_fifo_1和Fitrst_fifo_2中讀取固定值數(shù)據(jù),并轉(zhuǎn)為64 bit輸出。通過(guò)一級(jí)緩存,成功解決了兩路數(shù)據(jù)不同步的問(wèn)題。通過(guò)二級(jí)緩存,數(shù)據(jù)轉(zhuǎn)為64 bit進(jìn)入NPI接口控制模塊(NPI_CTRL),然后寫(xiě)入MPMC。

        在發(fā)送數(shù)據(jù)時(shí),通過(guò)NPI接口從內(nèi)存中讀取的數(shù)據(jù)為64 bit,兩路GTX的數(shù)據(jù)位寬為32 bit,所以還是需要進(jìn)行緩存以完成位寬轉(zhuǎn)換。因?yàn)榘l(fā)送數(shù)據(jù)是主動(dòng)的,所以不存在發(fā)送不同步的問(wèn)題,因此只需利用異步FIFO構(gòu)建一級(jí)緩存即可。具體發(fā)送數(shù)據(jù)緩存程序結(jié)構(gòu)如圖8所示。發(fā)送數(shù)據(jù)緩存模塊工作時(shí)序由Chipscope抓取得到,如圖9所示。

        圖8 發(fā)送數(shù)據(jù)模塊結(jié)構(gòu)圖

        圖9 發(fā)送數(shù)據(jù)緩存模塊時(shí)序圖

        如圖9所示,Send_data_fifo將從NPI接口接收到的64 bit數(shù)據(jù)轉(zhuǎn)換為32 bit,并傳輸給兩路GTX的發(fā)送端 tile0_txdata0_i和 tile0_txdata1_i。

        5 嵌入式用戶IP核的封裝

        以上完成的各模塊工作都只在ISE環(huán)境下完成邏輯開(kāi)發(fā),還并不能在EDK環(huán)境下直接作為嵌入式IP核使用,因此需要進(jìn)行EDK用戶IP核的封裝。EDK為設(shè)計(jì)人員提供了自動(dòng)化設(shè)計(jì)向?qū)?Base System Builder,BSB),可以指引工程師快速完成設(shè)計(jì)過(guò)程[1]。通過(guò)此向?qū)?,建立基于PowerPC的簡(jiǎn)單嵌入式系統(tǒng)。其System Assembly View圖,系統(tǒng)結(jié)構(gòu)圖分別如圖10和圖11所示。

        圖10 System Assembly View圖

        圖11 系統(tǒng)結(jié)構(gòu)圖

        用戶IP核通過(guò)PLB總線連接在PowerPC處理器上。PLB總線[6]是一種高帶寬、低延遲、高性能的處理器總線,用于連接高性能CPU、高速存儲(chǔ)器控制器、仲裁器、高速的DMA控制器等高性能、大帶寬的片上設(shè)備。由于PLB總線協(xié)議信號(hào)多,較復(fù)雜,為使用戶更方便地使用、加快開(kāi)發(fā)進(jìn)度,Xilinx公司為用戶開(kāi)發(fā)了添加用戶IP核向?qū)IP(Create and Import Peripheral Wizard),添加用戶自定義IP核[7]。該向?qū)ё詣?dòng)生成PLB總線與用戶邏輯之間的接口,即IPIF(IPInterface)。利用IPIF解決PLB總線接口和用戶邏輯接口之間的轉(zhuǎn)換。在用戶邏輯看來(lái),PLB接口表現(xiàn)為簡(jiǎn)單的IPIC(IP Inter Connect)接口。用戶使用該向?qū)н€可根據(jù)需要選擇相應(yīng)的模塊和功能[8]。設(shè)計(jì)中PLB總線只用于傳遞少量的參數(shù)和狀態(tài)信息,因此,PLB模塊配制成了從設(shè)備。核心模塊SLAVE Attachment提供了PLB從設(shè)備的基本功能,它在PLB總線和IPIC之間執(zhí)行協(xié)議和時(shí)序的轉(zhuǎn)換,PLB模塊的結(jié)構(gòu)如圖12所示。

        圖12 PLBV46_SLAVE_SINGLE結(jié)構(gòu)圖

        PLB模塊中的User_logic為在ISE環(huán)境下開(kāi)發(fā)的邏輯,組成如圖13所示。將RocketIO模塊,數(shù)據(jù)緩存模塊,NPI接口(NPI_CTRL)控制模塊做正確連接,用IPIC和IPIF連接起來(lái),成為嵌入式IP核的邏輯。

        圖13 用戶邏輯結(jié)構(gòu)圖

        使用CIP生成的用戶自定義IP核保存在EDK工程目錄的pcore文件夾,用戶IP核目錄如圖14所示。

        圖14 用戶IP核目錄結(jié)構(gòu)圖

        文件夾hdl用于存放用戶IP的HDL代碼,即.v或.vhd文件。設(shè)計(jì)使用VHDL語(yǔ)言[9],所以各模塊的HDL代碼文件都保存在vhdl文件夾下。文件夾netlist用于保存設(shè)計(jì)所用到的網(wǎng)表文件。本設(shè)計(jì)使用了ISE工具的IP核,RocketIO、FIFO、icon及 ila,其網(wǎng)表文件都保存在netlist文件夾下。文件夾data用于存放用戶IP的配置文件[1]。MPD文件為微處理器外設(shè)規(guī)范(Microprocessor Peripheral Definition),定義了外設(shè)接口。在MPD文件中列出了總線接口端口和默認(rèn)連接,列出了參數(shù)和默認(rèn)值。PAO文件為外設(shè)分析命令文件(Peripheral Analyze Order),包含了hdl文件的列表,是綜合和定義分析命令所需的。BBD文件黑盒定義(Black Box Definition)文件,管理被優(yōu)化的硬件網(wǎng)標(biāo)的文件位置,用于所設(shè)計(jì)外設(shè)的黑盒部分。運(yùn)行PowerPC簡(jiǎn)單系統(tǒng)工程,接收FPGA外部數(shù)據(jù),通過(guò)串口打印讀出寫(xiě)進(jìn)DDR2中的數(shù)據(jù)。由圖15可以看到,遞增碼未出現(xiàn)錯(cuò)位與不同步問(wèn)題,表明所設(shè)計(jì)達(dá)到了要求。

        圖15 串口打印從DDR2讀出數(shù)據(jù)

        6 結(jié)束語(yǔ)

        介紹了一種用ISE邏輯開(kāi)發(fā)工具中的IP核來(lái)構(gòu)建嵌入式開(kāi)發(fā)平臺(tái)EDK中,用戶自定義IP核的方法,并且本設(shè)計(jì)完成了高速數(shù)據(jù)收發(fā)通信的功能。此外,設(shè)計(jì)采用兩路GTX,可通過(guò)增加GTX通道數(shù),或者配置GTX為更高帶寬,以增加系統(tǒng)帶寬,具有良好的擴(kuò)展性。設(shè)計(jì)在連接PowerPC處理器的系統(tǒng)下完成[10],只要采用PLB總線,此自定義IP可以直接移植到MicroBlaze處理器系統(tǒng)中,具有良好的移植性。

        [1]何賓.片上可編程系統(tǒng)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2010.

        [2]Xilinx.Virtex-5 FPGA GTX transceiver user guide[M].USA:Xilinx Conpration,2009.

        [3]Xilinx.Virtex -5 FPGA RocketIOGTX transceiver wizard v1.5 getting started guide[M].USA:Xilinx Conpration,2008.

        [4]Xilinx.Multi- port memory controller(MPMC)(v.4.03.a)[M].USA:Xilinx Conpration,2008.

        [5]Xilinx.FIFO generator v4.4 user guide[M].USA:Xilinx Conpration,2008.

        [6]Xilinx.PLB usage in Xilinx FPGAs[M].USA:Xilinx Conpration,2005.

        [7]葉肇晉,張稀楠,馬磊.基與Xilinx FPGA片上嵌入式用戶IP核開(kāi)發(fā)[M].西安:西安電子科技大學(xué)出版社,2008.

        [8]Xilinx.PLBV46 slave single(v1.01a)[M].USA:Xilinx Conpration,2008.

        [9]侯伯亨,顧新.VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,1998.

        [10]趙峰,馬迪銘,孫煒,等.FPGA上的嵌入式系統(tǒng)設(shè)計(jì)實(shí)例[M].西安:西安電子科技大學(xué)出版社,2008.

        猜你喜歡
        接收數(shù)據(jù)發(fā)送數(shù)據(jù)內(nèi)存
        移動(dòng)自組網(wǎng)中MAC層協(xié)議研究
        沖激噪聲背景下基于幅度預(yù)處理的測(cè)向新方法*
        “春夏秋冬”的內(nèi)存
        低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
        基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
        帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
        使用IPSec安全傳輸數(shù)據(jù)
        單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
        基于內(nèi)存的地理信息訪問(wèn)技術(shù)
        基于PCMCIA的ARINC429通信卡設(shè)計(jì)
        2022AV一区在线| 少妇愉情理伦片丰满丰满午夜| 天天做天天躁天天躁| 久久青青草原国产精品最新片| 日韩人妻大奶子生活片| 国产亚洲av无码av男人的天堂| 久久久日韩精品一区二区三区| 久久久久久久98亚洲精品| 亚洲中文字幕日本日韩| 国产精品一区二区三区专区| 久久久久人妻精品一区蜜桃| 久久久久中文字幕无码少妇| 蜜桃在线观看视频在线观看| 亚洲国产成人极品综合| 公粗挺进了我的密道在线播放贝壳| 极品 在线 视频 大陆 国产| 色综合中文字幕综合网| 国产成人亚洲精品无码青| 又色又爽又黄又硬的视频免费观看| 四虎影视国产884a精品亚洲| 国产91在线播放九色快色| 国模冰莲极品自慰人体| 日韩精品无码久久一区二区三| 亚洲性色ai无码| 亚洲一区二区日韩精品在线| 天天综合网在线观看视频| 亚洲欧美日韩综合在线观看| 国语自产啪在线观看对白| 日韩欧美一区二区三区免费观看| 日本成本人三级在线观看| 精精国产xxx在线视频app| 99久久婷婷国产精品网| 99精品国产在热久久无码| 91热这里只有精品| 美丽人妻被按摩中出中文字幕| 亚洲日产国无码| 日本伦理精品一区二区三区| 日本不卡一区二区三区在线| 天堂最新在线官网av| 亚洲综合视频一区二区| 久久成人国产精品免费软件|