《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于Atmega8及MSM7512的嵌入式Modem設計

基于Atmega8及MSM7512的嵌入式Modem設計

2008-10-10
作者:倪彬斌 吳明光 周志華 鄒

  摘 要: 介紹了一種基于AVR單片機Atmega8和調制解調芯片MSM7512設計的嵌入式Modem,詳細地闡述了該Modem的硬件及軟件設計方法。在設計中,鑒于單片機串口" title="串口">串口資源匱乏的問題,采用單片機上I/O口模擬UART口的技術予以解決。上位機" title="上位機">上位機軟件用Delphi語言編寫,通過嵌入式Modem實現了計算機與遠方設備之間的數據傳送。
  關鍵詞: 嵌入式Modem Atmega8 MSM7512B 模擬串口


  隨著經濟的發展,遠程監控系統的應用日益廣泛。其核心部分是遠程信息交換, 即系統需要在地域分布廣泛的設備之間進行信息的交換及協調工作。對于某些采集點分散、傳輸量不大、對速度要求又不高的信息交換系統,目前有兩種解決方案:一是采用Internet或現場總線技術,該方案鋪設網絡的費用高,維護量大;二是利用現有的電話網通過Modem進行數據傳輸,這樣不僅可以擺脫傳統的分布式總線系統繁瑣的布線、中繼、放大以及運行過程中維護量大等問題,而且系統擴展極為方便,基本不受設備地域的限制,該方案靈活實用且成本低廉。
  嵌入式Modem主要由單片機(或DSP)和調制解調芯片構成。與通用Modem相比,嵌入式Modem具有體積小、易維護、外圍電路簡單、成本低廉等特點。在企業或住宅區中的遠程監控系統使用嵌入式Modem,能夠節約大量的人力和財力,大大提高自動化水平,因此具有較廣闊的應用前景。本文介紹一種基于Atmel公司AVR系列單片機Atmega8和OKI公司調制解調芯片MSM7512的嵌入式Modem。
1 嵌入式Modem的硬件設計
  系統的原理框圖如圖1所示,上位機為PC機,下位機是遠方的嵌入式Modem和設備。PC機是數據終端,通過嵌入式Modem與遠方終端實現數據交換;嵌入式Modem以Atmega8為中心,控制MSM7512芯片實現數據的發送與接收,通過外圍電路實現振鈴檢測、摘機、顯示信息、呼叫遠方Modem等,它以RS232接口標準與上位機相連。


1.1 Atmega8單片機簡介
  AVR單片機是美國Atmel公司生產的具有雙總線結構的RISC單片機系列,具有較短的指令周期和較快的運行速度。Atmega8是其于2002年推出的一款新型AVR高檔單片機,工作在16MHz時能達到16MIPS。該芯片內部集成了8K字節Flash、1K字節內部SRAM及512字節的E2PROM,具有豐富強大的硬件接口電路(32個通用寄存器,23個通用可編程I/O口,三個計數器,三個PWM通道,一個I2C的總線接口,一個USART接口,一個SPI接口,6通道的10位ADC及2通道的8位ADC),并且支持在線編程(ISP)和在應用編程(IAP)。由于采用了小引腳封裝(PDIP28和TQFP/MLF32)形式,所以其價格僅與低檔單片機相當,因此Atmega8是一款性價比很高的8位單片機。
1.2 MSM7512簡介
  MSM7512是日本OKI公司生產的一種價格低廉、功耗低、性能良好的調制解調芯片。該芯片滿足ITU-TV.23協議標準,由單電源(3~5V)供電,采用FSK半雙工調制解調方式,通信速率為1200bps, 低功耗(典型值僅25mW),穩定性好,具有片內回音消除電路,模擬輸出可直接連入PSTN;并具有TTL接口,其FSK輸出信號可直接驅動600Ω的通信電路,外圍電路簡單,可方便地與數字系統及計算機系統相連,廣泛應用于嵌入式Modem、數據傳輸和家庭安防系統中。圖2為該芯片的功能框圖。


  MSM7512有四種工作模式,由MOD1、MOD2端口進行控制。當MOD1=0、MOD2=0時,MSM7512工作于調制模式,XD輸入為“0”或“1”的數字信號,AO端則對應輸出頻率為“2100Hz”或“1300Hz”的FSK信號;當MOD1=1、MOD2=0時,MSM7512工作于解調模式,AI輸入頻率為“2100Hz”或“1300Hz”的FSK信號,RD則對應輸出解調后的“0”或“1”數字信號;當MOD1=0、MOD2=1時,MSM7512工作于環路自測模式,用于檢測芯片工作是否正常;當MOD1=1、MOD2=1時,MSM7512工作于節電模式,此時MSM7512功耗僅為0.1mW,其它模式—般功耗為25mW。在本設計中所使用的工作模式是FSK調制發送及接收模式。
  在硬件設計中需要著重考慮的問題是:MSM7512是一塊串行調制解調芯片,與單片機通過串口相連,而單片機上的USART串口也需要與上位機進行串行通信" title="串行通信">串行通信,但Atmega8只有這一個串口,就出現了串口資源不足的問題。如果僅僅為增加一個串口而使用可編程串行通信接口芯片8251,無疑會增加設計的復雜性和成本。而利用Atmega8的兩個I/O口編程模擬一個UART串口的功能(即模擬串口),可以很好地解決這個問題。這將在軟件設計部分具體介紹。
