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