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