1.3 振鈴檢測和撥號電路
  振鈴檢測與撥號電路如圖3所示。它的工作原理很簡單,在此不再贅述。
2 嵌入式Modem的軟件設計
  軟件部分的設計包括上、下位機通信協議的制訂、上位機程序和單片機程序的編寫。其中上位機程序以Delphi為開發工具,單片機程序用ANSIC C編寫。
2.1上位機與下位機通信協議的制訂
  上位機與下位機之間的數據交換必須遵循一定的通信協議,通信雙方才能按照該協議解析所傳輸的數據。就本設計而言,一臺PC機要對應多個下位機,屬于主從式結構。所制訂的通信協議為:

  
  前導碼使通信雙方保持同步,目的地址和源地址就是各設備所對應的電話號碼,當PC機發送數據時,先發送目的地址給所有下位機,如果某個從機被上位機尋址,它將接收主機接下來發出的數據幀" title="數據幀">數據幀,而其它的從機則將忽略數據幀;當PC機接收數據" title="接收數據">接收數據時,同樣地,下位機先發送源地址再發數據幀給上位機。CRC校驗碼是為了防止傳輸出錯而設計的。為設計方便,規定數據幀為32位,其中功能碼為4位,參數為28位。功能碼為0000時,參數表示的是設備傳輸數據;功能碼為1111時,參數表示設備自檢數據。
2.2 上位機軟件的編寫
  上位機是一個數據發送與接收的終端,上位機軟件的功能是:選擇并發送要呼叫的電話號碼;使計算機與嵌入式Modem能夠通過RS232接口標準收發數據。由于Delphi是一種易學易用的面向對象的程序設計工具,因而采用它來編寫上位機程序。在上位機程序中要能夠對計算機串行口的硬件進行操作。然而Delphi本身不提供串行通信組件,因此需要調用Windows API函數建立一個串行通信組件TComm來對串口硬件實現控制,進而使用該組件完成串行通信功能。在設計中還需要使用其它一些組件如Button、Memo、RadioGroup等來完成軟件界面的設計。
