在通訊中,為了保證行運(yùn)安全可靠,標(biāo)準(zhǔn)的串行口必須具有許多握手信號(hào)和
狀態(tài)信息。這是因?yàn)橥ǘ的各更w撲慊鶦PU速度不一樣(這會(huì)導(dǎo)致“錯(cuò)幀”)以
及發(fā)送機(jī)發(fā)送數(shù)據(jù)速度比接收機(jī)接收速度快(這會(huì)導(dǎo)致“過(guò)沖”)。為解決這個(gè)
問(wèn)題,我們采用一個(gè)簡(jiǎn)單的握手信號(hào),即發(fā)送機(jī)每次僅發(fā)送半個(gè)字節(jié)(低4位)
的數(shù)據(jù),而另外半個(gè)字節(jié)(高4位)則用來(lái)傳送信息。我們可以對(duì)信息位(高4位)
進(jìn)行如下簡(jiǎn)單的編碼:
0H:發(fā)送的是新的半個(gè)字節(jié)數(shù)據(jù)
1H:重新發(fā)送上次傳送錯(cuò)誤的數(shù)據(jù)
2H:文件名結(jié)束
3H:文件結(jié)束
這樣,每當(dāng)發(fā)送機(jī)發(fā)送一個(gè)字節(jié)以后,就等待接受機(jī)發(fā)回送信號(hào),這回送信號(hào)就
是發(fā)送機(jī)發(fā)送過(guò)來(lái)的那個(gè)字節(jié)。發(fā)送機(jī)接收到回送信號(hào)后,把它與剛發(fā)送的字節(jié)
相比較,如果相同,就發(fā)送新的半個(gè)字節(jié),否則就重新發(fā)送。新數(shù)據(jù)與舊數(shù)據(jù)通
過(guò)信息位來(lái)區(qū)分。下面就是用C語(yǔ)言編寫(xiě)控制串行口的程序。
標(biāo)簽:
通訊
上傳時(shí)間:
2015-05-22
上傳用戶(hù):黑漆漆