999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種高可靠性的計算機與FPGA串行通信的實現

2011-04-12 00:00:00蔡德勝,方壽海
現代電子技術 2011年19期

摘 要:主要介紹以FPGA為硬件平臺的下位機與計算機(上位機)進行串行通信,將串口功能集成到單片FPGA內,運行中波特率可調,經過適當的倍、分頻實現了零誤差的波特率發生器,提高了數據傳輸的可靠性。上位機上編寫VB程序負責主設備的發送命令并接收顯示來自FPGA回發的數據,實驗結果表明通信可行,可靠性高。

關鍵詞:FPGA; 串行通信; VB; 可靠性

Implementation Between High Reliable Computer and FPGA Serial Communication

CAI De-sheng, FANG Shou-hai

(College of Electronics and Information Engineering, Nanjing University of Technology, Nanjing 210009, China)

Abstract: The serial communication between host computer and Field Programming Gate Array (FPGA) is introduced. In this design, the function of serial interface was integrated to a signal FPGA, the baud rate was alternative in running, a baud rate generator with no error was implemented by appropriate multiplier and divider, and the reliability of the transmission was improved. The host computer sent command to the slave equipment, received and displayed the data which was sent by FPGA. The system is feasible and stabile in running.

Keywords: FPGA; serial communication; VB; high reliability

串行通信廣泛應用于數字通信和工業控制領域\\,傳統的專用串口通信芯片接口復雜,體積較大,隨著微電子技術的發展,FPGA的等效門數迅速增加,可以完全將串口功能集成在單片FPGA內,減少了外圍電路的體積,降低了設計的復雜性,同時也提高通信的可靠性。

1 串行通信的原理

串行通信是指通信的發送和接收方之間數據信息的傳輸是在單根數據線上完成,以每次一個二進制的0或1為最小單位逐位進行傳輸\\,本文采用異步的全雙工通信方式,數據傳輸是以字符為單位,如圖1所示為異步通信的幀格式。

圖1 異步通信字符傳輸格式

其中,一幀數據包括起始位、數據位、校驗位和停止位。線路空閑狀態下,發送和接收端均保持高電平;通信開始時,通信一方發送一個起始位(低電平),表示通信的開始,緊接著發送有效的數據位,通常約定的數據位有5,6,7或者8位,根據用戶需要進行設定,然后發送校驗位,這里選用偶校驗,最后發送停止位,可以是1,1.5或2位不等,用戶自行約定即可。本文選用8位數據位、偶校驗、1位停止位,可以實現所有字符的收、發。

串行通信傳送數據是按位順序進行,最少只需要一根傳輸線即可完成,要實現全雙工的通信共需要2根數據線和1根接地線即可,通信雙方可以在同一時刻進行發送和接收的操作。本文采用的是RS 232C串行接口標準,是目前PC機與通信工業中應用最廣泛的一種串行接口。但計算機的串口是用正負電壓來表示邏輯狀態,與FPGA電路板上以高低電平表示的邏輯狀態的標準不同。因此,為了能夠同計算機進行通信,必須在兩者之間進行電平的邏輯關系轉換,本文采用集成電路芯片MAX232來完成兩種電平的雙向轉換。如圖2所示。

2 FPGA收發模塊的實現

要使FPGA具有數據的收發功能,則收、發兩模塊必不可少,與此相關聯的還需要收、發的時鐘即波特率產生器,收發監視器以及輸入/輸出緩沖器。本文采用先進先出存儲器(First in First Out,FIFO)作為收發數據的雙向緩沖器\\。如圖3所示為FPGA實現串口數據收發的整體框圖。收、發模塊原理基本相同,只是發送區的發送控制信號受FIFO的讀空信號控制。本文重點介紹接收數據的過程。

圖2 電平轉換示意圖

圖3 整體結構框圖

2.1 接收區模塊

接收區模塊負責數據的串行接收并轉換為并行數據,然后送入FIFO存儲器以備后用。它主要由起始位檢測模塊、波特率可調的波特率產生模塊和接收模塊組成。

(1) 波特率產生器

