當前位置:首頁 > 單片機 > 單片機
[導讀]我們經(jīng)常能見到關于PC的MODEM通訊的文章,但關于單片機MODEM通訊的文章卻不多見?,F(xiàn)在將我個人單片機MODEM通訊的實踐經(jīng)歷寫出來供大家參考。要寫單片機的MODEM通訊必須要有兩個背景知識,一個是AT命令集,另一個是通用

我們經(jīng)常能見到關于PC的MODEM通訊的文章,但關于單片機MODEM通訊的文章卻不多見?,F(xiàn)在將我個人單片機MODEM通訊的實踐經(jīng)歷寫出來供大家參考。

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

1.AT命令集

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

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

(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ù)鎖存器

MOV DPTR,#LCR ;除數(shù)鎖定允許
MOV A,#80H
MOVX @DPTR, A
MOV DPTR,#LSB ;波特率為9600baud
MOV A,#0CH
MOVX @DPTR, A
INC DPTR
CLR A
MOVX @DPTR, A

圖 1為GM16C550與RS232接線圖。


     圖1 GM16C550與RS232接線圖

(2) 接收緩沖寄存器和發(fā)送保持寄存器(transmit and receive holding register)

當LCR.7=0,且A2A1A0=000時,讀操作單片機訪問接收緩沖寄存器(RHR),寫操作單片機訪問發(fā)送保持寄存器(THR)。

(3) 中斷允許寄存器(interrupt enable register)

當LCR.7=0,且A2A1A0=001時,單片機訪問中斷允許寄存器(IER)。
??IER.0=1,允許接收器數(shù)據(jù)就緒中斷。
??IER.1=1,允許發(fā)送保持寄存器為空時中斷。即當從發(fā)送保持寄存器把一個字節(jié)移到移位寄存器時,產(chǎn)生一個中斷,使發(fā)送保持寄存器能夠接收下一個字節(jié)。
??IER.2=1,表示允許接收有錯信息或間斷條件中斷。
??IER.3=1,MODEM狀態(tài)變化中斷。
??IER.4~7,沒有使用,設置為零。

MOV DPTR,#IER
MOV A,#01H
MOVX @DPTR,A

(4) FIFO控制寄存器(FIFO control register)

數(shù)據(jù)發(fā)送和接收模式的選擇。GM16C550提供了兩種模式:FIFO和DMA。其中DMA又有兩種模式DMA的模式0、DMA的模式1可供選擇。我的舉例采用默認的DMA的模式0。感興趣的朋友可試一試其它模式,這里不再說明。

(5) 中斷狀態(tài)寄存器(interrupt status register)

前面介紹了幾種中斷,它們在各自的條件下產(chǎn)生中斷,UART都會輸出一個高電平的中斷請求信號,觸發(fā)同一個中斷請求。為了具體判斷是哪一種中斷,還應該檢測ISR,如表3所列。

表3 中斷狀態(tài)寄存器


       ISR.0=1,表示沒有中斷產(chǎn)生。
??ISR.4~5沒有使用。
??ISR.6~7,當采用FIFO的接收和發(fā)送模式時,這兩位都設置為1;反之,都設置為0。

(6) 線路控制寄存器(line control register)
?? LCR.0~1,表示發(fā)送和接收時的字節(jié)長度,如表4所列。
??LCR.2,這一位與LCR.0~1共同定義了停止位的長度,如表5所列。

??LCR.6=1,表示允許間斷,即允許發(fā)送器寄存器保持一個完整幀時間以上的空號狀態(tài)。
??LCR.7,用于區(qū)分訪問除數(shù)鎖存寄存器還是訪問接收緩沖/發(fā)送保持和中斷允許寄存器。 MOVDPTR,#LCR;通訊傳輸長度為8位,停止位為1,;偶校驗
MOVA,#1BH
MOVX @DPTR,A

(7) MODEM控制寄存器(MODEM control register)

這是一個MODEM和外設接口的寄存器。
??MCR.0=1時,強制芯片引腳DTR=0;
??MCR.0=0時,強制芯片引腳DTR=1。
??MCR.1=1時,強制芯片引腳RTS=0;
??MCR.1=0時,強制芯片引腳RTS=1。
??MCR.2=1時,強制芯片引腳OP1=0;
??MCR.2=0時,強制芯片引腳OP1=1。
??MCR.3=1時,強制芯片引腳OP2=0;
??MCR.2=0時,強制芯片引腳OP2=1。
??MCR.4=1時,循環(huán)返回模式,可用于芯片自測。
??其它位保留。
MOVDPTR,#MCR;異步串口芯片的DTR、RTS引腳送出邏輯低電平
MOVA,#03H
MOVX @DPTR,A

