<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > MAXQ3120 混合信號微控制器的應(yīng)用案例

          MAXQ3120 混合信號微控制器的應(yīng)用案例

          ——
          作者:未知 時間:2005-11-07 來源: 收藏

            監(jiān)視系統(tǒng)的設(shè)計者和廠商一直希望微控制器能夠為日常監(jiān)視應(yīng)用提供不斷增加的通用功能,包括滿足用電計量、汽車監(jiān)控、數(shù)據(jù)搜集和傳感器調(diào)節(jié)等方面的要求。 就是為了滿足這些要求而開發(fā)的低功耗、高速微控制器。它的主要技術(shù)規(guī)范如下。

            監(jiān)視系統(tǒng)的設(shè)計者和廠商一直希望微控制器能夠為日常監(jiān)視應(yīng)用提供不斷增加的通用功能,包括滿足用電計量、汽車監(jiān)控、數(shù)據(jù)搜集和傳感器調(diào)節(jié)等方面的要求。 就是為了滿足這些要求而開發(fā)的低功耗、高速微控制器。它的主要技術(shù)規(guī)范如下。

          •16 位、每秒8 百萬條指令(8MIPS)、單周期RISK 核
          •32kB 閃存(flash 存儲器)
          • 512B RAM
          •具有獨立波特率產(chǎn)生器的2 個UART
          •3 個定時器,其中1 個支持PWM D/A
          • 紅外通信功能
          •可驅(qū)動112 段LCD 的控制器
          • 依靠電池備份、具有日歷和亞秒鬧鐘功能的實時時鐘
          •16 x 16 位單周期乘法器和40 位累加器
          •2 個16 位精密模數(shù)轉(zhuǎn)換器(ADC)
          下面介紹利用 微控制器的以上特性和模擬I/O 及DSP 功能可以完成一些什么樣的任務(wù)。

          語音記錄子系統(tǒng)

            概念: 給一組工程師一片ADC,他們就會發(fā)現(xiàn)如何用它來記錄語音。但是,除了簡單的記錄聲音,MAXQ3120 還能夠做很多事情。以MAXQ3120 為核心,配合用戶接口和廉價的NAND 閃存,就可構(gòu)建一個功能完善的語音記錄子系統(tǒng)。

            細節(jié): 可以利用MAXQ3120 的一個ADC 和PWM 定時器實現(xiàn)音頻I/O。ADC 的額定輸入電壓為+1V 到-1V,其內(nèi)置的前置放大器的可編程增益可達16。通常,具有內(nèi)置阻抗匹配的電容式拾音頭可以直接連接到ADC 的輸入端。如果需要低噪聲或高增益,可以采用Maxim 公司的前置放大器MAX4467 ,該放大器能為拾音頭提供所需的偏置,且為電池供電的應(yīng)用提供功耗極低的關(guān)斷模式。在輸出端,用一個單級放大器驅(qū)動揚聲器,該放大器同時還具有一定的抗混疊和PWM 平滑功能。

            音頻信號被轉(zhuǎn)換成數(shù)字信號后,必須進行壓縮和存儲,以備重放。8MIPS 的處理能力使MAXQ3120 擁有足夠的“馬力”來應(yīng)付許多常用的標準語音編碼任務(wù)。此領(lǐng)域的“金科玉律”是ITU G.711 編碼,其工作速率為64kbps ,每秒發(fā)送和接收8000 個8 位采樣。ITU G.711 編碼有兩種不同的傳遞函數(shù),用來將12 位采樣值轉(zhuǎn)換為8 位編碼字。這兩種函數(shù)就是通常所謂的A 律(主要用在歐洲)和µ律(主要用在美國)。

            如果期望更高的壓縮率,可以犧牲一些話音質(zhì)量,采用ITU G.726 編碼。G.726 編碼采用自適應(yīng)差分脈沖編碼調(diào)制(ADPCM)方案對語音信號進行更高效率的編碼。這種編碼支持多種位率,最低為16kbps 。對大多數(shù)應(yīng)用來說,該編碼要求的處理速度不大于3MIPS。ITU G.711 和ITU G.726 編碼都只需要很少的RAM。在錄音階段,定時器每125µs (8MHz 時鐘頻率下每1000 個處理器周期)產(chǎn)生一次中斷請求,微處理器響應(yīng)中斷后,計算在上一個定時器周期內(nèi)得到的采樣值的平均值(二或三個采樣,ADC 每48µs 采樣一次),以便獲得需要的8kHz 采樣率。之后,所采集的16 位采樣就可采用選定的編碼方案進行編碼。在回放時,采樣數(shù)據(jù)被線性化后送到PWM 控制器,驅(qū)動揚聲器。

            壓縮后的音頻數(shù)據(jù)就可用于存儲,但MAXQ3120 微控制器除了程序閃存外沒有其他的存儲器,因此需用外部存儲器來存儲語音數(shù)據(jù)。對于此應(yīng)用性價比最高的外部存儲器是NAND 閃存,其容量可達8 吉位。對于16kbps 編碼,這種器件可提供超過6 天的語音存儲。但是,NAND 閃存并不完善。首先,大多數(shù)NAND 閃存器件都帶有一個“瑕疵圖”,告訴應(yīng)用軟件在存儲器陣列中的何處有“壞點”存在。其次,就像其他的可擦除存儲器一樣,在長期使用后,NAND 閃存的有些單元會喪失存儲能力。幸運的是,NAND 閃存的這些缺陷對語音應(yīng)用的影響不大,不像對固態(tài)磁盤等應(yīng)用的影響那么大。在語音應(yīng)用中,NAND 閃存的這些缺陷可以被忽略,它們最多使語音中存在瞬間干擾。

            對于容量如此巨大的語音存儲,必須進行有效的存儲管理。這項工作由系統(tǒng)的用戶接口部分完成,用戶接口部分的核心是LCD 控制器。它能夠驅(qū)動4 個公共面上的28 段顯示,MAXQ3120 的LCD 控制器兼容于大量現(xiàn)有的3V LCD 玻璃。可以非常低的成本獲得定制的LCD 模塊。

            用戶可以通過連接到MAXQ3120 通用I/O 端口的按鈕來控制語音記錄系統(tǒng)。MAXQ3120 有4 個8 位通用I/O 端口與器件的其他功能共用。

            還需要做什么? MAXQ3120 是用于高級語音記錄系統(tǒng)的理想微控制器。在利用它設(shè)計語音記錄系統(tǒng)時,設(shè)計者僅需要完成下列工作:

          •設(shè)計用戶接口: 選擇一款LCD ,確定如何顯示信息、設(shè)置按鈕功能、如何記錄和組織語音數(shù)據(jù)。
          •選擇聲碼器: 可以選用以上提到的兩個ITU 編碼器之一,也可以選用其他的專用編碼器,在存儲器容量足夠大時還可以直接存儲語音信號的原始采樣值。許多標準編碼器的C 語言源代碼是可以買到的,因此只需要簡單地開發(fā)接口程序。
          •選擇存儲介質(zhì): NAND 閃存是理想的選擇,但也可以根據(jù)實際情況選擇其他的存儲器,例如,廉價的通用可移動存儲器(SD、SmartMedia™ 或MMC 存儲卡)。有些廠商還可提供存儲卡接口的C 語言源代碼和開發(fā)工具。
          •電池管理: 如果語音記錄系統(tǒng)用電池供電,就需要某種形式的電源管理。Maxim 有多種高效的低功耗電池管理方案。結(jié)合這些方案和MAXQ3120 的低功耗停止和睡眠模式,將使語音記錄器具有滿意的電池壽命。

          多普勒雷達

            概念: 很多年以前執(zhí)法部門就在使用多普勒測速雷達。如果這種雷達系統(tǒng)的造價能夠大大降低,那它的用途就不僅僅限于對付那些道路上的超速者。比如,它可在前方車輛停車時提醒駕駛員。MAXQ3120 能在多普勒雷達系統(tǒng)中發(fā)揮哪些作用呢?

            細節(jié): 多普勒雷達的工作原理比較簡單。雷達裝置發(fā)射一個連續(xù)的、已知頻率的微波束(在美國微波頻率已上升到Ku 波段,約24.150GHz) ,微波束遇到移動目標后被反射回來。由于反射波的頻率稍微高于或低于發(fā)射波的頻率,所以把反射波和發(fā)射波混頻后可以得到頻率由下式確定的“拍音”:

          f = [v * (f0 / c)] * cosθ

            其中,ν是待測目標的速度,f0 是額定發(fā)射頻率,θ是目標運動方向與雷達系統(tǒng)之間的夾角(如圖1A 所示),c 是光速。注意,如果目標直接對著雷達系統(tǒng)而來,則θ= 0,cosθ= 1 ,目標的運動速度變?yōu)椋?/P>

          v = [f / (f0 / c)]

            例如,如果Ku 波段多普勒雷達產(chǎn)生1kHz 的“拍音”,則測量的目標直面而來(或而退)的速度為12.4m/s (即每小時28 英里或45 公里)??捎肕AXQ3120 處理這種音頻信號,框圖如圖1B 所示。

           
          圖1A. 接收信號的多普勒頻移取決于目標的運動速度和目標運動方向與雷達系統(tǒng)之間的夾角。

           
          圖1B. 在多普勒雷達系統(tǒng)中,MAXQ3120 控制雷達頭,并從雷達模塊輸出的中頻(IF)信號中提取“拍音”信號。

            利用兩個ADC 通道中的一個,MAXQ3120 能夠采樣雷達模塊輸出的差分信號,提取出其中的最強頻率分量,并把它換算成每小時公里或英里數(shù)。此外,利用MAXQ3120 的乘-加單元還可進行一些復(fù)雜的濾波運算,從復(fù)雜的信號中提取出最強的頻率分量,并且可能從微弱信號中提取出有用信息(比如,多普勒雷達系統(tǒng)運載車輛本身的運動速度)。

            很多情況下,用戶接口的設(shè)計非?,嵥椤3J且恍┻壿嬏幚砘蛘咄ㄟ^開關(guān)觸發(fā)音頻告警。有些應(yīng)用中,微控制器還要周期性地記錄速度、以及進行速度測量的時間和日期等。

            還需要做什么?多數(shù)廠家生產(chǎn)的多普勒雷達模塊輸出音頻IF。對簡單的測速雷達系統(tǒng),剩下的工作非常簡單。對于更復(fù)雜一些的測量分析系統(tǒng),還需要開發(fā)一些有關(guān)信號處理的算法。幸運的是,有許多可用于輔助開發(fā)濾波算法和識別算法的優(yōu)秀工具。

            有些雷達系統(tǒng)需要指示目標的運動方向,即目標是遠離還是靠近雷達?傳統(tǒng)的多普勒雷達不能完成這項工作;它們對速度一樣而方向相反的運動產(chǎn)生相同的頻移量。現(xiàn)在,有些廠家生產(chǎn)的雷達模塊包含兩路正交

            輸出,解調(diào)這兩路輸出,根據(jù)它們的相位差雷達系統(tǒng)便可以確定目標的運動方向。MAXQ3120 微控制器有兩個ADC,用它可以很容易地實現(xiàn)這種功能。

          電話管理器

            概念: 有時人們希望追蹤電話的使用情況(誰與誰通了話,什么時候通的話,通話時間是多少),但又不愿購買昂貴、復(fù)雜的通話計費系統(tǒng)。這種情況的例子很多。比如,父母想追蹤孩子的電話使用情況。職業(yè)人員想要一個自動記錄他們何時給誰打了電話,以及誰何時給他們打了電話的日志工具。當各個房間的電話公用一條電話線時,那些以住宿加(次日)早餐方式出租房間的房東,就希望有可以追蹤電話使用情況的系統(tǒng)。這種系統(tǒng)可以使他們比較容易地向客人收取電話費??梢岳肕AXQ3120 微控制器組成監(jiān)視電話線上所有通話的裝置(見圖2)。

           
            圖2. 電話管理器監(jiān)視呼出號碼、來電振鈴、主叫ID 以及摘機事件,確定呼出號碼、主叫號碼以及通話時間。

            細節(jié): 電話管理器必須監(jiān)視四種情況:電話線的掛機/摘機狀態(tài)、來電振鈴、呼叫號碼和主叫ID 信息。其中最簡單的是摘機信號的監(jiān)視,因為摘機時,線電壓從48V ( 掛機狀態(tài))變?yōu)?2V 以下(摘機狀態(tài)),電壓檢測器很容易檢測這種變化并通知MAXQ3120 微控制器。

            來電振鈴由電話公司在電話線上加載的高壓交流信號產(chǎn)生。該信號經(jīng)過電容耦合和光電隔離器后向處理器發(fā)出告警,同時保持與電話線的隔離。通常,與0.47µF 電容和4.7k

            電阻串聯(lián)的雙向光耦合器能夠可靠地檢測到該信號。為避免誤動作,可采用一對背靠背的齊納二極管,只有當電壓超過擊穿電壓時才允許電流流入光隔離器。

            呼叫號碼的接收稍復(fù)雜一些,因為有兩種向電話公司發(fā)送號碼的方法:脈沖撥號和音頻撥號。脈沖撥號方法根據(jù)撥打的數(shù)字在每秒鐘內(nèi)產(chǎn)生10 個電流脈沖。為了檢測脈沖撥號,只需檢測電話線上由低到高的電壓跳變的時間,如果以每秒10 次的速率出現(xiàn)一串跳變,無疑這就是脈沖式撥號。

            但是,脈沖撥號電話機越來越少,目前流行的是雙音多頻(DTMF) 撥號方法。在該方法中,電話上的數(shù)字鍵被排成三列四行,見圖3。按下一個數(shù)字鍵,會產(chǎn)生一個與行對應(yīng)的音和一個與列對應(yīng)的音。通過檢測并解譯音調(diào)的組合情況,MAXQ3120 就可確定撥出的號碼。

           
            圖3. 雙音多頻(DTMF)撥號方案為鍵盤上的每個鍵安排了一個行音和一個列音。注意,最右邊一列(A、B、C 和D 鍵)僅用在局端設(shè)備上,客戶端沒有。

            Goertzel 算法是一種適合于CPU 實現(xiàn)的高效音頻信號檢測方法。它是一個雙極點濾波器,可以在噪聲信道中清晰地檢測出音頻信號。在MAXQ 微控制器上實現(xiàn)該算法的程序已經(jīng)通過了測試。

            利用主叫ID 服務(wù)確定主叫者的電話號碼很容易。這項服務(wù)的訂戶可在第1 和第2 聲振鈴之間收到一個1200bps 的信號,其中包含主叫號碼、主叫者的名稱以及時間和日期等。

            在美國,電話局采用Bell 202 調(diào)制解調(diào)器標準傳送主叫ID。歐洲所采用的標準是ITU V.32 模式2 (1300Hz 傳號和2100Hz 空號)。兩種標準的數(shù)據(jù)傳送速率都為1200bps 。很容易在一個應(yīng)用中同時支持這兩種標準,但這里僅討論美國使用的標準。在該標準中,“0”位用2200Hz 音頻表示,“1”位用1200Hz 音頻表示。MAXQ3120 可容易地檢測到過零點,并由此確定輸入信號頻率和它所代表的數(shù)據(jù)位。數(shù)據(jù)格式很簡單,為串行異步N81 格式(無奇偶校驗位,8 位數(shù)據(jù),1 位停止位)。

            檢測到位值后還要解析消息的格式。有兩種主叫ID 格式。第一種僅包含主叫號碼和日期及時間。如下所示:

           
            如果用戶只訂了“僅號碼”主叫ID 業(yè)務(wù),就用這種格式為他們傳送主叫ID。注意,除了類型、長度和校驗和外,其他字符以ASCII 碼傳送。如果沒有主叫號碼,就用字母“O”代之。如果主叫號碼應(yīng)呼叫者的要求禁止傳送,則用字母“P”代替電話號碼。校驗和為此信息中前面諸字節(jié)以256 為模的和,為2 的補碼格式。

            如果用戶訂購了“姓名和號碼”主叫ID 服務(wù),就會收到如下所示的信息:

          其中,TYPE 總為0x80,LENGTH 為所有數(shù)據(jù)塊的長度。數(shù)據(jù)塊的格式為:

           
          其中,BLOCK TYPE 表示傳送數(shù)據(jù)的類型,其值根據(jù)下表選擇:

           
            一旦有關(guān)某次通話的數(shù)據(jù)搜集齊后便可存儲在I2C* EEPROM 中。這類器件廉價、可靠,并且可以提供多種存儲容量。一個16kb 的EEPROM 能夠存儲100 條姓名-號碼格式的主叫ID 記錄。在MAXQ 系列處理器上用軟件實現(xiàn)I2C 通信的代碼也有提供。

            還需要做什么?還可以考慮對該系統(tǒng)的功能進行一些強化。盡管上面所討論的方案可以監(jiān)視所有在線的電話,但它還是無法告訴你是哪部電話發(fā)出或應(yīng)答呼叫。為了做到這一點,每部電話機上需要安裝一個無需任何用戶界面的監(jiān)視裝置。MAXQ3120 可以通過電流傳感器確定電話機何時被摘機,并通知位于中央的電話管理器。為完成這種通信任務(wù),話機中的微控制器可以發(fā)送DTMF 數(shù)字信號,用來識別呼出或應(yīng)答話機。在掛機狀態(tài),電話公司對這些信號“視而不見”,因此,戶內(nèi)電話線就為這些數(shù)字信號提供了理想的信道。

            另一方面的強化是自動登錄到一臺計算機。MAXQ3120 微控制器具有UART 通道,可以和PC 的串口連接,這樣就可將電話管理器徹底轉(zhuǎn)變?yōu)橐粋€小巧的電話計費系統(tǒng)。如果再把這種計費系統(tǒng)和前面介紹的語音記錄系統(tǒng)結(jié)合起來,你就擁有了一個非常完善的應(yīng)答機或電話記錄器。

          電力監(jiān)視裝置

            概念: 電費為什么這么高?這是電力公司經(jīng)常聽到的抱怨。其中,與燃料價格無關(guān)的部分原因是越來越多的電器始終處于耗電狀態(tài)。

            不要抱怨電冰箱,因為它的電源是間歇開關(guān)的,只有當電冰箱的內(nèi)部溫度高于限定值時電源才被接通。實際上,耗電的設(shè)備到處都是。想一想多媒體設(shè)備中發(fā)出亮光的指示燈,告訴你它已被關(guān)閉,等待你的遙控命令來打開它。過去,“關(guān)掉”開關(guān)就意味著該設(shè)備不再有任何形式的工作。但在今天,關(guān)掉電視機只是使其處于等待模式,許多電路仍在耗電。事實上,現(xiàn)在已經(jīng)很難找到真正切斷電源的電器。

            微機也是隱蔽耗電的設(shè)備。在當今的網(wǎng)上時代,人們離開時還讓微機下載文件、收取郵件等等。它要花多少電費?

            在此最后一部分,MAXQ3120 回歸其本源,但角色轉(zhuǎn)變?yōu)橛秒娬撸辉偈枪╇娬?。圖4 示出了本應(yīng)用的框圖。

           
          圖4. 用電監(jiān)視裝置能夠確定某電器何時用了多少電。它還可以報告會損壞敏感設(shè)備的電壓浪涌和掉電故障。

            細節(jié): MAXQ3120 專為支持電表應(yīng)用而設(shè)計。它的兩個ADC 分別設(shè)計用于監(jiān)視電壓通道和電流通道。在本項目中,MAXQ3120 連續(xù)監(jiān)視進入某設(shè)備的電壓和電流。然后,它可以報告該設(shè)備的平均功率,用電高峰出現(xiàn)的次數(shù)和幅度,以及,如果需要的話還可提供該設(shè)備的功率因數(shù)。

            如何報告呢?最簡單、直接的方法是在監(jiān)視裝置上采用一個小巧的LCD 。可以使用一個或多個按鈕控制MAXQ3120 在多種顯示模式間切換(電壓均方根、電流均方根、功率、度數(shù)等等)。LCD 價格極其低廉,用來監(jiān)視單個設(shè)備時,可做的非常緊湊、易用。

            如果要監(jiān)視多個設(shè)備,可以建一個中心站來記錄來自各從站的數(shù)據(jù)。該項目的難點在于通常的供電電路用于數(shù)據(jù)傳送介質(zhì)時質(zhì)量太差。用廉價的模塊無法實現(xiàn)理想的數(shù)據(jù)傳輸速率。

            但是,可以用廉價的模塊實現(xiàn)不太理想的數(shù)據(jù)傳輸速率。MAXQ3120 的ADC 僅有20,000 次/秒的采樣速率,這種速率無法解調(diào)100kHz 范圍內(nèi)的載波(這個頻段被普遍用于電力線控制系統(tǒng)),但是它們可以解調(diào)音頻范圍的載波。如果數(shù)據(jù)傳送速率足夠慢,比如約10bps ,可以實現(xiàn)非常可靠的通信。

            這樣除了監(jiān)視電力外,MAXQ3120 的DSP 功能還要完成另外兩項工作:監(jiān)視來自兩個窄帶的信號功率,并嘗試從中檢測出低速頻移鍵控(FSK)信號;如果接到請求,還要為主站發(fā)送3kHz 至7kHz 的FSK 信號。

            主站可以是單獨的裝置,也可以通過微機的串口與其連接。后一種方案更具有吸引力,因為微機的存儲量足夠大,且能夠完成比微控制器更復(fù)雜的任務(wù)。

            還需要做什么?還需要做什么?不多。可申請完整的電表參考設(shè)計(ZIP, 76KB),經(jīng)過簡單修改后可用于此項目。關(guān)于電力線通信,用于信號產(chǎn)生和帶通濾波的MAXQ3120 代碼也可找到。因此,只需將這些部件整合在一起便可輕松構(gòu)建一個低數(shù)據(jù)速率FSK 調(diào)制解調(diào)器。簡言之,通過簡單地整合現(xiàn)有的硬件和軟件元素,就可組成一個可工作的產(chǎn)品。

          結(jié)論

            通過這些應(yīng)用實例我們可以看到,除了作為多功能電表的核心外,MAXQ3120 微控制器還大有可為。強大的功能使這款微控制器在很多應(yīng)用領(lǐng)域有擴展的機會,可能是你下一個項目的理想方案。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();