題 RS232串行Y分配器到Raspberry Pi(USB)和熱敏打印機有時會阻止流向打印機


我們使用RS232分配器和Raspberry Pi(Pi上的DB9到USB)從餐館銷售點系統(RJ45到DB9)嗅探數據到熱敏打印機。

這種情況在99%的情況下都很有用,但很少有POS發送正常的打印命令,打印機也不會打印。然後,如果我們拔掉Pi上的USB,打印機會打印收據,好像它已經排隊並被Pi以某種方式阻止。因為我認為Y電纜創建了兩個獨立的串行數據流,因此無法理解為什麼它會被阻塞。

注意:這似乎只發生在Pi上的Ruby串口偵聽器腳本未運行時,儘管我們通常關閉腳本並且打印機仍然打印...

我不能按需複制這個,這讓它更令人沮喪。


2
2018-02-16 19:32


起源




答案:


要考慮的一些事情..

  • 除了Tx,Rx和GND之外,那個分路器是否會復制控制線?如果是這樣,我會在Serial-to-USB端斷開這些線路。這些線可用於流量控制。 Raspberry Pi端不需要Tx引腳,因此您也可以斷開連接。只是RX-GND似乎足夠Pi。
  • POS上的RS-232端口可能無法為兩個連接的對等端提供足夠的電流,因為它不是標準的。使用屏蔽良好和較短的電纜可能會有所幫助。實際上,您似乎不需要在POS側使用那根長黑色電纜進行測試。
  • 使用RS-232信號指示器(如下所示: http://cnc-specialty-store.com/rs232-cables/rs-232-mini-tester-with-led-indicators-db-25-male-to-female )可能有助於分析問題。
  • 使用萬用表監控Tx / Rx線路的電壓,找出正常情況和“卡住”狀態之間的差異。
  • 請不要忘記,USB-Serial轉換器本身可能存在問題。我聽說USB轉換器引起了很多奇怪的問題。因此,如果可能的話,嘗試相同的測試而不使用USB串行轉換器,這可能需要其他設備,如PC。

此外,在Raspberry Pi上使用兩個USB串行轉換器可能有助於在打印機和POS之間真正複製數據,如[打印機] - RS232 - [Raspberry Pi] - RS232 - [POS]。這可能需要Pi上的新程序實際複製串行數據,但至少它不會破壞RS-232的規則,這不能保證在1:n連接上運行。然而,這種配置也可能存在風險,因為它可能引入定時問題,尤其是對於非PC設備。如果沒有別的東西可以嘗試,你可以試試這個。


3
2018-02-16 21:42



+1表示我可以查看的檢查點列表。謝謝。測試所有這些需要一段時間...... - Micah
我們刪除了第一個項目中建議的除RX,GND之外的所有引腳,這似乎解決了這個問題。解決! - Micah
回過頭來看,我們實際上除了連接到串口 - > USB - > Pi的分離器末端的除Rx和GND之外的所有引腳。從那時起我們就沒有遇到過問題但是現在我很困惑為什麼DB9分離器的末端仍然可以將數據傳輸到串口 - > USB,如果它只有一個Rx。我很困惑這仍然可以工作。任何見解? (重新閱讀答案,似乎我們應該從串口 - > USB中移除Tx等引腳,這對我來說很有意義。) - Micah
我相信分離器只是一個物理連接器,根本不了解RS-232或串行通信 - 它只是連接所有東西,就好像你通過佈線在每一條線上放置一個跳線。正如我所說,將分離器連接到現有的RS-232實際上違反了RS-232的規則,該規則設計用於1對1連接。所以你的配置基本上不能保證工作。因此,我建議的是最小化對現有RS-232連接的影響的方法。 - Scott Rhee