(8) 線路狀態(tài)寄存器(line status register)
??LSR.0:當接收移位寄存器接收到的字節(jié)完全移到接收緩沖寄存器時,該位置1。如果讀該寄存器,那么這一位被清零。
??LSR.1:出現(xiàn)超越錯時,這一位被置1。讀該寄存器,這一位被清零。
??LSR.2:出現(xiàn)奇偶校驗錯時,這一位被置1。讀該寄存器,這一位被清零。
??LSR.3:出現(xiàn)停止位不完整、丟失、空號時,這一位被置1。讀該寄存器,這一位被清零。
??LSR.4:當接收寄存器檢測到空號狀態(tài)已持續(xù)一個完整幀傳輸時間時,這一位被置1。讀該寄存器,這一位被清零。
??LSR.5:當發(fā)送的字節(jié)從發(fā)送保持寄存器移到發(fā)送移位寄存器時,該位置1。
??LSR.6:當發(fā)送保持寄存器和發(fā)送移位寄存器都沒用字節(jié)時,該位置1。
??LSR.7:當奇偶校驗錯、幀格式錯、空號錯有一個出現(xiàn)時,該位置1。


Setdata:
MOV DPTR,#LSR
MOVX A,@DPTR
JNB ACC.5,Setdata
MOV A,DataNumber;DataNumber記錄發(fā) ;送字符的個數(shù)
MOV DPTR,#AtCommand ;AtCommand定義AT命令參數(shù)的起始地址
MOVC A,@A+DPTR
MOV DPTR,#THR ;發(fā)送保持寄存器
MOVX @DPTR,A
INC DataNumber
MOV A,DataNumber
CJNE A,#0BH,Setdata ;發(fā)送11個字符
AtCommand:DB “A”,“T”,“S”,“0”,“=”,“2”,“S”,“8”, “=”,“5”,0DH

(9) MODEM狀態(tài)寄存器(MODEM status register)
??MSR.0~3=1時,表示自上一次單片機讀MSR寄存器之后,分別反映MODEM控制邏輯的四個輸入信號的狀態(tài)發(fā)生了變化。
??MSR.0=1時,清除發(fā)送信號(CTS)已經(jīng)發(fā)生了變化。
??MSR.1=1時,數(shù)據(jù)設備就緒信號(DSR)已經(jīng)發(fā)生了變化。
??MSR.2=1時,振鈴信號(RI)已經(jīng)發(fā)生了變化。
??MSR.3=1時,載波信號(DCD)已經(jīng)發(fā)生了變化。
??MSR.4~7四位分別反映MODEM控制邏輯的四個輸入信號的當前狀態(tài)。
??MSR.4=1時,清除發(fā)送信號(CTS)有效。
??MSR.5=1時,數(shù)據(jù)設備就緒信號(DSR)有效。
??MSR.6=1時,振鈴信號(RI)有效。
??MSR.7=1時,載波信號(DCD)有效。

(10) 臨時數(shù)據(jù)寄存器(scratchpag register)

可以存儲用戶信息。

有了上面知識的準備后就可以輕松地寫出單片機的MODEM通訊程序。現(xiàn)在可把零散的東西組織起來了。

GM16C550芯片初始化模塊
Init_16C550:
??MOV DPTR,#LCR ;除數(shù)鎖定允許
??MOV A,#80H
??MOVX @DPTR, A
??MOV DPTR,#LSB ;波特率為9600baud
??MOV A,#0CH
??MOVX @DPTR, A
??INC DPTR
??CLR A
??MOVX @DPTR, A
??MOV DPTR,#LCR;通訊傳輸長度為8位,停止 ;位為1,偶校驗
??MOV A,#1BH
??MOVX @DPTR, A
??MOV DPTR,#MCR;異步串口芯片的DTR。RTS ;引腳送出邏輯低電平
??MOV A,#03H
??MOVX @DPTR,A
??MOV DPTR,#IER
??MOV A,#01H
??MOVX @DPTR,A

采用中斷的方式接數(shù)據(jù)
Interrupt2:
??PUSH ACC
??PUSH DPH
??PUSH DPL
??PUSH PSW
??MOV DPTR,#RHR ;接受數(shù)據(jù)
??MOVX A,@DPTR
??……………………
??POP PSW
??POP DPL
??POP DPH
??POP ACC
??RETI

至此,完成了一個小型的單片機MODEM通訊系統(tǒng)。其中的檢錯寄存器、MODEM狀態(tài)寄存器等應用限于篇幅沒有完全涉及到。有興趣的朋友可以試一試,那么你就會對MODEM通訊有一個比較深刻的認識。
 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