波特率轉換

波特率轉換

波特率轉換是將一種波特率轉換成另一種波特率的操作。 以單片機為核心的測控系統與上位計算機之間的數據交換通常採用串列通信的方式。在實際工作系統中,常常存在PC 機採用一種波特率, 而單片機控制的下位系統工作來用另外一種波特率的情況。這種情況下就需要波特率轉換操作。

概述

串口通信,就是RS-232/RS-485通信,要求通信的雙方波特率等通信格式一樣才可以通信成功。可是在許多情況下,兩種不同格式比如不同波特率的串口也要相互通信,這就必須進行串口波特率等格式的轉換。解決波特率轉化的途徑有兩種一是用單片機,接收時設定為跟上位PC機一致的波特事進行接收。傳送時再設定為跟下位系統相同的波特察傳送數據;二是用FPGA , 利用VHDL設計出異步串列通信電路,直接接收PC 機的數據,自行轉化為另一種波特率的事行數據再傳送出去。

串列異步通信協定

異步通信協定規定每個數據以相同的位串列傳送,每個串列數據自起始位、數據位、奇偶校驗位和停止位組成。

起始位:傳送設備傳送一個數據時,先發一個邏輯“0”信號,占一位,提醒接收方準備接收。

數據位:信號位數可以為5、6、7或8 位。數據位從最低有效位開始逐位傳送。

奇偶校驗位:用於進行有限差錯檢測, 占一位。通信雙方需約定-致的奇偶校驗方式。

停止位:用於標誌一個數據的傳送完畢.一般用高電平.可以為1 位、1.5位、2 位。

波特率( Baud ):它是以每秒傳送的二進制位數來度量的,單位為比特/秒(b/s)。PC機常用的波特率有: 50 、75 、110、150、300、600、1200、4800、9600和19200b/s 等幾種。

串列通信數據波特率轉化器

首先我們約定, PC機與FPGA 進行串列通信的波特率為9600,信息格式為8 個數據位, 1 個停止位, 1 個奇偶校驗位。

控制下位系統進行工作的波特率為375k ,其信息格式為8 個數據位, 1 個停止位, l 個奇偶校驗位。

對於接收Baud9600 (每位敷掘的位寬大約為104 μ s )的數據而言, 採用的晶振必須要大於2 × 9600= 19200Hz 才行,考慮到傳送數據需要產生375k 的時鐘,被選用能被整除的24MHz 晶振。

接收過程始於在TXD9600端檢測到負跳變時。此時,利用24MHz 的晶振分頻得來的1MHz不斷採樣, 採樣速率為波特率的104倍。。一旦檢測到負跳變, 104計數據立即復位開始記數,當記數到52時把此刻的採樣值暫存起來, 記數滿104時一位數據採樣完畢, 清零104 計數器,重新開始記數,對下一位數值進行採樣暫存。

相關詞條

熱門詞條

聯絡我們