2.3 單片機程序設計
  根據設計中單片機的任務設置一個全局變量TransOrReceFlag(規定值為0時,表示Modem處于接收狀態;為1時,Modem處于發送狀態),主程序根據它的值跳轉到相應的子程序中。下面分別介紹子程序的編寫過程。
  嵌入式Modem發送數據:上位機按照通信協議通過串口向Atmega8先后發送目的地址(電話號碼)和數據幀。單片機在USART接收完成中斷服務程序中,將MSM7512設置為調制模式并使MSM7512與電話線連通,再控制雙音多頻信號發生器HT9200產生目的地址所對應的DTMF信號,送入MSM7512的外部信號輸入端EAI,經內部放大后從AO輸出端向電話線上發送所呼叫的電話號碼,待與遠方Modem建立起聯系后,就可以通過模擬串口向MSM7512傳送接下來所收到的數據幀。


  嵌入式Modem接收數據:Atmega8外部計數口T1上有下降沿出現時,表明電話線上有振鈴信號,可能有遠方Modem要求和本地Modem進行數據傳輸。為防止誤撥,規定了振鈴信號需要連續出現的次數。當達到計數設定值時,單片機確認有遠方Modem要進行數據傳輸,于是將MSM7512設置為調解模式,接通電話線,再通過模擬串口接收MSM7512傳來的數據,經USART把數據傳給上位機。
  單片機程序中一個重要的部分是模擬UART串口的實現部分。在設計中用定時/計數器0產生合適的波特率,使接收和發送的數據符合異步串行通信數據幀的格式;一個普通I/O 口作為TXD′,外部中斷0口T0作為RXD′;在內存中開辟一塊緩沖區模擬串口的數據接收/發送緩沖器。規定模擬串口中數據幀為1個起始位,8個數據位,1個停止位,波特率為9600bps。下面就接收和發送兩個過程介紹模擬串口的實現。
  模擬串口接收數據:串行通信中數據幀都是從一個下降沿開始的。當T0口上有下降沿出現并觸發中斷時,表明MSM7512已經接收到遠方傳來的數據,單片機需要對所接收到的數據進行采樣。在中斷服務程序中初始化數據位計數器和定時/計數器0,設定其第一次定時時間為1.5位,因為從起始位需要延時1.5位才能進行數據位D0的采樣(1.5位=1起始位+0.5D0位),如圖4所示。接下來的8次采樣的間隔一樣,所以在定時器第一次計時溢出后,在每次溢出中斷服務程序中重新裝載的定時時間均為1位。采樣后將所得數據存入緩沖區再送給上位機。圖5是模擬串口接收數據的程序流程圖。


  模擬串口發送數據:與接收數據過程相比,發送數據要簡單些。因為不需要采樣,幀中所有位的時間長度是一樣的,所以定時/計數器0的定時時間為固定值,即1位的時間。送出的第一位數據是起始位,通知接收方準備接收數據,然后從最低有效位LSB到最高有效位MSB,數據被一位一位地移出,在最末的是停止位(即邏輯1),用來讓接收方區分發送的數據字節。
  由于在上位機程序中集成了選擇發送電話號碼的功能,所以本文所介紹的嵌入式Modem能夠靈活方便地與遠方設備進行數據傳輸。它還具有體積小、外圍電路簡單、易維護、成本低廉等特點,具有較大的應用價值。
