譚家杰
(衡陽師范學院 物理與電子工程學院,湖南 衡陽 421002)
基于FPGA的增量調制研究
譚家杰
(衡陽師范學院 物理與電子工程學院,湖南 衡陽 421002)
PCM 存在帶寬大、比特率高的缺點,可用增量調制(ΔM調制)代替它。介紹了增量調制的基本概念及調制原理,分析了調制不產生過載的條件,提出了用Altera的FPGA器件實現的方法。設計制作了這種調制的硬件、軟件。通過Signal Tap II在線調試,用示波器測試波形,結果表明硬件穩定,軟件可靠,調制信號速率可達20kpbs,系統性能較好。
FPGA;ΔM調制;PCM調制;在線調試
通信系統信源可分為數字、模擬兩類,數字信源一般是模擬信源經采樣、量化、編碼轉換成數字信號傳輸的[1]。數字信源可以編成如ASCII(American Standard Code for Information Interchange),EBCDIC碼(Extended Binary Coded Decimal Interchange Code)的格式,然后對其進行加密、信道編碼進行傳輸。PCM(Pulse Code Modulation)是數字通信的編碼方式之一,并廣泛用于數字通信系統[2-3]。但是,PCM存在傳輸占有更大帶寬的缺點,為降低傳輸比特率,可以采用差分脈沖調制的方法對其進行改進。將前一采樣值作為預測值,當前采樣值與它的差值進行編碼傳輸。如果僅采用一位對當前值與前一值進行編碼,就是增量調制(ΔM)[4-5]。增量調制研究方法主要有模擬仿真法和硬件實現法。模擬仿真法是運用matlab、system view軟件對調制性能進行研究[6-8]。硬件實現法主要集中在連續的模擬信號進行A/D采樣,用單片機實現[9-10]。增量調制與PCM相比,具有結構簡單、傳輸比特率高、抗干擾性能強,廣泛用于軍用、民用部門的通信[11]。論文在研究增量調制原理的基礎上,提出了可編程邏輯器件FPGA(Field Programmable Gate Array)實現的方案,具有速度快,編碼靈活等優點。
PCM調制占用更大的帶寬,原因是信號的抽樣值范圍大,導致數字傳輸需要較多的編碼位數。為了降低編碼信號的比特率及帶寬,法國工程師De Loraine提出了一種新的差分調制方法,即增量調制(ΔM)。它是差分脈沖調制的一種特例,基本思想是對當前抽樣值與預測值的差進行1比特編碼[5]。ΔM調制的工作原理可以用如圖1所示框圖來描述[1]。

圖1 增量調制編碼器
根據圖1,求出抽樣值與預測值之差為:
(1)


圖2 增量調制譯碼
譯碼采用圖2原理,當接收的編碼值為“1”時,將前一個預測值σ加輸出;接收為“0”,則將預測值減輸出。也可用積分器加低通濾波實現,階梯型信號通過低通濾波器平滑輸出。
(2)
若考慮輸入信號為正弦信號,采樣速率滿足如下公式就不會出現過載現象。
(3)
式中A為信號的最大幅值,f為信號的頻率,σ為量化臺階。當采樣速率滿足(3)時,可用控制器和數模轉換器件實現增量調制的譯碼。
2.1 硬件模塊
硬件模塊有控制器、模數轉換、數模轉換。控制模塊采用Altera公司的EP2C5T144C8NFPGA器件,主要完成功能:(1)控制A/D器件進行模數轉換,完成增量調制編碼。(2)控制D/A器件進行數模轉換,完成增量調制譯碼。(3)產生位同步信號。
A/D模塊采用德州儀器TLC2543模數轉換器,它屬于CMOS開關電容逐次逼近型12位器件。控制輸入端口有:片選、輸入時鐘、地址輸入端。輸出端口:轉換完成、數據輸出,相對并行器件需要的端口少得多。它具有通道多、精度高、速度快、使用靈活的特點,為設計者提供了一種高性價比的選擇。TLC2543為單一5伏電源,FPGA的IO電壓為3.3伏,設計TLC2543的接口電路需考慮電平轉換問題。系統采用簡單的解決辦法,對于TLC2543的輸入端口,如片選、時鐘、地址命令輸入應將其通過電阻上拉至5伏;輸出端口可串聯電阻接FPGA的IO。特別注意的是轉換完成端口(EOC)一定要與FPGA相連接,并作為控制端口,否則不能達到預期目的。
D/A模塊選擇德州儀器TLV5619數模轉換器,是12位并行器件,控制端口:片選(CS)、寫使能(WE)、低功耗(PD)、異步數據更新(LDAC),并行輸入數據(D0-D11)。設計時需注意將模擬通道盡量縮短以防止信號的反射;數字通道與模擬通道要保持一定距離,以避免數字信號耦合到模擬通道;最后需注意器件與FPGA的連接方式,解決方式可以參考TLC2543的方案完成。
系統的主控器件為Altera的CycloneII型FPGA,設計電路時輸入時鐘和復位要使用全局時鐘管腳;設計下載口采用JTAG方式,主動配置則可有可無。為保證正常下載程序,FPGA的特殊管腳nCongfig、nConfig-Done、nStatus、TDO、TMS需上拉至3.3伏;TCK、nCE則下拉至地;MSEL0、MSEL1接地;IO電源、內核電源、鎖相環電源必須用0.1uF電容去耦。設計制作的硬件實物見圖3。

