西北工業大學自動化學院(西安 710072) 蘇 坡 楊建華
西北工業大學 航海學院(西安 710072) 侯 宏
在現代測控領域,任意波形信號發生器已經成為系統研發和調試必不可少的工具。而目前市場上的信號發生器價格昂貴,體積比較大,而且波形可編程靈活度小,不能滿足實際的需要。
隨著電子技術和數字技術的飛速發展,DSP系統已經在眾多高科技領域獲得廣泛的應用,它具有速度快、編程方便、精度高、穩定性好、接口方便、集成度高等特點。本文借助DSP系統的這些優點,設計了一種基于DSP的任意波形的信號發生器AWG(Arbitrary Waveform Generator),具有成本低,穩定性好,結構簡單的特點。
運用Matlab仿真[1]產生待生成信號的數據文件,通常該數據文件都是浮點形式的,根據數/模芯片轉換的真值表,將浮點形式的數據文件轉化成對應的十六進制INTEL格式數據文件,然后將該數據文件Load載入到DSP的數據存儲空間,接著通過DSP控制DA轉換芯片產生所需的信號。
根據任意波形信號的生成原理,本文選用DSP和CPLD聯合控制的方式,系統主要分為4大功能模塊:1)DSP及其外圍;2)DA模塊;3)存儲擴展;4)CPLD。
考慮到成本和易開發性,主控芯片選用TMS320VC33。VC33是TI推出的一款32位浮點DSP,它的運算速度達150MFLOPS[2],單周期完成32位整數、40位浮點乘法運算;它的地址總線為24位,尋址空間為16M×32bit,為了方便外部存儲器存取,把16M×32bit空間分為PAGE0,PAGE1,PAGE2,PAGE3,當STRB和其中一個PAGE同時有效時,存儲器接口選通;片內34K×32bit SRAM,片上集成一個同步串口,兩個32bit的定時器,一個DMA通道;支持IEEE Std.1149.1(標準),0.18-us工藝,1.8V 核心電壓,3.3V I/O電壓,低功耗。
電源芯片選用TI公司的TPS767D318芯片,它把5伏的輸入電壓轉化成+3.3V和+1.8V分別供給DSP的外圍和內核。
選用AD公司生產的AD7840單通道DA轉換芯片,該芯片轉換速度可達到400kHz,轉換精度14bit,轉換范圍為-3V至+3V[3],能夠滿足任意波形信號產生的要求。該芯片的數據線與DSP芯片數據線的低14位相連,它的電壓轉換公式為其中Vou+為輸出的模擬電壓,PEFIN為參考電壓(+3伏),N值為數據總線上提供的數字信號,其范圍是:-8192#N#8191。其數字信號轉換成模擬電壓信號對應的真值表如表1所示。

?
在DA模塊的前端設置濾波調理放大電路。
包括外擴RAM和外擴FLASH。由于VC33內部的存儲空間有限,所以要對VC33進行存儲擴展。外擴RAM選擇CY7C1041,它是一款256K×16bit的靜態RAM。VC33沒有內部Flash,為了完成脫機運行和保存數據,本設計選擇DA28F320作為外擴FLASH,它是一款2M×16位的NOR FLASH。
CPLD控制模塊是本設計的關鍵模塊。使用CPLD器件可以提高系統設計的靈活性,并且可以簡化電路設計,節省很多常規電路中的接口器件和I/O口線。由于VC33的內部資源有限,有較少的I/O口,而本設計外圍設備比較多,因此采用DSP和CPLD聯合控制的方式。CPLD控制模塊主要實現對外圍設備的選址,使能和邏輯協調控制。
本設計CPLD選用的是ALTERA公司MAX7000系列的EPM7128STC100芯片,它具有高阻抗、電可擦等特點,可用門單元為2500個,管腳間最大延遲為5ns,工作電壓為+5V。在本設計中,將DSP地址總線的高八位A16至A23、讀寫、片選及分頁管腳PAGE0至PAGE3、外部存取選通信號STRB等控制信號接入CPLD,實現對外圍設備的選址、使能、中斷控制和有關邏輯控制[4]。
當STRB和PAGE0有效,地址線的高8位A16-A23等于0x20時,選通AD7840芯片(=0);外擴RAM CY7C1041的地址線與VC33的低18位相連,當STRB和PAGE0有效,地址線的高6位等于001011時,選通外擴 RAM(=0);當 PAGE1有效時,選通 FLASH DA28F320(=0),通過 CPLD的 I/O口輸出高電平給使FLASH工作在普通模式。


圖2 生成的幅度為3V頻率為10KHz的方波信號

圖3 生成的幅度為3V頻率為1KHz的正弦波波信號

圖4 生成的幅度為3V長度為3ms的巴特沃斯脈沖信號
系統軟件包括兩個部分:數據格式轉換程序和DSP控制程序設計。
該部分程序采用Matlab編程。先用Matlab仿真產生待生成信號的數據文件,根據DA芯片數模轉換的真值表,對信號的數據文件進行逐點轉換,將數據文件轉換成十六進制的INTEL格式。VC33的數據總線為32位,而AD7840的數據位數為14位,因此,轉換后的十六進制INTEL格式低4位有效,高4位均為0,例如0x00001FFF表示+2.999634 V。轉換的方法如下:
根據轉換公式 N=round(Vou+×8192/3),將浮點形式的數據轉換成十進制的整型形式。N為轉換后的十進制整型形式,round()表示按四舍五入的方法取整。
如果 N為正,直接將其存儲為十六進制的INTEL格式。
如果 N為負,首先將轉換成14位的補碼形式,然后存儲為十六進制的INTEL格式。將 N轉換成補碼形式的方法為 N=214-abs(N),其中 abs()表示取模。
系統用定時器0控制模數轉換芯片AD7840產生所設計的信號,轉換速率要與Matlab仿真產生的信號的采樣率一致。系統的軟件流程圖如圖1所示
利用本系統生成了三種波形的信號;分別為幅度為3V頻率為10KHz的方波信號;幅度為3V頻率為1KHz的正弦波信號;幅度為3V長度為3ms的巴特沃斯脈沖信號。通過示波器觀察到的波形分別如圖2,圖3,圖4所示。
從圖2,3,4可以看出,該系統產生的波形與設想產生的波形一致。實驗證明該系統可以產生所需要的波形。
本設計利用DSP+CPLD作為硬件平臺,成功實現了任意波形發生器,該系統具有成本低、體積小、硬件電路簡單、使用方便的特點,能夠滿足工程實際的需要,具有良好的應用價值。
[1] 任緒科,趙俊渭,周明.基于CPLD和單片機的任意波形發生器設計[J].電子產品世界,2005(1)
[2] 黨瑞榮,謝燕,李利品.TMS320CX DSP原理及應用[M].西安:陜西科學技術出版社,2006,3
[3] 唐健,雷軼鳴,鄒健.14位串/并行D/A轉換器AD7840及在程控電流源中的作用[J].四川文理學院學報,2007,17(5)
[4] 周 健,閆建國,周志久.CPLD在在慣性測量單元數據采集系統中的應用[J].電子測量技術,2008,11(31)