基于低成本MCU的電流環(huán)路校準器的設計與實現(xiàn)
我們還使用模擬/數(shù)字轉(zhuǎn)換器測量電流。PIC16F877內(nèi)部的模擬/數(shù)字轉(zhuǎn)換器具有10位分辨率,可以測量0至5V的電壓值。電流流經(jīng)0.47Ω電阻,并利用同相放大器放大到0~5V電平。另外,我們還使用了4x3的數(shù)字鍵盤和16x2大小而且?guī)D44780接口的GDM1602B指示器。
本次設計的設備有兩種模式:第一種模式產(chǎn)生大小由用戶輸入的電流,第二種模式讀取從外部電流環(huán)路檢測到的電流。在電流源模式,從鍵盤輸入的電流信息被送往微控制器并通過解碼器分析。由微控制器決定了的電流信息再通過SPI協(xié)議發(fā)送到DAC,然后產(chǎn)生4-20mA范圍內(nèi)的目標電流值。在測量模式,連接輸入端的外部電流環(huán)值將顯示在LCD指示器上。
嵌入式軟件設計
我們在Code Composer Studio(CCS)環(huán)境中用PIC C語言開發(fā)微控制器上運行的嵌入式軟件。在微控制器上運行的軟件接收校準器是否在用戶選擇的電流源或電流測量模式下工作的信息。圖5顯示了我們開發(fā)的主程序流程圖。
圖5:主程序流程圖
電流源模式
在電流源模式,嵌入式程序根據(jù)圖6所示的流程圖運行。從這個流程圖可以看出,首先,用戶要輸入一個電流值,其中小數(shù)點左邊兩位,小數(shù)點右邊三位(精度為0.1%)。如果在輸入階段輸入了錯誤的值,用戶可以按#鍵取消這個值。如果想要一步步地處理,那么整個過程可以用5個值完成:4mA、8mA、12mA、16mA和20mA。
圖6:電流源程序的流程圖
不管何時只要按下*鍵,系統(tǒng)就會返回到模式選擇菜單(主菜單)
不管何時只要按下#鍵,都會進行清屏,然后提供電流值輸入界面
一旦電流值的小數(shù)點右邊三位輸入完后,電流就會自動產(chǎn)生,等整個過程成功完成后,還會在LCD上的電流值旁邊顯示“OK”標記。如果用戶輸入的電流值超出范圍,即小于4mA或大于20mA,LCD上將顯示“超出輸出范圍”的警告消息。
電流測量模式
在電流測量模式時,由電壓放大層產(chǎn)生的電平被模擬/數(shù)字轉(zhuǎn)換器讀取,然后在屏幕上顯示測量出的電流值,見圖7所示的流程圖。
圖7:電流測量模式下的程序流程圖
在鍵盤接口中,我們使用了PIC16F877的“根據(jù)狀態(tài)改變(change on-state)”中斷源來檢測是否有鍵按下。利用這個中斷源,當微控制器的B輸入端口的狀態(tài)發(fā)生改變時,中斷將自動啟動。這樣,當設備不在使用時,微控制器將進入睡眠模式以節(jié)省功耗。
電流源與測量
如圖8所示,微控制器的數(shù)字輸出通過SPI協(xié)議接口連接到帶16位CMOS電流輸出的數(shù)字/模擬轉(zhuǎn)換器電路(AD420)。
評論