MAXQ3120混合信號微控制器的應(yīng)用案例
16位、每秒8百萬條指令(8mips)、單周期risk核32kb閃存(flash存儲器)512bram具有獨立波特率產(chǎn)生器的2個uart3個定時器,其中1個支持pwmd/a紅外通信功能可驅(qū)動112段lcd的控制器依靠電池備份、具有日歷和亞秒鬧鐘功能的實時時鐘16x16位單周期乘法器和40位累加器2個16位精密模數(shù)轉(zhuǎn)換器(ADC)
下面介紹利用maxq3120微控制器的以上特性和模擬i/o及DSP功能可以完成一些什么樣的任務(wù)。
語音記錄子系統(tǒng)
概念:給一組工程師一片adc,他們就會發(fā)現(xiàn)如何用它來記錄語音。但是,除了簡單的記錄聲音,maxq3120還能夠做很多事情。以maxq3120為核心,配合用戶接口元件和廉價的nand閃存,就可構(gòu)建一個功能完善的語音記錄子系統(tǒng)。
細(xì)節(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)付許多常用的標(biāo)準(zhǔn)語音編碼任務(wù)。此領(lǐng)域的“金科玉律”是itug.711編碼,其工作速率為64kbps,每秒發(fā)送和接收8000個8位采樣。itug.711編碼有兩種不同的傳遞函數(shù),用來將12位采樣值轉(zhuǎn)換為8位編碼字。這兩種函數(shù)就是通常所謂的a律(主要用在歐洲)和µ律(主要用在美國)。
如果期望更高的壓縮率,可以犧牲一些話音質(zhì)量,采用itug.726編碼。g.726編碼采用自適應(yīng)差分脈沖編碼調(diào)制(adpcm)方案對語音信號進行更高效率的編碼。這種編碼支持多種位率,最低為16kbps。對大多數(shù)應(yīng)用來說,該編碼要求的處理速度不大于3mips。itug.711和itug.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)有的3vlcd玻璃??梢苑浅5偷某杀精@得定制的lcd模塊。
用戶可以通過連接到maxq3120通用i/o端口的按鈕來控制語音記錄系統(tǒng)。maxq3120有4個8位通用i/o端口與器件的其他功能共用。
還需要做什么?MAXQ3120是用于高級語音記錄系統(tǒng)的理想微控制器。在利用它設(shè)計語音記錄系統(tǒng)時,設(shè)計者僅需要完成下列工作:
設(shè)計用戶接口:選擇一款lcd,確定如何顯示信息、設(shè)置按鈕功能、如何記錄和組織語音數(shù)據(jù)。選擇聲碼器:可以選用以上提到的兩個itu編碼器之一,也可以選用其他的專用編碼器,在存儲器容量足夠大時還可以直接存儲語音信號的原始采樣值。許多標(biāo)準(zhǔn)編碼器的c語言源代碼是可以買到的,因此只需要簡單地開發(fā)接口程序。選擇存儲介質(zhì):nand閃存是理想的選擇,但也可以根據(jù)實際情況選擇其他的存儲器,例如,廉價的通用可移動存儲器(sd、smartmedia或mmc存儲卡)。有些廠商還可提供存儲卡接口的c語言源代碼和開發(fā)工具。電池管理:如果語音記錄系統(tǒng)用電池供電,就需要某種形式的電源管理。maxim有多種高效的低功耗電池管理方案。結(jié)合這些
方案和maxq3120的低功耗停止和睡眠模式,將使語音記錄器具有滿意的電池壽命。
多普勒雷達
概念:很多年以前執(zhí)法部門就在使用多普勒測速雷達。如果這種雷達系統(tǒng)的造價能夠大大降低,那它的用途就不僅僅限于對付那些道路上的超速者。比如,它可在前方車輛停車時提醒駕駛員。maxq3120能在多普勒雷達系統(tǒng)中發(fā)揮哪些作用呢?
細(xì)節(jié):多普勒雷達的工作原理比較簡單。雷達裝置發(fā)射一個連續(xù)的、已知頻率的微波束(在美國微波頻率已上升到ku波段,約24.150ghz),微波束遇到移動目標(biāo)后被反射回來。由于反射波的頻率稍微高于或低于發(fā)射波的頻率,所以把反射波和發(fā)射波混頻后可以得到頻率由下式確定的“拍音”:
f=[v*(f0/c)]*cosθ
其中,ν是待測目標(biāo)的速度,f0是額定發(fā)射頻率,θ是目標(biāo)運動方向與雷達系統(tǒng)之間的夾角(如圖1a所示),c是光速。注意,如果目標(biāo)直接對著雷達系統(tǒng)而來,則θ=0,cosθ=1,目標(biāo)的運動速度變?yōu)椋?
v=[f/(f0/c)]
例如,如果ku波段多普勒雷達產(chǎn)生1khz的“拍音”,則測量的目標(biāo)直面而來(或而退)的速度為12.4m/s(即每小時28英里或45公里)??捎胢axq3120處理這種音頻信號,框圖如圖1b所示。
圖1a.接收信號的多普勒頻移取決于目標(biāo)的運動速度和目標(biāo)運動方向與雷達系統(tǒng)之間的夾角。
圖1b.在多普勒雷達系統(tǒng)中,maxq3120控制雷達頭,并從雷達模塊輸出的中頻(if)信號中提取“拍音”信號。
利用兩個ADC通道中的一個,maxq3120能夠采樣雷達模塊輸出的差分信號,提取出其中的最強頻率分量,并把它換算成每小時公里或英里數(shù)。此外,利用maxq3120的乘-加單元還可進行一些復(fù)雜的濾波運算,從復(fù)雜的信號中提取出最強的頻率分量,并且可能從微弱信號中提取出有用信息(比如,多普勒雷達系統(tǒng)運載車輛本身的運動速度)。
很多情況下,用戶接口的設(shè)計非?,嵥楱D―常常是一些邏輯處理或者通過開關(guān)觸發(fā)音頻告警。有些應(yīng)用中,微控制器還要周期性地記錄速度、以及進行速度測量的時間和日期等。
還需要做什么?多數(shù)廠家生產(chǎn)的多普勒雷達模塊輸出音頻if。對簡單的測速雷達系統(tǒng),剩下的工作非常簡單。對于更復(fù)雜一些的測量分析系統(tǒng),還需要開發(fā)一些有關(guān)信號處理的算法。幸運的是,有許多可用于輔助開發(fā)濾波算法和識別算法的優(yōu)秀工具。
有些雷達系統(tǒng)需要指示目標(biāo)的運動方向,即目標(biāo)是遠離還是靠近雷達?傳統(tǒng)的多普勒雷達不能完成這項工作;它們對速度一樣而方向相反的運動產(chǎn)生相同的頻移量?,F(xiàn)在,有些廠家生產(chǎn)的雷達模塊包含兩路正交輸出,解調(diào)這兩路輸出,根據(jù)它們的相位差雷達系統(tǒng)便可以確定目標(biāo)的運動方向。maxq3120微控制器有兩個adc,用它可以很容易地實現(xiàn)這種功能。
電話管理器
概念:有時人們希望追蹤電話的使用情況(誰與誰通了話,什么時候通的話,通話時間是多少),但又不愿購買昂貴、復(fù)雜的通話計費系統(tǒng)。這種情況的例子很多。比如,父母想追蹤孩子的電話使用情況。職業(yè)人員想要一個自動記錄他們何時給誰打了電話,以及誰何時給他們打了電話的日志工具。當(dāng)各個房間的電話公用一條電話線時,那些以住宿加(次日)早餐方式出租房間的房東,就希望有可以追蹤電話使用情況的系統(tǒng)。這種系統(tǒng)可以使他們比較容易地向客人收取電話費。可以利用maxq3120微控制器組成監(jiān)視電話線上所有通話的裝置(見圖2)。
圖2.電話管理器監(jiān)視呼出號碼、來電振鈴、主叫id以及摘機事件,確定呼出號碼、主叫號碼以及通話時間。
細(xì)節(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)的雙向光耦合器能夠可靠地檢測到該信號。為避免誤動作,可采用一對背靠背的齊納二極管,只有當(dāng)電壓超過擊穿電壓時才允許電流流入光隔離器。
呼叫號碼的接收稍復(fù)雜一些,因為有兩種向電話公司發(fā)送號碼的方法:脈沖撥號和音頻撥號。脈沖撥號方法根據(jù)撥打的數(shù)字在每秒鐘內(nèi)產(chǎn)生10 個電流脈沖。為了檢測脈沖撥號,只需檢測電話線上由低到高的電壓跳變的時間,如果以每秒10 次的速率出現(xiàn)一串跳變,無疑這就是脈沖式撥號。
但是,脈沖撥號電話機越來越少,目前流行的是雙音多頻
圖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)器標(biāo)準(zhǔn)傳送主叫id。歐洲所采用的標(biāo)準(zhǔn)是itu v.32 模式2 (1300hz 傳號和2100hz 空號)。兩種標(biāo)準(zhǔn)的數(shù)據(jù)傳送速率都為1200bps 。很容易在一個應(yīng)用中同時支持這兩種標(biāo)準(zhǔn),但這里僅討論美國使用的標(biāo)準(zhǔn)。在該標(biāo)準(zhǔn)中,“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)的,只有當(dāng)電冰箱的內(nèi)部溫度高于限定值時電源才被接通。實際上,耗電的設(shè)備到處都是。想一想多媒體設(shè)備中發(fā)出亮光的指示燈,告訴你它已被關(guān)閉,等待你的遙控命令來打開它。過去,“關(guān)掉”開關(guān)就意味著該設(shè)備不再有任何形式的工作。但在今天,關(guān)掉電視機只是使其處于等待模式,許多電路仍在耗電。事實上,現(xiàn)在已經(jīng)很難找到真正切斷電源的電器。
微機也是隱蔽耗電的設(shè)備。在當(dāng)今的網(wǎng)上時代,人們離開時還讓微機下載文件、收取郵件等等。它要花多少電費?
在此最后一部分,MAXQ3120 回歸其本源,但角色轉(zhuǎn)變?yōu)橛秒娬?,而不再是供電者。圖4 示出了本應(yīng)用的框圖。
圖4. 用電監(jiān)視裝置能夠確定某電器何時用了多少電。它還可以報告會損壞敏感設(shè)備的電壓浪涌和掉電故障。
細(xì)節(jié): maxq3120 專為支持電表應(yīng)用而設(shè)計。它的兩個ADC分別設(shè)計用于監(jiān)視電壓通道和電流通道。在本項目中,maxq3120 連續(xù)監(jiān)視進入某設(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ù)。
還需要做什么?還需要做什么?不多??缮暾埻暾碾姳韰⒖荚O(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)域有擴展的機會,可能是你下一個混合信號項目的理想方案。
評論