串行通信的傳輸受到通信雙方配備性能及通信線路的特性所左右,收、發雙方必須約定相同的速率進行串行通信,即收、發雙方采用相同的數據傳輸速率,就儀器和工業場合來說,最常見的數據傳輸率有4 800 b/s,9 600 b/s等,現在個人計算機提供的串行端口的數據傳輸率甚至達到115 200 b/s。若傳輸距離較近且設備提供的情況下使用最高的數據傳輸率。本文所列的波特率產生器靈活多變,可以根據實際條件選擇不同的數據傳輸率。設計中添加了一位撥碼開關(Key),故運行中可以在兩種波特率中進行選擇。這里選用了4 800 b/s,9 600 b/s兩種常見的數據傳輸速率,當Key為低電平時選擇4 800 b/s,為高電平時選擇9 600 b/s。當然,以此類推運用二個撥碼開關即可實現4種波特率的互調等。

本文采用50 MHz時鐘源,所以要得到4 800 b/s和9 600 b/s的傳輸率分別需要進行5 208次和31 250次分頻。分頻參數如表1所示。從表中第1,3兩行可以看出如果只用系統提供的50 MHz時鐘源,得到的兩種波特率均存在誤差0.006 4%。受文獻\\啟示,可以靈活運用倍、分頻原理進一步減小誤差。從表中第2,4行可以看出,當時鐘提高到150 MHz時,兩種數據傳輸率的分頻系數剛好能取到整數,也就是說實際可以得到理想的數據傳輸速率。但從50~150 MHz需要經過3倍頻,如果硬件允許的情況下可以采用3倍頻,能夠使傳輸可靠性更高,本文采用的就是此方法。由于設計中采用的硬件是Altera公司Cyclone Ⅱ系列FPGA,擁有2個鎖相環,可以進行靈活的倍、分頻,所以能夠滿足3倍頻的要求\\。

(2) 起始位檢測器與接收模塊

為使得程序清晰,這兩個模塊用狀態機進行實現,如圖4所示。系統復位后進入空閑狀態,空閑狀態時起始位檢測器不斷檢測接收管腳(RxD)上的信號,當檢測器檢測到低電平到來后,狀態轉移到接收狀態,接收模塊便按照約定的波特率開始接收數據,如圖5所示。與此同時建立相應的接收位計數器,當計數滿11后(1位起始位、8位數據位、1位校驗位和1位停止位),狀態又反跳到空閑狀態,如此循環下去,不斷接收來自上位機發送的數據。同時為使得接收的數據更加穩定,設計時在接收模塊接收時采用中間采樣的方法,如選擇9 600 b/s的數據傳輸率,則在半分頻系數即7 812時采樣數據。

圖4 接收區控制狀態機

2.2 存儲器

接收區接收一幀數據后將數據位存入臨時寄存器中,為防止新數據對其覆蓋,故在此添加一個存儲器,每接收1 B數據后將臨時寄存器中的數據寫入FIFO中。這里采用了異步的先進先出存儲器,實現簡單,直接調用相應的IP核\\。模塊中選擇8位數據位,存儲深度可根據器件特性靈活選擇,這里選則4個字的存儲深度。本文只是為了測試通信的正確性,且收、發速率相同,所以4個字的存儲深度能夠滿足要求。FIFO外部管腳主要包括讀/寫時鐘,數據輸入/輸出以及讀空信號,實驗中讀空信號rdempty送到發送檢測器輸入端用來控制FIFO對外的數據輸出。如圖6所示為其在Quartus Ⅱ下的功能仿真圖。wrclk和rdclk分別為寫時鐘和讀時鐘,當寫信號wrreq有效時將外部數據data寫入FIFO,本設計中讀信號rdreq由讀空信號rdempty控制,當讀空信號rdempty為低電平(FIFO非空)時讀信號rdreq有效,此時將FIFO中的數據讀出并通過q端輸出,讀空FIFO后讀空信號rdreq跳到高電平。

為了驗證PC機與FPGA硬件的通信,上位機采用Visual Basic開發Windows下的測控軟件。就串口而言,利用VB開發了串口通信程序有兩種方法:一是使用MSComm串口控件;二是調用Windows API函數。本文采用了前者,與調用API函數相比,MSComm控件實現更加方便、快捷。

