簡體   English   中英

如何在UART上接收多條消息?

[英]How can I receive multiple messages on UART?

我有一個RDM6300 RFID讀寫器。 它可以讀取RFID標簽,並通過UART將數據發送到微控制器。 到目前為止,我與多個微控制器合作,其中STM32F04具有多個UART“端口”(最多8個發送器和接收器)。 Arduino有一些,但還不夠。

我想擁有25個RFID讀取器(幾乎同時讀取),但是我找不到一種將所有讀取器中的數據發送到一個微控制器的方法。

有沒有辦法將25個閱讀器連接到一個微控制器?

您有25個東西以9600 bps的速率傳輸。 您有一個運行在180 MHz的MCU,帶有8個UARTS和許多定時器捕捉通道 (32個通道,其中30個可用在100引腳STM32F427VITx )。 25個輸入中的8個由UART處理,其中17個需要通過其他方式處理。 將它們連接到計時器捕獲通道。

MCU以180 MHz運行,輸入以9600 Hz改變狀態,這意味着事件之間有18750個時鍾周期。 如果您不使用HAL,應該足以處理所有它們。

  1. 讀取定時器狀態寄存器,檢查捕獲事件並清除它們
  2. 檢查引腳狀態,低表示幀的開始
  3. 存儲該通道的捕獲寄存器值
  4. 繼續檢查捕獲事件
  5. 如果有一個,清除它
  6. 讀取捕獲時間戳,從中減去步驟3中存儲的值
  7. 計算狀態相同時接收到的位數
  8. 繼續這樣做,直到有9位(起始位+ 8個數據位)和引腳上的高電平輸入為止

對所有17個通道並行執行上述操作。 您需要為定時器使用合適的預分頻器,以便它們在讀取全幀時不會溢出(9 * 18750 = 168750周期)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM