《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 基于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。
主站蜘蛛池模板: 4虎1515hh永久免费| 亚洲精品网站在线观看不卡无广告 | 爆乳少妇在办公室在线观看| 国产精品国产三级在线专区 | 精品无码成人网站久久久久久| 在线免费观看一级片| 久久久91精品国产一区二区 | 国产ts人妖视频| 99日精品欧美国产| 日韩国产第一页| 亚洲欧美日韩在线不卡| 精品欧美一区二区在线观看| 国产成人精品免费午夜app| 一卡二卡三卡四卡在线| 欧洲高清一区二区三区试看| 伊人久久综合影院| 麻豆国产高清精品国在线| 女人张开腿让男人插| 久草福利在线观看| 白丝爆浆18禁一区二区三区| 国产亚洲综合成人91精品| 天堂资源中文在线| 天堂中文在线资源| 久久国产热视频| 欧美又粗又长又爽做受| 亚洲风情亚aⅴ在线发布| 综合图区亚洲欧美另类图片| 国产精品h在线观看| 99re在线视频精品| 妞干网手机免费视频| 乱岳合集500篇| 欧美精品中文字幕亚洲专区 | AAAAA级少妇高潮大片免费看| 无人视频在线观看免费播放影院| 亚洲激情中文字幕| 精品久久久久久中文字幕一区| 国产乱妇乱子在线播放视频| 四虎a456tncom| 国产观看精品一区二区三区| nanana最新在线视频免费观看网| 成年性午夜免费视频网站不卡|