找回密碼
 立即註冊
查看: 3015|回復: 16

[電子儀表] 請教, 模擬示波器可以用 EXT TRIG 鎖定 RS485 的波形嗎

[複製鏈接]
發表於 2025-8-28 11:46:14 | 顯示全部樓層 |閱讀模式
還不會用這個功能.


看RS485 BUS 的訊號就們被蒙在鼓裡, 它只在跑, 現在手邊都沒有數位的示波器, 覺得被難倒了. 這圖是靠影片擷取的.

RS485 probe

RS485 probe


拍到短視頻.
https://www.youtube.com/watch?v=OPbmcWfFbus
發表於 2025-8-28 14:45:31 | 顯示全部樓層
建議改用邏輯分析儀去抓485訊號

評分

2

查看全部評分

回復

使用道具 舉報

發表於 2025-8-29 16:32:56 | 顯示全部樓層
要不要試著把RS485轉成RS232訊號,直接電腦判讀?

或是真的要用LA來抓了。

評分

1

查看全部評分

回復

使用道具 舉報

發表於 2025-8-29 18:55:06 | 顯示全部樓層
類比示波器很難看清楚這些數位信號跟外部觸發沒有關係,至少也要用數位示波器整個封包抓下來才能慢慢看,或是去買個幾百元的八通道 LA 也能儲存下來分析比對。

RS485 只是電器信號最主要ˋ的要知道這是什麼數據或封包,例如工控的 RS485 絕大部分都是 MODBUS 封包,有很多 PC 小程式都能解析其內容所以示波器或 LA 都用不上。

RS485 靠單顆 SN75176 就能轉換成 TTL 信號給儀器或單片機用,要轉換介面是很簡單的但要分析不明封包就很麻煩得花許多時間。

評分

1

查看全部評分

回復

使用道具 舉報

發表於 2025-8-30 17:35:53 | 顯示全部樓層
本帖最後由 SIMON1016 於 2025-8-30 05:43 PM 編輯

很早以前 西摩哥還是宗門小師弟  那時還不夠格使用的高階神器  都是被師兄搶走
於是 這類簡單的數位封包(I2C 紅外線編碼格式) 都是用 EXT觸發加單擊電路

單擊電路 觸發後會在規劃RC時間內 忽視繼續輸入的信號 維持單個觸發脈衝
選定這個規劃RC時間  參考前後封包的隔開時間
定時電阻選用VR時注意干擾(柄殼接地)
定時電容至少要麥拉之類 不要用陶瓷  有點溫度漂移不穩是難免的

若示波器沒儲存波形功能 就只能讓封包持續一直傳送

當然 封包長一點時  後部分是看不到的

評分

1

查看全部評分

回復

使用道具 舉報

 樓主| 發表於 2025-8-31 10:03:28 | 顯示全部樓層
本帖最後由 xiaolaba 於 2025-8-31 10:43 AM 編輯

看到前輩的建議, 琢磨了一下下, 估計 MCU 用 UART 收送, RS485 驅動, 絞線的電壓訊號疑似 CAN BUS, 2.5V為中心待機, CAN-HI CAN-LOW 同時擺動傳送訊號.

用 LA 偷聽了 MCU UART 收送的訊號, RS485驅動芯片是 SIT3088E. 猜想他是 19200 BAUD, 然後用 ARDUINO 偷聽了 TXD 的訊號再解析一下, 看來有靠譜.

UART_listen_to_TXD.jpg

UART_listen_to_TXD.jpg

UART_listen_to_TXD.jpg



CAN_ISO11898-2.JPG

CAN_ISO11898-2.JPG

CAN_ISO11898-2.JPG



RXD波形, 每次TXD後都會收到

RXD

RXD



猜想他的訊息結構是這樣的
TXD,0xA5,0x01,0x10,後跟數據的長度-1,數據
TXD,0xA5,0x01,0x11,後跟數據的長度-1,數據
數據則是兩個馬達的轉速之類的.

回應的訊息結構是這樣的
RXD,0xA5,0x03,0x10,後跟數據的長度-1,數據


TXD解析後的資料

