天天看點

基于單片機的專用信号發生器設計與應用

部落客福利:100G+電子設計學習資源包!

​​http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect​​ --------------------------------------------------------------------------------------------------------------------------

一 前 言

在簡易制導武器中,​​角位移傳感器​​​是姿态修正系統的敏感元件,用來測量彈體的角運動參數并以電信号形式給出三個資訊。其中輸出兩路幅值相等相位相差90°的正弦信号作為彈體偏轉測量的基準信号;另一路輸出測角信号,該信号相對基準信号的相位反映角偏差的方向、幅值反映角偏差量。專用​​信号發生器​​就是模拟角位移輸出信号的裝置,用來進行後續解調電路以及功放電路的檢測。它以單片機為核心,經過D/A轉換和放大電路的處理,最後輸出反應彈體姿态的基準信号和測角信号。

二 數學模型的建立

根據對輸出信号性能名額的要求,基準信号幅值:A, 基準信号頻率:f ,假設對A的精度要求為±0.01V,對f的要求為±10Hz,輸出信号為正弦信号,可以建立模拟基準信号的數學表達式如下:

基于單片機的專用信号發生器設計與應用

其中幅值的大小可以通過放大電路部分進行調節。

測角信号實時反映彈體的姿态,根據檢測需要和角位移傳感器的結構可以建立這一特定的Uc數學表達式為:

基于單片機的專用信号發生器設計與應用

其中幅值的大小可以通過放大電路進行調節,相角Ψ反映偏差的方向。

三 方案設計

信号發生器的設計任務就是産生三路信号,并且提供和主機通訊的軟硬體接口。首先根據輸出信号的頻率和幅值進行編碼,存儲在單片機的ROM裡,然後以一定的時間間隔依次将這些數字量送往 D/A進行轉換輸出,這樣,隻要循環不已的送數,在D/A的雙極性輸出端就可以得到信号波形。信号的輸出時序受上位機控制。

本設計采用AT89C4051組成一個最小的單片機系統。AT89C4051是Atmel公司的一款基于MSC51 核心的簡化單片機,指令與标準的51單片機相容,帶有4K可重新程式設計片上程式存儲器,128B的資料存儲器,多達15條可程式設計I/O線,兩個16位定時器 /計數器,片上模拟比較器,一個标準串行通訊口,内部帶有振蕩器和時鐘電路。系統的硬體結構圖如圖1。

基于單片機的專用信号發生器設計與應用

圖1  硬體結構圖

3.1 時鐘複位電路設計

采用單片機片内的振蕩器、上電複位和外部硬體看門狗電路。看門狗采用MAXIM公司的MAX706晶片,硬體電路如圖2。 MAX706可以提供至少200ms寬度的複位脈沖,為使看門狗溢出有效必須把MAX706的WDO和MR連接配接起來,看門狗輸入WDI連接配接4051的任何一個I/O端口都可。MAX706在程式運作期間監控整個系統的運作,喂狗程式必須在1.6秒之内使WDI引腳電平發生改變,否則MAX706将發出複位指令,使整個系統複位,看門狗時序如圖3所示。

基于單片機的專用信号發生器設計與應用

3.2 單片機與D/A的接口電路設計

D/A選用AD公司的AD7226。AD7226是具有8位精度的四通道D/A轉換器,最小分辨電壓約為4mV,可以滿足設計的精度要求。每個通道都有一個輸入鎖存器,可以對輸入的數字量進行鎖存;輸出端帶有輸出緩沖放大器。AD7226有一條寫入控制線WR,兩條位址線A0、A1,通過位址線可以選擇不同的D/A轉換通道。寫入時序如圖4所示。

基于單片機的專用信号發生器設計與應用

由于4051沒有專門的位址和讀寫控制引腳,此處可以通過普通的I/O引腳參考AD7226的寫入時序,利用軟體進行時序模拟。可以通過改變延時的時間來改變輸出的頻率。圖5是利用4051的P3.0、P3.1口作為A0、A1的位址線,P3.5作為WR的寫入控制線的硬體參考電路,相應的示例程式如下:

     ……..       

    MOV  P1, A         ;P1口置數               

    MOV  P3, #0FCH    ;選擇通道A       

    CLR   P3.5         ;置P3.5 低電平  

    SETB  P3.5         ;置P3.5 高電平,上升沿鎖存資料

    LCALL  DELAY     ;調用延時子程式

     ……..

基于單片機的專用信号發生器設計與應用

圖5   單片機與D/A接口電路

3.3 偏移電路設計

AD7226的每一個通道都可以單獨用來提供單極性或雙極性的輸出,要獲得雙極性的輸出必須外加運算放大器和偏移電阻,輸出電壓的範圍取決于參考電壓的大小,如圖6是在單極性電源供電情況下的雙極性輸出電路圖,要注意偏移電阻的阻值比對。

基于單片機的專用信号發生器設計與應用

圖6  AD7226雙極性輸出電路

3.4 放大電路設計

放大電路主要是對AD7226輸出的雙極性電壓信号幅值進行處理,以達到使用的要求。放大電路的輸入極增加一個一階低通濾波器,以防止D/A輸出的高頻成分幹擾;采用低頻運放作為射随器以提高輸入阻抗。放大電路部分如圖7所示。     

基于單片機的專用信号發生器設計與應用

圖 7  放大電路(部分)

四 信号發生器的​​軟體設計​​

4.1 信号編碼

在這裡要注意 的取值範圍是-1~ ,而不是-1~+1。取整時要按照四舍五入的原則以減少誤差,表1是雙極性輸出時二進制編碼表以及對應模拟輸出電壓。

表 1  雙極性輸出偏移二進制碼表

基于單片機的專用信号發生器設計與應用

4.2 軟體設計

軟體的任務是根據上位機的指令完成信号的控制和輸出,程式設計語言采用8051彙編語言,整個程式由初始化子產品、基準信号輸出子產品、測角及基準信号輸出子產品、中斷子產品、延時子產品和喂狗子產品組成。軟體流程如圖8所示。

4.3 與上位機接口時序

信号發生器采用中斷的模式響應上位機的控制指令,其指令的時序如圖9所示。

系統上電後,上位機須發送清零指令,複位INT0、INT1為低電平,Uj1、Uj2、Uc輸出為0。在INT0、INT1為低電平期間,可以發送基準信号輸出指令INT0,輸出基準信号Uj1、Uj2;在基準信号輸出期間,即INT0為高電平期間,可以發送測角信号輸出指令INT1,此時輸出測角信号 Uc,Uj1、Uj2同步輸出。當INT0變為低電平時,無論INT1為何種狀态,三路信号輸出都為0。發送基準信号和測角信号輸出前必須保證INT0、 INT1有效複位低電平。在INT0為低電平期間,陀螺儀模拟器不響應任何INT1指令。如果發生不可預料的邏輯紊亂,可以通過複位INT0、INT1,再按照圖9所示時序關系發送指令。

基于單片機的專用信号發生器設計與應用

圖 8   軟體流程圖

基于單片機的專用信号發生器設計與應用

圖 9  INT0、INT1工作時序

五 結 論

繼續閱讀