題:
長線上1 kHz時鐘
Geoxion
2019-11-01 14:34:34 UTC
view on stackexchange narkive permalink

我將使用一根連接了許多節點的導線,最長可達1000 m。該線將沿著CAN總線和地線運行,並且必須將1 kHz方波50%佔空比時鐘信號傳輸到每個節點。

我將通過3.3 V微控制器運行此信號,並且3.3 V微控制器和時間測量電路也將接收信號。

簡而言之,時鐘將用作全局時間,而時間測量電路將確定事件與時鐘沿之間的時間差。該電路能夠以約0.1ns的精度進行測量。理想的情況是使時鐘與時間測量電路一樣精確。

測量/知道從主機到節點的任何延遲,並加以考慮。

我該怎麼做才能提高此電線/信號的可靠性和穩定性?

因為這是一個非常慢的時鐘,所以我認為不需要做大量的工作,並且像節點上的施密特觸發器這樣的簡單事情就可以了。


下面是一個圖:

block diagram

要測量到所有節點的延遲,主節點會停止所有節點的工作 (通過CAN進行通信)。 然後,它要求第一個節點反射它將在另一條線上接收到的信號。 所有其他節點現在將使導線懸空。

主機將其右導線設置為高電平,從而觸發定時電路啟動。 延遲一段時間後,信號將到達該節點,然後該節點將在第二行通過它。 再次延遲後,主機將收到該信號,這將停止計時電路。

現在,主機可以讀取時間電路值並確定延遲。 知道所有節點延遲後,主機將開始操作。 所有節點將使返迴線懸空,並將時鐘(主控權)線作為輸入。

當其中一個節點發生事件時,將觸發時間電路。 時鐘的下一個脈衝將停止計時電路。 現在我們知道了事件開始與下一個時鐘脈沖之間的時間。 節點發回檢測到該事件的時鐘計數以及時間電路指示的時間。連同測得的延遲,主機可以獲取事件的全球時間。

哦,可接受的精度是多少:目標是1 ns,滿意3 ns,滿意10 ns。根據系統的最終設計,可能會多次觸發事件並將結果平均,這也可能會提高準確性。

實際時間不是我決定的,而是TI決定的。 TDC7200

應用程序是TDOA。將事件時間輸入到算法中,以確定事件的起源。事件是檢測到無線電信號(要獲得我想要的準確度也是一個挑戰)。

*因為這是一個非常慢的時鐘*它是**但** 1 kHz方波包含**諧波**,只要1 kHz的斜率足夠陡峭,那些諧波就可以擴展到非常高的頻率(可能是GHz)。那些高頻諧波會在電纜的兩端“反射”並扭曲1 kHz方波!因此,請限制帶寬並以其特性阻抗端接電纜。
因此,比頻率更重要的是帶寬:您需要多快的時鐘頻率才能使接收器處於時鐘邊緣?與Can Bus的融合程度如何?
(這裡還有很多問題要提出:時鐘的抖動/穩定性要求,Allen開發人員等等:那麼:1 kHz時鐘的用例是什麼?)
@MarcusMüller的想法是要有一個主時鐘進行計時,並且要跟隨其下的節點。主時鐘將從精確的晶體振盪器獲取時鐘,並使用微控制器的定時器外設將其縮放至1 kHz。 節點將使用時鐘進行時間同步。(佔延遲)
好的,這使1 kHz的頻率有點尷尬;但是:同步的目的是什麼?您需要多精確?您打算如何考慮延誤?
(順便說一句,請將此使用信息添加到您的問題中;它會改變我考慮的許多內容!)
正如答案之一所述,RS-485驅動器/接收器和雙絞線用於長距離傳輸。用於多點高速40m通信的驅動程序將在1kHz和1000m處硬壓。更不用說存根長度了。
通過分兩步進行計算,可能會更容易簡化此過程。讓所有節點以足夠高的精度計算本地時間系統中事件的時間。同時,讓節點使用定時電路來量化本地時鐘的行為(即漂移)。這為您提供了很多時間來進行時鐘差異測量,並讓您對其進行後期處理以消除任何異常值。它還可以像電影導演的隔板一樣輕鬆地使用測試信號來校準系統
我建議閱讀有關抖動清除器的數據表和應用筆記
六 答案:
Marcus Müller
2019-11-01 15:24:25 UTC
view on stackexchange narkive permalink

因此,第一個問題將是您需要驅動那條長電纜!一條1公里長的電線簡直是一個大負載,您的微控制器輸出將很難可靠地改變其上的電壓。

請考慮以下事實:導線作為導線與地之間的電容器穿過其環境。因此,您需要一個強大的輸出驅動程序

您希望它在接收器上驅動相對較強的終端負載(例如,可能在75Ω至120Ω左右)。

您需要在接收器處進行適當的過濾以提取原始時鐘。

您將希望使用某種程度屏蔽的電纜,以免接收1000 m的無線電天線接收。

連接了許多節點

這意味著許多節點需要它們自己的接收器。不能在其中的每一個中都放置一個強大的終結器(驅動器上的負載會變得巨大),但是如果不這樣做,則會給這些節點的信號質量帶來麻煩。

對我來說,這聽起來像是您真的想構建多站總線...就像CAN一樣!

或者,您想在每個節點上接收,重新生成(Schmitt-Trigger?)並重新發送時鐘-菊花鍊式連接它們而不是使用線性總線。

將長達1000 m

嗯,這確實是CAN仍支持的邊緣,而且比特率低得離譜(而且並非所有設備都支持最低的CAN速率,IIRC;請在進行投資前檢查一下!)


還要注意,對於該長度,您確實希望CAN總線在屏蔽雙絞線或同軸電纜上運行。以太網電纜便宜,可以在線軸上購買。

考慮您的獨立時鐘:您已經擁有CAN;這很可疑,您需要沿著它另外一條1 kHz時鐘線:您有一種在節點之間進行通信的方式,這種方式比1 kHz週期更精確地計時,因此只需添加一個具有CAN功能的微控制器到每個節點,並添加一個主機,該主機定期告訴他們自從上一個時鐘CAN消息以來已經經過了多少個1 kHz週期–然後,微控制器可以調整內部計數器,並在本地生成集中控制的1 kHz。

如果(且僅當)CAN總線可靠運行時,這可以節省佈線並為您提供可以遠程工作的東西。

其他選項包括添加自行設計的位時鐘觀察器,這些觀察器僅觀察來自主機的傳輸,以了解使用的位時鐘,並使用其在本地生成1 kHz。


一條1000 m長的總線具有附加的時鐘功能,這聽起來像是您應該使用單根CAN總線進行的工作的邊緣。如果在架構上可行,我建議對總線進行分段。 (分段增加了​​複雜性,但通常可以定位故障並使調試起來更容易。)

在如此長的CAN總線允許您使用的非常低的波特率下,您最好還是進行無線連接並擺脫所有電纜連接。所有這些都是電纜與硬件成本之間的權衡,並受到所需可靠性的限制(提示:實際上要加上數字-即使是有線總線也不是無噪聲的,並且您將需要考慮系統會發生什麼情況) CAN總線數據包正在破壞中。)

個人:我不會嘗試構建自己的總線系統。對於長距離,高節點數,人們使用用例優化的現場總線,例如PROFIBUS或EtherCAT,或者僅使用:普通以太網!您可以使用便宜的以太網交換機對以太網進行分段,您可以但不必在其之上運行諸如TCP / IP之類的防丟失協議,帶有連接器的電纜非常便宜,並且經過了充分的測試。


因此,您的應用程序似乎在協調MCU時間:與1 kHz時鐘相比,對於週期性CAN消息,這絕對是更多的工作。如果需要準確性,則可能需要查看NTP之類的互聯網協議,並考慮如何使它們適用於CAN系統(訣竅實際上只是偶爾進行一次雙嚮往返測量)。

