色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于SOPC的調(diào)制解調(diào)器設(shè)計(jì)

          基于SOPC的調(diào)制解調(diào)器設(shè)計(jì)

          作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò) 收藏

          為解決“最后一公里”的接入問(wèn)題,上世紀(jì)末出現(xiàn)了數(shù)字用戶線環(huán)路DSL(Digital Subscriber Loop)寬帶技術(shù)。DSL在2公里內(nèi)不失為好的雙絞線數(shù)據(jù)傳輸方案,但當(dāng)隨著距離的增加,DSL的數(shù)據(jù)傳輸能力會(huì)急劇下降,其原因在于:作為DSL核心的離散多音DMT(Discrete Multitone)技術(shù),子通道內(nèi)采用了與幅度有關(guān)的QAM調(diào)制,隨著傳輸距離的加大,線路對(duì)信號(hào)的衰減使幅度的區(qū)分變得越來(lái)越困難??梢?jiàn),DSL為實(shí)現(xiàn)高速率數(shù)據(jù)傳輸,降低了對(duì)有效傳輸距離的要求,所以對(duì)要求遠(yuǎn)距離傳輸?shù)膱?chǎng)合,就不得不采用其他技術(shù)方案了。(System On Programmable Chip)技術(shù)是以FPGA為載體的系統(tǒng)芯片設(shè)計(jì)技術(shù),由于具有軟硬件可裁減、現(xiàn)場(chǎng)可編程和開(kāi)發(fā)周期短等特點(diǎn),使該技術(shù)在通信領(lǐng)域及嵌入式系統(tǒng)設(shè)計(jì)中有著廣泛的應(yīng)用??紤]到傳統(tǒng)的連續(xù)相位移頻鍵控(2CPFSK)調(diào)制具有抗噪聲性能好、相位連續(xù)、包絡(luò)恒定、旁瓣收斂快等優(yōu)點(diǎn),故技術(shù)和2CPFSK調(diào)制方式的結(jié)合,就為遠(yuǎn)距離的實(shí)現(xiàn)提供了可能。本文所介紹的即是基于技術(shù),采用2CPFSK的系統(tǒng)設(shè)計(jì)。

          本文引用地址:http://cafeforensic.com/article/201706/349230.htm

          1 系統(tǒng)簡(jiǎn)介

          本設(shè)計(jì)采用ALTERA公司的CYCLONEII芯片實(shí)現(xiàn),使用以太網(wǎng)控制器DM9000A作為與主機(jī)間的數(shù)據(jù)接口。主機(jī)發(fā)送數(shù)據(jù)由FPGA實(shí)現(xiàn)調(diào)制后,由線路驅(qū)動(dòng)器放大經(jīng)混合電路送上雙絞線;同時(shí)由雙絞線傳來(lái)的接收信號(hào)經(jīng)放大、濾波、解調(diào)等處理后,數(shù)據(jù)封裝成以太網(wǎng)數(shù)據(jù)包送至主機(jī)。系統(tǒng)整體框圖如圖1所示。

          圖1中,存儲(chǔ)器模塊包含有SDRAM、SRAM、Flash,進(jìn)行各種程序的存儲(chǔ)及堆棧保存等。LED顯示當(dāng)前系統(tǒng)工作狀態(tài),如正常工作顯示、數(shù)據(jù)發(fā)送進(jìn)行中顯示、數(shù)據(jù)接收進(jìn)行中顯示等;按鍵用來(lái)實(shí)現(xiàn)系統(tǒng)的硬復(fù)位功能;發(fā)送方向上,F(xiàn)PGA讀出DM9000A接收緩沖區(qū)數(shù)據(jù)、將調(diào)制后的數(shù)字已調(diào)信號(hào)送往D/A器件;接收方向上,F(xiàn)PGA將A/D輸出的數(shù)字待解調(diào)信號(hào)解調(diào)后送至DM9000A的發(fā)送緩沖區(qū);線路驅(qū)動(dòng)器對(duì)輸入的模擬差分信號(hào)放大,以適應(yīng)長(zhǎng)距離傳輸線的衰減;接收方向?yàn)V波模塊濾除通帶外信號(hào),以降低干擾;混合電路將發(fā)射回路和接收回路連接在同一對(duì)雙絞線上,并抑制發(fā)射和接收之間的相互干擾。

          2 DM9000A簡(jiǎn)介

          DM9000A是一低功耗、高集成的以太網(wǎng)控制器,可實(shí)現(xiàn)以太網(wǎng)媒體介質(zhì)訪問(wèn)層(MAC)和物理層(PHY)的功能,包括MAC數(shù)據(jù)幀的組裝/拆分與收發(fā)、地址識(shí)別、CRC編碼/校驗(yàn)、MLT-3編碼、接收噪聲抑制、輸出脈沖成形、超時(shí)重傳、鏈路完整性測(cè)試、信號(hào)極性檢測(cè)與糾正等。DM9000A最高可實(shí)現(xiàn)100Mb/s的傳輸速率,能夠充分滿足遠(yuǎn)距離調(diào)制解調(diào)器的傳輸速率需求。

          2.1 DM9000A數(shù)據(jù)幀發(fā)送過(guò)程

          DM9000A中3KB的發(fā)送緩沖區(qū)TX_SRAM可以同時(shí)存儲(chǔ)兩幀數(shù)據(jù),按照先后順序命名為幀I、幀II。DM9000A初始化后,發(fā)送緩存區(qū)的起始地址為00H,當(dāng)前數(shù)據(jù)幀為幀I。數(shù)據(jù)發(fā)送過(guò)程如下:

          (1)在待發(fā)數(shù)據(jù)前加入各6B的目的和源MAC地址,組成數(shù)據(jù)幀。

          (2)利用寫(xiě)操作寄存器MWCMD(REG_F8)向TX_SRAM中寫(xiě)入發(fā)送數(shù)據(jù)幀。

          (3)利用寫(xiě)操作寄存器MWCMD(REG_F8)將數(shù)據(jù)幀長(zhǎng)度寫(xiě)入寄存器FCH和FDH。

          (4)通過(guò)發(fā)送控制寄存器TCR(REG_02)設(shè)置發(fā)送請(qǐng)求TXREQ,向DM9000A發(fā)出發(fā)送數(shù)據(jù)指令。

          發(fā)出發(fā)送數(shù)據(jù)指令后,DM9000A即開(kāi)始發(fā)送幀I,在發(fā)送幀I的同時(shí),幀Ⅱ的數(shù)據(jù)即可寫(xiě)入發(fā)送緩存區(qū)。在幀I發(fā)送完后,將幀Ⅱ的數(shù)據(jù)長(zhǎng)度寫(xiě)入寄存器FCH和FDH,最后將發(fā)送控制寄存器TCR(REG_02)設(shè)置發(fā)送請(qǐng)求TXREQ,即可開(kāi)始幀Ⅱ的發(fā)送。依此類(lèi)推,可實(shí)現(xiàn)幀I、幀Ⅱ,幀I、幀Ⅱ……的連續(xù)發(fā)送。

          2.2 DM9000A數(shù)據(jù)幀接收過(guò)程

          DM9000A中的接收緩存區(qū)RX_SRAM是一個(gè)13KB的環(huán)形結(jié)構(gòu),初始化后的起始地址為0C00H,緩沖區(qū)內(nèi)每幀數(shù)據(jù)都有4B長(zhǎng)的首部。第一個(gè)字節(jié)用來(lái)檢測(cè)接收緩存區(qū)中是否有數(shù)據(jù),如果這個(gè)字節(jié)為01H,表明接收到了數(shù)據(jù);如果為00H,則說(shuō)明沒(méi)有數(shù)據(jù)。但是,如果第一個(gè)字節(jié)既不是01H,也不是00H,DM9000A就必須做一次軟復(fù)位來(lái)從這種異常狀態(tài)中恢復(fù)。第二個(gè)字節(jié)存儲(chǔ)了以太網(wǎng)幀狀態(tài),由此可判斷所接收幀是否正確。第三和第四字節(jié)存儲(chǔ)了以太網(wǎng)幀長(zhǎng)度,后續(xù)字節(jié)為有效數(shù)據(jù)。數(shù)據(jù)接收過(guò)程如下:

          (1) 查看中斷狀態(tài)寄存器ISR,如果接收到新數(shù)據(jù),ISR的PR位將被置為0。

          (2) 如果檢測(cè)到PR=0,則清除PR。

          (3) FPGA開(kāi)始讀接收緩存區(qū)數(shù)據(jù)。

          如果第一字節(jié)是01H,則說(shuō)明有數(shù)據(jù),若是00H說(shuō)明無(wú)數(shù)據(jù),否則復(fù)位;根據(jù)獲取的長(zhǎng)度信息,判斷是否讀完一幀,如果讀完,接著讀下一幀,直到遇到首字節(jié)是00H的幀,說(shuō)明接收數(shù)據(jù)已讀完。FPGA可以重新查看中斷狀態(tài)寄存器,等待新的有效數(shù)據(jù)幀。

          3 系統(tǒng)硬件設(shè)計(jì)

          系統(tǒng)硬件設(shè)計(jì)包括ENET接口設(shè)計(jì)、調(diào)制解調(diào)單元的設(shè)計(jì)和硬件結(jié)構(gòu)的生成三部分。硬件結(jié)構(gòu)的生成主要使用QuartusII7.1的系統(tǒng)設(shè)計(jì)工具軟件SOPC Builder 來(lái)完成。圖2為FPGA內(nèi)所實(shí)現(xiàn)的各功能模塊示意圖。

          3.1 ENET接口設(shè)計(jì)

          本系統(tǒng)用到的基于DM9000A的ENET接口并非SOPC Builder所提供的標(biāo)準(zhǔn)組件,故必須進(jìn)行自定義組件設(shè)計(jì)。經(jīng)查閱參考文獻(xiàn)[1]中圖2.1(和處理器接口的信號(hào)連接圖)可知:只需針對(duì)與處理器有關(guān)的管腳(SD0~15、CMD、INT、IOR#、IOW#、CS#、PWRST#)設(shè)計(jì)相應(yīng)接口模塊即可。圖3為基于DM9000A的ENET接口設(shè)計(jì)示意圖,圖右側(cè)表示接口與DM9000A管腳對(duì)應(yīng)關(guān)系;NIOSII側(cè)的寫(xiě)入數(shù)據(jù)IDATA只有在寫(xiě)入信號(hào)IWR_N有效時(shí)才會(huì)把數(shù)據(jù)傳至DM9000A側(cè)。根據(jù)圖3所示的信號(hào)端口映射及邏輯關(guān)系,寫(xiě)出Verilog或VHDL文件,利用SOPC Builder中的Interface to User Logic導(dǎo)入即可創(chuàng)建基于DM9000A的ENET接口。

          3.2 調(diào)制與解調(diào)單元的設(shè)計(jì)

          調(diào)制和解調(diào)單元的設(shè)計(jì)采用基于SOPC的DSP實(shí)現(xiàn)方案,根據(jù)不同的應(yīng)用目標(biāo),其實(shí)現(xiàn)方案有兩種選擇:純硬件方案和軟硬件結(jié)合方案。純硬件方案是指按照Matlab→DSP Builder→QuartusⅡ的流程直接實(shí)現(xiàn)。而軟硬結(jié)合的方案是指利用前一種方案為NIOSⅡ處理器設(shè)計(jì)自定義指令的硬件加速器接口模塊,生成能夠完成DSP功能的NIOSⅡ處理器,最后DSP功能的實(shí)現(xiàn)則通過(guò)軟件來(lái)完成??紤]到調(diào)制解調(diào)器的傳輸速率要求,如果用軟硬結(jié)合的方案,200MIPS的處理速度可能滿足不了要求,故采用純硬件方案。本設(shè)計(jì)中調(diào)制單元包括了調(diào)制器和緩沖器1。為保證連續(xù)性發(fā)送,DM9000A接收緩沖區(qū)的數(shù)據(jù)要先經(jīng)緩沖器1緩存后再進(jìn)行調(diào)制。調(diào)制單元的電路模型圖如圖4所示。

          在圖4中,調(diào)制器每調(diào)制完一字節(jié)的數(shù)據(jù),要讀入的下一字節(jié)地址Next_add會(huì)自動(dòng)加1,將該地址送至緩沖器1的讀出地址輸入端Rd_add,即可開(kāi)始下一字節(jié)的調(diào)制;當(dāng)調(diào)制器從Next_add判斷出已經(jīng)讀完一幀數(shù)據(jù)后,給出中斷信號(hào),此中斷信號(hào)由DSP Builder的Interface庫(kù)的AVALON_MM Slave 組件(選中Output IRQ,地址類(lèi)型設(shè)為Write)提供的存儲(chǔ)映射功能經(jīng)由三態(tài)橋送至NIOSⅡ。處理器接到此信號(hào)后,向緩沖器1發(fā)送寫(xiě)使能信號(hào),并傳送要寫(xiě)入的數(shù)據(jù),開(kāi)始寫(xiě)入過(guò)程。緩沖器1采用Storage Library 庫(kù)中的Dual-port RAM實(shí)現(xiàn),雙口RAM可隨時(shí)輸出緩存內(nèi)部的剩余數(shù)據(jù)量,可實(shí)現(xiàn)讀出、寫(xiě)入操作的靈活控制。

          本設(shè)計(jì)采用2CPFSK調(diào)制方式,圖5為用DSP Builder建立的調(diào)制器電路模型。圖中,8位并行數(shù)據(jù)由輸入端口DataIn輸入,經(jīng)并串轉(zhuǎn)換后逐位送往多路器的數(shù)據(jù)輸入端sel[0:0]。FWORD1和FWORD2是頻率字設(shè)置端口,當(dāng)數(shù)據(jù)輸入端sel輸入不同的值時(shí),多路器會(huì)根據(jù)設(shè)置的頻率字輸出對(duì)應(yīng)的相位值。將輸出相位值的累加結(jié)果送入BusConversion1,抽取出相位值的高14位,將此相位信號(hào)通過(guò)查找表SinLUT后,在數(shù)據(jù)輸出端即可得到2CPFSK已調(diào)信號(hào)。圖中并串轉(zhuǎn)換器的load輸入端用來(lái)控制字節(jié)數(shù)據(jù)的輸入,每當(dāng)一字節(jié)調(diào)制完畢,load端口會(huì)輸入數(shù)據(jù)載入信號(hào)進(jìn)行下一字節(jié)數(shù)據(jù)的調(diào)制。

          同樣,解調(diào)單元包括解調(diào)器和緩沖器2兩部分。解調(diào)單元的設(shè)計(jì)與調(diào)制單元類(lèi)似,所不同的是: AVALON_MM Slave 組件將地址類(lèi)型設(shè)置為Read。

          3.3 硬件結(jié)構(gòu)的生成

          3.3.1 用SOPC Builder生成軟核

          SOPC Builder提供了豐富多樣的組件庫(kù),用戶可以按需要自定義系統(tǒng),同時(shí)可利用SOPC Builder的用戶邏輯接口生成系統(tǒng)未提供的外部器件接口。本設(shè)計(jì)中加入了如下組件:cpu_0、三態(tài)橋、Flash控制器、SRAM控制器、SDRAM控制器、jtag_uart、led_pio、anjian_pio以及自定義組件ENET接口。值得注意的是:軟核的生成過(guò)程必須在電路模型文件轉(zhuǎn)換為RTL級(jí)的VHDL代碼時(shí)生成的QuartusⅡ工程下進(jìn)行,這樣SOPC Builder在生成軟核時(shí)會(huì)自動(dòng)檢測(cè)到調(diào)制解調(diào)單元的AVALON_MM Slave組件,會(huì)在三態(tài)橋下生成相應(yīng)的信號(hào)線,把調(diào)制解調(diào)單元同NIOSII連接起來(lái),其中包括數(shù)據(jù)線、地址線、讀/寫(xiě)命令線和中斷信號(hào)線等。

          3.3.2 調(diào)制解調(diào)單元Sysmbol的生成

          在Simulink中完成仿真驗(yàn)證后,就需要把設(shè)計(jì)轉(zhuǎn)到硬件上加以實(shí)現(xiàn),這是DSP Builder設(shè)計(jì)流程中最為關(guān)鍵的一步,轉(zhuǎn)換后可以獲得針對(duì)特定FPGA芯片的VHDL代碼。Symbol的生成過(guò)程:對(duì)模型的分析、設(shè)置Signalcompiler、把MDL模型文件轉(zhuǎn)換成VHDL、綜合、適配。上述過(guò)程完成后,把調(diào)制、解調(diào)模型的VHDL文件在QuartusⅡ下各自生成相應(yīng)的Symbol。該Symbol會(huì)自動(dòng)加載到工程庫(kù)中,可以如工程庫(kù)中自帶組件一樣調(diào)用。

          3.3.3 在QuartusⅡ下進(jìn)行原理圖編輯

          在BDF文件的編輯狀態(tài)下,加入NIOSⅡ軟核、調(diào)制單元、解調(diào)單元;根據(jù)需要,DM9000A和SDRAM還需單獨(dú)的時(shí)鐘信號(hào),可利用Mega Wizard Plug-Manager創(chuàng)建一個(gè)ALTPLL,即可為DM9000A和SDRAM提供合適的時(shí)鐘信號(hào)。原理圖文件編輯后,即可進(jìn)行全編譯,生成POF和SOF二進(jìn)制格式的門(mén)級(jí)網(wǎng)表文件。

          4 系統(tǒng)軟件設(shè)計(jì)

          系統(tǒng)主程序首先進(jìn)行DM9000A的初始化,然后進(jìn)行中斷檢測(cè),依據(jù)優(yōu)先級(jí)順序依次響應(yīng)。主要的中斷響應(yīng)程序有DM9000A接收緩沖區(qū)已有數(shù)據(jù)包時(shí)的發(fā)送中斷響應(yīng)程序和接收單元緩沖器2中已存有待發(fā)送數(shù)據(jù)時(shí)的接收中斷響應(yīng)。

          4.1 發(fā)送中斷響應(yīng)程序的設(shè)計(jì)

          當(dāng)DM9000A的RX_SRAM接收到數(shù)據(jù)包后,會(huì)給出中斷信號(hào)通知處理器讀取數(shù)據(jù)包。此時(shí),中斷狀態(tài)寄存器(ISR)的PR位會(huì)給出收到數(shù)據(jù)包的信號(hào)。在發(fā)送響應(yīng)程序設(shè)計(jì)中,以ISR寄存器的PR位為0為中斷觸發(fā)條件,完成將RX_SRAM的相應(yīng)數(shù)據(jù)寫(xiě)入緩沖器1和調(diào)制的過(guò)程,具體程序流程圖如圖6所示。

          4.2 接收中斷響應(yīng)程序設(shè)計(jì)

          當(dāng)接收緩沖器2已存入數(shù)據(jù)達(dá)到一定數(shù)量時(shí),緩沖器2會(huì)通過(guò)AVALON_MM Slave 組件產(chǎn)生中斷信號(hào),可把此信號(hào)作為接收中斷程序觸發(fā)信號(hào)。中斷信號(hào)產(chǎn)生后,響應(yīng)程序主要完成兩項(xiàng)工作:(1)將緩沖器2的數(shù)據(jù)按幀加入目的和源MAC地址后寫(xiě)入DM9000A的發(fā)送緩沖區(qū)TX_SRAM; (2)將DM9000A發(fā)送緩沖區(qū)的數(shù)據(jù)幀發(fā)送給主機(jī)。但應(yīng)注意,當(dāng)ISR寄存器的PT位為0時(shí),表示數(shù)據(jù)幀發(fā)送完畢,要及時(shí)清除該標(biāo)志位以便發(fā)送新的數(shù)據(jù)幀。接收中斷響應(yīng)程序的信號(hào)流程圖如圖7所示。

          實(shí)驗(yàn)表明,基于SOPC的調(diào)制解調(diào)器設(shè)計(jì)方案,在兩相距近8km的主機(jī)之間,可靠地實(shí)現(xiàn)了雙絞線數(shù)據(jù)傳輸,較DSL而言,其通信距離有大幅提高。該設(shè)計(jì)方案為系統(tǒng)設(shè)計(jì)帶來(lái)了較大的靈活性和實(shí)用性,在實(shí)際應(yīng)用中,可針對(duì)不同的環(huán)境條件以及需求側(cè)重點(diǎn)的不同,更換調(diào)制解調(diào)模塊,從而靈活地實(shí)現(xiàn)各種調(diào)制方式。本設(shè)計(jì)具有整體方案改動(dòng)量小、開(kāi)發(fā)周期短、資源利用率高等優(yōu)點(diǎn)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