idle
TXD,0xA5,0x01,0x10,0x23, 0x8E,0x0F,0x01,0x0A,0x00,0x08,0x00,0x0A,0x12,0x02,0xBC,0xFF,0x06,0x60,0x2B,0x05,0x0A,0x64,0x0C,0x03,0x07,0x0F,0x14,0x1E,0x28,0x0A,0x0F,0x1E,0x28,0x3C,0x05,0x04,0x06,0x02,0x03,0x01
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x10,0x00,0x00,0x00,0x00, 0x00

forward
TXD,0xA5,0x01,0x10,0x23, 0x4E,0x0F,0x01,0x0A,0x00,0x08,0x00,0x0A,0x12,0x02,0xBC,0xFF,0x06,0x26,0x11,0x05,0x0A,0x64,0x0C,0x03,0x07,0x0F,0x14,0x1E,0x28,0x0A,0x0F,0x1E,0x28,0x3C,0x05,0x04,0x06,0x02,0x03,0x01
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00
TXD,0xA5,0x01,0x11,0x05, 0x5D,0x07,0x45,0x07,0x45, 0x00

backward
TXD,0xA5,0x01,0x10,0x23, 0x4E,0x0F,0x01,0x0A,0x00,0x08,0x00,0x0A,0x12,0x02,0xBC,0xFF,0x06,0x26,0x11,0x05,0x0A,0x64,0x0C,0x03,0x07,0x0F,0x14,0x1E,0x28,0x0A,0x0F,0x1E,0x28,0x3C,0x05,0x04,0x06,0x02,0x03,0x01
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00
TXD,0xA5,0x01,0x11,0x05, 0xCF,0xFA,0x84,0xFB,0x5A, 0x00



RXD解析後的資料
RXD,0xA5,0x03,0x10,0x06, 0x54,0x4A,0x00,0x00,0x19,0x0E, 0x00

評分

2

查看全部評分

回復

使用道具 舉報

 樓主| 發表於 2025-8-31 10:33:46 | 顯示全部樓層
本來想要用個簡單的三機管直接連到 SIT3088E 的A腳做成反相器, 類似簡易型 RS232 的方法, 用來偷聽或者注入自己的控制訊號, 結果發現它類似 CAN BUS 電位位準 2.5V中值才是 IDLE 狀態, 或許要電容隔開直流. 看來有些難度了, 或許要買 SIT3088 兜起來才可.

這個是類似的RS232的簡易版, 很多低速連PC的設備也是這樣實作, 以前做的燒錄機也用115200BAUD沒問題, 只要MCU軟件設計有握手容錯就十分可靠.
https://kswichit.net/ap275/ap275.htm

評分

1

查看全部評分

回復

使用道具 舉報

發表於 2025-8-31 11:04:40 | 顯示全部樓層
印象中RS485的絞線訊號High Low是A,B點的電位差。

不知X...大的待測物用途?從UART監看相對比較簡單。

如果還要插入自己的控制訊號,那要非常了解彼此的通訊協定。{:16_1774:}

評分

1

查看全部評分

回復

使用道具 舉報

發表於 2025-8-31 12:46:07 | 顯示全部樓層
本帖最後由 阿明先生 於 2025-8-31 12:57 PM 編輯
big619 發表於 2025-8-31 11:04 AM
印象中RS485的絞線訊號High Low是A,B點的電位差。

不知X...大的待測物用途?從UART監看相對比較簡單。


UART用示波器監看、其實RS485也沒差別很多、RS485是A和B相位差180的差動輸出、、抗突波雜訊RS485傳輸線可以拉比較長、

RS232.jpg

評分

2

查看全部評分

回復

使用道具 舉報

 樓主| 發表於 2025-9-1 18:05:39 | 顯示全部樓層
實驗幾乎成功讀取CAN BUS CAN_HI, 不過還差一些些, 大概80% 完成度

一個試驗性的電路掛到 CAN BUS CAN_HI 那根線上, 大概就是一個最簡單的三極管放大器, 模擬沒辦法搞出方波, 暫時用SIN替代, 理想中它可以把 CAN_HI 變成反相的 TTL 訊號, 如此則可以直接用 MCU 的 UART 收訊.

CANH_probe.JPG

CANH_probe.JPG


搭棚實驗後發現由 CAN_HI BUS 上讀取的數據有些不見了, 有些有多出來.
掛上LA再比對, 發現這個電路帶來意外的驚喜, 到底甚麼鬼..

發送時前面 0xa5, 0x01 變成很多雜訊.