圖3 增量調制系統實物圖
2.2 軟件模塊
軟件編程語言為VHDL,程序設計方法為有限狀態機進程,包括分頻進程、ΔM編碼進程和ΔM譯碼進程。編碼進程嚴格遵循TLC2543的時序,即16個時鐘傳輸,傳輸的高位在前、片選為低電平;譯碼進程參照TLV5619的時序。
TLC2543的技術指標表明,它的輸入時鐘最大值為4.1MHz,TLV5619的數字輸入時鐘頻率相對高很多,因此,分頻進程輸出的時鐘不能高于TLC2543的最大值。分頻進程采用計數方法,并將分頻時鐘作為編碼進程的輸入時鐘。
ΔM編碼進程采用單一進程的有限狀態機,設定了兩個狀態變量ADC_state和Delta_state,前者實現模數轉換,后者實現ΔM編碼信號的輸出。ADC_state共有5個狀態,實現功能為選擇輸入地址、轉換方式以及讀取本次轉換數據,它們都是在EOC=“1”時完成狀態轉移的。Delta_state也有5個狀態,是在EOC=“0”情況下完成狀態轉移。將轉換完成的數據從寄存器中讀出與先前的數據對比,決定編碼輸出的電平。隨著Delta_state狀態改變,FPGA將增量調制信號和位同步信號在FPGA的固定管腳輸出。
ADC_state分五個狀態,主要完成的工作如下:
狀態0:片選TLC2543_CS、時鐘TLC2543_CLK賦初值“0”;TLC2543_INPUT輸入16位地址指令“0000110000000000”,前4位“0000”表示選擇通道0。“11”選擇輸出16位,接下的“00”表示高位在前,輸出單極性信號,后8位“00000000”無實際意義。設置變量INDEX:=15對16位命令串行計數,16位命令在時鐘作用下串行輸出至TLC2543的地址輸入端。Delta_state賦值“0”,ADC_state:=“1”,下一個的時鐘上升沿來時程序跳轉至狀態1。
狀態1:此處僅有一條語句:ADC_state:=2,其作用是跳到狀態2。
狀態2:將INDEX減1計數,TLC2543_CLK<=“0”。當16位指令串行發送完畢跳到狀態4,否則跳到狀態3。
狀態3:TLC2543_CLK<=“1”,把轉換完成的數據讀1位放到FPGA的寄存器,再跳到狀態2。
狀態4:TLC2543_CLK<=“1”,讀模數轉換寄存器中的最后1位,并賦延時數,跳到狀態5。
狀態5:延時10個時鐘,完成后跳到狀態0。
Delta_state也分為5個狀態,狀態0,輸出位同步信號“0”,跳到狀態1。狀態1將本次采樣值與上次采樣值比較并編碼,跳到狀態2,位同步信號輸出“1”。狀態2,3,4僅僅改變狀態。狀態5,輸出位同步低電平,狀態變量不做改變,從而達到采樣一次輸出一個增量編碼的效果。
ΔM譯碼進程同樣為單一進程的有限狀態機,分成5個狀態,設置DAC_state變量。系統復位時,狀態變量賦值“0”,片選端TLV5619_CS<=“1”,寫使能端TLV5619_WE<=“1”,異步數據更新TLV5619_LDAC<=“1”。各狀態完成的工作如下:
狀態0,片選端TLV5619_CS<=“0”,選中數模轉換器跳到狀態1。
狀態1,寫使能端TLV5619_WE<=“0”,根據輸入編碼求輸出數據,跳到狀態2。
狀態2,根據編碼值求出12位數據并行輸出,跳到狀態3。
狀態3,寫使能端TLV5619_WE<=“1”,跳到狀態4。
狀態4,異步數據更新TLV5619_LDAC<=“0”跳到狀態5。
狀態5,片選端TLV5619_CS<=“1”,TLV5619_LDAC<=“1”,跳到狀態0。
3.1 SignalTap II測試結果
隨著微電子技術、封裝技術的發展,傳統的探針法測試系統功能越來越困難,嵌入式邏輯分析儀能提供高效的解決方案。Altera公司的SignalTapII硬件調試工具利用FPGA的內部資源,可在片上直接調試系統,為FPGA的程序調試提供了極大方便[12]。QuartusII軟件通過邊界掃描可以捕獲和顯示信號,并通過JTAG口送SignalTapII邏輯分析儀,為調試者提供實時數據來觀察程序運行是否正確[13]。TLC2543進行模數轉換,器件的接口為串行接口,存在控制端口多,輸入有片選端、時鐘輸入端、地址命令輸入端。采樣時序有8時鐘、12時鐘、16時鐘的,用VHDL編寫數據轉換程序復雜。如果不符合預定時序,則不能正確獲得數據。為了保證程序能正確操作TLC2543,在系統硬件調試時采用了SignalTapII工具,調試步驟如下:
(1)創建STP文件,在File菜單或Tools菜單下新建一個SignalTap文件。
(2)在SignalTap的Setup標簽頁中將要觀察的節點或總線添加至列表。
(3)設置邏輯分析儀的采樣時鐘,它決定了顯示信號的分辨率,可采用全局輸入時鐘作為觸發信號。根據FPGA芯片設置采樣深度為2k。設置觸發類型為上升沿觸發,最后選擇觸發級數為10級。
(4)完成上述設置后重新編譯程序;設置編程硬件(注意用JTAG口),選擇目標器件,要把邏輯分析儀的編程文件(.sof)下載至FPGA芯片。
(5)查看采樣數據。單擊運行邏輯分析儀,當設置的觸發條件滿足時,SignalTap邏輯分析儀開始捕獲數據,根據數據分析是否與預期信號是否一致,從而判斷程序是否存在問題。
硬件系統中的模數轉換程序實現的困難最大,為了測試系統是否采集到信號,采用SignalTap邏輯分析儀對編碼信源調試。將器件的相關端口添加至文件,按照上述5步調試步驟得到圖4波形。TLC2543_CLK為轉換時鐘,TLC2543_CS為片選、TLC2543_EOC為轉換完成端口、TLC2543_OUTPUT為地址命令輸出端、TLC2543_INPUT為轉換完成的數據輸入端。轉換時鐘為16個,地址命令端輸出16位命令來選擇轉換通道、輸出數據位數、位序、極性等功能,同時數據輸入端讀出上一次轉換完成的數據。在轉換完成端為高電平、片選為低電平的情況下,TLC2543_OUTPUT輸入地址命令到TLC2543。其中前4個時鐘TLC2543_OUTPUT輸出低電平,說明下次AD轉換是通道0。第4個時鐘下降沿,TLC2543_OUTPUT連續輸出兩個高電平,對應的功能是16位數據輸出,后續10個時鐘TLC2543_OUTPUT輸出全部為“0”,其中第一個“0”為高位在前,后一個“0”為輸出數據位單極性。TLC2543_EOC為低電平,表示轉換中,程序設計時采用延時等待,它與片選端變高相差不大,說明延時比較精確。判斷是否采集到數據,將模擬信號的輸入端接正弦信號,觀察TLC2543_INPUT是否變化,如果一直不變則說明未采樣到數據,此時需修改硬件程序。圖4的波形滿足TLC2543的時序要求,并且采樣的數據輸入端口一直在變化,因此可以判定程序沒有問題。
模數轉換程序調試通過后,再進行ΔM調制編碼輸出功能的調試,也就是編碼和同步時鐘輸出。圖5中的Delta_clk為同步時鐘,Delta_OUT為增量調制的編碼輸出。當前采樣值從TLC2543中讀出后便與前一采樣值進行對比,當前值大于前值輸出高電平,否則輸出低電平。圖5的同步時鐘是在TLC2543_CLK時鐘的下降沿輸出,輸出的編碼在同步的上升沿輸出且保持到下一同步信號。上述情況說明輸出的編碼信號和位同步信號都沒有問題。

