2011-12-28 56 views
0
串行鏈路發送數據

我試圖測試之間不存在,奇偶校驗的區別 - 通常爲8個數據位,1個停止位在具有不同奇偶

所以我有2個人電腦與串行電纜都運行RealTerm連接或任何其他終端。

我不明白的是,無論我在發送機器上選擇哪個奇偶校驗位,接收機都會準確獲取我發送的數據。即使在接收器終端上,我也可以改變奇偶校驗,但我總是得到與發送的數據完全相同的數據。

我想如果我發送偶數奇偶校驗0x03它會顯示接收器(如果設置爲無奇偶校驗)和0x03(如果設置爲偶奇偶校驗)0x83但這不會發生。

我對於平價有什麼誤解,或者可能是什麼原因?

非常感謝!

+1

如果您發送奇偶校驗位並且接收器選擇忽略它,那麼會發生什麼情況。 你可以用7位和奇偶校驗發送樂趣,接收8位無奇偶校驗 – 2011-12-28 20:03:33

+0

誰可能也想解釋downvotet的原因。謝謝! – user387184 2011-12-28 20:27:22

回答

0

奇偶校驗位是第9位,所以它不會顯示在您的數據中。它可能只是被忽略,因爲在更現代的通信中,還有其他方式來檢測通信錯誤和重發(如塊中的CRC校驗)。

問題是,在串行通信的單個字節級別,在奇偶校驗失敗的情況下沒有辦法重新發送,它只能指示出錯的地方。

+0

我想用奇校驗發送並測試它的原因很簡單,因爲我正在爲一個硬件設備編寫一個控制程序,我只能在一個星期左右的時間內完成。我想我可以用某種方法「模擬」沒有這個設備的情況,看看我的代碼是否正常工作。所以我猜,這不可能? – user387184 2011-12-28 20:26:36

+0

我想問題是,設備在奇偶校驗不匹配時會做什麼?你如何期待它做出迴應。但是你是對的,這很可能是不可能的。 – 2011-12-28 20:28:36

+0

我其實還不知道。好吧,我想我必須等到我手中拿到它。但是,我可以依靠這樣一個事實,即當我設置PC時,它實際上會發送偶校驗+ 8位數據?或者可能是PC甚至不發送/接收第9個奇偶校驗位?謝謝! – user387184 2011-12-28 20:33:38

0

只有8位被選中用於數據,奇偶校驗位是第9位,就像在你的例子中你將擁有:無奇偶校驗0x03(十六進制)0000 0011(二進制) 偶校驗0x103(十六進制)1 0000 0011 (binari)這是什麼將被髮送。

如果您在「顯示爲」選項卡中使用realTerm選擇二進制,並且不要forhet設置奇偶校驗,您將看到奇偶校驗位,或者使用示波器(如果有的話)以及realtTerm上有一些「狀態」選項卡上的標誌也觀察它們(BREAK,錯誤)