CANH_TXD_ng.JPG

CANH_TXD_ng.JPG


接受時完全合格無誤.

CANH_RXD_ok.JPG

CANH_RXD_ok.JPG


接受完畢, 後來又多了一堆不知道哪來的雜訊.

CANH_TAIL_ng.JPG

CANH_TAIL_ng.JPG



回復

使用道具 舉報

 樓主| 發表於 2025-9-2 09:02:51 | 顯示全部樓層
big619 發表於 2025-8-31 11:04 AM
印象中RS485的絞線訊號High Low是A,B點的電位差。

不知X...大的待測物用途?從UART監看相對比較簡單。

杭州一家公司販賣輪椅控制器, 他們售後表示不對外公開控制訊號的協議, 估計軟體硬體設計是代工外包的設計, 跟 open wheelchair 概念不兼容, 好奇一下就扒開大玩具看看有甚麼奧秘, 中國市場內銷外包都嚴重競爭的產物.
回復

使用道具 舉報

 樓主| 發表於 2025-9-2 09:28:43 | 顯示全部樓層
參考了D大提供的IC資料, 同樣是RS485 transciver, SN75176 和 SIT3088E 應該是可直接替換的, 所以AB口的電路應該差不多.
看完內部的電路圖, 修改偶的那個外掛的電路, 確定可以直接監聽 CAN BUS, 結果是正常.

RS485 AB 口是四臂電橋輸出

RS485_transciver_AB_circuit.JPG

RS485_transciver_AB_circuit.JPG


所以直接掛個LED用近似TTL的位準連到 MCU UART RXD 沒問題, 看來最簡單就是最好的臨時方案.
這效果出來了, CANH 訊號監聽也行, 跟RXD/TXD的訊息完全同步, 飛線到TXD/RXD的監聽任務就可以抹去. 單一個監聽電路搭配ARDUINO軟件就可以解碼.
總結它的設計,
普通 UART 搭配 RS485收發器,
調成 CAN BUS 的電氣訊號, AB 都是2.5v 表示 logic1, AB 差分3v 表示logic0),
通訊協議應該自訂的, 前面已經擷取過.
通訊的內容需要繼續研究.

CANH_TXD_RXD_ok.JPG

CANH_TXD_RXD_ok.JPG



評分

1

查看全部評分

回復

使用道具 舉報

 樓主| 發表於 2025-9-11 22:09:03 | 顯示全部樓層
本帖最後由 xiaolaba 於 2025-9-11 10:22 PM 編輯

CAN_BUS 偷聽成事了, 自然下一步就是希望掛上自己的控制線路, 可是手邊沒RS485的IC, 就自作聰明, 想搭個簡易的棚架, 試試看.
手邊只有一盤10K貼片電阻, 就焊兩組電阻分壓電路, 試圖模擬CANH CANL 3.2V 和 1.5的驅動電壓, 果然是自作聰明, 30K分壓器沒辦法把 CANH 拉到3.3V, 量出來只有大約2.7V, 自然DIY控制器實驗就沒成功.

想想也是, 人家千錘百鍊的 RS485 收發器就賣幾毛錢, 啥子隨便6顆10K電阻能搞定? 還差些火侯. 不過還是要繼續嘗試其他方案, 一直等到IC到貨為止, 萬一不小心矇到, RS485 收發器也可以省略, 不是錢的問題, 純粹嘗試不同的設計的驗證.

有請前輩們提出建議.

IO_CAN_BUS_IMITATOR.JPG

IO_CAN_BUS_IMITATOR.JPG
回復

使用道具 舉報

 樓主| 發表於 2025-9-29 09:22:01 | 顯示全部樓層
讀 CAN BUS 的訊號的實驗, 用另外的方法, 直接用一個 PC817  光耦合掛到 AB兩根線上, 猜想他可以, 盲換兩只腳. 結果出乎意料, 靠近電腦端的發送訊號可以正常讀取, 但是馬達控制器回報的訊息收不到. 所以猜想的並不符合實際, 估計還是電流訊號不足以驅動.

沒動作時, SIT3088E以電阻分壓串2k/220/2k, 5V供電, 使 A 比 B 高0.2V, 此時 UART 輸出掛 1.
再次確認, UART輸出掛0時, SIT3088E (B)腳 的電壓比 (A) 腳高2V, 有訊息顯示, 這說明它沒有完全按照 CAN BUS 規範來做, 大約就是變化型的 RS485.


