劉海寧
(南京理工大學機械工程學院,江蘇南京 210094)
信號處理過程中,很多情況是根據信號的突然變化來判別檢測的物理過程是否發生了變化,比如各類報警器的設計、自動控制應用以及機床上用于進行接觸檢測的信號。信號的突然上升趨勢和突然下降趨勢都是表征物理過程變化的特征。信號的判別一般是運用比較電路實現的,為了判別信號的變化,需要在比較電路的輸入端設定一個閾值,作為同傳感信號電壓比較的值,當信號超過了或者低于閾值,說明檢測的物理過程產生的變化。由于信號經過濾波和放大后,信號電壓的波動范圍并不確定,所以要進行設定的閾值也不能確定。要達到預期的目的,只能通過調整比較電路的閾值來實現。以往的比較器電路的比較電壓通常是固定的值,不可更改,或者通過采用滑動變阻器進行比較電壓輸入端輸入電壓的調節,如圖1所示。該方法實現簡單,但是要實現準確的調節卻不容易,而且在很多的工作環境下,比較電路芯片集成在不容易接觸到的地方,故無法進行對滑動變阻器的調節,只能通過上位機進行軟件設定比較電壓閾值。針對該問題,設計一種數字可調閾值的比較電路是有必要的[1-2]。

圖1 常見閾值可調的比較電路
電壓比較器的基本功能是對兩個輸入電壓進行比較,并根據比較結果輸出高電平或者低電平,據此判斷輸入信號的大小和極性。電壓比較器的基本元件是集成運算放大器,由于僅用于電壓比較,集成運放大多處于開環或者正反饋的狀態。電壓比較器是將一個模擬輸入信號Ui與一個固定的參考電壓Ur進行比較的電路。使比較器輸出電壓發生跳變時的輸入電壓值,稱為閾值Uth。閾值的確定是一個重要的過程,要對信號進行估算后才能得到,確定后的閾值不可調節,或者無法準確調節,因此首先要解決的問題是設計一個可調輸出電壓的電路。
電路設計的重點是輸出可調的模擬電壓作為比較器的閾值。要輸出可調的穩定模擬電壓,則需要用到數模轉換器件D/A轉換器。D/A能將數字量轉化為模擬量輸出,只要控制D/A轉換器的基準電壓Vref及輸入端的數字量,便可以輸出所需電壓。輸入D/A轉換器的數字量可以采用單片機控制,由單片機的引腳輸出給D/A轉換器,輸出的數字量的值時由上位機及單片機內部軟件控制。同時在信號的判別過程中為了防止出現判斷錯誤,要利用單片機及軟件部分進行信號的防抖動檢測。基于上述思路,該電路的系統組成如圖2所示。

圖2 系統組成框圖
可調閾值電壓輸出電路由上位機、單片機、鎖存器以及D/A轉換器和外圍電路組成。由上位機發送設定的閾值給單片機,發送過程可通過RS232串口通信實現,單片機將相應的閾值轉換成為數字量信息,轉換的過程可以看做是數模轉換的逆過程模數轉換,采用逐次逼近式的轉換原理。轉換結束后,單片機通過輸出引腳將所得到的數字量輸出到D/A轉換器的輸入端口,通過給定的基準電壓和接入外圍電路使其輸出穩定的模擬電壓閾值。數值轉換過程如下所示:
信號的比較和結果輸出是由運算放大器和光耦設備組成,最終由其他的設備進行輸出結果的處理。
該電路輸出系統由AT89C52單片機、DAC0832數模轉換器、74HC573鎖存器以及外部EEPROM存儲器24C02等器件組成。
電路系統微處理器采用AT89C52單片機。D/A轉換器的選擇需要根據設定閾值精度的要求而定。D/A轉換器的分辨率決定了輸出電壓的精度,通常定義為輸出滿刻度值與2n之比,故位數越多分辨率越高。本電路系統設計的精度要求達到0.1 V,電壓輸出范圍為0~10 V,故將基準電壓設定為10 V,選擇8位D/A轉換器,即n=8,分辨率為10 V/28=39.1 mV,即二進制數最低位的變化可引起輸出模擬電壓變化39.1 mV,滿足閾值設定精度要求,故選擇8位D/A轉換芯片DAC0832,其轉換時間為1 μs,滿量程誤差為 ±1LSB,參考電壓為(-10~ +10)V,供電電源為(+5~+15)V,邏輯電平輸入與TTL兼容[4]。
為了實現單片機輸出信號之后能夠繼續其他的工作,需將單片機輸出的數字量進行鎖存,故選用芯片74HC573進行數字量的鎖存。每次啟動電路進行工作的時候,需要輸出前一次設定的電壓值,即需要外部存儲芯片進行數據的記錄,此處選用EEPROM芯片24C02進行數據的存儲記錄。此外還有時鐘電路和復位電路等外圍電路[5]。輸出可調穩定電壓的硬件電路圖如圖3所示。

