MCS-51單片機(jī)與無(wú)線調(diào)制器的應(yīng)用簡(jiǎn)介
掃描二維碼
隨時(shí)隨地手機(jī)看文章
GPS是目前技術(shù)上最成熟且已實(shí)用的一種定位系統(tǒng),但是在GPS定位系統(tǒng)中,由于其是一個(gè)單向?qū)Ш较到y(tǒng),他是把星歷數(shù)據(jù)等傳給地面接收機(jī),可在許多具體應(yīng)用時(shí),例如在車輛調(diào)度系統(tǒng)中,一般都需要把利用GPS測(cè)得的信息數(shù)據(jù)傳到調(diào)度中心,由于其系統(tǒng)由一個(gè)基準(zhǔn)站和多個(gè)用戶臺(tái)組成,基準(zhǔn)站與用戶臺(tái)之間的聯(lián)系,即由基準(zhǔn)站計(jì)算出的各種校正值發(fā)送到用戶臺(tái),上邊這一切都需要用到數(shù)據(jù)鏈來(lái)完成數(shù)據(jù)的傳輸。其中,數(shù)據(jù)鏈由調(diào)制解調(diào)器和電臺(tái)組成。在無(wú)線數(shù)據(jù)傳輸系統(tǒng)中,調(diào)制解調(diào)器足一個(gè)關(guān)鍵部分,調(diào)制解調(diào)器(Modem)是將數(shù)據(jù)進(jìn)行編碼和調(diào)制,然后輸入到電臺(tái)發(fā)射出去,用戶臺(tái)將其接收下來(lái),并將數(shù)據(jù)解調(diào)后,送入GPS接收機(jī)進(jìn)行改正。本文介紹了單片機(jī)控制Modem的原理和方法。
1 系統(tǒng)組成
本系統(tǒng)主要由單片機(jī)和調(diào)制解調(diào)器組成,單片機(jī)選用P89C58,其作為控制電路的主要部分,對(duì)K224芯片進(jìn)行控制,并完成各個(gè)芯片的初始化工作,同時(shí)還有對(duì)數(shù)據(jù)進(jìn)行交織糾錯(cuò)編碼的功能。單片機(jī)與K224接口的連接如圖1所示。
整個(gè)系統(tǒng)分為兩個(gè)部分,一部分為主呼結(jié)構(gòu),另一部分為應(yīng)答結(jié)構(gòu)。圖1只給出了主呼部分。工作時(shí),先上電復(fù)位,由P89C58對(duì)K224進(jìn)行初始化設(shè)置,并對(duì)其自身的串行口進(jìn)行初始化。
整個(gè)系統(tǒng)的工作過(guò)程為:從GPS接收機(jī)接收下來(lái)數(shù)據(jù)后,經(jīng)過(guò)RS 232接口電路(即由MAX232構(gòu)成的電平轉(zhuǎn)換電路),變?yōu)門TL電平,送至P89C58的RXD端,P89C58對(duì)數(shù)據(jù)進(jìn)行分組編碼、交錯(cuò)編碼后,送到P89C58的TXD端輸出,此輸出信號(hào)送到K224的TXD,經(jīng)過(guò)調(diào)制后從K224的TXA端輸出調(diào)制信號(hào)。當(dāng)接收機(jī)從RXA處接收到調(diào)制信號(hào)后,經(jīng)過(guò)K224處理,解調(diào)后由K224通過(guò)RXD端口送至P89C58的RXD接收端,由P89C58對(duì)數(shù)據(jù)進(jìn)行反交織、解碼處理,此后,數(shù)據(jù)從單片機(jī)的TXD端口處送出去,再一次經(jīng)過(guò)ICL232的電平轉(zhuǎn)換,以RS232電平送至計(jì)算機(jī)進(jìn)行計(jì)算分析。
2 單片機(jī)的初始設(shè)置
在本系統(tǒng)中,由于要用到P89C58對(duì)各個(gè)芯片進(jìn)行初始化設(shè)置,并且還要利用其完成數(shù)據(jù)的交織糾錯(cuò)功能,這就需要用到單片機(jī)的特殊功能寄存器進(jìn)行設(shè)置,同時(shí)需要利用單片機(jī)內(nèi)部RAM的可位尋址區(qū)來(lái)完成交織編碼的功能。對(duì)于MCS-51系列的單片機(jī)來(lái)說(shuō),其特殊功能寄存器中對(duì)串行口進(jìn)行控制的有SCON和PCON。PCON是電源控制寄存器,其中D7位SMOD為串行口波特率系數(shù)控制位,如SMOD=1,則波特率加倍。特殊功能寄存器SCON字節(jié)地址為98H,且可位尋址。SCON用來(lái)設(shè)定串行口的工作方式、接收發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志。
在串行口的4種工作方式中,主要用于擴(kuò)展并行輸入輸出口。考慮到上述參數(shù),我們?cè)O(shè)置單片機(jī)工作于串行方式1,即一幀數(shù)據(jù)格式為:1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位、無(wú)奇偶校驗(yàn)。由于單片機(jī)串行口4種工作方式中,并無(wú)2個(gè)停止位的數(shù)據(jù)格式,我們沒必要為了湊齊2個(gè)停止位而刻意采用方式3,用9位數(shù)據(jù)格式中的一位來(lái)代替停止位。另外,如節(jié)省下這1個(gè)停止位,由于GPS導(dǎo)航儀輸出的數(shù)據(jù)格式為2個(gè)停止位,而單片機(jī)工作于方式1,當(dāng)其接收到1個(gè)停止位時(shí),就認(rèn)為一幀數(shù)據(jù)已接收完畢,從而就有了1個(gè)停止位的時(shí)間進(jìn)行別的處理。對(duì)于波特率為2 400 b/s的數(shù)據(jù)來(lái)說(shuō),碼元寬度為1/2 400=0.42 ms,對(duì)于波特率為1 200 b/s的數(shù)據(jù),碼元寬度為1/1 200=0.83 ms。在本系統(tǒng)中,由于采用的是11.059 2 MHz晶振,其機(jī)器周期近似為1μs。比較后可以看出,節(jié)省下來(lái)的時(shí)間有一定的利用價(jià)值,從而有更多的時(shí)間去進(jìn)行交織糾錯(cuò)的編碼處理。由于系統(tǒng)工作時(shí)接收數(shù)據(jù)采用的是查詢方式,也即上電復(fù)位后,即不停地循環(huán)檢測(cè)有無(wú)數(shù)據(jù)輸入,直到檢測(cè)到有數(shù)據(jù)輸人為止。這樣,如有更多的時(shí)間進(jìn)行數(shù)據(jù)處理,則不會(huì)因?yàn)樘幚頂?shù)據(jù)而導(dǎo)致有些數(shù)據(jù)漏檢從而丟失了數(shù)據(jù)。
本系統(tǒng)中接收數(shù)據(jù)的波特率設(shè)定為1 200 b/s,2 400 b/s,采用定時(shí)器T1作為波特率發(fā)生器,T1工作于自動(dòng)裝載方式的工作方式2,TL1作計(jì)數(shù)用,自動(dòng)重裝的值放在TH1中時(shí),溢出率可由下式確定:
溢出率=計(jì)數(shù)速率/[256-(TH1)]
其波特率由下式確定:
波特率=(定時(shí)/計(jì)數(shù)器1溢出率)/(32/2SMOD)
其中SMOD為特殊功能寄存器PCON中的第8位特殊位。3 交織糾錯(cuò)編碼的設(shè)計(jì)
糾錯(cuò)編碼是提高數(shù)字傳輸可靠性的一種技術(shù),是正確傳輸差分GPS改正信號(hào)的重要手段。數(shù)據(jù)在傳輸過(guò)程中,由于傳輸信道內(nèi)部噪聲及其造成的符號(hào)間干擾,以及傳輸外界環(huán)境的干擾,常常有突發(fā)性的錯(cuò)誤發(fā)生。為了提高抗干擾能力,我們采用交織糾錯(cuò)編碼來(lái)將一連串錯(cuò)誤分散到多個(gè)碼字中去,然后再采用能夠糾正較少錯(cuò)誤的碼字進(jìn)行編碼,這樣就可能糾正有較長(zhǎng)錯(cuò)誤的碼字。例如,給定一個(gè)(n,k)線性分組碼,我們利用交織可以把長(zhǎng)為bλ的單個(gè)突發(fā)錯(cuò)誤分散到λ個(gè)(n,k)碼字中去,從而使每個(gè)(n,k)碼字中只有長(zhǎng)度為b的突發(fā)錯(cuò)誤,這就提高了系統(tǒng)抗干擾的能力,提高了系統(tǒng)的糾錯(cuò)能力。
MCS-51單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器一般為256 B,分為128 B的內(nèi)部數(shù)據(jù)存儲(chǔ)器和128 B的特殊功能寄存器。對(duì)于P89C58來(lái)說(shuō),其可尋址的數(shù)據(jù)存儲(chǔ)空問(wèn)可擴(kuò)展至上邊的128 B。在內(nèi)部數(shù)據(jù)存儲(chǔ)器中,20H~2FH(16個(gè)單元)作為一般工作單元,既可以由CPU按字節(jié)尋址,也可以按位直接尋址,進(jìn)行位操作。我們正是利用了其中的20H~27H來(lái)構(gòu)成交錯(cuò)編碼空間。
通過(guò)8×8個(gè)矩型數(shù)據(jù)單元,循環(huán)按行(列)放置數(shù)據(jù),然后再循環(huán)按列(行)讀出數(shù)據(jù),從而達(dá)到數(shù)據(jù)行進(jìn)列出,或者列進(jìn)行出,這樣完成交錯(cuò)糾錯(cuò)編碼。在這一過(guò)程中,需要注意時(shí)間的配合問(wèn)題,數(shù)據(jù)的處理時(shí)問(wèn)和數(shù)據(jù)的發(fā)送時(shí)間要協(xié)調(diào)一致,否者會(huì)導(dǎo)致數(shù)據(jù)不能正常接收。
4 調(diào)制解調(diào)器的設(shè)計(jì)
K224內(nèi)部共有8個(gè)8 b的寄存器,對(duì)K224的操作是通過(guò)對(duì)這8個(gè)寄存器進(jìn)行初始設(shè)置,確定工作狀態(tài)來(lái)完成的。
2片Modem分別設(shè)置為工作于主呼和應(yīng)答方式、禁止INT(中斷)、經(jīng)擾碼器、禁止防衛(wèi)音、關(guān)應(yīng)答音發(fā)生器、關(guān)DTMF,同時(shí)接收發(fā)送采用同一判決平面,打開自適應(yīng)均衡器。
在Modem正常傳送數(shù)據(jù)之前,2個(gè)Modem以及Modem與DTE之間,為了確定雙方的速率等問(wèn)題,需要進(jìn)行必要的連絡(luò),這就是所謂的握手。在握手的過(guò)程中,微控制器P89C58必須檢測(cè)和確認(rèn)確定的信號(hào)來(lái)控制握手的過(guò)程和Modem的狀態(tài)。微控制器P89C58讀取K224的檢測(cè)寄存器的比特位,但是僅僅檢測(cè)到某一比特位是預(yù)先的狀態(tài)(1或者0),就立即采取與該狀態(tài)有關(guān)的動(dòng)作是遠(yuǎn)遠(yuǎn)不夠的。其中的原因有兩個(gè):第一是在握手過(guò)程中,檢測(cè)到的信號(hào)必須要穩(wěn)定地持續(xù)一段時(shí)間;第二是因?yàn)橛性肼暤母蓴_,某些比特位可能會(huì)發(fā)生由0到1或由1到0的突變。因此微控制器需要確認(rèn)檢測(cè)寄存器的比特位的狀態(tài),并且繼續(xù)檢測(cè)此信號(hào)是否持續(xù)了相應(yīng)的時(shí)間。
為此,需要設(shè)計(jì)檢測(cè)握手序列的方法。本文采用的是增計(jì)數(shù)器的方法,即將信號(hào)應(yīng)持續(xù)的時(shí)間轉(zhuǎn)化為一個(gè)預(yù)置數(shù)值,然后設(shè)置一個(gè)計(jì)數(shù)器,每檢測(cè)到一個(gè)信號(hào)便加1,當(dāng)增到預(yù)置數(shù)值時(shí),才可認(rèn)為該信號(hào)檢測(cè)到了。
具體計(jì)算方法如下:每個(gè)握手過(guò)程所需檢測(cè)的信號(hào)都有一個(gè)必須持續(xù)的時(shí)間,而這個(gè)信號(hào)到達(dá)接收機(jī)被檢測(cè)器檢測(cè)到要有一個(gè)延遲,用該信號(hào)的持續(xù)時(shí)間減去延遲時(shí)間,然后再用該信號(hào)的抽樣頻率乘以該數(shù)值,抽樣頻率應(yīng)大于或等于被檢測(cè)信號(hào)的數(shù)據(jù)率。上述程序設(shè)置是通過(guò)P89C58在系統(tǒng)七電復(fù)位后,對(duì)K224進(jìn)行初始化的。圖2是系統(tǒng)工作的流程圖。
5 結(jié) 語(yǔ)
本系統(tǒng)經(jīng)過(guò)星研Star51PH單片機(jī)仿真器仿真,并通過(guò)TOP2005編程器編程后,結(jié)果證明系統(tǒng)是可行的,調(diào)制解調(diào)器接收在1 200 b/s可以完全穩(wěn)定接收發(fā)送,當(dāng)工作在速率較大時(shí),長(zhǎng)時(shí)間工作數(shù)據(jù)會(huì)不能穩(wěn)定接收,需要進(jìn)一步實(shí)驗(yàn)驗(yàn)證。該系統(tǒng)設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單,性能穩(wěn)定可靠。