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