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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 單片機的MODEM通訊

          單片機的MODEM通訊

          作者: 時間:2012-03-14 來源:網(wǎng)絡(luò) 收藏

          我們經(jīng)常能見到關(guān)于PC的的文章,但關(guān)于的文章卻不多見。現(xiàn)在將我個人的實踐經(jīng)歷寫出來供大家參考。

          本文引用地址:http://www.ex-cimer.com/article/171883.htm

          要寫的MODEM通訊必須要有兩個背景知識,一個是AT命令集,另一個是通用異步接收發(fā)送器(UART)。

          1.AT命令集

          下面介紹我通訊程序例子中涉及到的AT命令。
          豹Dn:撥號命令。該命令使MODEM立即進入摘機狀態(tài),并撥出跟在后面的號碼。D命令是基本的撥號命令,它受到其它命令的修飾可構(gòu)成MODEM何時撥號以及如何撥號等操作。
          豹T:音頻撥號。例如,ATDT2245879,其中2245879為電話號碼。
          豹P:脈沖撥號。例如,ATDP2245879,其中2245879為電話號碼。
          豹保:標準暫停。我們常常碰到撥打外線電話時需要暫停一下,等聽到二次撥號音(外線)之后才能再撥后續(xù)的號碼。缺省時暫停時間為2s(秒),它由S8寄存器指定。
          豹Sn:表示MODEM內(nèi)部的寄存器。
          豹S0:自動應答。如果要求MODEM具有自動應答特性,則應該預先將MODEM的S0寄存器設(shè)置為非0。
          豹S8:逗號撥號修飾符的暫停時間。該寄存器決定了當MODEM在撥號中遇到逗號(,)時應該暫停的時間。
          豹2.通用異步接收發(fā)送器UART

          深入理解UART內(nèi)部結(jié)構(gòu)以及內(nèi)部寄存器各位的含義,詳細了解數(shù)據(jù)發(fā)送和接收的過程,有助于編寫出高效、穩(wěn)定的程序。現(xiàn)以GM16C550為例介紹編寫基本通訊程序需要知道的寄存器。實際的ADDRESS由具體接線決定。表1為GM16C550寄存器的介紹。
           
          表1 GM16C550寄存器
          47.jpg

          (1) 波特率除數(shù)鎖存器(LSB、MSB)

          在通訊之前要進行一些參數(shù)初始化,波特率是首先應該考慮的一項。該寄存器是一個16位的寄存器,分為低8位(LSB)和高8位(MSB)寄存器。

          當 LCR.7=1,且A2A1A0=000/001時,單片機訪問的是波特率除數(shù)鎖存器LSB/MSB。GM16C550推薦的工作頻率是 1.8432MHz。這個頻率除以16就是波特率的時鐘頻率,用于控制發(fā)送和接收數(shù)據(jù)的速度。下面給出波特率除數(shù)鎖存器值的計算公式:

          波特率除數(shù)鎖存器值=工作頻率/(16×期望波特率)=1843200/(16×期望波特率)

          表2給出了常用波特率與波特率除數(shù)鎖存器值。
           
          表2 波特率除數(shù)鎖存器
          48.jpg


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 通訊 MODEM 單片機

          評論


          相關(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); })();