RS422/RS485 Shield

RS422/RS485 Shield 為 OpenMV Cam 提供適用於工業匯流排的長距離差動序列連線,並具備寬輸入電源、突波保護以及 ADC/數位 I/O。

RS422/RS485 Shield

如需完整的資料表、照片與訂購資訊,請參閱 RS422/RS485 Shield 產品頁面

重點特色

  • 10 Mb/s RS-422 或 RS-485,具板載終端電阻

  • 6-36 V 輸入,具反向電壓耐受能力

  • 0-5 V ADC 輸入,具 ±36 V 過電壓保護

  • 0-5 V 數位 I/O,用於相機同步觸發,具短路保護

接腳圖

RS422/RS485 Shield 接腳圖

接腳參考

接腳

功能

P4

RS-422 / RS-485 TX → 驅動差動線路輸出

P5

RS-422 / RS-485 RX ← 接收差動線路輸入

P6

經位準位移的 AIN 回讀(P6 上為 0–3.3 V)

P10

SYN——端子台上的開漏式數位 I/O

PWR 輸入

端子台上的 6–36 V 寬輸入(具反向電壓耐受能力)

AIN 輸入

端子台上的類比輸入

VIN 輸出

由板載穩壓器提供 5.4 V、最高 600 mA

3.3V 電源軌

為擴充板的板載電子元件供電

GND 電源軌

共用接地

備註

AIN 具備高達 ±36 V 的過電壓保護,預設為 0–5 V 電壓輸入,並降壓縮放為 P6 上的 0–3.3 V。將擴充板正面的 4–20 mA 模式分流器橋接起來,即可將 AIN 切換為 4–20 mA 電流迴路輸入。

備註

SYN 是一條開漏式數位線路,相機端上拉至 3.3 V,SYN 端子側上拉至 5 V。預設為輸入——擴充板會將 SYN 上的 0–5 V 位準位移降至 P10 上的 0–3.3 V。變更板載焊接跳線即可將 P10 翻轉為輸出,將 P10 上的 0–3.3 V 位準位移升至 SYN 上的 0–5 V。

備註

P4、P5、P6 與 P10 各接腳預設皆透過焊接跳線連接至相機——開斷任一想回收作為其他用途接腳上的跳線即可。P6 的跳線位於擴充板背面;P4、P5 與 P10 的跳線位於正面。

備註

板載終端電阻預設為連接狀態——開斷對應的背面焊接跳線即可將其斷開。其中兩個用於 RS-422 A/B 對,另兩個用於 RS-422 Y/Z 對(同時兼作 RS-485 A/B 終端),共計四個跳線。

關於 RS-422 與 RS-485

這兩種標準皆以平衡(差動)訊號的形式透過雙絞線傳送序列資料,以實現長距離、耐雜訊的連線:

  • RS-422 透過四條線進行全雙工通訊。驅動器在標示為 Y/Z 的專用 TX 對上傳送,對端則在標示為 A/B 的獨立 RX 對上回傳。每對線路有一個發送器和最多十個接收器。

  • RS-485 通常透過兩條線進行半雙工通訊。傳送與接收共用同一對線路,在 RS-485 術語中稱為 A/B,但實體上即為本擴充板上的同一組 Y/Z 線路。最多可有三十二個節點共用此匯流排,且其中任一節點皆可驅動之。

擴充板如何同時支援兩者

本擴充板搭載兩個 THVD1426 收發器,每個皆可處理任一標準:

  • 第一個收發器驅動 Y/Z 對(同時兼作 RS-485 A/B 對)。它是唯一接上驅動器的收發器,因此無論在何種模式下,相機所有對外的流量皆透過此對線路送出。

  • 第二個收發器驅動 A/B 對。其驅動器已被固定關閉——此收發器僅供接收,且只在 4 線式 RS-422 模式下才會用到。

兩個收發器的接收器始終啟用,且其 RX 輸出經 AND 邏輯合併至一條回到相機的接收線路上:

  • 2 線式 RS-485 模式下,僅第一個收發器處於作用狀態。將匯流排接至 Y/Z;A/B 側則閒置不動,AND 閘僅將第一個收發器的 RX 訊號傳遞過去。

  • 4 線式 RS-422 模式下,對端在 A/B 對上向相機傳送(由第二個收發器接收),同時相機在 Y/Z 上傳送(第一個收發器自身的接收器會將其送出的資料回讀回來)。AND 閘將兩者合併——無論哪一對線路出現低脈衝(起始位元、資料),都會傳達到相機。

端子台標籤反映了此雙重對應關係:

  • RS-422(4 線式)——TX 從 Y/Z 輸出,RX 從 A/B 輸入。

  • RS-485(2 線式)——TX/RX 共用 Y/Z 對(即 RS-485 術語中的 A/B)。請將擴充板上的 A/B 端子保持未連接狀態。

使用方式

備註

下方的 UART(3) 周邊編號依循 STM32 的對應關係。在其他處理器上,接至這些接腳的匯流排可能不同——請查閱您開發板的參考資料。

在 P4(TX)/P5(RX)上與差動序列對端通訊:

from machine import UART

uart = UART(3, baudrate=115200)
uart.write("hello\n")
print(uart.read())

透過經位準位移的 P6 接腳讀取 AIN 端子台輸入:

from machine import ADC
import time

ain = ADC("P6")

while True:
    v = ain.read_u16() * 3.3 / 65535
    print("AIN:", v * (5.0 / 3.3), "V")
    time.sleep_ms(100)

對 SYN 線路上的下降緣作出反應——例如,與另一個將 SYN 拉低的裝置同步相機:

from machine import Pin

def on_sync(pin):
    print("SYN falling edge")

syn = Pin("P10", Pin.IN)
syn.irq(on_sync, Pin.IRQ_FALLING)