單片機對modem要進(jìn)行哪些初始化操作?
一般單片機的MODEM通訊必須要有兩個(gè)背景知識,一個(gè)是AT命令集,另一個(gè)是通用非同步接收發(fā)送器(UART)。
本文引用地址:http://dyxdggzs.com/article/201610/307394.htmAT命令集
下面介紹我通訊程式例子中涉及到的AT命令。
Dn:撥號命令。該命令使MODEM立即進(jìn)入摘機狀態(tài),并撥出跟在后面的號碼。D命令是基本的撥號命令,它受到其他命令的修飾可構成MODEM何時(shí)撥號以及如何撥號等操作。
T:音頻撥號。例如,ATDT13632757314,其中13632757314為電話(huà)號碼。
P:脈沖撥號。例如,ATDT13632757314,其中13632757314為電話(huà)號碼。
,:標準暫停。我們常常碰到撥打外線(xiàn)電話(huà)時(shí)需要暫停一下,等聽(tīng)到二次撥號音(外線(xiàn))之后才能再撥后續的號碼。缺省時(shí)暫停時(shí)間為2s(秒),它由S8寄存器指定。
Sn:表示MODEM內部的寄存器。
S0:自動(dòng)回應。如果要求MODEM具有自動(dòng)回應特性,則應該預先將MODEM的S0寄存器設置為非0。
S8:逗號撥號修飾符的暫停時(shí)間。該寄存器決定了當MODEM在撥號中遇到逗號(,)時(shí)應該暫停的時(shí)間。
通用非同步接收發(fā)送器UART
深入理解UART內部結構以及內部寄存器各位的含義,詳細了解資料發(fā)送和接收的過(guò)程,有助于編寫(xiě)出高效、穩定的程式。
一般介紹編寫(xiě)基本通訊程式需要知道的寄存器。實(shí)際的ADDRESS由具體接線(xiàn)決定。
串列傳輸速率除數鎖存器(LSB、MSB)
在通訊之前要進(jìn)行一些參數初始化,串列傳輸速率是首先應該考慮的一項。該寄存器是一個(gè)16位的寄存器,分為低8位(LSB)和高8位(MSB)寄存器。
另外單片機訪(fǎng)問(wèn)的是串列傳輸速率除數鎖存器LSB/MSB。一般常用的工作頻率是1。8432MHz。這個(gè)頻率除以16就是串列傳輸速率的時(shí)鐘頻率,用于控制發(fā)送和接收資料的速度。
下面給出串列傳輸速率除數鎖存器值的計算公式:
串列傳輸速率除數鎖存器值=工作頻率/(16×期望串列傳輸速率)=1843200/(16×期望串列傳輸速率)
接收緩沖寄存器和發(fā)送保持寄存器(transmit and receive holding register)
讀操作單片機訪(fǎng)問(wèn)接收緩沖寄存器(RHR),寫(xiě)操作單片機訪(fǎng)問(wèn)發(fā)送保持寄存器(THR)。
中斷允許寄存器(interrupt enable register)
FIFO控制寄存器(FIFO control register)
資料發(fā)送和接收模式的選擇。常用的兩種模式:FIFO和DMA。其中DMA又有兩種模式DMA的模式0、DMA的模式1可供選擇。
評論