利用MAXQ3210進行環(huán)境監(jiān)視
發(fā)布時間:2008/5/28 0:00:00 訪問次數(shù):465
maxq3210的特性及其監(jiān)視功能
maxq3210包含2kb eeprom程序存儲器、128字節(jié)eeprom數(shù)據(jù)存儲器、64字節(jié)ram存儲器。其內(nèi)置的9v穩(wěn)壓器簡化了電池供電電路。它也為其他電路元件輸出5v電源。在調(diào)試方面,它用內(nèi)置的jtag調(diào)試引擎取代了昂貴的外部仿真器。maxq3210集成了用于環(huán)境監(jiān)視的外圍部件。當環(huán)境條件不安全和發(fā)生變化時,它能夠通過壓電喇叭驅(qū)動器和大電流led驅(qū)動器等外圍部件進行告警。這些外圍部件在簡單的保安系統(tǒng)、煙霧警報器、溫度監(jiān)視器和運動檢測器等應用中很實用。
此外,maxq3210為環(huán)境監(jiān)視電路提供了多種接口選項。其內(nèi)部的電壓比較器可以監(jiān)視外部電路輸出的隨外部環(huán)境變化的電壓值。其外部電路可以很簡單,比如測量溫度的熱敏電阻;也可以較復雜,比如測量電容充電時間的斜率式模數(shù)轉換器(adc)。
除了電壓比較器外,maxq3210也可以通過數(shù)字i/o口監(jiān)視外部電路。例如,當環(huán)境條件超出范圍時,外部監(jiān)視電路可以通過中斷引腳向maxq3210發(fā)送中斷請求信號。maxq3210也可以使用串行通信協(xié)議,通過數(shù)字i/o口與測量距離和照明情況的外部ic電路進行數(shù)據(jù)傳輸。
監(jiān)視系統(tǒng)的軟件架構
通常,為maxq3210編寫的應用程序都很簡短,足以用maxq匯編語言編寫。下面列舉的應用程序用max-ide工具包編寫。max-ide是一個由dallas semiconductor免費提供的開發(fā)環(huán)境,為maxq系列微控制器提供了一個匯編和調(diào)試環(huán)境。圖1示出了一個環(huán)境監(jiān)視應用的基本架構。
圖1. maxq3210的環(huán)境監(jiān)視主程序循環(huán)在大部分時間內(nèi)處于休眠狀態(tài),定期喚醒后去讀取并分析傳感器輸出。
啟動后,微控制器首先要經(jīng)過一個初始化過程,將相關寄存器和配置位按照應用要求進行設置。如果微控制器初次加電,可能還需要一些額外的操作,例如制造商設定的一些測試和配置。經(jīng)過初始化和加電檢測后,應用程序進入主循環(huán)體,開始測量和響應外部環(huán)境的變化。首先,應用程序通過電壓比較器或數(shù)字i/o口讀取環(huán)境信息,并分析環(huán)境條件是否超出范圍。接下來,進行系統(tǒng)診斷,如檢測外部電路、測量電池電壓、核實存儲在數(shù)據(jù)eeprom中的永久性故障信息等等。隨后,應用程序檢查狀態(tài)信息,其中包括告警(如低電池)和提示信息(如溫度過高)。如果環(huán)境情況要求執(zhí)行一些動作,有以下一些選項我們將在下面討論:驅(qū)動喇叭發(fā)聲,使led閃爍,通過i/o引腳和其他設備通信,或者簡單地把告警信息存入數(shù)據(jù)eeprom以便后續(xù)分析。
簡單的監(jiān)視應用軟件
可以下載為開發(fā)環(huán)境監(jiān)視系統(tǒng)而編寫的簡單應用程序。該程序是在maxq3210評估工具上編寫和測試的。一個按鈕被用來切換告警和正常狀態(tài)。喇叭發(fā)聲表示告警。該環(huán)境監(jiān)視應用的主循環(huán)體在下面幾段中給出。用于環(huán)境監(jiān)視的狀態(tài)機非常簡單:獲取傳感器輸出并分析它是否超出了某種門限(溫度太高,空氣中煙霧濃度太大等)。如果超出邊界,則發(fā)出告警。
mainloop: move dp[0], #condition_flag ; see if we are alarming move acc, @dp[0] ; read the alarm flag jump z, mainloop_nosignal ; skip next code if not alarming ; ; if our condition is above threshold, see if it is ; time to sound the horn ; call checksignaltime ; see if it is time to sound the horn jump nz, readandsleep ; back to sleep if no signal call signalcondition ; sound horn, light leds, etc. jump readandsleep ; let's go to sleep now ; ; in a real sensor, we still want to take readings even if we are ; signaling. we need to check to see if environmental conditions ; have returned to normal. ; mainloop_nosignal: call checkforselftest ; time to run periodic diagnostics? jump z, readandsleep ; skip if not time yet call selftest ; perform self diagnostics readandsleep: call readsensor ; get a 'sensor reading' call analyzesensor ; see if condition out of threshol
maxq3210的特性及其監(jiān)視功能
maxq3210包含2kb eeprom程序存儲器、128字節(jié)eeprom數(shù)據(jù)存儲器、64字節(jié)ram存儲器。其內(nèi)置的9v穩(wěn)壓器簡化了電池供電電路。它也為其他電路元件輸出5v電源。在調(diào)試方面,它用內(nèi)置的jtag調(diào)試引擎取代了昂貴的外部仿真器。maxq3210集成了用于環(huán)境監(jiān)視的外圍部件。當環(huán)境條件不安全和發(fā)生變化時,它能夠通過壓電喇叭驅(qū)動器和大電流led驅(qū)動器等外圍部件進行告警。這些外圍部件在簡單的保安系統(tǒng)、煙霧警報器、溫度監(jiān)視器和運動檢測器等應用中很實用。
此外,maxq3210為環(huán)境監(jiān)視電路提供了多種接口選項。其內(nèi)部的電壓比較器可以監(jiān)視外部電路輸出的隨外部環(huán)境變化的電壓值。其外部電路可以很簡單,比如測量溫度的熱敏電阻;也可以較復雜,比如測量電容充電時間的斜率式模數(shù)轉換器(adc)。
除了電壓比較器外,maxq3210也可以通過數(shù)字i/o口監(jiān)視外部電路。例如,當環(huán)境條件超出范圍時,外部監(jiān)視電路可以通過中斷引腳向maxq3210發(fā)送中斷請求信號。maxq3210也可以使用串行通信協(xié)議,通過數(shù)字i/o口與測量距離和照明情況的外部ic電路進行數(shù)據(jù)傳輸。
監(jiān)視系統(tǒng)的軟件架構
通常,為maxq3210編寫的應用程序都很簡短,足以用maxq匯編語言編寫。下面列舉的應用程序用max-ide工具包編寫。max-ide是一個由dallas semiconductor免費提供的開發(fā)環(huán)境,為maxq系列微控制器提供了一個匯編和調(diào)試環(huán)境。圖1示出了一個環(huán)境監(jiān)視應用的基本架構。
圖1. maxq3210的環(huán)境監(jiān)視主程序循環(huán)在大部分時間內(nèi)處于休眠狀態(tài),定期喚醒后去讀取并分析傳感器輸出。
啟動后,微控制器首先要經(jīng)過一個初始化過程,將相關寄存器和配置位按照應用要求進行設置。如果微控制器初次加電,可能還需要一些額外的操作,例如制造商設定的一些測試和配置。經(jīng)過初始化和加電檢測后,應用程序進入主循環(huán)體,開始測量和響應外部環(huán)境的變化。首先,應用程序通過電壓比較器或數(shù)字i/o口讀取環(huán)境信息,并分析環(huán)境條件是否超出范圍。接下來,進行系統(tǒng)診斷,如檢測外部電路、測量電池電壓、核實存儲在數(shù)據(jù)eeprom中的永久性故障信息等等。隨后,應用程序檢查狀態(tài)信息,其中包括告警(如低電池)和提示信息(如溫度過高)。如果環(huán)境情況要求執(zhí)行一些動作,有以下一些選項我們將在下面討論:驅(qū)動喇叭發(fā)聲,使led閃爍,通過i/o引腳和其他設備通信,或者簡單地把告警信息存入數(shù)據(jù)eeprom以便后續(xù)分析。
簡單的監(jiān)視應用軟件
可以下載為開發(fā)環(huán)境監(jiān)視系統(tǒng)而編寫的簡單應用程序。該程序是在maxq3210評估工具上編寫和測試的。一個按鈕被用來切換告警和正常狀態(tài)。喇叭發(fā)聲表示告警。該環(huán)境監(jiān)視應用的主循環(huán)體在下面幾段中給出。用于環(huán)境監(jiān)視的狀態(tài)機非常簡單:獲取傳感器輸出并分析它是否超出了某種門限(溫度太高,空氣中煙霧濃度太大等)。如果超出邊界,則發(fā)出告警。
mainloop: move dp[0], #condition_flag ; see if we are alarming move acc, @dp[0] ; read the alarm flag jump z, mainloop_nosignal ; skip next code if not alarming ; ; if our condition is above threshold, see if it is ; time to sound the horn ; call checksignaltime ; see if it is time to sound the horn jump nz, readandsleep ; back to sleep if no signal call signalcondition ; sound horn, light leds, etc. jump readandsleep ; let's go to sleep now ; ; in a real sensor, we still want to take readings even if we are ; signaling. we need to check to see if environmental conditions ; have returned to normal. ; mainloop_nosignal: call checkforselftest ; time to run periodic diagnostics? jump z, readandsleep ; skip if not time yet call selftest ; perform self diagnostics readandsleep: call readsensor ; get a 'sensor reading' call analyzesensor ; see if condition out of threshol