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通信可靠。

主站蜘蛛池模板: 色综合五月| 九色视频在线免费观看| 国产欧美在线| 91po国产在线精品免费观看| 国产99在线| 四虎永久在线精品国产免费| 2020国产精品视频| 老司机精品一区在线视频| 亚洲女同一区二区| 一级毛片免费不卡在线| 国产日韩久久久久无码精品| 国产免费羞羞视频| 亚洲欧美日韩视频一区| 婷婷伊人五月| 91精品国产麻豆国产自产在线 | 亚洲最新在线| 免费Aⅴ片在线观看蜜芽Tⅴ | 国产a在视频线精品视频下载| 青草精品视频| 97视频精品全国在线观看| 亚洲成a人片77777在线播放| 欧美激情视频一区| 国产精品流白浆在线观看| 中文无码精品A∨在线观看不卡| 又污又黄又无遮挡网站| 九色视频在线免费观看| 国产99精品视频| 国内a级毛片| 国产午夜福利亚洲第一| 国产免费a级片| 精品久久久久久久久久久| 日韩欧美色综合| 超清无码熟妇人妻AV在线绿巨人| 亚洲国产第一区二区香蕉| 国产成人AV大片大片在线播放 | 日韩在线播放中文字幕| 日韩a级片视频| 日韩麻豆小视频| 中文字幕欧美日韩高清| 免费一级成人毛片| 波多野结衣久久高清免费| 2021精品国产自在现线看| 国产人人射| 精品国产免费观看一区| 亚洲色大成网站www国产| 无码网站免费观看| 91年精品国产福利线观看久久| 欧美视频在线观看第一页| 九九久久精品国产av片囯产区| 香蕉国产精品视频| 精品欧美日韩国产日漫一区不卡| 国产凹凸视频在线观看| 视频在线观看一区二区| 国产一区二区三区视频| 午夜老司机永久免费看片| 欧美在线导航| 无码一区中文字幕| 女人天堂av免费| 91成人在线观看| 欧美在线三级| 久久人搡人人玩人妻精品| 亚洲品质国产精品无码| 超碰精品无码一区二区| 欧美激情网址| 国产一级在线观看www色| 波多野结衣一区二区三区AV| 国产精品自在线拍国产电影| 日韩高清中文字幕| 久久精品视频一| 国产在线欧美| 成年女人a毛片免费视频| 久久久久久久久亚洲精品| 欧美国产日产一区二区| 国产一区二区视频在线| 亚洲三级视频在线观看| 无套av在线| 亚洲色图欧美| 欧美.成人.综合在线| 91探花国产综合在线精品| 亚洲乱码在线播放| 免费国产无遮挡又黄又爽| 日韩黄色大片免费看|