參考文獻
1 馬 潮,詹衛前,耿德根.Atmega8原理及應用手冊[M]. 北京:清華大學出版社,2003:1~298
2 沈 文.AVR單片機C語言開發入門指導[M]. 北京: 清華大學出版社,2003:116~228
3 張俊峰,馬 翔,江秉文.基于MSM7512b的數據通信技術[J].自動化儀表,2002;23(12):28~31
4 Atmega8 Data Sheet[Z]. Atmel Corporation, 2002:1~166
5 Half Duplex Interrupt Driven Software UART[Z]. Atmel Corporation Application Note 306,2001:1~25
6范逸之,陳立元.Delphi與RS-232串行通信控制[M].北京:清華大學出版社,2002:158~304

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区三区黄色| 免费人成网站在线观看欧美高清| 欧美亚洲视频一区二区| 一本色道久久综合亚洲二区三区| 亚洲国产精品一区二区第四页av| 国产一区在线视频| 国产亚洲欧美一级| 国产亚洲精品资源在线26u| 国产伦精品一区二区三区高清版| 国产精品三级久久久久久电影| 9l视频自拍蝌蚪9l视频成人 | 久久爱www久久做| 亚洲主播在线观看| 亚洲影院一区| 午夜精品视频在线| 亚洲欧美日本日韩| 午夜久久tv| 午夜日韩激情| 久久av一区二区三区漫画| 欧美一区视频在线| 久久久国产一区二区| 久久蜜臀精品av| 美女在线一区二区| 欧美成人激情视频| 欧美日韩精品一区| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品久久久久久久久久ktv| 国产精品系列在线播放| 国产情人节一区| 黄色精品一二区| 亚洲国产精品精华液2区45| 亚洲国产专区| 亚洲视频在线观看网站| 亚洲欧美精品一区| 久久激情一区| 日韩视频在线观看一区二区| 亚洲调教视频在线观看| 午夜视频久久久| 久久久91精品国产| 欧美黄色aaaa| 国产精品久久午夜夜伦鲁鲁| 国产日韩在线看片| 亚洲国产精品热久久| 日韩特黄影片| 亚洲欧美在线看| 亚洲欧洲一区二区三区在线观看| 99亚洲视频| 欧美一区二区日韩| 老司机免费视频久久| 欧美日韩国产黄| 国产欧美日本一区二区三区| 在线日本成人| 亚洲天堂视频在线观看| 欧美在线免费看| 一区二区三区久久| 欧美在线观看一二区| 欧美国产日产韩国视频| 国产精品久久久久久久久免费桃花| 国产性做久久久久久| 亚洲精品中文字幕在线观看| 香蕉久久久久久久av网站| 亚洲精品一区二区在线| 性亚洲最疯狂xxxx高清| 嫩草伊人久久精品少妇av杨幂| 欧美日韩免费一区| 国模精品娜娜一二三区| 99国产精品视频免费观看一公开| 欧美在线观看视频| 亚洲视频在线二区| 美女亚洲精品| 国产精品专区h在线观看| 91久久精品国产91久久性色| 欧美亚洲免费在线| 亚洲视频久久| 麻豆成人小视频| 国产欧美欧洲在线观看| 日韩午夜激情av| 亚洲国产美女| 久久精品国产99国产精品| 欧美理论电影在线播放| 精品动漫3d一区二区三区免费| 亚洲一区制服诱惑| 一本色道88久久加勒比精品 | 日韩网站免费观看| 久久av免费一区| 亚洲欧美日韩国产精品 | 国内偷自视频区视频综合| 中文精品视频一区二区在线观看| 亚洲激情视频在线观看| 久久99伊人| 国产精品蜜臀在线观看| 日韩视频国产视频| 亚洲精品国产欧美| 久久人人97超碰国产公开结果| 国产精品理论片在线观看| 亚洲精品在线免费观看视频| 亚洲高清成人| 久久国产精品99国产精| 国产精品国产a级| 99国产精品国产精品毛片| 亚洲精品久久| 噜噜噜躁狠狠躁狠狠精品视频 | 国产婷婷色一区二区三区在线 | 亚洲欧美视频| 欧美午夜免费电影| 亚洲美女性视频| 亚洲伦理久久| 欧美成人网在线| 亚洲高清在线| 久久精品系列| 久久日韩粉嫩一区二区三区| 国产视频一区在线观看| 亚洲永久视频| 性欧美大战久久久久久久久| 国产精品乱人伦中文| 中文精品视频| 午夜精品视频| 国产欧美日韩视频一区二区三区| 亚洲午夜久久久久久尤物 | 亚洲欧美另类久久久精品2019| 亚洲欧美国产另类| 国产精品一区二区在线观看不卡| 亚洲性视频网址| 午夜久久一区| 国产欧美精品日韩区二区麻豆天美| 亚洲一区中文字幕在线观看| 欧美亚洲色图校园春色| 国产精品亚洲а∨天堂免在线| 亚洲欧美韩国| 久久久久久久欧美精品| 好吊日精品视频| 91久久久久久久久久久久久| 欧美大秀在线观看| 亚洲三级观看| 亚洲视频一区在线观看| 国产精品v日韩精品v欧美精品网站| 亚洲少妇自拍| 欧美在线免费看| 国产综合香蕉五月婷在线| 亚洲电影网站| 欧美理论电影在线观看| 一本色道久久综合亚洲精品小说 | 久久高清免费观看| 黄色成人91| 亚洲日韩欧美视频| 欧美日韩高清在线观看| 中文久久乱码一区二区| 久久av一区二区三区漫画| 激情五月婷婷综合| 亚洲免费不卡| 国产精品日本精品| 亚洲电影观看| 欧美日韩精品一本二本三本| 亚洲免费影视| 美日韩免费视频| 亚洲精品日韩一| 亚洲女女女同性video| 国产综合视频| 99视频+国产日韩欧美| 国产精品入口麻豆原神| 亚洲二区在线视频| 欧美日韩一级黄| 欧美一区三区三区高中清蜜桃| 欧美成人精品福利| 亚洲天堂偷拍| 美女爽到呻吟久久久久| 中国女人久久久| 久久精品视频在线播放| 亚洲三级毛片| 久久九九国产| 日韩视频不卡中文| 久久久久久久久久久久久9999| 亚洲人成在线观看| 久久国产精品久久w女人spa| 亚洲黄色影院| 久久精品人人| 夜夜躁日日躁狠狠久久88av| 久久久久久久97| 日韩网站在线观看| 久久综合九色99| 亚洲一区日韩在线| 欧美高清影院| 欧美亚洲综合另类| 欧美日韩视频在线观看一区二区三区| 欧美一区二区三区日韩视频| 欧美欧美天天天天操| 欧美在线高清| 国产精品成人一区二区三区夜夜夜| 久久精品国产一区二区三| 国产精品成人在线观看| 亚洲日本aⅴ片在线观看香蕉| 国产精品午夜国产小视频| 日韩一区二区高清| 一区二区三区在线观看视频 | 欧美日韩国产精品自在自线| 久久国产主播精品| 国产精品视频福利| 一区二区三区精品国产| 在线免费观看视频一区| 久久久精品五月天|