新聞中心

單片機(jī)的MODEM通訊

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

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

本文引用地址:http://2s4d.com/article/171883.htm

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

1.AT命令集

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

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

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

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

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

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

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


上一頁(yè) 1 2 3 4 下一頁(yè)

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

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