Wyse 用戶端上的序列埠傳回隨機錯誤

Wyse 用戶端上的序列埠傳回隨機錯誤

我們正在測試具有與 PC 序列埠連接的較新 Wyse 用戶端(Z90D7 型號)。我們有一個外部客戶使用專用設備,但我們使用 PC 進行測試。我們透過 Citrix 在客戶端上執行 C# 應用程式。當我們運行在舊 Wyse 設備上使用的應用程式時,一切運行正常,沒有錯誤。然而,在新設備上,串行埠大約每 10 次嘗試才會工作一次。在所有其他情況下,它都會給出溢位錯誤、奇偶校驗錯誤或 RXOver 錯誤。

我已透過日誌記錄驗證連接埠確實打開,並且在打開後執行了多個命令。然而,隨機錯誤會發生在傳輸任何實際資料之前。 我在很多地方讀到這可能是緩衝區問題,但是我沒有看到任何帖子提到收到數據之前發生的錯誤,所以我不完全確定。

我還嘗試使用握手和更大的讀/寫緩衝區,但沒有成功。我嘗試了新電纜和該設備上的第二個 COM 端口,但也沒有成功。我們的預設是:

9600 波特率,偶校驗,8 個資料位,1 個停止位

鑑於這是在 Citrix 上運行,我們還必須執行此處顯示的 net use 命令在做任何事情之前。不這樣做將導致串行連接總是說已連接但未接收到任何資料(這種情況也會發生在舊設備上)。我們正在執行的確切命令(當然,應用程式名稱已更改)是:

net use com1 /DELETE
net use com2 /DELETE
net use com1: \\client\com1:
net use com2: \\client\com2:
start /d "D:\myapp" MyApplication.exe

有處理過串口的人聽過這三個錯誤像這樣交替出現嗎?除了故障的連接埠(或兩個故障的連接埠)之外,是否還有其他原因可能導致此問題?我認為硬體緩衝區大小可能是問題所在,但找不到任何方法來克服這個問題。

答案1

所有錯誤似乎都表明數據沒有移動,而且是雙向移動。

RXOver 清空接收緩衝區的速度不夠快。溢出是串列埠驅動程式沒有足夠快地清空晶片發送緩衝區。

我不確定是否存在增加硬體緩衝區大小的方法。 Windows 緩衝區可以透過 API 增加,但驅動程式可能會忽略它。

我建議嘗試更多設備以更好地了解問題,也許您的測試計算機存在一些相容性問題。

文章 5 種常見串口問題 列出了此類問題的一些可能原因:

  • 通訊參數不正確
    兩台設備需要設定相同的通訊參數,包括波特率、奇偶校驗、資料位數和停止位數。

  • 串行電纜不正確

  • 串行電纜不良
  • 接線錯誤

相關內容