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

主站蜘蛛池模板: 亚洲男女天堂| 亚洲成人一区二区三区| 67194在线午夜亚洲| 夜夜高潮夜夜爽国产伦精品| 欧美精品不卡| 天天色综网| 91美女视频在线| 国产麻豆va精品视频| 欧美激情视频二区三区| 国产香蕉一区二区在线网站| 激情视频综合网| 国产毛片高清一级国语| 国产一区二区三区视频| 在线观看国产黄色| 亚洲欧洲国产成人综合不卡| 国产三级a| 欧美日韩国产成人在线观看| 亚洲日韩AV无码精品| 国产精品私拍99pans大尺度| 国产极品粉嫩小泬免费看| 亚洲综合欧美在线一区在线播放| 91啦中文字幕| 国产成人欧美| 国产成人免费观看在线视频| 精品无码人妻一区二区| 嫩草国产在线| 亚洲天堂久久新| 午夜精品福利影院| 日本a级免费| a毛片在线免费观看| 影音先锋丝袜制服| 自偷自拍三级全三级视频| 国产精品太粉嫩高中在线观看| 久久网欧美| 91亚洲精选| 亚洲精品另类| 久久人人爽人人爽人人片aV东京热 | 亚洲男人的天堂网| 中文成人在线| 国产成人91精品免费网址在线| 欧美 亚洲 日韩 国产| 亚洲AⅤ无码国产精品| 欧美在线天堂| 国产精女同一区二区三区久| 少妇露出福利视频| 国产导航在线| 国产va在线观看| 国国产a国产片免费麻豆| 成人av专区精品无码国产| 高清无码手机在线观看| 亚洲国产亚洲综合在线尤物| 日韩无码精品人妻| 亚洲精品无码日韩国产不卡| 亚洲国产精品VA在线看黑人| 欧美日本在线播放| 亚洲日本在线免费观看| 亚洲无码视频图片| 特级欧美视频aaaaaa| 日韩在线中文| 日韩成人免费网站| 精品久久久无码专区中文字幕| 无码丝袜人妻| 亚洲成年人网| 精品久久高清| 国产尤物jk自慰制服喷水| 亚洲精品成人片在线观看 | 欧美区国产区| 午夜丁香婷婷| 成人久久精品一区二区三区| 亚洲性日韩精品一区二区| 午夜精品久久久久久久无码软件| 久久精品女人天堂aaa| 国产精品免费p区| 婷婷午夜影院| 亚洲综合第一页| 亚洲免费三区| 丰满人妻一区二区三区视频| 亚洲高清无在码在线无弹窗| 无码国产偷倩在线播放老年人| 2021天堂在线亚洲精品专区| 极品国产在线| 亚洲第一视频区|