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