圖4 數據采集SignalTap圖

圖5 PCM編碼及同步
3.2 硬件測試結果
為了測試增量調制系統編碼、譯碼是否正確,采用的測試方法為:將正弦信號、三角信號、方波、鋸齒波輸入系統,觀察編碼信號與同步信號、編碼信號與輸入信號、編碼輸入信號與譯碼輸出信號是否符合增量調制編碼、譯碼的規律。
為檢測同步信號與編碼信號關系是否一致,用數字示波器得到輸入為正弦信號的輸出波形對比圖,如圖6所示。圖6中上部的圖形為編碼信號,下部為同步時鐘。同步時鐘分布均勻,說明編碼是等間的。正弦信號一邊是增加的一邊是減少,圖6的編碼信號為高、低電平交錯,這種現象符合正弦信號的編碼規律。

圖6 示波器輸出的編碼及同步信號
對比了正弦信號、三角信號、方波信號的輸入和譯碼輸出信號,增量調制的優點是無需幀同步信號、只要位同步即可。為了說明解調譯碼沒有問題,這里給出了三角信號的對比圖,見圖7。圖中的上半部分為輸入的模擬信號,下半部分為譯碼輸出信號,兩者只是在輸出幅度上有差別。實驗結果表明輸入信號在0-3.3伏,頻率在小于20kHz的條件下能正確譯碼。