參考CAN硬體特色

CAN網域內的所有設備(節點)只須透過兩條扭絞在一起的導線即可進行訊號的傳輸,按CAN的ISO規範,雙絞線的終端會以120Ω的阻抗連接以維持訊號的穩定與匹配。

作用原理:

當CAN bus傳送顯性(Dominate)信號(0)時,會將導線的CAN_H訊號拉高、CAN_L訊號拉低,而訊號的高低之間便會產生一明顯的電位差。一般傳送僅拉高單一訊號相比,CAN H/L之間的相位差距更高,這也是為什麼CAN bus非常有利於長距離的訊號傳輸。
而傳送隱性(Recessive)(1)信號時, CAN_H與CAN_L訊號皆不作動。
按ISO規範,顯性(Dominate)信號的CAN_H、CAN_L之間的電壓差為2V。


LTSspice 模擬的檔案.
一切都是分壓電阻的事情.
RS485_resistor_simulator_NPN_PNP.zip (1.17 KB, 下載次數: 0)

RS485_AB_bias

RS485_AB_bias
回復

使用道具 舉報

 樓主| 發表於 2025-10-5 12:32:43 | 顯示全部樓層
假期的玩具, 幾毛錢的 SIT3088E RS485 收發器搭個棚測試一下, 突然發現原作者懶惰是有原因的.

SIT3088E_shake

SIT3088E_shake


RS485/CAN_BUS 除非用專門的硬體控制器, 不然一般的MCU實現相同的功能最簡單就UART直出, BUS 上會因為 READ/WRITE 控制訊號時序不當掛起來, 導致某一邊無法通訊.
*RE/DE 兩個腳連在一起, 直接交由 UART 的 TXD 輸出腳控制, 簡單容易, 可以軟體解決或者, 加一個反向器把 UART 的訊號倒過來再交給 RE/DE, 原來的訊號則直接驅動 DI.
看來也只能學人家一樣懶惰.

SIT3088E_why_TX_RW_inverted

SIT3088E_why_TX_RW_inverted
回復

使用道具 舉報

發表於 2025-10-5 13:23:02 | 顯示全部樓層
RS-485 是半雙工的通訊方式,一般都會做 Master 與 Slave 的主從分類,由主機來決定哪個時間要傳送或接收,如果程式沒寫好 T/R 的時序或檢測碼就會可能收不到想要的資料。
RS-422 是全雙工的共要四條線可以同時雙向的通訊,所以沒有 T/R 的時序問題程式開發上簡單許多。

評分

1

查看全部評分

回復

使用道具 舉報

 樓主| 發表於 2025-10-15 22:52:34 | 顯示全部樓層
本帖最後由 xiaolaba 於 2025-10-15 11:23 PM 編輯

先前買的1.8元一片的 TTL RS485 轉換小板終於到貨了, 看起來有些複雜, 雖然暫時用不上不過到貨還是應該測試一下, 順道看看設計. 它用了一片 CD4069 內涵六個反向器 (NOT GATE) 配上MAX485, 目的就是讓 MAX485 輸出和輸入 (*RE / DE) 控制腳受到 TXD 的反向訊號控制, 另外再增加LED顯示的功能. 用作 CANH CANL 通訊正常, 確認收貨.

SIT3088E 和 MAX485 可以 PIN-to-PIN 直接代用, 因此用一個三極管 Q1 組成反向器, 配上自己搭棚的 SIT3088E, 能夠達成同樣的功能. 話說 RS485 大約是 2MHZ 以下的速度, 不同種類的反向器都可應用, 這個低速 19200 BAUD 的訊號當然沒問題.

天下文章一大抄, 看起來終於明白 MAX485 用途和設計, 配合 UART 是最直觀的轉換電路, 不是這個商品的設計者懶惰, 而是最便利的方法把 0~5V 邏輯訊號變成 RS485 的差分訊號.



CD4069_MAX485_SIT3088E.JPG

CD4069_MAX485_SIT3088E.JPG

回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

手機版|禁閉室|連繫我們|痞酷網電子技術論壇

GMT+8, 2026-1-13 12:27 AM , Processed in 0.037064 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回復 返回頂部 返回列表