MAXQ3210的特性及其監視功能
MAXQ3210包含2kB EEPROM程序存儲器、128字節EEPROM數據存儲器、64字節RAM存儲器。其內置的9V穩壓器簡化了電池供電電路。它也為其他電路元件輸出5V電源。在調試方面,它用內置的JTAG調試引擎取代了昂貴的外部仿真器。MAXQ3210集成了用于環境監視的外圍部件。當環境條件不安全和發生變化時,它能夠通過壓電喇叭驅動器和大電流LED驅動器等外圍部件進行告警。這些外圍部件在簡單的保安系統、煙霧警報器、溫度監視器和運動檢測器等應用中很實用。
此外,MAXQ3210為環境監視電路提供了多種接口選項。其內部的電壓比較器可以監視外部電路輸出的隨外部環境變化的電壓值。其外部電路可以很簡單,比如測量溫度的熱敏電阻;也可以較復雜,比如測量電容充電時間的斜率式模數轉換器(ADC)。
除了電壓比較器外,MAXQ3210也可以通過數字I/O口監視外部電路。例如,當環境條件超出范圍時,外部監視電路可以通過中斷引腳向MAXQ3210發送中斷請求信號。MAXQ3210也可以使用串行通信協議,通過數字I/O口與測量距離和照明情況的外部IC電路進行數據傳輸。
監視系統的軟件架構
通常,為MAXQ3210編寫的應用程序都很簡短,足以用MAXQ匯編語言編寫。下面列舉的應用程序用MAX-IDE工具包編寫。MAX-IDE是一個由Dallas Semiconductor免費提供的開發環境,為MAXQ系列微控制器提供了一個匯編和調試環境。圖1示出了一個環境監視應用的基本架構。
圖1. MAXQ3210的環境監視主程序循環在大部分時間內處于休眠狀態,定期喚醒后去讀取并分析傳感器輸出。
啟動后,微控制器首先要經過一個初始化過程,將相關寄存器和配置位按照應用要求進行設置。如果微控制器初次加電,可能還需要一些額外的操作,例如制造商設定的一些測試和配置。經過初始化和加電檢測后,應用程序進入主循環體,開始測量和響應外部環境的變化。首先,應用程序通過電壓比較器或數字I/O口讀取環境信息,并分析環境條件是否超出范圍。接下來,進行系統診斷,如檢測外部電路、測量電池電壓、核實存儲在數據EEPROM中的永久性故障信息等等。隨后,應用程序檢查狀態信息,其中包括告警(如低電池)和提示信息(如溫度過高)。如果環境情況要求執行一些動作,有以下一些選項我們將在下面討論:驅動喇叭發聲,使LED閃爍,通過I/O引腳和其他設備通信,或者簡單地把告警信息存入數據EEPROM以便后續分析。
簡單的監視應用軟件
可以下載為開發環境監視系統而編寫的簡單應用程序。該程序是在MAXQ3210評估工具上編寫和測試的。一個按鈕被用來切換告警和正常狀態。喇叭發聲表示告警。該環境監視應用的主循環體在下面幾段中給出。用于環境監視的狀態機非常簡單:獲取傳感器輸出并分析它是否超出了某種門限(溫度太高,空氣中煙霧濃度太大等)。如果超出邊界,則發出告警。
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 threshold jump Sleep ; put the device into low power mode其中的SelfTest為系統診斷子程序。系統診斷子程序用于監視電池電壓和外部電路的異常情況。在SelfTest中也很適合實現一個計時器,用它來跟蹤MAXQ3210投入運行的時間,從而計算外部傳感器系統的工作壽命。
該應用程序說明了MAXQ微控制器外圍部件的易操作性,以及如何節省代碼的存儲空間和執行周期。例如,僅需用一個單比特來開關喇叭。
SoundTheHorn: move HORN_DRIVER, #1 move LC[0], #10 call DelayMilliseconds move HORN_DRIVER, #0 ret
電源管理
功耗是環境監視應用中最為重要的一個因素,因為它通常是由電池供電的。MAXQ3210提供低功耗停止模式和電池欠壓監視器。定期檢測外部環境條件時,應用程序可以用兩種方式喚醒處于低功耗停止模式的MAXQ3210,使其執行代碼。這兩種方式分別是外部中斷或定時器喚醒。在等待外部電路觸發條件的應用中,外部中斷方式比較合適。比如,在等待開門或熱敏電阻上的壓降超出門限時,就應該采用外部中斷。
喚醒定時器是另外一種使MAXQ3210脫離停止模式的方式。喚醒功能在前面的應用案例中已有討論:外部監視電路喚醒MAXQ3210,使其檢測外部環境條件,必要時進行響應,然后再返回到停止模式。圖2示出了這種工作方式的電流消耗模式。從中可以看出,在大部分時間內,MAXQ3210微控制器處于低功耗休眠模式。當MAXQ3210從休眠模式醒來后電流消耗增大。此時正是高性能MAXQ核的用武之處。MAXQ3210能夠更快地完成任務,在高功耗狀態下停留的時間更短,而更多的時間處于低功耗休眠模式。
圖2. 監視應用程序在大部分時間內休眠以節省功耗,它定期醒來并快速運行。
由于電池是大多數監視應用中的關鍵部件,檢測電池是否快用完很重要。MAXQ3210通過檢測一個寄存器狀態位來判斷電池電壓是否低于門限。這個門限被固定于7.7V,這正是9V電池瀕臨耗盡時的電壓。在這個電平下,電池還有一定的電量,可保障MAXQ3210繼續運行一段時間。低功耗應用系統,比如煙霧警報系統,可以在電池電壓低于門限后工作幾天或幾周,并不斷發出低電壓告警信號。
數據EEPROM
MAXQ3210的128字節數據EEPROM極大地方便了應用程序,可使應用程序存儲永久性的配置和狀態數據,即使在電源失效或去掉電池后也可保持這些數據。永久性數據存儲可用于以下這些目的。- 改進性能。稍微不能滿足性能指標要求的系統(比如,測距儀測量的距離稍微偏短)可以存儲永久性配置信息,以使軟件能夠補償外部電路的偏差。這種措施可以使已被棄用的設備被重新利用或出售。
- 動作配置及用戶化。MAXQ3210應用系統可以按照特定環境或用戶的要求定制。比如,環境監視系統可以被配置為大型網絡的一部分,當測量值超過門限時,該系統不但自己鳴喇叭告警,而且還可向其他設備發出警報。通過配置,生產廠家可以使能或禁止這種網絡功能。
- 工作期限。用于環境監視的傳感器和測量電路可能會隨著使用期限而劣化。通過修改EEPROM中的數據,應用程序可以確定電路必須被替換的時間。比如,在使用5年后,監視系統可以自動禁止自己工作,并通過鳴喇叭或點亮LED提示自己不能再工作。
環境監視應用
火災和煤氣警報器等住宅安全系統是典型的環境監視應用。MAXQ3210完全可以實現這些功能,但是它比煙霧警報專用微控制器更通用。利用本文前面介紹的環境監視程序架構,可以開發出各種應用系統。在下面列舉的安全應用中,有些應用是為了防止或減少公司或家庭的損失,其余的應用是為了方便用戶。為了防止家庭或辦公室遭受水災,可以為地下室安裝水位監視系統。該系統可以利用濕度傳感器或類似于衛生間沖洗水箱的裝置來檢測水位。當水溢出或超過一定水位時,傳感器或浮漂觸發外部中斷,MAXQ3210鳴喇叭,發出警報。此外,MAXQ3210可以和公司或家庭網絡通信,把警報發給公司或家庭成員。
溫度監視是另一種可能的應用。超市冰柜或運輸車冷凍車廂內的溫度不能過高。為此,可以用簡單的熱敏電阻和MAXQ3210構成監視系統。當冷卻器內的食物溫度超過安全界線時,系統發出警報。這種監視系統有許許多多的用途,比如,用于監視網絡設備、實驗室設備、保藏藝術品、飲料以及其他易腐爛物品的溫度。
監視應用的目的也可能是為了方便用戶。當寵物、小孩或入侵者進入家庭的禁區時,由MAXQ3210構成的運動檢測器可以向主人發出警報。當然,該檢測器應該可以通過按鈕來開關。
MAXQ3210也很適合實現一個輔助泊車裝置。它可以根據距離探測電路測量的距離使喇叭發出不同的警報聲音。這種系統需要一些配置和智能處理。在車庫內停車時,系統能夠幫助車主防止碰撞墻壁,但用戶并不希望他們從探測電路前面走過時系統鳴喇叭警告。為此,可用軟件實現延遲,當系統初次探測到移動時,軟件可以讓系統等待兩秒鐘看是否有進一步的移動。若無,這可能是有人在傳感器前面走動。也可以通過按鈕來開關系統;這樣可以避免用戶在車庫內工作時系統不斷地發出警告。
評估工具
MAXQ3210評估工具(EV kit)是開發原型應用系統的理想平臺(參見圖3)。它使用9V電源或電池,用兩個按鈕分別來復位和產生中斷信號,用一個10針JTAG接頭訪問硬件調試程序,可以顯示和調整MAXQ3210的寄存器、存儲器和堆棧。I/O引腳由一個便利的2 x 20針接頭引出,靠近原型區以便于測試外部電路。板上壓電喇叭和LED可被用作應用中的測試信號和發生設備。默認狀態下,壓電喇叭輸出經過阻尼的聲音―響亮,但不刺耳。也可通過跳線來短路阻尼電路,使喇叭發出最強的85dB音量。
MAXQ3210評估工具可以配合MAX-IDE使用。它支持MAXQ3210的硬件調試引擎,可進行源代碼級的調試和監視內存。
圖3. MAXQ3210評估工具配備有壓電喇叭、LED和9V電池座,支持完整的應用開發。
MAXQ3210的優點總結
如上所述,MAXQ3210在環境監視應用中有諸多優點。其中的主要優點之一是高集成度。監視應用所需的元件基本上都被集成到了芯片上(包括電壓比較器、喇叭和LED驅動器等),因此省去了不少外部元件。高集成度降低了系統的費用,提高了系統的可靠性,減少了需要測試的元件數量。而且,單片化的方案所需的連線更少,縮短了電路板的測試時間。單片方案也意味著印刷板更小、成本更低。MAXQ3210的另一個優點是高性能,低功耗。單周期MAXQ核和大量的寄存器空間允許應用程序更高效地保存數據并更迅速地執行任務。MAXQ3210在更多的時間內處于低功耗休眠模式,而執行代碼的時間更少。
最后,MAXQ3210的電池監視功能和數據EEPROM便于實現靈巧、自我監視的應用。電池快耗盡時器件可警告用戶。此外,系統還可跟蹤其元件的壽命,實現有計劃的設備更新。
結論
MAXQ3210是一款MAXQ微控制器的低引腳數實現,用于不需要高檔微控制器提供的外設的應用。雖然MAXQ3210是環境監視系統的理想方案,但它也是一個通用的、高性能、節能型微控制器,能夠為許多應用提供智能和互動能力。值得注意的是,雖然本文只討論了MAXQ3210在環境監視中的應用,實際上它的應用范圍要廣闊得多。利用其數據EEPROM、支持捕獲、比較和PWM操作的16位定時器、以及高性能MAXQ微控制器核,MAXQ3210可以應用在許多領域。
評論
查看更多