一種高可靠性的計算機與FPGA串行通信的實現
摘要:主要介紹以FPGA為硬件平臺的下位機與計算機(上位機)進行串行通信,將串口功能集成到單片FPGA內,運行中波特率可調,經過適當的倍、分頻實現了零誤差的波特率發(fā)生器,提高了數據傳輸的可靠性。上位機上編寫VB程序負責主設備的發(fā)送命令并接收顯示來自FPGA回發(fā)的數據,實驗結果表明通信可行,可靠性高。
關鍵詞:FPGA;串行通信;VB;可靠性
串行通信廣泛應用于數字通信和工業(yè)控制領域,傳統(tǒng)的專用串口通信芯片接口復雜,體積較大,隨著微電子技術的發(fā)展,FPGA的等效門數迅速增加,可以完全將串口功能集成在單片FPGA內,減少了外圍電路的體積,降低了設計的復雜性,同時也提高通信的可靠性。
1 串行通信的原理
串行通信是指通信的發(fā)送和接收方之間數據信息的傳輸是在單根數據線上完成,以每次一個二進制的0或1為最小單位逐位進行傳輸,本文采用異步的全雙工通信方式,數據傳輸是以字符為單位,如圖1所示為異步通信的幀格式。
其中,一幀數據包括起始位、數據位、校驗位和停止位。線路空閑狀態(tài)下,發(fā)送和接收端均保持高電平;通信開始時,通信一方發(fā)送一個起始位(低電平),表示通信的開始,緊接著發(fā)送有效的數據位,通常約定的數據位有5,6,7或者8位,根據用戶需要進行設定,然后發(fā)送校驗位,這里選用偶校驗,最后發(fā)送停止位,可以是1,1.5或2位不等,用戶自行約定即可。本文選用8位數據位、偶校驗、1位停止位,可以實現所有字符的收、發(fā)。
串行通信傳送數據是按位順序進行,最少只需要一根傳輸線即可完成,要實現全雙工的通信共需要2根數據線和1根接地線即可,通信雙方可以在同一時刻進行發(fā)送和接收的操作。本文采用的是RS 232C串行接口標準,是目前PC機與通信工業(yè)中應用最廣泛的一種串行接口。但計算機的串口是用正負電壓來表示邏輯狀態(tài),與FPGA電路板上以高低電平表示的邏輯狀態(tài)的標準不同。因此,為了能夠同計算機進行通信,必須在兩者之間進行電平的邏輯關系轉換,本文采用集成電路芯片MAX232來完成兩種電平的雙向轉換。如圖2所示。
評論