1 引言 國家三級秤標準要求:稱(chēng)重數據與重物的絕對精度小于1/1000-1/5000,因此,經(jīng)AD轉換后輸出數據的有效位應在13位以上。AD公司推出的由緩沖器和增益可編程放大器(PGA)、Σ-Δ調節器、可編程數字濾波器等組成的16位AD7705/06能直接將傳感器檢測到的微小信號進(jìn)行A/D轉換,其具有高分辨率、寬動(dòng)態(tài)范圍、自校準、優(yōu)良的抗噪聲性能以及低電壓低功耗等特點(diǎn),適合于稱(chēng)重系統中下微機信號處理的需要。設計中,我們確定AD7705的相應參數。 輸出數據更新速率:50Hz; 系統增益:64; 有效分辨率:15位。 2 硬件設計 要滿(mǎn)足前面確定的AD7705參數,設計中AD7705的主時(shí)鐘。篺CLK =2.4576MHz。 AD7705的串行數據接口包括5個(gè):片選輸入口 ,串行施密特邏輯輸入時(shí)鐘SCLK,數據輸入口DIN,轉換數據輸出口DOUT,指示數據準備就緒的狀態(tài)信號輸出口 。其中當 為低電平時(shí),轉換數據可讀取;否則不可讀取。 設計中 可由AT89C51選中實(shí)現,也可接地;本設計中將 接地。 SCLK有兩種基本的接線(xiàn)方式:①SCLK接AT89C51的P2口中未用的管腳(比如接P2.2),數據輸入、輸出端DIN、DOUT一同接P2口中未用的另一管腳(比如:P2.3)。在該種連接方式下,只能用手工編程模擬AD7705的通信時(shí)序以實(shí)現對AD7705的操作。②SCLK接AT89C51的同步脈沖輸出端TXD,AD7705的數據輸入、輸出端DIN、DOUT一同接AT89C51的串行數據輸入、輸出端RXD。在該種連接方式下,對AD7705的數據的讀取可按51系列單片機串行口的工作方式0完成,也可按①中的讀寫(xiě)方式完成。本設計中按②中介紹的方式接線(xiàn)?山悠胀≒1、P2口中未用的管腳,通過(guò)程序查詢(xún)該管腳是否為低電平,從而實(shí)現對AD7705中寄存器數據的讀取。也可接AT89C51的外部中斷1或中斷0管腳,通過(guò)中斷方式或中斷查詢(xún)方式實(shí)現對AD7705中寄存器數據的讀取。本設計中接外部中斷1管腳。 圖1 稱(chēng)重傳感器信號處理電路圖 AD7705在稱(chēng)重系統中的連接方式 見(jiàn)圖1。當在此傳感器上施加滿(mǎn)標度重量5噸重物時(shí),傳感器在5V工作電壓下取得30 mV的滿(mǎn)標度輸出電壓。5V工作電壓經(jīng)分壓后為AD7705提供基準電壓,因此工作電壓的變化不會(huì )產(chǎn)生系統誤差。分壓電阻為24kΩ和15kΩ,產(chǎn)生的基準電壓為1.92V。當器件的可編程增益為64時(shí),對應的滿(mǎn)標度輸入電壓即為 30 mV。 3 軟件設計 軟件設計需主要考慮以下四個(gè)方面: ①AT89C51的初始化:硬件設計中如果用到中斷,則需對單片機的中斷系統進(jìn)行初始化;軟件設計中如果用到串口,則需對單片機的串口進(jìn)行初始化。 ②A(yíng)D7705與51系列單片機的數據交換順序:在讀寫(xiě)操作模式下,51系列單片機的數據要求LSB在前,而AD7705希望MSB在前,所以對AD7705寄存器進(jìn)行配置之前必須將命令字重新排列方可寫(xiě)入,同樣要將從AD7705數據寄存器中讀取到緩沖器后的數據進(jìn)行重新排列方可使用。 ③對AD7705寄存器進(jìn)行操作的時(shí)序:AD7705通訊必須嚴格按圖2、圖3時(shí)序操作。對AD7705進(jìn)行通信的子程序流程見(jiàn)圖4、圖5。當然,還可以考慮用串行口通信方式0的工作方式來(lái)實(shí)現。 ④AD7705的初始化和配置:AD7705的配置與設計的硬件緊密相關(guān),只有在正確配置的情況下硬件才能正常工作。同時(shí),對AD7705內每一個(gè)寄存器的配置都必須從寫(xiě)通信寄存器開(kāi)始,通過(guò)寫(xiě)通信寄存器完成通道的選擇和設置下一次操作的寄存器的選擇。 圖6所示為此稱(chēng)重傳感器數據采集主流程圖。其程序清單見(jiàn)附錄。 圖2 讀周期時(shí)序圖 圖3 寫(xiě)周期時(shí)序圖 4 結束語(yǔ) AD7705以其本身的低價(jià)格、高精度、可編程增益、自校準、小信號的轉換不需附加另外的器件而使得其在數據檢測領(lǐng)域具有很大的應用前景。其在電子秤中的應用也是顯而易見(jiàn)的。我們應用AD7705設計的電子信號處理線(xiàn)路,其性能指標達到預期的效果。 附錄:程序清單 ORG 0000H AJMP MAIN ORG 0013H AJMP ADINT ORG 0030H MAIN: ;對AT89C51初始化 MOV IP,#04H;定義INT1為優(yōu)先級 MOV TCON,#00H ;INT1采用低電平 圖4 寫(xiě)周期時(shí)序流程圖 圖5讀周期時(shí)序流程圖 ;觸發(fā) MOV IE,#84H;允許外部中斷1 ;對AD7705進(jìn)行初始化 MOV SCON,#00000000B;禁用SCON MOV A,#20H ACALL WRITE MOV SCON,#00000000B MOV A,#05H ACALL WRITE MOV SCON,#00000000B MOV A,#010H ACALL WRITE MOV SCON,#00000000B MOV A,#70H ACALL WRITE MOV SCON,#00000000B A2: JNB 00H,A2 ;等待INT1中斷 MOV A,#38H ACALL WRITE RDATA DPROCESS AJMP A2 圖6 主程序流程圖 WRITE: NOP MOV R0,#08H ACALL NU1 RET NU1: RLC A JNC NU2 CLR 0B1H SETB 0B0H SETB 0B1H SJMP NU3 NU2: CLR 0B1H CLR 0B0H SETB 0B1H NU3: DEC R0 DJNZ R0,NU1 RET RDATA: MOV R2,#02H MOV R3,#08H MOV R4,#20H CLR C MOV A,#00H RD1: CLR 0B1H MOV C,0B0H SETB 0B1H RLC A DJNZ R3,RD1 MOV R4,A INC R4 DJNZ R2,RD1 RET DPROCESS: …… RET ADINT: SETB 00H RETI END |