基于Eastsoft HR7P179的脈沖水位檢測電路
作者 / 陳艷麗 姜德志 青島融禾信息技術有限公司 (山東 青島 266000),李燕霞 北華航天工業學院(河北 廊坊 065000)
本文引用地址:http://www.104case.com/article/201802/375430.htm采用上海東軟載波微電子有限公司出品的HR7P179單片機,配合外圍電路實現了脈沖方式的水位檢測,可以有效的避免探針生銹的問題,且檢測可靠性高,電路參數調整方便。文中給出了非常詳細的應用電路包括電路參數,同時給出了檢測方法的流程圖。
1HR7P179的特點
HR7P179是上海東軟載波微電子有限公司的一款RISC單片機,在一個10引腳(HR7P179F8RB)芯片的封裝內,集成了4K Words FLASH程序存儲器,8級程序堆棧,512 Words 可配置數據FLASH存儲器(可以代替EEPROM使用),256 Bytes SRAM數據存儲器,以及最多支持8個I/O。
內部資源豐富,1個8位定時器,3個12位定時器,3路PWM,7+1路12位ADC,且有一個內部高精度基準電源。
內嵌上電復位電路POR、掉電復位電路BOR、低電壓檢測模塊(LVD)、獨立硬件看門狗定時器以及支持外部復位N_MRST。
內部集成了高頻16MHz RC振蕩時鐘源(出廠前校準精度為±1%,常溫25℃)。
支持在線編程(ISP)接口、支持在線調試(ICD)功能、支持編程代碼加密保護。
可以說麻雀雖小五臟俱全,功能非常強大,這也是我們這個檢測電路選擇這個芯片的原因。
2水位檢測的要求
水位檢測的方法很多,相信大家都能隨便說出多種,但是在許多消費電子產品中,需要采用成本低廉,可靠性高,壽命長的檢測方法,這個要求就限制了我們的設計。
最簡單的檢測應用中,采用一對電極,當水沒過電極后,電極間電阻變小,通過電路檢測電阻的變化即可檢測出是否有水,例如采用振蕩方式,采用分壓方式的模擬數字轉換檢測等。
但這種方法存在最大的問題就是探針生銹的問題,且需要多檔水位檢測時,有的方法電路會變得復雜。有的方法檢測可靠性會大大降低。
探針生銹的原因是因為持續給探針通直流電,很快就產生了電化學腐蝕。
另外,探針生銹的問題嚴重制約了這種方法的應用,因為消費電子應用中,不可能因為水位檢測的問題挨家去定期更換探針。
是否有一種簡單有效且可以有效避免生銹的方法呢?本文的目的就是解決這個問題,同時本文的方法檢測電路簡單,處理方法也簡單。
3脈沖方式的水位檢測電路
3.1電路總體原理圖
圖1是我們設計的總的電路原理圖,當然我們省略了一些簡單的輔助電路,這樣更方便理解。
圖1中右邊的IC1是東軟載波微電子有限公司的HR7P179單片機。選擇這款單片機是因為這個單片機資源豐富、封裝小,可以滿足4~6段水位檢測的要求,這在許多實際應用中已經足夠了。
圖1 總體原理圖
3.2電路說明
下面我們分別對這個電路的每一部分進行說明,當然,單片機無需多說。
圖2 信號產生和發送部分電路
圖2是信號產生和發送電路,這個電路中主要的部分是電阻R6和電容C1。N2組成的電路和N3組成的電路的目的就是在電阻R6和電容C1上產生振蕩的信號。
通過單片機編程,給RR端送出低電平,此時N2截至,通過R5 R6使得C1左端為高電位。
同時通過單片機編程,給CC端送出高電平,此時N3導通,使得C1右端為低電位。
經過固定時間后,給RR端和CC端送出相反的電平,即給RR端送出高電平,此時N2導通,通過R6使得C1左端為低電位;給CC端送出低電平,此時N3截止,通過R8使得C1右端為高電位。
如此反復處理,則在R12上就產生了一個正負交替的振蕩信號。
圖3是各點信號的模式的示意圖。
圖3 信號發送電路各點信號模式
由于電容C1的隔直作用,在探針上的信號變成了有正有負的交流信號,當然探針也就不容易生銹了。
圖4 水位檢測信號接收電路
圖4是各檔水位檢測信號的接收電路。需要說明的是,我們只是畫出了一個水位檢測端的電路,如果您需要5檔水位,只需要5個這樣的電路,分別連到單片機剩余的IO口上即可。
當有水的時候,接收電路各點波形如圖5所示。
圖5 信號接收電路各點波形
3.3檢測原理
1)硬件原理說明
根據前面電路的介紹,可以很容易的理解檢測電路的原理。
信號發送電路,發出方波信號,經過電容C1的隔直作用,在信號發送的電極上產生了有正有負的交流信號,這樣可以有效的避免電極探針的電化學腐蝕。
當有水的時候,產生的信號,通過水傳遞到信號接收端,在信號接收端,經過二極管D1的作用,吸收了低于信號地的信號部分,剩下的正電平信號通過二極管N1產生了新的脈沖信號,供單片機檢測。
當沒有水的時候,信號無法傳遞到接收端,故接收端就沒有相應的脈沖信號出現。
2)檢測軟件方法
信號發送端,可以產生500Hz的信號,只需要我們每1毫秒處理一次信號電平方向即可。實際檢測中,我們也無需時時刻刻發送信號進行檢測,因為水位的變化不會那么快。一般來說,我們每隔2秒進行一次檢測,一次檢測只產生50個脈沖信號,也就是100ms即可。其余的時間,關閉電路的輸出。使得信號產生電極上電平為0。可以根據需要調整這些參數。
信號接收端,需要在100毫秒內檢測是否收到了50個信號,如果收到了50個脈沖信號,則證明有水。當然,實際檢測中我們不能嚴格的檢測50個脈沖,因為檢測的原因,總是會差一兩個,所以我們實際判斷方法是收到的脈沖個數大于40個即可。當然,也要注意信號是否多于50個,因為干擾的原因可能會產生多于50個脈沖的情況,因此我們要判斷脈沖個數是否超過55個,只要脈沖個數在40~55個之間,即可以可靠的說明有水。
4檢測流程圖
水位檢測包括兩個主要的函數,一個是信號產生函數,一個是信號檢測函數。
信號產生函數,每1毫秒調用一次,會產生500Hz的方波,最終形成500Hz的檢測信號。
信號檢測函數每100微秒調用一次,檢測收到的信號。
圖6 信號發送處理函數流程圖
圖7 信號接收處理流程圖
圖8 信號接收處理流程圖
5結論
本文介紹的水位檢測電路,是針對分段式水位的檢測,這種檢測方法的檢測結果受水質的影響較小,檢測可靠性高。如果要檢測連續的水位,則需要采用其它的方法了。本文為拋磚引玉,與各位共同交流提高。
評論