為此需制定新的通信時(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。
圖3 一發(fā)一收
在正常收發(fā)情況下(無重傳),對單片機(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)為收模式。對計(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)答模式。顯然,在鏈路對稱的情況下,假定裝載數(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都與具體的幀長度有關(guān),即與機(jī)器速率有關(guān),例如單片機(jī)處理數(shù)據(jù)要慢于PC機(jī),因此幀越長,保存數(shù)據(jù)時(shí)間就越大于裝載數(shù)據(jù)時(shí)間,為保證正確的模式轉(zhuǎn)換,T1隨之增加。所以延時(shí)值即T1,T2的取值在數(shù)據(jù)傳輸速率一定時(shí)也要依具體的數(shù)據(jù)長度而定。通過實(shí)驗(yàn)得出當(dāng)幀長度為54字節(jié)時(shí)T1,T2的取值為100 ms,50ms比較合理。而幀長度為100字節(jié)時(shí)T1,T2的取值為200 ms、100 ms比較合理。針對其他長度的T1,T2的選取可以用試湊法,測試多組數(shù)據(jù)比較選取較好的。選取的原則就是在保證數(shù)據(jù)傳輸可以正常進(jìn)行的前提下選取較小值。
3 傳輸效率
從圖3的時(shí)序圖可以看出如下關(guān)系:
設(shè)幀長度為N1字節(jié),應(yī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與路徑長度和媒介有關(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í)也要保證在對方數(shù)據(jù)發(fā)出之前轉(zhuǎn)變?yōu)榻邮漳J?,他的選取只要滿足關(guān)系式(1)即可,表面上看與傳輸效率無關(guān),但由于T1受到T2的制約,所以隱含著對T2的要求。由此可見,合理選取模式轉(zhuǎn)換的人為延遲時(shí)間T1和T2,是提高傳輸效率的關(guān)鍵所在。
采用以上方案,PC機(jī)和單片機(jī)之間就都可以使用MSM7512B正確地進(jìn)行遠(yuǎn)程數(shù)據(jù)的發(fā)送和接收了。
?
評論