無線電臺(tái)用智能數(shù)據(jù)通信卡的設(shè)計(jì)與實(shí)現(xiàn)
摘要:介紹了采用OKI公司的FSK MODEM芯片MSM7512B、AT89C51單片機(jī)作控制實(shí)現(xiàn)的電臺(tái)用智能數(shù)據(jù)通信卡的設(shè)計(jì)思想和實(shí)現(xiàn)方法。通過該卡,可方便地給以模擬方式作為話音通信的無線電臺(tái)增加數(shù)據(jù)通信功能,使其性價(jià)比大大提高。
本文引用地址:http://m.butianyuan.cn/article/244623.htm關(guān)鍵詞:無線電臺(tái) 單片機(jī) 數(shù)據(jù)通信 調(diào)制解調(diào)器
當(dāng)今信息時(shí)代,人們需要多種多樣的通信手段和設(shè)備,常見的不論是有線電話還是無線電臺(tái),都為模擬信道,適合傳送模塊話音信號(hào)。目前,通過公用電話網(wǎng)進(jìn)行計(jì)算機(jī)通信的技術(shù)已經(jīng)成熟。而無線電臺(tái)特點(diǎn)是老式電臺(tái),在我國使用范圍很廣,擁有量很大,但其功能單一,不能適應(yīng)當(dāng)前數(shù)據(jù)通信的要求,如何對其進(jìn)行技術(shù)改造,增加數(shù)據(jù)能信功能,就顯得尤為必要。為此,研究設(shè)計(jì)了無線電臺(tái)用智能數(shù)據(jù)通信卡(以下簡稱通信卡),通過該卡,可給以模擬方式作為話通信的無線電 臺(tái)增加數(shù)據(jù)通信功能,大大提高了老式電臺(tái)的性價(jià)比。該卡體積小,成本低,可放置于電臺(tái)內(nèi)部。
1 通信卡的設(shè)計(jì)思想
從電臺(tái)實(shí)際工作情況考慮,給電臺(tái)增加數(shù)據(jù)通信功能后,應(yīng)注意解決以下問題:
·不能影響原話音通信功能。
·數(shù)據(jù)通信卡的數(shù)據(jù)接口要采用標(biāo)準(zhǔn)接口,從電臺(tái)性能、體積、抗干擾性及經(jīng)濟(jì)性上考慮,選用RS-232C標(biāo)準(zhǔn)接口,相應(yīng)的串行速率為1200bps。
·待傳送的數(shù)據(jù)送入通信卡后,應(yīng)轉(zhuǎn)換成適宜在無線模擬停產(chǎn)上傳送的模擬信號(hào),且該信號(hào)頻率帶寬不能超過電臺(tái)頻道所要求的帶寬。
·為解決多用戶同時(shí)通信時(shí)出現(xiàn)的同頻干擾問題,須給電臺(tái)增加禁收禁發(fā)功能。
2 通信卡的硬件框圖及電路設(shè)計(jì)
根據(jù)上述思想所設(shè)計(jì)的通信卡包括硬件和軟件兩部分。硬件部分是該卡的基礎(chǔ),其框圖如圖1虛線框內(nèi)所示。其中,PTT為電臺(tái)鍵控信號(hào)(PTT=1 電臺(tái)接收,PTT=0 電臺(tái)發(fā)射),SQL為電臺(tái)接收靜噪信號(hào)(SQL=1 電臺(tái)頻道忙,SQL=0 電臺(tái)頻道閑),MIC為電臺(tái)話音信號(hào)輸入口,UΩ為電臺(tái)解調(diào)出的話音信號(hào)。整個(gè)通信卡的核心為由89C51單片機(jī)以及RAM和8251組成的控制系統(tǒng),這一部分主要完成數(shù)據(jù)的接收、存儲(chǔ)、發(fā)送的控制與管理。串行接口部分由RS-232C接口和電平轉(zhuǎn)換電路組成。還有一部分即MODEM電路,主要完成由通信卡到電臺(tái)的數(shù)字信號(hào)(TXD)的調(diào)制發(fā)送和由電臺(tái)到通信卡的模擬信號(hào)(FSK 出)的解調(diào)接收。圖1中,用89C51的串行口(TXD和RXD)經(jīng)MODEM與電臺(tái)話音接口相連。圖中之所以用8251來擴(kuò)展89C51的串行口與外部計(jì)算機(jī)通信,是考慮到用8251的RXRDY(14腳“接收準(zhǔn)備就緒”信號(hào))與89C51外部中斷(P3.2腳)相連,使89C51單片機(jī)可以及時(shí)響應(yīng)8251通信中斷,避免與MODEM接口的串行中斷相混淆或進(jìn)行中斷競爭。
2.1 RS-232C串行接口設(shè)計(jì)
RS-232C串行接口及電平轉(zhuǎn)換電路如圖2所示。其中,MC1488、MC1489為電平轉(zhuǎn)換芯片。外部計(jì)算機(jī)數(shù)據(jù)通過DB9插座輸入后,需經(jīng)MC1489將RS-232C電平轉(zhuǎn)換為TTL電平,并在89C51的控制下,通過8251存于RAM通信緩沖區(qū)中。同樣從電臺(tái)接收來暫存于RAM中的數(shù)據(jù)要發(fā)給外部計(jì)算機(jī),亦需經(jīng)MC1488將TTL電平轉(zhuǎn)換成RS-232C電平。
2.2 MODEM電路設(shè)計(jì)
MODEM電路采用OKI公司的FSK MODEM芯片MSM7512B設(shè)計(jì)而成,其接口輸出與TTL電平兼容,且工作模式可由外部邏輯設(shè)定。本電路工作狀態(tài)采用1200bps半雙工模式,F(xiàn)SK移頻頻率符合標(biāo)準(zhǔn)協(xié)議ITU-T V.23[2]。在本卡中MODEM應(yīng)用電路如圖3所示。
由于MODEM工作于半雙工狀態(tài),同一時(shí)刻AI/AO只有一端上有模擬信號(hào)輸入/輸出,且MODEM內(nèi)置有阻抗混合電路,所以其兩端通過600Ω電阻并作一端使用。AOG端接數(shù)字“0”,使模擬發(fā)送信號(hào)幅度為典型值-4dBm(0dBm=0.775Vrms)。MODEM的工作模式通過89C51單片機(jī)的P1.3邏輯進(jìn)行選擇。將MODEM的MOD2腳接數(shù)字“0”,MOD1腳接89C51的P1.3,當(dāng)P1.3輸出為“0”,MOD1、MOD1=“00”,MODEM工作于1200bps發(fā)送模式;反之,當(dāng)P1.3輸出為“1”時(shí),MODEM工作于1200bps接收模式。
MODEM將接收到的FSK模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)(RXD)后,輸出到89C51串口。一旦89C51串口收到一幀數(shù)據(jù),就會(huì)立即引發(fā)串口中斷,從而輸入串口中斷服務(wù)程序進(jìn)行數(shù)據(jù)的接收,并將收到的數(shù)據(jù)暫存于通信緩沖區(qū)。同樣,由單片機(jī)89C51轉(zhuǎn)過來的數(shù)據(jù)(TXD),要經(jīng)MODEM發(fā)送給電臺(tái),可通過單片機(jī)的P1.4將MODEM的RS端置為有效電平(低電平),使其發(fā)送允許,同時(shí)將P1.3置“0”,使其正常工作。
2.3 通信卡控制系統(tǒng)的設(shè)計(jì)
通信卡控制系統(tǒng)電路如圖4所示。89C51單片機(jī)除完成數(shù)據(jù)傳送控制外,還負(fù)責(zé)完成電臺(tái)SQL(靜噪信號(hào),也單片機(jī)的P1.2相連)信號(hào)的檢測和電臺(tái)PTT鍵控制(由P1.1完成)。
單片機(jī)的P0口經(jīng)地址鎖存器74LS373鎖存輸出為6264的低8位地址,由P.0~P2.4提供6264的高5位地址,借P2.5引腳進(jìn)行片選,接6264的片選端CE。6264的讀/寫允許信號(hào)OE/WE分別與89C51單片機(jī)的讀/寫允許信號(hào)RD/WR相連。P0為分時(shí)復(fù)用雙向數(shù)據(jù)總線,將數(shù)據(jù)相應(yīng)地送和264的數(shù)據(jù)端D0~D7.6264的編址空間為8K,自0000H~1FFFH。
單片機(jī)的時(shí)鐘為7.3728MHz,ALE作為8251的時(shí)鐘信號(hào)。但由于89C51在訪問片外數(shù)據(jù)存儲(chǔ)器期間,ALE脈沖會(huì)跳空一個(gè),所以將ALE與WR、RD組合,以補(bǔ)允空跳的時(shí)鐘脈沖。組合后產(chǎn)生1.228MHz的脈沖信號(hào),該信號(hào)與8251的CLK相連,同時(shí)64分頻后作為8251的接收與發(fā)送時(shí)鐘。64分頻采用兩片74LS160(接成8進(jìn)制計(jì)數(shù)方式)級(jí)聯(lián)。
外部中斷INT0作為電臺(tái)發(fā)送數(shù)據(jù)時(shí)的中斷請求信號(hào)。圖4中,外部中斷請求信號(hào)通過D觸發(fā)器加到單片機(jī)INT0引腳上。當(dāng)外部中斷信號(hào)使D觸發(fā)器的CLK端發(fā)生正躒變時(shí),由于D端接地,Q端輸出0,向單片機(jī)發(fā)出中斷請求。CPU響應(yīng)中斷后,利用口線P1.5作應(yīng)答線。在中斷服務(wù)程序中用兩條指令來撤銷中斷請求。
ANL P1,#0DEH
ORL P1,#20H
第一條指令使P1.5為0,而P1口其他各位的狀態(tài)不變。由于P1.5與置1端S相連,故D觸發(fā)器Q=1,撤銷了中斷請求信號(hào)。第二條指令將P1.5變成1,從而S=1,使以后產(chǎn)生的新外部中斷請求信號(hào)又能向單片機(jī)申請中斷。
DTR、DSR用于檢測外部計(jì)算機(jī)是否空閑。在程序中,將操作命令字的第1位置1,使得DTR有效。在發(fā)送數(shù)據(jù)前,先讀取狀態(tài)字,查詢其最高位是否為1,若為1則表示數(shù)據(jù)裝置準(zhǔn)備好,8251可以發(fā)送數(shù)據(jù)。否則,再次查詢直至為1。
3 通信卡的軟件設(shè)計(jì)
3.1 通信協(xié)議
(1)通信卡中89C51單片機(jī)串行口工作于多機(jī)通信狀態(tài)(即SM2=1)。每個(gè)卡都有一個(gè)唯一的地址編號(hào),范圍為00H~FEH。
(2)通信卡單片機(jī)串行口數(shù)據(jù)的幀格式為:8位數(shù)據(jù)+1位數(shù)據(jù)/地址識(shí)別位+1位起始+1位停止位。其中的數(shù)據(jù)/地址識(shí)別為0時(shí),說明傳送的一幀為數(shù)據(jù),否則為地址。串行通信波特率為1200bps。傳送數(shù)據(jù)前,發(fā)方選送接收方地址號(hào),接收方判斷是本機(jī)地址后,使SM2清0以接收隨后發(fā)來的所有信息。否則,如判斷非本機(jī)地址,則仍保持SM2=1狀態(tài)返回。
(3)89C51單片機(jī)平常處于檢測SQL的查詢工作狀態(tài),通過檢測SQL信號(hào),由軟件信號(hào)任務(wù)時(shí)鐘只有一個(gè)通信卡在發(fā)送數(shù)據(jù),這樣不會(huì)造成通信時(shí)的頻道競爭,也避免了同頻干擾。
(4)單片機(jī)串行口工作方式設(shè)置為方式3。另外,外部計(jì)算機(jī)數(shù)據(jù)送入8251后,中斷信號(hào)(8251的RXRDY)送和9C51的INT0腳,使單片機(jī)因外部中斷0而產(chǎn)生接收中斷。
(5)89C51串行口傳送的數(shù)據(jù)包采用累加校驗(yàn)的方法。程序設(shè)定16個(gè)字節(jié)為一頁,每收/發(fā)一頁數(shù)據(jù),控制其收/發(fā)一個(gè)累加和。
(6)通信卡中的8251與外部計(jì)算機(jī)間異步通信的數(shù)據(jù)格式為:8位數(shù)據(jù)+1位停止位+1位偶校驗(yàn)位。波特率為1200bps。且在傳送數(shù)據(jù)時(shí),應(yīng)首先傳送一個(gè)8位數(shù)據(jù)包長度信息字。
3.2 通信方案
(1)外部數(shù)據(jù)經(jīng)通信卡的發(fā)送過程:由RS-232C傳來的數(shù)據(jù)包經(jīng)8251芯片完成串/并轉(zhuǎn)換后,暫存于以6264為RAM的通信緩沖區(qū)中,通過檢測SQL確認(rèn)電臺(tái)頻道空閑時(shí),將通信緩沖區(qū)的數(shù)據(jù)包由串行口送給MODEM電路,以轉(zhuǎn)換為適宜在無線模擬信道傳送的信號(hào)TXA,并由電臺(tái)發(fā)送出去。
(2)通信卡接收數(shù)據(jù)的過程:由電臺(tái)接收下來的RXA信號(hào)經(jīng)過MODEM電路轉(zhuǎn)換為數(shù)字信號(hào)RXD,并由單片機(jī)存于通信緩沖區(qū)中。89C51單片機(jī)通過檢測狀態(tài)字查詢RS-232C口所接外部計(jì)算機(jī)為空閑狀態(tài)時(shí),經(jīng)8251將數(shù)據(jù)包送給外部計(jì)算機(jī)。
3.3 通信卡的軟件流程圖。
通信卡的整個(gè)工作過程由軟件控制完成,流程圖如圖5、圖6和圖7所示。
用單片機(jī)和通信等技術(shù)設(shè)計(jì)、實(shí)現(xiàn)了無線電臺(tái)用智能數(shù)據(jù)通信卡。通過該卡,可給早期生產(chǎn)的只能作為話音通信的老式電臺(tái)增加計(jì)算機(jī)數(shù)據(jù)通信功能。對軟硬件稍作修改,還可給電臺(tái)增加選呼、群呼、組呼等功能,從而大大提高了無線電臺(tái)特別是老式電臺(tái)的性價(jià)比。該卡用于某無線數(shù)據(jù)傳輸系統(tǒng)中,工作效果良好。該卡還以廣泛地應(yīng)用于計(jì)算機(jī)無線通信網(wǎng)的組建、元程控制系統(tǒng)、保安系統(tǒng)等。
評論