at89c4051應(yīng)用電路, AT89C4051是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含4k bytes的可反復(fù)擦寫的只讀Flash程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,功能強大的AT89C4051可為您提供許多高性價比的應(yīng)用場合。
本文設(shè)計了一種基于單片機的模擬角位移傳感器輸出信號的電子裝置,它以單片機為核心,經(jīng)過D/A轉(zhuǎn)換和放大電路的處理,最后輸出反應(yīng)角位移的基準(zhǔn)信號和測角信號。
關(guān)鍵詞:角位移傳感器 單片機 D/A
在簡易制導(dǎo)武器中,角位移傳感器是姿態(tài)修正系統(tǒng)的敏感元件,用來測量彈體的角運動參數(shù)并以電信號形式給出三個信息。其中輸出兩路幅值相等相位相差90°的正弦信號作為彈體偏轉(zhuǎn)測量的基準(zhǔn)信號;另一路輸出測角信號,該信號相對基準(zhǔn)信號的相位反映角偏差的方向、幅值反映角偏差量。專用信號發(fā)生器就是模擬角位移輸出信號的裝置,用來進(jìn)行后續(xù)解調(diào)電路以及功放電路的檢測。它以單片機為核心,經(jīng)過D/A轉(zhuǎn)換和放大電路的處理,最后輸出反應(yīng)彈體姿態(tài)的基準(zhǔn)信號和測角信號。
二 數(shù)學(xué)模型的建立
根據(jù)對輸出信號性能指標(biāo)的要求,基準(zhǔn)信號幅值:A, 基準(zhǔn)信號頻率:f ,假設(shè)對A的精度要求為±0.01V,對f的要求為±10Hz,輸出信號為正弦信號,可以建立模擬基準(zhǔn)信號的數(shù)學(xué)表達(dá)式如下:
![](http://www.delux-kingway.cn/images/chaijie_default.png)
其中幅值的大小可以通過放大電路部分進(jìn)行調(diào)節(jié)。
測角信號實時反映彈體的姿態(tài),根據(jù)檢測需要和角位移傳感器的結(jié)構(gòu)可以建立這一特定的Uc數(shù)學(xué)表達(dá)式為:
![](http://www.delux-kingway.cn/images/chaijie_default.png)
其中幅值的大小可以通過放大電路進(jìn)行調(diào)節(jié),相角Ψ反映偏差的方向。
三 方案設(shè)計
信號發(fā)生器的設(shè)計任務(wù)就是產(chǎn)生 三路信號,并且提供和主機通訊的軟硬件接口。首先根據(jù)輸出信號的頻率和幅值進(jìn)行編碼,存儲在單片機的ROM里,然后以一定的時間間隔依次將這些數(shù)字量送往 D/A進(jìn)行轉(zhuǎn)換輸出,這樣,只要循環(huán)不已的送數(shù),在D/A的雙極性輸出端就可以得到信號波形。信號的輸出時序受上位機控制。
本設(shè)計采用AT89C4051組成一個最小的單片機系統(tǒng)。AT89C4051是Atmel公司的一款基于MSC51 內(nèi)核的簡化單片機,指令與標(biāo)準(zhǔn)的51單片機兼容,帶有4K可重新編程片上程序存儲器,128B的數(shù)據(jù)存儲器,多達(dá)15條可編程I/O線,兩個16位定時器 /計數(shù)器,片上模擬比較器,一個標(biāo)準(zhǔn)串行通訊口,內(nèi)部帶有振蕩器和時鐘電路。系統(tǒng)的硬件結(jié)構(gòu)圖如圖1。
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖1 硬件結(jié)構(gòu)圖
3.1 時鐘復(fù)位電路設(shè)計
采用單片機片內(nèi)的振蕩器、上電復(fù)位和外部硬件看門狗電路??撮T狗采用MAXIM公司的MAX706芯片,硬件電路如圖2。 MAX706可以提供至少200ms寬度的復(fù)位脈沖,為使看門狗溢出有效必須把MAX706的WDO和MR連接起來,看門狗輸入WDI連接4051的任何一個I/O端口都可。MAX706在程序運行期間監(jiān)控整個系統(tǒng)的運行,喂狗程序必須在1.6秒之內(nèi)使WDI引腳電平發(fā)生改變,否則MAX706將發(fā)出復(fù)位指令,使整個系統(tǒng)復(fù)位,看門狗時序如圖3所示。
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖2 復(fù)位電路 圖3 看門狗時序圖
3.2 單片機與D/A的接口電路設(shè)計
D/A選用AD公司的AD7226。AD7226是具有8位精度的四通道D/A轉(zhuǎn)換器,最小分辨電壓約為4mV,可以滿足設(shè)計的精度要求。每個通道都有一個輸入鎖存器,可以對輸入的數(shù)字量進(jìn)行鎖存;輸出端帶有輸出緩沖放大器。AD7226有一條寫入控制線WR,兩條地址線A0、A1,通過地址線可以選擇不同的D/A轉(zhuǎn)換通道。寫入時序如圖4所示。
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖4 AD7226寫入時序
由于4051沒有專門的地址和讀寫控制引腳,此處可以通過普通的I/O引腳參考AD7226的寫入時序,利用軟件進(jìn)行時序模擬??梢酝ㄟ^改變延時的時間來改變輸出的頻率。圖5是利用4051的P3.0、P3.1口作為A0、A1的地址線,P3.5作為WR的寫入控制線的硬件參考電路,相應(yīng)的示例程序如下:
……..
MOV P1, A ;P1口置數(shù)
MOV P3, #0FCH ;選擇通道A
CLR P3.5 ;置P3.5 低電平
SETB P3.5 ;置P3.5 高電平,上升沿鎖存數(shù)據(jù)
LCALL DELAY ;調(diào)用延時子程序
……
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖5 單片機與D/A接口電路
3.3 偏移電路設(shè)計
AD7226的每一個通道都可以單獨用來提供單極性或雙極性的輸出,要獲得雙極性的輸出必須外加運算放大器和偏移電阻,輸出電壓的范圍取決于參考電壓的大小,如圖6是在單極性電源供電情況下的雙極性輸出電路圖,要注意偏移電阻的阻值匹配。
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖6 AD7226雙極性輸出電路
3.4 放大電路設(shè)計
放大電路主要是對AD7226輸出的雙極性電壓信號幅值進(jìn)行處理,以達(dá)到使用的要求。放大電路的輸入極增加一個一階低通濾波器,以防止D/A輸出的高頻成分干擾;采用低頻運放作為射隨器以提高輸入阻抗。放大電路部分如圖7所示。
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖 7 放大電路(部分)
四 信號發(fā)生器的軟件設(shè)計
4.1 信號編碼
以產(chǎn)生 為例,來說明如何對信號進(jìn)行編碼。
AD7226的每一個通道都能單獨的配置成雙極性輸出,參考圖6,以7226的通道A為例, 可以得到輸出表達(dá)式:
![](http://www.delux-kingway.cn/images/chaijie_default.png)
如果取R1=R2,則有:
![](http://www.delux-kingway.cn/images/chaijie_default.png)
其中DA=DBIN /256,其分子部DBIN就是鎖存器A中鎖存的數(shù)字量,也就是偏移二進(jìn)制碼。
由于D/A輸出雙極性電壓的范圍是-VREF ~VREF(127/128),所以要把Uj1放大VREF倍,即對VREFUj1進(jìn)行編碼,然后通過放大電路處理,得到最終需要的Uj1。這樣就有:
![](http://www.delux-kingway.cn/images/chaijie_default.png)
這里要注意 的取值范圍是-1~ ,而不是-1~+1。取整時要按照四舍五入的原則以減少誤差,表1是雙極性輸出時二進(jìn)制編碼表以及對應(yīng)模擬輸出電壓。
表 1 雙極性輸出偏移二進(jìn)制碼表
![](http://www.delux-kingway.cn/images/chaijie_default.png)
4.2 軟件設(shè)計
軟件的任務(wù)是根據(jù)上位機的指令完成信號的控制和輸出,編程語言采用8051匯編語言,整個程序由初始化模塊、基準(zhǔn)信號輸出模塊、測角及基準(zhǔn)信號輸出模塊、中斷模塊、延時模塊和喂狗模塊組成。軟件流程如圖8所示。
4.3 與上位機接口時序
信號發(fā)生器采用中斷的模式響應(yīng)上位機的控制指令,其指令的時序如圖9所示。
系統(tǒng)上電后,上位機須發(fā)送清零指令,復(fù)位INT0、INT1為低電平,Uj1、Uj2、Uc輸出為0。在INT0、INT1為低電平期間,可以發(fā)送基準(zhǔn)信號輸出指令I(lǐng)NT0,輸出基準(zhǔn)信號Uj1、Uj2;在基準(zhǔn)信號輸出期間,即INT0為高電平期間,可以發(fā)送測角信號輸出指令I(lǐng)NT1,此時輸出測角信號 Uc,Uj1、Uj2同步輸出。當(dāng)INT0變?yōu)榈碗娖綍r,無論INT1為何種狀態(tài),三路信號輸出都為0。發(fā)送基準(zhǔn)信號和測角信號輸出前必須保證INT0、 INT1有效復(fù)位低電平。在INT0為低電平期間,陀螺儀模擬器不響應(yīng)任何INT1指令。如果發(fā)生不可預(yù)料的邏輯紊亂,可以通過復(fù)位INT0、INT1,再按照圖9所示時序關(guān)系發(fā)送指令。
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖 8 軟件流程圖
![](http://www.delux-kingway.cn/images/chaijie_default.png)
圖 9 INT0、INT1工作時序
五 結(jié) 論
通過軟件硬件的調(diào)試和檢測,表明該模擬裝置的硬件和軟件系統(tǒng)能很好的工作,在系統(tǒng)的聯(lián)調(diào)中能正確的模擬角位移傳感器的基準(zhǔn)信號和測角信號,滿足設(shè)計的要求,已經(jīng)在某產(chǎn)品的檢測系統(tǒng)中獲得了應(yīng)用。
AT89C4051雖然是一個功能強大的單片機,但它只有20個引腳,15個外部雙向輸入/輸出(I/O)端口,其中P1是一個完整的8位雙向I/O口,同時內(nèi)含兩個外中斷口,兩個16位可編程定時計數(shù)器,兩個全雙向串行通信口,一個模擬比較放大器(P1.0,P1.1為同相或反箱輸入端),片內(nèi)時鐘電路。
同時AT89C4051的時鐘頻率可以為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼續(xù)工作狀態(tài)。省電模式中,片內(nèi)RAM將被凍結(jié),時鐘停止振蕩,所有功能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運行。
評論