新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用MSM7512B的PC機和單片機遠程通信

        利用MSM7512B的PC機和單片機遠程通信

        作者: 時間:2012-02-09 來源:網絡 收藏

        是一款單片FSK調制解調器。他符合ITUT V.23標準,可以支持1200 b/s半雙工或1 200 b/s收/75 b/s發全雙工2種數據傳輸方式。用于控制或單向數據比較方便,這樣的系統往往執行端由小巧的組成,處理控制端由計算機組成。如通過網絡的抄表,報警,檢測和遠程在系統編程。但如果需要經過模擬接入網的遠程雙向數據,問題就不簡單了。這就引出了如何 進行機和之間的遠程問題。

        本文引用地址:http://www.104case.com/article/172148.htm

        1通信方案與模式

        通信方案應由具體應用決定。當機和要通過公共電話交換網進行通信時,由于MSM7512B沒有附加其他功能電路,因此在發起連接端需要加接撥號電路,在應答連接端需要加接振鈴檢測電路。如果連接請求是由計算機發起的,其通信方案可如圖1所示。

        MSM7512B的14,15腳 MOD1,MOD2是通信工作模式控制。當MOD2=0,MOD1=0時,芯片處于發送模式,只能以1 200 b/s向外發送數據;而MOD2=0,MOD1=1時,處于接收模式,可以以1 200 b/s的速率接收數據,也可以以75 b/s的速率發送數據。可惜MSM7512B沒有一種模式可以以75 b/s接收數據,因此當機端和單片機端都采用MSM7512B時,無法用全雙工發送接收數據。

        18.jpg

        然而計算機與單片機之間的數據傳輸是雙向的,如果沒有應答確認,通信過程就難以為續。這就引出了如何用2個MSM7512B以物理層的半雙工實現鏈路層雙向通信的問題。也就是說,一方使用MOD2=0,MOD1=0,另一方使用MOD2=0,MOD1=1,并且這2種模式需要在通信過程中不斷轉換。

        2模式轉換中必須注意的問題

        根據以上提出的設計方案,通過單向的通信測試發現兩個方向的單工模式都是可行的。但這并不意味著半雙工通信一定可行,當在連接建立后的通信過程中改變調制解調器模式從而改變收發方向時,接收的數據就會時而正確時而不正確。顯然,在通信過程中轉變模式是一個值得探討的問題。經過多次反復的測試和分析,發現雙機的MSM7512B都處于接收狀態時,也就是兩者都不發送數據時,一方居然能接收到一些奇怪的數據。這說明如果一方已經從發送模式轉換為接收模式而另一方還沒來得及轉換,通信雙方將同時處于接收狀態(見圖2),而這時模擬信道上信號為零,其上的噪聲被MSM7512B誤認為是信號加以接收,從而導致一些干擾數據的產生進而影響正常通信。

        19.jpg

        為此需制定新的通信時序,用以保證在通信過程中雙方不可能同時出現在接收狀態,也就是雙方或者都處于發送狀態,或者一發一收。圖3表示了這種新的通信時序中PC方發數據,單片機方發應答的情形。其中Td是數據傳輸時延,Tc是MSM7512B模式轉換時延,T1、T2為避免雙方同時處于接收狀態而設置的人為延遲。單片機方的保存數據僅在接收到正確的幀后操作,而若是在等待接收重傳幀時則不操作,所需時間為Tsave。同樣,PC方的裝載數據也是在發送新幀時操作,而重傳幀時也無需操作,所需時間為Tload。

        20.jpg

        在正常收發情況下(無重傳),對單片機而言,一收到來自計算機的數據,緊接著就改變為發模式,但改變為發模式后并不立即發應答,而要延遲T1時間等待計算機準備好收狀態再發應答。單片機發完應答后也不能立即轉換為收模式,而應延遲T2時間保證計算機方在此之前已轉移為發送模式。如果是確認應答,就保存數據,然后轉為收模式,如果是否認應答,直接轉為收模式。對計算機端而言,狀態轉移過程類似。即計算機一收到來自單片機的應答立即改變為發模式,如果是確認應答,裝載下一組數據,然后延遲T1時間等待單片機準備好接收狀態再發數據。如果是否認應答,直接延遲T1時間等待單片機準備好接收狀態,然后重發數據。計算機發完數據后也不能立即轉換為收模式,而應延遲T2時間保證單片機方在此之前已轉移為發送應答模式。顯然,在鏈路對稱的情況下,假定裝載數據和保存數據時間相同,應有T1>T2。

        那么如何確定T1,T2呢?為了保證在通信過程中雙方不能同時出現在接收狀態(也就是雙方或者都處于發送狀態,或者一發一收),則不難得出如下關系式:

        21.jpg

        因為Tsave和Tload都與具體的幀長度有關,即與機器速率有關,例如單片機處理數據要慢于PC機,因此幀越長,保存數據時間就越大于裝載數據時間,為保證正確的模式轉換,T1隨之增加。所以延時值即T1,T2的取值在數據傳輸速率一定時也要依具體的數據長度而定。通過實驗得出當幀長度為54字節時T1,T2的取值為100 ms,50ms比較合理。而幀長度為100字節時T1,T2的取值為200 ms、100 ms比較合理。針對其他長度的T1,T2的選取可以用試湊法,測試多組數據比較選取較好的。選取的原則就是在保證數據傳輸可以正常進行的前提下選取較小值。

        3傳輸效率

        從圖3的時序圖可以看出如下關系:

        設幀長度為N1字節,應答長度為N2字節,數據傳輸速率為Rb/s。當每字節10個碼元時,傳輸一段數據的總耗時Ts為
        Ts≈2T1+2Tc+2Td+[(N1+N2)×10/R]×1 000 (ms)(3)

        其中Td與路徑長度和媒介有關,Tc與調制解調芯片有關,一般均較小。由于傳輸效率與傳輸時間成反比,因此在N1,N2,R取值一定時,式(3)表明傳輸效率主要由T1決定,即T1選取越小傳輸效率越高。注意到延時T2是為了保證通信過程中,在收方轉變為發送模式之前,發方仍處于發送模式,同時也要保證在對方數據發出之前轉變為接收模式,他的選取只要滿足關系式(1)即可,表面上看與傳輸效率無關,但由于T1受到T2的制約,所以隱含著對T2的要求。由此可見,合理選取模式轉換的人為延遲時間T1和T2,是提高傳輸效率的關鍵所在。

        采用以上方案,PC機和單片機之間就都可以使用MSM7512B正確地進行遠程數據的發送和接收了。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 松溪县| 隆安县| 东山县| 天峻县| 扎囊县| 山东省| 河曲县| 辰溪县| 鄯善县| 石台县| 聂荣县| 大化| 高阳县| 辽阳县| 孟州市| 丰顺县| 昌邑市| 荣成市| 新和县| 景泰县| 鄯善县| 新竹市| 正安县| 衡山县| 青浦区| 平顺县| 盈江县| 星子县| 澄城县| 龙川县| 沁源县| 株洲市| 石家庄市| 赫章县| 鲜城| 含山县| 恩平市| 灵丘县| 泗洪县| 巨野县| 枝江市|