利用MSM7512B的PC機(jī)和單片機(jī)遠(yuǎn)程通信
MSM7512B是一款單片F(xiàn)SK調(diào)制解調(diào)器。他符合ITUT V.23標(biāo)準(zhǔn),可以支持1200 b/s半雙工或1 200 b/s收/75 b/s發(fā)全雙工2種數(shù)據(jù)傳輸方式。MSM7512B用于控制或單向數(shù)據(jù)通信比較方便,這樣的系統(tǒng)往往執(zhí)行端由小巧的單片機(jī)組成,處理控制端由計(jì)算機(jī)組成。如通過網(wǎng)絡(luò)的遠(yuǎn)程抄表,遠(yuǎn)程報(bào)警,遠(yuǎn)程檢測(cè)和遠(yuǎn)程在系統(tǒng)編程。但如果需要經(jīng)過模擬接入網(wǎng)的遠(yuǎn)程雙向數(shù)據(jù)通信,問題就不簡(jiǎn)單了。這就引出了如何利用 MSM7512B進(jìn)行PC機(jī)和單片機(jī)之間的遠(yuǎn)程通信問題。
本文引用地址:http://cafeforensic.com/article/172148.htm1通信方案與模式
通信方案應(yīng)由具體應(yīng)用決定。當(dāng)PC機(jī)和單片機(jī)要通過公共電話交換網(wǎng)進(jìn)行通信時(shí),由于MSM7512B沒有附加其他功能電路,因此在發(fā)起連接端需要加接撥號(hào)電路,在應(yīng)答連接端需要加接振鈴檢測(cè)電路。如果連接請(qǐng)求是由計(jì)算機(jī)發(fā)起的,其通信方案可如圖1所示。
MSM7512B的14,15腳 MOD1,MOD2是通信工作模式控制。當(dāng)MOD2=0,MOD1=0時(shí),芯片處于發(fā)送模式,只能以1 200 b/s向外發(fā)送數(shù)據(jù);而MOD2=0,MOD1=1時(shí),處于接收模式,可以以1 200 b/s的速率接收數(shù)據(jù),也可以以75 b/s的速率發(fā)送數(shù)據(jù)??上SM7512B沒有一種模式可以以75 b/s接收數(shù)據(jù),因此當(dāng)PC機(jī)端和單片機(jī)端都采用MSM7512B時(shí),無法用全雙工發(fā)送接收數(shù)據(jù)。
然而計(jì)算機(jī)與單片機(jī)之間的數(shù)據(jù)傳輸是雙向的,如果沒有應(yīng)答確認(rèn),通信過程就難以為續(xù)。這就引出了如何用2個(gè)MSM7512B以物理層的半雙工實(shí)現(xiàn)鏈路層雙向通信的問題。也就是說,一方使用MOD2=0,MOD1=0,另一方使用MOD2=0,MOD1=1,并且這2種模式需要在通信過程中不斷轉(zhuǎn)換。
2模式轉(zhuǎn)換中必須注意的問題
根據(jù)以上提出的設(shè)計(jì)方案,通過單向的通信測(cè)試發(fā)現(xiàn)兩個(gè)方向的單工模式都是可行的。但這并不意味著半雙工通信一定可行,當(dāng)在連接建立后的通信過程中改變調(diào)制解調(diào)器模式從而改變收發(fā)方向時(shí),接收的數(shù)據(jù)就會(huì)時(shí)而正確時(shí)而不正確。顯然,在通信過程中轉(zhuǎn)變模式是一個(gè)值得探討的問題。經(jīng)過多次反復(fù)的測(cè)試和分析,發(fā)現(xiàn)雙機(jī)的MSM7512B都處于接收狀態(tài)時(shí),也就是兩者都不發(fā)送數(shù)據(jù)時(shí),一方居然能接收到一些奇怪的數(shù)據(jù)。這說明如果一方已經(jīng)從發(fā)送模式轉(zhuǎn)換為接收模式而另一方還沒來得及轉(zhuǎn)換,通信雙方將同時(shí)處于接收狀態(tài)(見圖2),而這時(shí)模擬信道上信號(hào)為零,其上的噪聲被MSM7512B誤認(rèn)為是信號(hào)加以接收,從而導(dǎo)致一些干擾數(shù)據(jù)的產(chǎn)生進(jìn)而影響正常通信。
為此需制定新的通信時(shí)序,用以保證在通信過程中雙方不可能同時(shí)出現(xiàn)在接收狀態(tài),也就是雙方或者都處于發(fā)送狀態(tài),或者一發(fā)一收。圖3表示了這種新的通信時(shí)序中PC方發(fā)數(shù)據(jù),單片機(jī)方發(fā)應(yīng)答的情形。其中Td是數(shù)據(jù)傳輸時(shí)延,Tc是MSM7512B模式轉(zhuǎn)換時(shí)延,T1、T2為避免雙方同時(shí)處于接收狀態(tài)而設(shè)置的人為延遲。單片機(jī)方的保存數(shù)據(jù)僅在接收到正確的幀后操作,而若是在等待接收重傳幀時(shí)則不操作,所需時(shí)間為Tsave。同樣,PC方的裝載數(shù)據(jù)也是在發(fā)送新幀時(shí)操作,而重傳幀時(shí)也無需操作,所需時(shí)間為Tload。
在正常收發(fā)情況下(無重傳),對(duì)單片機(jī)而言,一收到來自計(jì)算機(jī)的數(shù)據(jù),緊接著就改變?yōu)榘l(fā)模式,但改變?yōu)榘l(fā)模式后并不立即發(fā)應(yīng)答,而要延遲T1時(shí)間等待計(jì)算機(jī)準(zhǔn)備好收狀態(tài)再發(fā)應(yīng)答。單片機(jī)發(fā)完應(yīng)答后也不能立即轉(zhuǎn)換為收模式,而應(yīng)延遲T2時(shí)間保證計(jì)算機(jī)方在此之前已轉(zhuǎn)移為發(fā)送模式。如果是確認(rèn)應(yīng)答,就保存數(shù)據(jù),然后轉(zhuǎn)為收模式,如果是否認(rèn)應(yīng)答,直接轉(zhuǎn)為收模式。對(duì)計(jì)算機(jī)端而言,狀態(tài)轉(zhuǎn)移過程類似。即計(jì)算機(jī)一收到來自單片機(jī)的應(yīng)答立即改變?yōu)榘l(fā)模式,如果是確認(rèn)應(yīng)答,裝載下一組數(shù)據(jù),然后延遲T1時(shí)間等待單片機(jī)準(zhǔn)備好接收狀態(tài)再發(fā)數(shù)據(jù)。如果是否認(rèn)應(yīng)答,直接延遲T1時(shí)間等待單片機(jī)準(zhǔn)備好接收狀態(tài),然后重發(fā)數(shù)據(jù)。計(jì)算機(jī)發(fā)完數(shù)據(jù)后也不能立即轉(zhuǎn)換為收模式,而應(yīng)延遲T2時(shí)間保證單片機(jī)方在此之前已轉(zhuǎn)移為發(fā)送應(yīng)答模式。顯然,在鏈路對(duì)稱的情況下,假定裝載數(shù)據(jù)和保存數(shù)據(jù)時(shí)間相同,應(yīng)有T1>T2。
那么如何確定T1,T2呢?為了保證在通信過程中雙方不能同時(shí)出現(xiàn)在接收狀態(tài)(也就是雙方或者都處于發(fā)送狀態(tài),或者一發(fā)一收),則不難得出如下關(guān)系式:
因?yàn)門save和Tload都與具體的幀長(zhǎng)度有關(guān),即與機(jī)器速率有關(guān),例如單片機(jī)處理數(shù)據(jù)要慢于PC機(jī),因此幀越長(zhǎng),保存數(shù)據(jù)時(shí)間就越大于裝載數(shù)據(jù)時(shí)間,為保證正確的模式轉(zhuǎn)換,T1隨之增加。所以延時(shí)值即T1,T2的取值在數(shù)據(jù)傳輸速率一定時(shí)也要依具體的數(shù)據(jù)長(zhǎng)度而定。通過實(shí)驗(yàn)得出當(dāng)幀長(zhǎng)度為54字節(jié)時(shí)T1,T2的取值為100 ms,50ms比較合理。而幀長(zhǎng)度為100字節(jié)時(shí)T1,T2的取值為200 ms、100 ms比較合理。針對(duì)其他長(zhǎng)度的T1,T2的選取可以用試湊法,測(cè)試多組數(shù)據(jù)比較選取較好的。選取的原則就是在保證數(shù)據(jù)傳輸可以正常進(jìn)行的前提下選取較小值。
3傳輸效率
從圖3的時(shí)序圖可以看出如下關(guān)系:
設(shè)幀長(zhǎng)度為N1字節(jié),應(yīng)答長(zhǎng)度為N2字節(jié),數(shù)據(jù)傳輸速率為Rb/s。當(dāng)每字節(jié)10個(gè)碼元時(shí),傳輸一段數(shù)據(jù)的總耗時(shí)Ts為
Ts≈2T1+2Tc+2Td+[(N1+N2)×10/R]×1 000 (ms)(3)
其中Td與路徑長(zhǎng)度和媒介有關(guān),Tc與調(diào)制解調(diào)芯片有關(guān),一般均較小。由于傳輸效率與傳輸時(shí)間成反比,因此在N1,N2,R取值一定時(shí),式(3)表明傳輸效率主要由T1決定,即T1選取越小傳輸效率越高。注意到延時(shí)T2是為了保證通信過程中,在收方轉(zhuǎn)變?yōu)榘l(fā)送模式之前,發(fā)方仍處于發(fā)送模式,同時(shí)也要保證在對(duì)方數(shù)據(jù)發(fā)出之前轉(zhuǎn)變?yōu)榻邮漳J?,他的選取只要滿足關(guān)系式(1)即可,表面上看與傳輸效率無關(guān),但由于T1受到T2的制約,所以隱含著對(duì)T2的要求。由此可見,合理選取模式轉(zhuǎn)換的人為延遲時(shí)間T1和T2,是提高傳輸效率的關(guān)鍵所在。
采用以上方案,PC機(jī)和單片機(jī)之間就都可以使用MSM7512B正確地進(jìn)行遠(yuǎn)程數(shù)據(jù)的發(fā)送和接收了。
評(píng)論