圖3 可調輸出電壓電路原理圖
DAC0832輸出端IOUT1、IOUT2是電流輸出端,只有外圍接運算放大器之后才能實現電壓輸出,故采用LM358運放連接外圍電路構成電壓輸出回路,并對其他引腳進行控制,使DAC0832工作于單緩沖工作狀態,增加數據的吞吐量并滿足了設計要求。此時電路輸出電壓VOUT即作為比較電路的閾值Uth。
比較電路選用運放LM324進行電壓比較,輸入端分別是信號電壓Us和數字可調電壓輸出電路輸出的閾值電壓Uth,對兩者進行比較后輸出運算結果。
傳感器檢測信號的過程中由于干擾的存在,會使運放的輸出結果產生突然的跳變,可能會使輸出結果產生誤動作,故借助所用的微處理器AT89C52對其進行放抖動檢測,避免錯誤的出現。將LM324的輸出信號給AT89C52,當其引腳接受到高電平之后,進行一段時間Ts的延時,如果引腳電平保持不變,則表示信號發生了跳變,由AT89C52的其它引腳輸出高電平。由于其輸出的信號可能是脈沖信號,為了保持電壓輸出,需要進行光電耦合,同時實現了比較器與外部電路的隔離[3]。比較電路部分的電路原理圖如圖4所示。
圖4中的微處理器AT89C52與圖3中微處理器可合用一個單片機,這樣節省硬件資源,簡化電路。
上位機通過串口通信發送閾值數值給單片機AT89C52,單片機通過外部中斷檢測并接受到數值Uth,并進行DA轉換的逆運算得出要輸入DAC0832的八位數字量d0~d7,然后將數字量發送給DAC0832進行數模轉化。dn值的計算方法如下:

圖4 電壓比較電路原理圖

上述算法是軟件的主程序部分,軟件設計流程如圖5所示。

圖5 軟件設計流程圖
軟件編寫采用C語言編程,總體包括初始化程序、串口通信中斷程序、讀寫EEPROM程序、延時程序以及防抖動程序組成。與硬件電路共同實現閾值電壓可調的比較電路,且具有一定的抗干擾能力。
設計好硬件電路,編寫好C語言程序,便可以進行電路的仿真。本文采用PROTUES軟件進行電路的仿真。仿真過程,數字可調電壓輸出電路和比較電路進行分別仿真,上位機設定輸出閾值電壓Uth=5.64 V,參考電壓Vref=10 V,信號輸入采用單頻率調頻波信號發生器作為激勵源,電壓偏移量8 V,幅值4 V,載波頻率500 Hz,信號頻率1 500 Hz,比較結果由示波器輸出。仿真結果及輸出如圖6所示。

圖6 Protues仿真結果顯示
DAC0832輸出的電壓值為5.62 V,與設定的5.64 V有微小的差別,但在誤差范圍之內,是由于D/A轉換元件位數少,分辨率低造成的。要提高輸出精度,只要使用10位或者12位的D/A轉換器,就可實現所需要的精度。
采用單片機AT89C52和數模轉換芯片DAC0832組成數字可調輸出電壓的電路,并將輸出的電壓作為比較電路的閾值,最終由電壓輸出電路和比較電路共同組成閾值電壓數字可調的比較電路,應用于報警器的設計與自動控制等場合。由于其閾值可調,該電路有很強的適應性和靈活性,并且有很好的實用性,可以根據需要設定不同的閾值電壓,調節方法較滑動變阻準確方便。經Protues仿真驗證可行,該電路理論誤差范圍為0.391%,如需要高精度的電路,只需要選擇位數更高的D/A轉換芯片就可以實現。同時設計了防抖動的檢測過程,避免干擾信號對電路輸出結果的影響。
[1]周鴻武.基于單片機的酒精濃度檢測儀設計[J].制造業自動化,2012(34):147-149.
[2]康紅明,賈春風.基于TMS320LF2407變頻調速系統硬件設計[J].機械制造與自動化,2011(5):124-126.
[3]楊帆,王自強.電機保護電路設計[J].電力電子,2011(2):34-36.
[4]張毅剛.單片機原理及應用[M].北京:高等教育出版社,2010.
[5]賀舒榕.單片機應用系統斷電時的數據保護方法[J].云南大學學報,2007(29):135-138.