摘要:為了實現(xiàn)UAV的舵機和油門調節(jié)控制的需要,飛控計算機系統(tǒng)采用BURR—BROWM公司的D/A芯片DAC7725N來設計D/A擴展模塊。使用CPLD實現(xiàn)接口邏輯,簡化了電路設計,后續(xù)的系統(tǒng)調試驗證表明,D/A轉換通道在1 000 Hz的刷新頻率下,精度能夠達到5.8 mV,完全能夠滿足UAV飛行控制系統(tǒng)實際應用的要求,具有較高的實用性。
關鍵詞:數(shù)模轉換;DAC7725N;DSP28335;復雜可編程邏輯器件
模擬量控制和PWM控制是當前無人機舵機控制系統(tǒng)最常用的兩種控制方式。其中模擬量控制作為一種傳統(tǒng)控制方式,至今仍被廣泛應用,絕大多數(shù)的飛行控制計算機都提供模擬量輸出通道,因此,D/A轉換模塊是飛行控制計算機中必備的功能模塊之一。DSP28335片上沒有DAC模塊,所以必須使用片外擴展。
DAC模塊設計涉及D/A轉換芯片的選擇、參考電壓源的配置、數(shù)字輸入碼與模擬輸出電壓的極性等問題,而其中最核心的問題是D/A轉換芯片的選擇與應用問題,主要需要考慮的技術指標有分辨率和建立時間等。本文選用BURR—BROWM公司的D/A轉換芯片DAC7725N實現(xiàn)此功能。
DAC7725是一款高輸出電壓和低功耗的D/A轉換器件,產(chǎn)品功耗低(最多250 mW)、建立時間快(10μs)、線性度和單調性為12 bit,接收12位并行輸入數(shù)據(jù),采用雙緩沖輸入邏輯,提供數(shù)據(jù)回讀模式。DAC的低功耗,小體積使DAC7725特別適合于閉環(huán)伺服控制系統(tǒng)。
1 總體設計方案
本系統(tǒng)采用TI公司的高性能數(shù)字信號處理器TMS320F28335(DSP28335)作為中央處理單元。該款DSP芯片提供高性能并行外設擴展接口XINTF,對外提供具有標準時序的片選、讀/寫控制信號;同時提供32位數(shù)據(jù)總線、20位地址總線,并且提供3個獨立的片選信號,擴展能力強,使用方便。
因為單片DAC7725N提供4通道模擬量輸出,本系統(tǒng)使用兩片DAC7725N擴展得到8路模擬量輸出通道。DSP將代表舵面位置的數(shù)字量通過并行數(shù)據(jù)接口送至DAC7725N,DAC7725N將其轉換成相應的模擬電平信號后送至舵控電路,從而完成本次舵面刷新操作。結構圖如圖1所示。
2 DAC轉換精密基準電路設計
基準電路具有穩(wěn)定性好,對系統(tǒng)的操作環(huán)境(如電源電壓、工作溫度、輸出負載)變化不敏感的特點,可以為其它電路模塊提供較為精確的參考點,因此它是模擬集成電路和數(shù)模混合電路中不可缺少的基本單元電路。DAC7725N精密基準電路如圖2所示。
3 DSP與DAC7725N接口電路的設計
比較DSP的XINTF接口與DAC7725N的并行端口可知,兩接口具有良好的兼容性,只需少量接口邏輯電路的配合即可建立起DSP與DAC7725N之間的通信連接。為提高邏輯電路設計的靈活性和可靠性,所有的邏輯電路全部使用1片CPLD實現(xiàn)。DSP與DAC7725N接口電路如圖3所示。
圖3給出了1片DAC7725N與DSP實現(xiàn)通信連接的電路原理圖。本系統(tǒng)共使用2片DAC7725N,另一片使用相同的接口電路,這里不再重復給出。
3.1 DAC7725N片選譯碼邏輯設計
1#DAC7725N芯片提供第1#~4#模擬量輸出通道,2#DAC7725N芯片提供第5#~8#模擬量輸出通道,DSP要選通某一通道,首先要通過CPLD的片選譯碼邏輯選通提供該通道的DAC7725N芯片。本系統(tǒng)中采用部分譯碼的方式提供每個DAC7725N芯片的片選信號。邏輯電路如圖4所示。
地址分配情況如表1所示。
3.2 DAC7725N寫使能信號R/W的邏輯設計
DAC7725N使用R/W信號使能本次寫操作。寫操作是D/A轉換芯片的基本操作,DSP將待轉換的數(shù)字量寫入DAC7725N,在DAC7725N的模擬量輸出端即可得到相應幅值的模擬信號。讀操作是DAC7725N的特色之一,DAC7725N支持數(shù)字量回讀功能,使得DSP能夠方便地獲取當前正在參與轉換的數(shù)字量的值。下面以D/A轉換芯片的寫操作為例,詳細分析芯片DAC7725N寫操作時序設計,由于讀操作與寫操作時序設計類似,這里不再累述。
DAC7725N執(zhí)行寫操作時對R/W信號和CS信號的時序關系有一定的要求,如圖5所示。
只要DSP在對DAC7725N執(zhí)行寫操作時,以CPLD為核心的接口電路能夠提供符合上述標準的邏輯時序,就能確保DSP對DAC7725N的寫操作正確執(zhí)行。
XINTF在執(zhí)行寫操作時XR/W信號時序圖示如下:
通過對DAC7725N與XINTF的接口時序作定性對比可知,令
保持一致,總體上可滿足DAC7725N的接口時序要求。
4 D/A轉換驅動程序設計
4.1 轉換通道刷新的程序設計
刷新操作是指該D/A轉換通道能夠及時鎖存來自CPU的數(shù)字量輸入,并輸出相應幅值的模擬信號。刷新操作是D/A轉換通道的基本操作。對于本系統(tǒng)來講,DSP想要刷新某一D/A轉換通道的模擬量輸出,只需向相應的端口地址寫入數(shù)據(jù)即可。以DAOUT1通道為例,給出示例代碼如下:
unsigned int*DAOUT1=(unsigned int*)(0x004000;
*DAOUT1=daout_w[0];
上例中,首先為DAOUT1通道定義一個指針變量,指向該通道所分配的地址,也就是0x004000;數(shù)組元素daout_w[0]存放該通道參與轉換的數(shù)字量。DSP執(zhí)行上述寫指令時,XINTF的地址總線會送出0x004000,將DAOUT1通道選通,工作于直通模式;控制信號XR/W會送出低有效脈沖,使能本次寫操作;數(shù)據(jù)總線會送出daout_w[0]里存放的數(shù)字量。至此,DAOUT1通道的刷新操作全部完成。
4.2 轉換通道數(shù)據(jù)回讀的程序設計
數(shù)據(jù)回讀功能是DAC7725N芯片的特色之一。DAC7725N允許在轉換過程中讀出當前正參與轉換的數(shù)字量,DSP據(jù)此可以獲取所有D/A轉換通道輸出的模擬信號的幅值,而無需使用額外的傳感器和A/D轉換電路。與數(shù)據(jù)給定(刷新)操作類似,數(shù)據(jù)回讀操作只需從相應的端口地址讀出數(shù)據(jù)即可。以DAOUT1通道為例,給出示例代碼如下:
daout_r[0]=*DAOUT1;
上例中,存入數(shù)組元素daout_r[0]中的數(shù)據(jù),即是該通道當前正在參與轉換的數(shù)字量。DSP執(zhí)行上述寫指令時,XINTF的地址總線會送出0x004000,將DAOUT1通道選通;控制信號XR/W保持高電平,使能本次讀操作;DAC7725N將該通道當前正參與轉換的數(shù)字量送至數(shù)據(jù)總線,供XINTF讀取。至此,DAOUT1通道的數(shù)據(jù)回讀操作全部完成。
5 系統(tǒng)性能驗證
D/A轉換通道在飛行控制系統(tǒng)中負責給出代表舵面位置的模擬信號。刷新速率不低于50 Hz,精度不低于200 mV。圖7是DAC擴展模塊實物圖。
D/A轉換通道的驗證方案設計如下:
每一路D/A轉換通道均要求輸出正弦波信號,使用定時器定時刷新的方式,將定時器的定時周期設為1 ms,刷新頻率可達1 000 Hz;將-10~+10 V的輸出幅值離散為1 000個點,這樣,理論上的轉換精度可達20 mV;用示波器實時監(jiān)測每一通道的輸出信號,看輸出正弦波的頻率是否穩(wěn)定為1 000 Hz,波形是否有明顯的異常抖動,每隔一段時間讀取正弦波的振幅值,從而驗證在1 000 Hz的刷新頻率下,轉換精度是否滿足要求。參考以上論述,先以通道E—D/A1參與測試,結果顯示,E—D/A1通道能夠輸出預期的正弦波信號,證明此D/A轉換通道能正常工作。剩余7通道也按相同方式驗證,在確知所有的D/A通道已調通之后,對各通道的轉換精度進行了靜態(tài)測試,測試方案如下。
在程序中向每路D/A轉換通道寫入相同且固定的數(shù)字量,并以20 ms為周期進行刷新。使用高精度直流電壓表對各通道輸出的模擬信號進行測量。由于數(shù)字量固定且已知,可由相關公式計算得到理論上輸出模擬量幅值,將其作為基準參考與實際測得的模擬信號幅值進行比較,可較為準確地得到各路D/A轉換通道的轉換精度。測試結果表明,所有D/A轉換通道精度能夠達到5.8 mV,可滿足無人機飛行控制系統(tǒng)的應用需求。
6 結論
文中以DSP作為中央處理單元(CPU),使用兩片DAC7725N擴展得到8路模擬量輸出通道。DSP使用XINTF接口實現(xiàn)對DAC7725N的驅動,驅動程序簡單,接口邏輯可靠。使用CPLD實現(xiàn)DSP與TL16C754之間的接口邏輯,簡化了電路設計,進一步提高了系統(tǒng)的可靠性。實驗證明,所有D/A轉換通道在1 000 Hz的刷新頻率下,精度能夠達到5.8 mV,完全能夠滿足飛控系統(tǒng)實際應用的要求。