工程師經(jīng)常需要連接PC對電路進(jìn)行簡單的測量。當(dāng)沒有資金購買一臺用于低速信號的數(shù)字化儀時,可以用兩只IC,自己做一個連接在PC的串口上。數(shù)字化儀的吞吐率主要取決于PC操作系統(tǒng)的性能、處理器速度和內(nèi)存。我用一臺2.4 GHz的Pentium PC實現(xiàn)了250采樣/秒,該P(yáng)C有512M RAM,運(yùn)行Windows XP。更快的處理器能提供更高的采樣速率。計算1秒鐘的轉(zhuǎn)換數(shù)就可以計算出吞吐率。 電路如圖1所示,使用一只MAX232 RS-232接口IC和MCP3201 12位逐次逼近型ADC(模數(shù)轉(zhuǎn)換器)。使用C#編寫的應(yīng)用程序,可以將數(shù)據(jù)輸入運(yùn)行Windows XP或Vista的PC中。源碼可從本文的在線版下載,地址為:www.tmworld.com/2008_10。 MCP3201使用RTS(準(zhǔn)備發(fā)送)、CTS(清除發(fā)送)和DTR(數(shù)據(jù)終端就緒)串口線與PC通信。通過其標(biāo)準(zhǔn)SPI(串行外設(shè)接口)端口與MAX232通信。模擬信號連接到MCP3201的IN+引腳,MAX232將RS-232信號電平轉(zhuǎn)換為TTL兼容電平。 來自DOUT引腳的數(shù)字輸出流通過MAX232到達(dá)IC的CTS線串行點。RTS線為ADC的CLK(時鐘)引腳提供時鐘脈沖。在CLK信號的下降沿上,每個獨(dú)立位出現(xiàn)于DOUT引腳。因此,軟件應(yīng)用必須在時鐘脈沖的上升沿鎖存該位。最后,DTR線產(chǎn)生CS(片選)信號來構(gòu)成轉(zhuǎn)換過程。轉(zhuǎn)換過程中CS位必須為低。圖2表示過程的時序圖。 圖2中,有效數(shù)據(jù)位(最高位在先)在第三個CLK脈沖為低后出現(xiàn)在DOUT線上。因此,必須在讀取數(shù)據(jù)后,用軟件舍棄前三位。 軟件應(yīng)用采用免費(fèi)的微軟Visual C# 2008 Express Edition編寫。C#中內(nèi)置了SerialPort元件,提供對端口的全面控制。該軟件是作為一個簡單的控制臺應(yīng)用執(zhí)行的。使用該代碼,不需要設(shè)備驅(qū)動就能使用串行端口。 工程師可以方便地重復(fù)或修改源碼,以適應(yīng)自己的應(yīng)用。例如,可以通過因特網(wǎng)將ADC的數(shù)據(jù)發(fā)送到其他位置,或?qū)?shù)據(jù)提供給Excel或其他應(yīng)用進(jìn)行分析。 另外,也可以改善圖1中的硬件設(shè)計。例如,在ADC前面放一個低通濾波器可以降低噪聲,從而也減少了由于混疊而產(chǎn)生的錯誤。在MAX232的VCC引腳上一定要用一只旁路電容器。在盡可能靠近元件引腳處放一只1 μF電容器(推薦值)。 類似的逐次逼近型ADC可以代替MCP3201,ADC也要有SPI兼容接口。例如,可以采用LinearTechnology公司的LTC1286或LTC1297。如果打算采用不同的ADC,就需要作一些硬件修改,因此要仔細(xì)閱讀廠家的數(shù)據(jù)表。除了MAX232線路驅(qū)動器以外,還可以使用類似的元件,如MAX225或MAX233。這些元件不需要任何外接元件,因此簡化了設(shè)計。 如果采用其他硬件,可能還需要應(yīng)用源碼。例如,可能需要根據(jù)所選元件的時序圖,修改源碼中的for循環(huán)語句(int i = 0; i < 15; i++)。 |