| 基于Atmega8及MSM7512的嵌入式Modem設(shè)計 |
| [日期:2005-7-20] | 來源:電子技術(shù)應(yīng)用 作者:倪彬斌 吳明光 周志華 鄒潤民 |
關(guān)鍵詞:嵌入式Modem Atmega8 MSM7512B 模擬串口
隨著經(jīng)濟(jì)的發(fā)展,遠(yuǎn)程監(jiān)控系統(tǒng)的應(yīng)用日益廣泛。其核心部分是遠(yuǎn)程信息交換,即系統(tǒng)需要在地域分布廣泛的設(shè)備之間進(jìn)行信息的交換及協(xié)調(diào)工作。對于某些采集點(diǎn)分散、傳輸量不大、對速度要求又不高的信息交換系統(tǒng),目前有兩種解決方案:一是采用Internet或現(xiàn)場總線技術(shù),該方案鋪設(shè)網(wǎng)絡(luò)的費(fèi)用高,維護(hù)量大;二是利用現(xiàn)有的電話網(wǎng)通過Modem進(jìn)行數(shù)據(jù)傳輸,這樣不僅可以擺脫伎的分布式總線系統(tǒng)繁瑣的布線、中繼、放大以及運(yùn)行過程中維護(hù)量大等問題,而且系統(tǒng)擴(kuò)展極為方便,基本不受設(shè)備地域的限制,該方案靈活實(shí)用且成本低廉。
嵌入式Modem主要由單片機(jī)(或DSP)和調(diào)制解調(diào)芯片構(gòu)成。與通用Modem相比,嵌入式Modem具有體積小、易維護(hù)、外圍電路簡單、成本低廉等特點(diǎn)。在企業(yè)或住宅區(qū)中的遠(yuǎn)程監(jiān)控系統(tǒng)使用嵌入式Modem,能夠節(jié)約大量的人力和財力,大大提高自動水平,因此具有較廣闊的應(yīng)用前景。本文介紹一種基于Atmel公司AVR系列單片機(jī)Atmega8和OKI公司調(diào)制解調(diào)芯片MSM7512的嵌入式Modem。
1 嵌入式Modem的硬件設(shè)計
系統(tǒng)的原理框圖如圖1所示,上位機(jī)與PC機(jī),下位機(jī)是遠(yuǎn)方的嵌入式Modem和設(shè)備。PC機(jī)是數(shù)據(jù)終端,通過嵌入式Modem與遠(yuǎn)方終端實(shí)現(xiàn)數(shù)據(jù)交換;嵌入式Modem以Atmega8為中心,控制MSM7512芯片實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收,通過外圍電路實(shí)現(xiàn)振鈴檢測、摘機(jī)、顯示信息、呼叫遠(yuǎn)方Modem等,它以RS232接口標(biāo)準(zhǔn)與上位機(jī)相連。
1.1 Atmega8單片機(jī)簡介
AVR單片機(jī)是美國Ateml公司生產(chǎn)的具有雙結(jié)構(gòu)的RISC單片機(jī)系列,具有較短的指令周期和較快的運(yùn)行速度。Atmega8是基于2002年推出的一款新型AVR高檔單片機(jī),工作在16MHz時能達(dá)到16MIPS。該芯片內(nèi)部集成了8K字節(jié)Flash、1K字節(jié)內(nèi)部SRAM及512字節(jié)的E2PROM,具有豐富強(qiáng)大的硬件接口電路(32個通用寄存器,23個通用可編程I/O口,三個計數(shù)器,三個PWM通道,一個I2C的總線接口,一個USART接口,一個SPI接口,6通道的10位ADC及2通道的8位ADC),并且支持在線編程(ISP)和在應(yīng)用程序(IAP)。由于采用了小引腳封裝(PDIP28和TQFP/MLF32)形式,所以其價格僅與低檔單片機(jī)相當(dāng),因此Atmgea8是一款性價比很高的8位單片機(jī)。
1.2 MSM7512簡介
MSM7512是***OKI公司生產(chǎn)的一種價格低廉、功耗低、性能良好的調(diào)制解調(diào)芯片。該芯片滿足ITU-TV.23協(xié)議標(biāo)準(zhǔn),由單電源(3~5V)供電,采用FSK半雙工調(diào)制解調(diào)方式,通信速率為1200bps,低功耗(典型值僅25mW),穩(wěn)定性好,具有片內(nèi)回音消除電路,模擬輸出可直接連入PSTN;并具有TTL接口,其FSK輸出信號可直接驅(qū)動600Ω的通信電路,外圍電路簡單,可方便地與數(shù)字系統(tǒng)及計算機(jī)系統(tǒng)相連,廣泛應(yīng)用于嵌入式Modem、數(shù)據(jù)傳輸和家庭安防系統(tǒng)中。圖2為該芯片的功能框圖。
MSM7512有四種工作模式,由MOD1、MOD2端口進(jìn)行控制。當(dāng)MOD1=0、MOD2=0時,MSM7512工作于調(diào)制模式,XD輸入為“0”或“1”的數(shù)字信號,AO端則對應(yīng)輸出頻率為“2100Hz”或“1300Hz”的FSK信號;當(dāng)MOD1=1、MOD2=0時,MSM7512工作于解調(diào)模式,A輸入頻率為“2100Hz”或“1300Hz”的FSK信號,RD則對應(yīng)輸出解調(diào)后的“0”或“1”數(shù)字信號;當(dāng)MOD1=0、MOD2=1時,MSM7512工作于環(huán)路自測模式,用于檢測芯片工作是否正常;當(dāng)MOD1=1、MOD2=1時,MSM7512工作于節(jié)電模式,此時MSM7512功耗僅為0.1mW,其它模式一般功耗為25mW。在本設(shè)計中所使用的工作模式是FSK調(diào)制發(fā)送及接收模式。
在硬件設(shè)計中需要著重考慮的問題是:MSM7512是一塊串行調(diào)制解調(diào)芯片,與單片機(jī)通過串口相連,而單片機(jī)上的USART串口也需要與上位機(jī)進(jìn)行串行通信,但Atmega8只有這一個串口,就出現(xiàn)了串口資源不足的問題。如果僅僅為增加一個串口而使用可編程串行通信接口芯片8251,無疑會增加設(shè)計的復(fù)雜性和成本。而利用Atmega8的兩個I/O口編程模擬一個UART串口的功能(即模擬串口),可以很好地解決這個問題。這將在軟件設(shè)計部分具體介紹。
1.3 振鈴檢測和撥號電路
振鈴檢測與撥號電路如圖3所示。它的工作原理很簡單,在此不再多述。
2 嵌入式Modem的軟件設(shè)計
軟件部分的設(shè)計包括上、下位機(jī)通信協(xié)議的制訂、上位機(jī)程序和單片機(jī)程序的編寫。其中上位機(jī)程序以Delphi為開發(fā)工具,單片機(jī)程序用ANSIC C編寫。
2.1 上位機(jī)與下位機(jī)通信協(xié)議的制訂
上位機(jī)與下位機(jī)之間的數(shù)據(jù)交換必須遵循一定的通信協(xié)議,通信雙方才能按照該協(xié)議解析所傳輸?shù)臄?shù)據(jù)。就本設(shè)計而言,一臺PC機(jī)要對應(yīng)多個下位機(jī),屬于主從式結(jié)構(gòu)。所制訂的通信協(xié)議為:





