2011-08-19 20 views
0

你好,我是一個新手試圖證明RS 232 Full調制解調器的工作,還有一個RS 422(RX,TX,RTS, CTS)如何證明RS 232全調制解調器工作,RS 422工作PC到PC和LOOP返回

這2個端口是在一個自定義設計的板上,我需要證明他們正在工作。

我能夠確認在註冊級別的工作,但我需要證明使用Minicom或任何其他自定義程序等軟件的工作。

我怎樣才能證明從一臺PC這些端口的工作使用DB 9連接和環回不同的PC太

有人可以幫助我?我是否需要使用任何額外的硬件來證明在Linux中的工作?

+0

究竟是什麼問題?你建立電路板,開啓電路板,看看它是否傳輸數據。這讓我相信問題在於你還沒有構建任何硬件,並試圖使用某種模擬來證明硬件工作。請詳細說明。 –

+0

@Warren Young HEllo Warren該板已經制作好了,我只需要知道如何進行連接,該板使用Exar芯片作爲Uart.And PLX 9030作爲Pci芯片。RS 232 FULL MODEM &RS 422(RX,TX,RTS,CTS)已經擴展到測試連接器。因此RS322 FULL MODEM必須在環回/ PC到PC中證明。類似地,我需要證明RS422 ..希望你明白我的觀點。 ..註冊級別意味着我使用ioctl命令直接讀取/寫入THR,RHR,MCR寄存器....謝謝 – linuxstack

回答

1

串口測試的最常見類型可能是環回測試。創建一個測試夾具,將端口的輸出引腳連接到輸入引腳(TX-> RX,RTS-> CTS等)。如果每個輸出引腳都沒有匹配的輸入引腳,則需要進行三路連接。

創建回送後,您需要編寫鍛鍊引腳的軟件。如果TX和RX已連接,則可以發送一個字節並確認它已回顯。對於控制銷,切換它們並確保連接的另一側看到轉換。 確保您鍛鍊串口的每個引腳。

請注意,您應該以多種波特率運行TX-> RX數據回送。在設計中出現信號完整性問題時可能會出現在較高波特率下。在電路板上也有可能出現信號連接不良,電感和電容會在更高的波特率下被屏蔽。因此,以最慢的波特率,最快的波特率和中間的1-2運行數據環回是一個好主意。

你應該做的另一件事是波特率準確度測試。這將證明驅動UART的時鐘以正確的頻率運行,並被正確分配。以特定的波特率傳輸X字節數量,並驗證它們是否到達了預期的時間。要得到一個準確的數字,你需要繞過OS串口驅動程序中的任何緩衝(例如使用直接寄存器I/O),並確保適應任何開始/停止位開銷(見下面的註釋)。

但是,環回測試並非詳盡無遺。它只能證明設備可以與自己交談。該設備可能仍然存在一些無法在本地檢測到的缺陷(例如電壓水平)。所以,你也應該用外部硬件來運行一些測試。將電路板連接到另一個系統並運行測試(例如使用minicom)。確保他們可以相互交談。

即使是外部通信測試也會漏掉一些東西。您的主板的信號質量仍然很差,但對於其他設備而言,它恰好足夠好。要準確驗證信號質量/時序,您需要示波器。

當您正在運行通信測試時,將示波器探頭連接到各種信號並驗證信號完整性。確保電壓電平有效,看到乾淨的低/高位轉換,並且數據引腳的時序對於指定的波特率顯示正確。 (與前面介紹的基於軟件的方法相比,示波器可以更準確地測量波特率。)

+0

如果試圖按數據傳輸速率測試波特率,則必須首先確定每個傳輸的位週期數數據字節 - 它不是8,但取決於開始和停止位更大。查看UART數據表。此外,大多數現代操作系統使用緩衝的串行驅動程序,因此您必須找到一種方法來禁用這些驅動程序,測量傳輸到接收器,和/或測量足夠的數據,以免緩衝不是因素。 –

+0

對於環回測試,您通常不會有任何流量控制,因此沒有啓動/停止位。但是你對駕駛員的緩衝是正確的。 (上次我做了一個波特率精確度測試,是在DOS下用直接寄存器I/O。) –

+0

開始和停止位與流量控制無關,但是每個單獨的數據字節實際上都放在電線上。它們是在允許接收機與發射機同步之前插入的額外比特週期。以字節爲單位的數據吞吐量將是波特/字符長度,而不是波特/ 8。 –