王怡

摘 要:模數轉換裝置是一種可以將模擬信號采樣轉換為數字信號的設備。它是自然界中連續變化的物理量得以進入數字系統中進行處理的橋梁。因此,模數轉換裝置在工業控制領域大量使用。本文介紹了一種以51單片機作為控制核心,以PCF8591T作為轉換器件的模數轉換裝置的設計。首先介紹了該裝置的硬件構成及設計原理,其次介紹了軟件設計的基本原理。本裝置設計簡單,轉換精度高,適用于很多工業控制現場。
關鍵詞:模數轉換;51單片機;PCF8591T;設計原理
引言
當前,在工業控制的各個領域,計算機技術都得到了廣泛而深入的應用。通常,在對外部信號進行處理時,首先要利用傳感器將自然界中的物理量(如壓力、溫度等)轉換成連續變化的電信號(電壓或電流)。然而,計算機系統是數字系統,并不能直接處理模擬量。所以,必須將模擬電信號先利用模數轉換裝置采樣變換成數字信號后,才能進入計算機系統中進行處理。因此,模數轉換裝置對于工業控制設備而言,是不可缺少的組成部分之一。
1 總體架構
本文的模數轉換裝置以51單片機作為控制核心,以PCF8591T作為轉換器件,可以實現最多4路的模數信號轉換。模塊采集變換后所得到的結果,可以通過兩種方式來進行顯示或處理:一是可以通過本地的顯示接口直接顯示轉換結果;二是可以通過裝置上的串行通訊接口將轉換結果上傳至主機進行顯示或作進一步的處理。
2 硬件電路設計原理
A/D轉換電路原理如下所示:
PCF8591T的1-4腳是4路模擬信號的輸入引腳。在本地測試模式下,4路輸入分別用光敏電阻分壓,電位器分壓,固定接5V及固定接地的方式產生。在正常工作模式下,可通過電路板上的跳線設置,將外部的四路模擬信號進行接入。5,6,7腳是PCF8591T的地址設置引腳,可通過硬件設計設置為0-7中的任意一個編號,上圖所示,設為編號0。9,10腳為I2C串行通訊接口的數據線及地址線,是PCF8591T與主控芯片之間進行信息傳輸的通道。由于PCF8591T可以設置地址,因此,這一組I2C串行通訊接口上最多可以同時接8片PCF8591T。
12腳是內部時鐘和外部時鐘的選擇管腳,設為低,表示使用內部時鐘,因此11腳(外部時鐘輸入端)懸空。
3 軟件設計原理
主控芯片通過PCF8591T上的I2C接口實現對它的控制及轉換結果的讀取。基本的控制流程如下:
(1)發送地址字節0x90:該字節的前四位是固定內容。后四位的最低位為0,表示接下來的字節信息是寫入信息,其他三位是PCF8591T的地址。在這里設置為0。
(2)發送控制字節0x00:該字節最高位固定為0。位6在使用DA功能時用來使能模擬量輸出,這里設為0,不開啟此功能。位5、位4用于設定模擬輸入端的輸入形式,0-3四組值可以分別將4路輸入設置為4路單端、3路差分、兩路單端及一路差分、兩路差分四種形式。這里設置為4路單端模擬輸入。位3固定為0。位2為增量位,若設為1,PCF8591T會在采集完指定通道的信息后,自動采集下一個相鄰通道的值并輸出。這里設為0,不開啟自動增量模式。位1、位0用于選擇采集的通道。這里選擇通道0。
(3)發送地址字節0x91:表示開啟A/D轉換。
(4)接收上一次轉換的結果(不用該數據可跳過該步驟)。
(5)接收本次轉換的結果。
關鍵代碼如下:
unsigned char ADconvert(unsigned char contrl_byte)
{
unsigned char ad_result;
I2C_start();
write_byte(0x90);
I2C_respond();
write_byte(contrl_byte);
I2C_respond();
I2C_start();
write_byte(0x91);
ad_result =read_byte();
return ad_result;
}
結束語
本文介紹了一種基于51單片機的模數轉換裝置的設計。包括該裝置的軟硬件設計原理,啟動及采集流程設計,系統構成等。該設計在實測中運作良好,穩定,采集精度高,符合設計要求。
參考文獻
[1]Philips Semiconductors, PCF85918-bit A/D and D/A converter datasheet,2003 JAN 27.
[2]Maxim Technology,Datasheet of MAX232, 19-0175;Rev 5;10/03.
[3]張毅剛,彭喜元,彭宇.單片機原理及應用[M].高等教育出版社,2009.endprint