1. 內容簡介 近年來由于日趨嚴重的環境污染及工業上之需求,使得傳感器的發展倍受重視。在空氣污染防治日益復雜及工業上迫切需要的今日,高效能的氣體傳感器愈來愈受重視。以金屬氧化物半導體(MOS)為材料之氣體傳感器,由于其耐熱性及耐蝕性佳、應答速率快、組件制作容易,以及易與微處理器組合成氣體感測系統或攜帶式監測器,因此被廣泛的使用在家庭、工廠環境中以偵測毒性氣體及燃燒爆炸性氣體。而本文將介紹以HY16F184內建高精密Sigma-Delta 24 Bit ADC搭配CCS801 CMOS Sensor來實現一個Gas Sensor應用電路。 在本文中的Gas Sensor應用電路上,主要的組件有:氣體傳感器(CCS801 Gas Sensor)、ADC和MCU控制芯片。 而纮康HY16F184控制芯片內建高精密Sigma-delta 24 Bit ADC、可程序放大PGA和多段式穩壓輸出等功能,可以很大幅簡化PCB周邊線路,精準完成由模擬到數字的訊號轉換。 本文Gas Sensor應用電路是由纮康HY16F184芯片之內建ADC精確的量測到CCS801 CMOS Sensor內的RS電阻變化量,并且透搭配CCS801 CMOS Sensor所提供的C Library算法,可以換算出相對應的PPM濃度數值。而在加熱驅動器(Heater)回路上的微小電流變化量(RH_Current),同樣也可使用HY16F184內建ADC精準的量測到。本文內也提供了GUI軟件接口,透過I2C通訊來輸出實時的PPM與RS和RH_Current數據變化量。使用I2C轉USB網橋與計算機連接,由計算機端GUI做實時三個信道的數據變化量顯示。 2. 原理說明 2.1. 量測原理 CCS801 Gas sensor半導體氣體感測材料在偵測氣體時,RS電阻會產生變化,如下圖1。此情況主要導因于偵測可燃性氣體如一氧化碳(CO)及多種揮發性有機化合物(VOC)與吸附在半導體氧化物且帶負電荷的氧離子產生反應。當空氣偵測到可燃性氣體時候,RS電阻會產生變化,此時可測量到RS兩端的電壓會有所改變。典型的RS電阻值范圍在100k~2M奧姆之間. RH電阻則是可當溫度反應電阻,當Gas Sensor有一電流回路流經Heater+與Heater GND,則可視為加熱現象,隨著Heater溫度的變化,RH端的電阻也會有所改變,典型的RH電阻值范圍在20~100奧姆之間。 圖1 CCS801 CMOS Sensor 2.2. Gas Sesnor應用電路基本架構 本文Gas Sensor的基本架構如下圖2所示,包含一個氣體傳感器(CCS801 Gas Sensor)、PMOS NX2301、ADC和MCU單芯片。HY16F184可輸出PWM來控制PMOS NX2301做為電流開關控制。當PWM輸出為High時候,則是關閉PMOS,此時較為省電,不會有電流流經過Heater端。而當PWM輸出為Low時候,則是導通PMOS,會有電流流經過Heater端,此時則開始做Gas Sensor加熱動作,當Gas Sensor再加熱的時相對來說也會比較耗電。 本文的電路應用架構即是利用PWM來做整體消耗電流功耗控制,設定PWM輸出周期為97us,PWM輸出Low的時間為比57us而PWM輸出High的時間為40us。PWM On的輸出持續時間是100ms,此時為CCS801的加熱時間,之后PWM Off的時間為持續400ms,當PWM Off時候,此時會輸出保持High,以500ms為一個控制周期不斷的循環控制PMOS NX2301開關,做為加驅動器(Heater)的控制。詳細的PWM控制時間圖,可以參考以下圖3。 HY16F184除了使用PWM做PMOS開關控制來達到功耗控制與省電的設計效果,還使用了高精度ADC來做RS與RH_Current變化量測量,而擷取到的數據可以由I2C來做數據的輸出與讀取,詳細HY16F184 ADC規格可以參考下圖4。 圖2 HY16F184 Gas Sensor基本架構圖 圖3 HY16F184 PWM輸出控制時序圖 2.3. 控制芯片 單片機簡介:HY16F系列32位高性能Flash單片機(HY16F184) 圖4 纮康HY16F系列32位高性能Flash單片機(HY16F184) (1)采用最新Andes 32位CPU核心N801處理器。 (2)電壓操作范圍2.4~3.6V,以及-40℃~85℃工作溫度范圍。 (3)支持外部16MHz石英震蕩器或內部20MHz高精度RC震蕩器, 擁有多種CPU工作頻率切換選擇,可讓使用者達到最佳省電規劃。 (3.1)運行模式 350uA@2MHz/2(3.2)待機模式 10uA@32KHz/2(3.3)休眠模式 2.5uA (4)程序內存64KBytes Flash ROM (5)數據存儲器8KBytes SRAM。 (6)擁有BOR and WDT功能,可防止CPU死機。 (7)24-bit高精準度ΣΔADC模擬數字轉換器 (7.1)內置PGA (Programmable Gain Amplifier)最高可達128倍放大。 (7.2)內置溫度傳感器TPS。 (8)超低輸入噪聲運算放大器OPAMP。 (9)16-bit Timer A (10)16-bit Timer B模塊具PWM波形產生功能 (11)16-bit Timer C 模塊具數字Capture/Compare 功能 (12)硬件串行通訊SPI模塊 (13)硬件串行通訊I2C模塊 (14)硬件串行通訊UART模塊 (15)硬件RTC時鐘功能模塊 (16)硬件Touch KEY功能模塊 (17)Sigma-delta 24 Bit ADC ENOB & RMS Noise 3. 系統設計 3.1. 硬件說明 使用HY16F184內建ADC搭配CCS801 CMOS Sensor做Gas Sensor應用電路。 HY16F184的ADC通道模擬腳位會使用到AIO0/AIO1/AIO2/AIO3。 AIO0與AIO3主要負責做流經過RH電阻的RH_Current電流變化量測量,AIO1與AIO2負責做RS電阻的電壓變化量測量,因為RS電阻本身為高阻抗(100k~2M奧姆),而ADC的輸入阻抗大約只有200k奧姆, 所以在AIO2的輸入腳位部份會先經過HY16F184內建R2ROP做一個Unit Gain buffer輸出,再由OPOI輸出到ADC當作輸入參考引腳,這樣可以避免量測訊號時負載效應的產生,詳細關于AIO1與AIO2的通道設置,可以參考下圖5。完整硬件線路圖可以參考下圖6。 圖5 HY16F184 ADC通道設置AIO2與AIO1 圖6 HY16F184 Gas Sensor硬件線路連接圖(TOP) 圖7 HY16F184 Gas Sensor硬件線路連接圖(Bottom) 主要組件介紹 (1)HY16F184 : 數據處理與運算核心,主要負責執行PWM輸出與運算CCS801 Gas Sensor的PPM, RS, RH_Current數據,并且透過I2C通訊做數據輸出。 (2)ADC:HY16F184內建之模擬數字轉換器,能夠精確的將Gas sensor上的RS與RH_Current訊號,做模擬數字電壓訊號轉換。 (3)CCS801 Gas Sensor :氣體傳感器,負責偵測環境中氣體變化量,內部的RS電阻值會隨著氣體中可燃性氣體濃度的不同而產生變化量。 (4)NX2301 PMOS : 在此主要當作開關使用,由HY16F184的PWM來做開關控制使用。開啟時候可對Heater做加熱動作,關閉時候沒有電流經過不做加熱動作。 3.2. 軟件說明 程序流程圖 : 圖8 Gas Sensor程序流程圖 4. 數據規格與總結 4.1. 耗電流測量 在CPU頻率設定為2MHz與工作電壓VDD=3V, VDDA=2.4V, 使用PWM做PMOS開關控制. PWM On的輸出持續時間是100ms,此時為CCS801的加熱時間,之后PWM Off的時間為持續400ms,以500ms為一個控制周期不斷的循環控制PMOS,在此情況下所測得到的耗電流約0.89mA。 4.2. ADC Raw Data與I2C通訊格式說明 I2C Slave Address:0x20 I2C Command:0x80 S+Addr+0x80+rS+(Addr+1)+CH1Data_L+CH1Data_M+CH1Data_H+CH2Data_L+CH2Data_M+CH2Data_H+CH3Data_L+CH3Data_M+CH3Data_H+CH4Data_L+CH4Data_M+CH4Data_H+P S: Star; Addr: Slave address; rS: repeat start; P: stop. CH1: RS 的ADC RawData經過ccsmox_set_data_iaq計算后所得PPM CH2: RS端的ADC RawData CH3: RH_Current端的ADC RawData CH4: NC L: ADC Low byte; M: ADC Middle byte; H: ADC High byte; 每個信道數據(Chx)共8*3=24bit Bit0,統一為旗標,Bit0=0b,代表為舊資料; Bit0=1b,代表為新資料; 使用者應該在Bit0=1b時,取得數據才有效. Bit23,統一為Sign bit, Bit23=0b,代表正數; Bit23=1b, 代表負數 4.3. ADC Raw Data數據顯示界面介紹 掃描Gas Sensor所輸出的ADC Raw Data可透過I2C接口來做數據的傳輸與讀取,搭配纮康設計的I2C轉USB的網橋配合PC端的GUI,可以做為實時的ADC Raw Data數據顯示。詳細數據畫面顯示GUI操作說明,可以參考如下 : 1.Connect : USB連接狀態,如果有正常連接會顯示 Connect,如果連接不正常,會顯示control board connect fail 2.I2C Slave addr: 預設為0x20. 3.Chart: 顯示四個信道的Gas sensor掃描數據。 4.Scan: 開始讀取四個信道的Gas sensor掃描數據。 5.Save: 存取四個信道的Gas sensor掃描數據。 圖9 HY16F184 Gas Sensor與USB轉I2C Board硬件接線圖 圖10 ADC Raw Data數據顯示界面 連上GUI觀察CH1~CH3的數據顯示畫面如下圖,因為PWM On與PWM Off的周期為500ms, 所以換算頻率約每2秒在GUI畫面做一次數據的更新。CH1的數據為氣體濃度PPM,當Gas Sensor沒有偵測到任何的可燃性氣體時候,可以看到都為平穩數值不會跳動,CH2的數據為RS,一開始的ADC Raw Data會呈現平穩的上升,CH3則為RH_Current數據,一開始的ADC Raw data會呈現平穩的下降。 圖11 Gas Sensor無偵測到任何可燃性氣體時候的ADC Raw Data變化量 當有揮發性有機化合物接近Gas Sensor時候,在此是拿奇異筆接近Gas Sesnor,可以看到CH1的PPM數據會透過算法算出變化量,同時CH2的RS ADC Raw data會呈現明顯下降狀態,CH3的RH_Current ADC Raw data也會呈現明顯下降狀態,在奇異筆離開Gas Sensor之后才會慢慢回復平穩狀態。 圖12 Gas Sensor偵測到可燃性氣體時候的ADC Raw Data變化量 4.4. 總結 在本文中,提供了完整的Gas Sensor相關應用與開發工具供使用者參考,用戶可以依據三個通道PPM, RS, RH_Current的ADC Raw Data變化量,來做后續功能設計與開發。 5. 參考文獻 [1] http://www.hycontek.com/attachments/MSP/DS-HY16F188_TC.pdf, 纮康科技HY16F188 Datasheet. [2] http://www.hycontek.com/attachments/MSP/UG-HY16F188_TC.pdf, 纮康科技HY16F188 User Guide. [3] http://www.ccmoss.com/products/ccs801, CCS801 CMOS Sensor Website. |