《電子技術應用》
您所在的位置:首頁 > 可编程逻辑 > 业界动态 > 基于SOPC的调制解调器设计

基于SOPC的调制解调器设计

2009-01-13
作者:李帅领, 谈满堂, 马 宏

??? 摘??要: 在介紹以太網控制器DM9000A的數據幀收發過程的基礎上,運用SOPC技術,設計了用DM9000A作為調制解調器與主機間數據接口的調制解調器實現方案,并詳述了系統的軟、硬件設計過程。該方案具有實現簡單,調制方式易調整的優點。實驗結果表明:較DSL技術,該方案可提高雙絞線傳輸的有效距離。?

??? 關鍵詞: NIOSII; SOPC; 調制解調器; DM9000A

?

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

1 系統簡介?

??? 本設計采用ALTERA公司的CYCLONEII芯片實現,使用以太網控制器DM9000A作為調制解調器與主機間的數據接口。主機發送數據由FPGA實現調制后,由線路驅動器放大經混合電路送上雙絞線;同時由雙絞線傳來的接收信號經放大、濾波、解調等處理后,數據封裝成以太網數據包送至主機。系統整體框圖如圖1所示。?

?

?

??? 圖1中,存儲器模塊包含有SDRAM、SRAM、Flash,進行各種程序的存儲及堆棧保存等。LED顯示當前系統工作狀態,如正常工作顯示、數據發送進行中顯示、數據接收進行中顯示等;按鍵用來實現系統的硬復位功能;發送方向上,FPGA讀出DM9000A接收緩沖區數據、將調制后的數字已調信號送往D/A器件;接收方向上,FPGA將A/D輸出的數字待解調信號解調后送至DM9000A的發送緩沖區;線路驅動器對輸入的模擬差分信號放大,以適應長距離傳輸線的衰減;接收方向濾波模塊濾除通帶外信號,以降低干擾;混合電路將發射回路和接收回路連接在同一對雙絞線上,并抑制發射和接收之間的相互干擾。?

2 DM9000A簡介?

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

2.1 DM9000A數據幀發送過程?

??? DM9000A中3KB的發送緩沖區TX_SRAM可以同時存儲兩幀數據,按照先后順序命名為幀I、幀II。DM9000A初始化后,發送緩存區的起始地址為00H,當前數據幀為幀I。數據發送過程如下:?

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

??? (2)利用寫操作寄存器MWCMD(REG_F8)向TX_SRAM中寫入發送數據幀。?

??? (3)利用寫操作寄存器MWCMD(REG_F8)將數據幀長度寫入寄存器FCH和FDH。?

??? (4)通過發送控制寄存器TCR(REG_02)設置發送請求TXREQ,向DM9000A發出發送數據指令。 ?

??? 發出發送數據指令后,DM9000A即開始發送幀I,在發送幀I的同時,幀Ⅱ的數據即可寫入發送緩存區。在幀I發送完后,將幀Ⅱ的數據長度寫入寄存器FCH和FDH,最后將發送控制寄存器TCR(REG_02)設置發送請求TXREQ,即可開始幀Ⅱ的發送。依此類推,可實現幀I、幀Ⅱ,幀I、幀Ⅱ……的連續發送。?

2.2 DM9000A數據幀接收過程?

??? DM9000A中的接收緩存區RX_SRAM是一個13KB的環形結構,初始化后的起始地址為0C00H,緩沖區內每幀數據都有4B長的首部。第一個字節用來檢測接收緩存區中是否有數據,如果這個字節為01H,表明接收到了數據;如果為00H,則說明沒有數據。但是,如果第一個字節既不是01H,也不是00H,DM9000A就必須做一次軟復位來從這種異常狀態中恢復。第二個字節存儲了以太網幀狀態,由此可判斷所接收幀是否正確。第三和第四字節存儲了以太網幀長度,后續字節為有效數據。數據接收過程如下:?

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

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

??? (3) FPGA開始讀接收緩存區數據。?

??? 如果第一字節是01H,則說明有數據,若是00H說明無數據,否則復位;根據獲取的長度信息,判斷是否讀完一幀,如果讀完,接著讀下一幀,直到遇到首字節是00H的幀,說明接收數據已讀完。FPGA可以重新查看中斷狀態寄存器,等待新的有效數據幀。?

3 系統硬件設計?

??? 系統硬件設計包括ENET接口設計、調制解調單元的設計和硬件結構的生成三部分。硬件結構的生成主要使用QuartusII7.1的系統設計工具軟件SOPC Builder 來完成。圖2為FPGA內所實現的各功能模塊示意圖。?

?

?

3.1 ENET接口設計?

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

?

?

3.2 調制與解調單元的設計?

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

?

?

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

??? 本設計采用2CPFSK調制方式,圖5為用DSP Builder建立的調制器電路模型。圖中,8位并行數據由輸入端口DataIn輸入,經并串轉換后逐位送往多路器的數據輸入端sel[0:0]。FWORD1和FWORD2是頻率字設置端口,當數據輸入端sel輸入不同的值時,多路器會根據設置的頻率字輸出對應的相位值。將輸出相位值的累加結果送入BusConversion1,抽取出相位值的高14位,將此相位信號通過查找表SinLUT后,在數據輸出端即可得到2CPFSK已調信號。圖中并串轉換器的load輸入端用來控制字節數據的輸入,每當一字節調制完畢,load端口會輸入數據載入信號進行下一字節數據的調制。?