PTP比NTP知名度低得多,但它是專為精確定時而設計的。但是,由於您通常可以在一個良好的網絡上獲得亞微秒級的精度,因此精度可能過高,這可能比OP所需的精度高3個數量級。但是,即使便宜的交換機現在也支持PTP(雖然不是必需的,但是如果該交換機支持PTP,則精度甚至更高),並且由於它還用於電信,機器人技術和工業自動化中,我希望它在以太網中得到支持。以及工業和/或戶外使用的開關。
-1
Dave Tweed
2019-11-01 16:45:27 UTC
view on stackexchange narkive permalink

您真的需要認真考慮一下“同時”的真正含義。

在1000米的跨度中,該概念並未擴展到sub-ns範圍。哎呀,經過這個距離要花費超過3000 ns的光脈衝,而在理想的傳輸線上,一個電脈衝將花費超過5000 ns。由於沿途所有節點的加載都會產生R-C延遲,因此您的非屏蔽線甚至會比這更慢。

在每個節點上使用GPS接收器至少會使您下降到數十ns範圍。

評論不作進一步討論;此對話已[移至聊天](https://chat.stackexchange.com/rooms/100582/discussion-on-answer-by-dave-tweed-1-khz-clock-over-long-wire)。
JonRB
2019-11-01 14:38:50 UTC
view on stackexchange narkive permalink

您是否考慮過發送正弦波並在接收端使用比較器來重建方波?

在1公里處,由於傳輸線會衰減所有較高的頻率分量,因此將不會留下太多方波

是的,這是可能的。但是那時我必須產生一個正弦波...但是一個pwm信號和一個電容器應該可以完成這項工作,但是這會使MCU保持繁忙。
-1
確切地說,因此最好以更可控的方式生成這樣的正弦波。創建正弦波的方法有很多,並且有很多不需要MCU時間。我的建議是在生成正弦波,局部更改為方波並使用該信號時。這將確保生成單元看到與其他單元相似的相移(由於濾波)。還要1公里...請確保您有不錯的驅動輸出,因為會有大量的電容
如果“所有較高頻率的分量都將被衰減”,則首先無需產生正弦波-傳輸線將為您有效地做到這一點。當然,這不適用於物理上靠近主節點的“許多”節點。
如果您試圖從正弦波和比較器中重新構成一個定時信號,那麼,任何噪聲(一根1公里長的電纜可能是一個非常大的天線)肯定會轉化為抖動。1kHz信號的亞ns分辨率意味著亞ppm精度。在這種情況下,慢速時鐘不是不利因素嗎?
filo
2019-11-01 21:56:23 UTC
view on stackexchange narkive permalink

如果有雙絞線可用,則可以簡單地使用CAN收發器(注意超時功能)或RS-485收發器來接收信號。他們會從本質上增加一些傳播延遲,但應將其固定。

Polar Bear
2019-11-03 14:57:41 UTC
view on stackexchange narkive permalink

1000 m是一個相當大的距離,可在阻抗之上為電線提供顯著的容量和電感。如果在一端施加1 kHz方波信號,則另一端的信號根本就不會像方波。

這是純物理原理-將電纜的阻抗,電容,電感每米乘以電纜的長度。

有多種方法可以解決部分問題,但通常會增加項目成本。

您是否曾經研究過光纖信號傳輸解決方案?

它對無線電干擾不太敏感,沒有電感/電容效應,信號傳播接近300,000 km / sec。當然,在這樣的距離上信號衰減是不可避免的。

P__J__
2019-11-03 03:18:07 UTC
view on stackexchange narkive permalink

任何東西都需要此時鐘信號IMO。只需定期廣播帶有當前時間戳的CAN消息即可。它將同步節點並將成為內部時鐘校準數據的來源

請記住,節點將無法完美同步(即使您有時鐘信號也是如此),因為信號將在距離最遠的節點> 3usek之間傳播



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 4.0許可。
Loading...