MSComm是VB對使用串口通信的用戶定制的控件,它提供了一系列標準通信屬性和方法,簡單編寫相關程序便可實現串行端口的連接。主要用到的屬性如表2所示\\。

為驗證FPGA與PC的通信,需要編寫發送和接收程序,為簡化程序,部分屬性直接在注冊表中設定。如InPutMode設定為1即二進制方式讀取數據;由于程序接收部分使用OnComm事件,所以這里把SThreshold屬性設定為1,而RThreshold屬性設定為發送數據的字節數,即接收緩沖區接收到全部字節數后MSComm控件觸發OnComm事件,執行相應的接收程序。InBufferSize和OutBufferSize均設置為1 024即1 KB

End Sub

4 實驗驗證

實驗過程中串行數據的收、發等功能在Altera公司的Cyclone Ⅱ系列EP2C5芯片下實現,在VB 6.0中編寫相應的FPGA與PC通信的調試窗口,如圖7所示為數據傳輸率9 600 b/s的實驗結果。

圖7 FPGA與PC通信界面

打開應用程序,設置好通信端口、約定的通信速率、數據位等,在相應的輸入框輸入“FPGA與PC通信成功!”字符,點擊5次發送,從顯示區可以看到理想的結果,實驗結果表明FPGA與PC通信可靠。

主站蜘蛛池模板: 国产精品.com| 亚洲欧美激情另类| 日韩不卡免费视频| 国产成人精品一区二区秒拍1o | 国产精品偷伦在线观看| 怡春院欧美一区二区三区免费| 国产精品视频公开费视频| 国产亚洲欧美日本一二三本道| 国产主播福利在线观看| 特黄日韩免费一区二区三区| 久久综合国产乱子免费| 999精品视频在线| 欧美日韩国产精品va| 亚洲av日韩av制服丝袜| 免费三A级毛片视频| 午夜视频www| 潮喷在线无码白浆| 91在线视频福利| 久久精品无码一区二区日韩免费| 91九色视频网| 国内精品免费| 欧美日韩v| 亚洲精品动漫在线观看| 综合亚洲色图| 久久免费视频播放| 日韩精品亚洲人旧成在线| 亚洲欧洲日韩国产综合在线二区| 国产成人AV综合久久| 国产区网址| 国产在线观看人成激情视频| 国产成人AV大片大片在线播放 | 99这里精品| 99人妻碰碰碰久久久久禁片| 日韩在线视频网| 日韩精品一区二区三区免费| 成人福利在线视频免费观看| 国产精女同一区二区三区久| 在线免费亚洲无码视频| 青青青视频91在线 | 99性视频| v天堂中文在线| 国产欧美视频在线| 亚洲av综合网| 国产精品夜夜嗨视频免费视频| 丁香五月激情图片| 91无码人妻精品一区| 成人毛片免费观看| 欧美精品v欧洲精品| 国产极品美女在线播放| 色婷婷综合在线| 天天色综网| 手机在线国产精品| 爆乳熟妇一区二区三区| 日韩欧美综合在线制服| 国产凹凸视频在线观看| 久久黄色毛片| 欧美有码在线| 免费观看亚洲人成网站| 免费无码又爽又刺激高| 漂亮人妻被中出中文字幕久久| 国产精品片在线观看手机版| 亚洲天堂成人在线观看| 91亚洲视频下载| 亚洲成人在线播放 | 日韩在线1| 麻豆精品在线播放| 丰满的熟女一区二区三区l| 污污网站在线观看| 精品无码专区亚洲| 久久久亚洲色| 全部免费特黄特色大片视频| 99热这里只有精品2| 欧美日韩成人在线观看| 久久久久无码国产精品不卡| 日本免费a视频| 亚洲V日韩V无码一区二区| 欧美亚洲香蕉| A级毛片无码久久精品免费| 国产欧美视频综合二区 | 国产欧美日韩va| 她的性爱视频| 九九这里只有精品视频|