圖7 編碼輸入、譯碼輸出信號
本文設計的增量調制系統,用FPGA技術控制模數轉換、數模轉換器件,實現的調制信號傳輸速率可達20kpbs,電壓范圍0—3.3伏,且譯碼正確無誤。探討了以FPGA為核心的硬件設計要領,并給出了增量調制程序編制的思想。若要提高系統的速率,可選擇轉換速度更快的模數轉換器件。設計系統充分利用了FPGA的豐富資源,設計的系統靈活性、可靠性較好。調試采用SignalTap工具,為復雜的可編程系統提供了參考。測試結果表明電路穩定、抗干擾性能強,軟件運行可靠,該系統可廣泛應用于其它通信設備及教學。
[1] 樊昌信, 曹麗娜. 通信原理 [M]. 7版.北京: 國防工業出版社, 2015.
[2] 謝秀峰, 蘇淑靖. 基于FPGA的通用PCM接收解碼電路的設計 [J]. 電子器件, 2015, 38(3): 543-547.
[3] 孫敬輝, 熊文卓. 基于FPGA的激光目標指示器PCM編碼的實現 [J]. 電子測量技術, 2014, 37(11): 52-54.
[4] 趙紅光. 數字調制系統中改進型增量調制的分析與應用 [J]. 鞍鋼技術, 2000(6): 32-35.
[5] 許小明. 增量調制系統的設計實現及性能分析 [J]. 宜春學院學報, 2008, 30(6): 36-38.
[6] 岑鵬瑞. 通信系統中基于matlab進行增量調制 [J]. 信息系統工程, 2013(2): 35-36.
[7] 李春暉. 基于SystemView的增量調制研究 [J]. 電子技術與軟件工程, 2014(19): 84.
[8] 宋銳, 張凱.Δm,Δ-Σ與ADM增量調制系統的仿真比較分析 [J]. 吉首大學學報(自然科學版), 2013, 34(3): 35-38.
[9] 金丑. 用單板機實現增量調制與解調 [J]. 電子技術應用, 1988(3): 22-24.
[10] 紀宗南. 增量調制的原理及其在A/D轉換中的應用 [J]. 集成電路應用, 1990(6): 1-8.
[11] 于子甲, 宋啟祥, 董全德. 基于matalb的自適應增量調制性能分析 [J]. 蚌埠學院學報, 2015, 4(4): 13-15.
[12] 張偉, 顧強, 李世中, 等. 基于SignalTapII的數據采集系統設計與調試 [J]. 微型機與應用, 2014, 33(2): 8-11.
[13] 郭寶鋒, 韓壯志, 何強, 等. 基于嵌入式邏輯分析儀SignalTapⅡ的系統調試技術研究 [J]. 微計算機應用, 2011, 32(10): 53-57.
(編校 高 峰 實習生 郭齊旗)
Research on Delta Modulation Based on FPGA
TANJia-jie
(College of Physics and Electronic Engineering,Hengyang Normal University,Hengyang Hunan 421002,China)
The PCM has disadvantages of large bandwidth and high bit rate,so it can be replaced by the delta modulation (ΔM modulation).This paper introduces the conception and the principle of ΔM modulation,and the overload condition of ΔM modulation is analyzed.Then we propose using Altera FPGA device to implement this system,and give the design of such a modulation including the hardware system and the software system.Through debugging in-circuit using SignalTap II logic analyzer,testing the waveform using the oscilloscope,the results show that the hardware is stable,the software is reliable,the bit rate reaches 20kpbs,and the performance system is better.
FPGA; ΔM modulation; PCM modulation; debug in-circuit
2016-09-24
譚家杰(1968-),男,湖南衡陽人,副教授,博士,主要從事光電檢測、光無線通信與信號處理及教學研究。
TN914
A
1673-0313(2016)06-0075-05