?

?

??? 同樣,解調單元包括解調器和緩沖器2兩部分。解調單元的設計與調制單元類似,所不同的是: AVALON_MM Slave 組件將地址類型設置為Read。?

3.3 硬件結構的生成?

3.3.1 用SOPC Builder生成軟核?

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

3.3.2 調制解調單元Sysmbol的生成?

??? 在Simulink中完成仿真驗證后,就需要把設計轉到硬件上加以實現,這是DSP Builder設計流程中最為關鍵的一步,轉換后可以獲得針對特定FPGA芯片的VHDL代碼。Symbol的生成過程:對模型的分析、設置Signalcompiler、把MDL模型文件轉換成VHDL、綜合、適配。上述過程完成后,把調制、解調模型的VHDL文件在QuartusⅡ下各自生成相應的Symbol。該Symbol會自動加載到工程庫中,可以如工程庫中自帶組件一樣調用。?

3.3.3 在QuartusⅡ下進行原理圖編輯?

??? 在BDF文件的編輯狀態下,加入NIOSⅡ軟核、調制單元、解調單元;根據需要,DM9000A和SDRAM還需單獨的時鐘信號,可利用Mega Wizard Plug-Manager創建一個ALTPLL,即可為DM9000A和SDRAM提供合適的時鐘信號。原理圖文件編輯后,即可進行全編譯,生成POF和SOF二進制格式的門級網表文件。?

4 系統軟件設計?

??? 系統主程序首先進行DM9000A的初始化,然后進行中斷檢測,依據優先級順序依次響應。主要的中斷響應程序有DM9000A接收緩沖區已有數據包時的發送中斷響應程序和接收單元緩沖器2中已存有待發送數據時的接收中斷響應。?

4.1 發送中斷響應程序的設計?

??? 當DM9000A的RX_SRAM接收到數據包后,會給出中斷信號通知處理器讀取數據包。此時,中斷狀態寄存器(ISR)的PR位會給出收到數據包的信號。在發送響應程序設計中,以ISR寄存器的PR位為0為中斷觸發條件,完成將RX_SRAM的相應數據寫入緩沖器1和調制的過程,具體程序流程圖如圖6所示。?

?

?

4.2 接收中斷響應程序設計?

??? 當接收緩沖器2已存入數據達到一定數量時,緩沖器2會通過AVALON_MM Slave 組件產生中斷信號,可把此信號作為接收中斷程序觸發信號。中斷信號產生后,響應程序主要完成兩項工作:(1)將緩沖器2的數據按幀加入目的和源MAC地址后寫入DM9000A的發送緩沖區TX_SRAM; (2)將DM9000A發送緩沖區的數據幀發送給主機。但應注意,當ISR寄存器的PT位為0時,表示數據幀發送完畢,要及時清除該標志位以便發送新的數據幀。接收中斷響應程序的信號流程圖如圖7所示。

?

?

??? 實驗表明,基于SOPC的調制解調器設計方案,在兩相距近8km的主機之間,可靠地實現了雙絞線數據傳輸,較DSL而言,其通信距離有大幅提高。該設計方案為系統設計帶來了較大的靈活性和實用性,在實際應用中,可針對不同的環境條件以及需求側重點的不同,更換調制解調模塊,從而靈活地實現各種調制方式。本設計具有整體方案改動量小、開發周期短、資源利用率高等優點。?

參考文獻?

[1] DM9000A appliction notes ver 1_20 04225.pdf.Davicom?Semiconductor Inc.2005.?

[2]?潘松,黃繼業,曾毓.SOPC技術實用教程.北京:清華大學版社, 2003.?

[3]?徐光暉,程東旭,黃如,等.基于FPGA的嵌入式開發與應用.北京:電子工業出版社,2005.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 岛国一区二区三区高清视频| 日韩在线视频线视频免费网站| 91成人国产在线观看| 日韩精品成人一区二区在线观看| 日韩欧美视频免费在线观看 | 人妻少妇精品无码专区二区| 三级三级久久三级久久18| 99精彩视频在线观看免费| 日韩视频免费在线| 欧美精品国产精品久久久| 亚洲综合视频1区| 亚洲欧洲精品一区二区三区波多野1战4| 日韩精品大片| 国产精品我不卡| 国产精品日韩欧美| 亚洲视频导航| 久99久视频| 欧洲精品久久久| 欧美中文字幕第一页| 不卡中文字幕av| 欧美精品一区二区免费| 久久精品午夜福利| 日本精品一区二区三区四区| 亚洲综合在线小说| 日本不卡免费高清视频| 久久久久久久久久婷婷| 91国产视频在线播放| 久久久99国产精品免费| 国产福利精品在线| 2019日韩中文字幕mv| 久久久免费精品视频| 99久久综合狠狠综合久久止| 国产精品入口尤物| 亚洲成人午夜在线| 亚洲欧美日韩精品在线| 国产精品久久久久久久乖乖 | 久久777国产线看观看精品| 国产aⅴ精品一区二区三区黄 | 久久天天躁狠狠躁夜夜躁| 久久精品在线免费视频| 欧美亚洲另类在线一区二区三区|