基于FPGA的多單片機通信網絡-設計應用_第1頁
基于FPGA的多單片機通信網絡-設計應用_第2頁
基于FPGA的多單片機通信網絡-設計應用_第3頁
基于FPGA的多單片機通信網絡-設計應用_第4頁
基于FPGA的多單片機通信網絡-設計應用_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

精品文檔-下載后可編輯基于FPGA的多單片機通信網絡-設計應用隨著測控技術的發展,由多單片機構成的測量控制網絡在測控領域的應用越來越廣泛。單片機之間的數據交換通常采用串行通信方式,連接方式多采用總線拓撲結構[13]。該結構中單片機通過一組數據線相連接,所有單片機共用一組數據線;通信時要對從單片機進行編址,主單片機通過不同的地址來訪問從單片機。由于只有一組數據線,那么在同一時間內,主單片機只能和一個單片機進行通信。如果要訪問一遍從單片機,那么主單片機要首先發送某一個從單片機的訪問命令,等其應答后才能訪問下一個從單片機。這樣就浪費了大量的時間,降低了測控系統的工作效率。在某些監督計算機控制系統(SCC)和集散型控制系統(DCS)中[4],主單片機經常需要同時訪問從單片機,要求從單片機能同時響應主單片機的訪問命令,此時拓撲型總線結構就不能滿足要求。

隨著電子技術和EDA技術的發展,FPGA技術以其獨有的優勢,在電子設計領域得到越來越廣泛的應用。FPGA具有集成度高、體積小和功耗低等優點,而且還具有用戶可編程能力。采用FPGA器件可以大大縮短開發周期,減少資金投入,實現片上可編程系統(SOPC)的設計。同時,測控系統中使用串行擴展通信的趨勢越來越突出,但是傳統總線拓撲結構較低的響應效率已經不能滿足復雜系統的要求。本文的主要目的是基于FPGA設計一個集成16個簡單UART(通用異步接收發送設備)的模塊,該模塊采用VHDL語言描述。主單片機通過并口與FPGA相連,FPGA通過16個UART分別與16個從單片機相連,實現單片機串行通信網絡系統。

1系統硬件總體設計

系統設計要求主單片機能同時控制從單片機,并且能同時采集從單片機上傳的信息,進行判斷并傳送給上位機。主單片機功能主要有:①與上位機通信,接收上位機命令并解析;②根據上位機命令,向下控制從單片機;③監測從單片機中上傳的各種指標是否符合要求;④提供告警顯示。

FPGA完成主單片機命令的解復接和從單片機上傳信息的復接。從單片機主要功能為接收主單片機通過FPGA下發的命令,完成對設備的控制并上傳設備狀態,如圖1所示。

圖1單片機多機通信原理示意圖

本設計中使用的單片機為Cygnal公司的C8051F系列單片機,FPGA為Xilinx公司的XC3S100E。C8051F系列單片機是Cygnal公司開發的高端單片機,指令與8051兼容,具有25MIPS的處理能力,同時集成了ADC、DAC、可編程放大器、電壓比較器、傳感器等豐富的外設,非常適合應用于測控領域。C8051F系列單片機還具有JTAG接口,方便用戶在線調試,極大節省了用戶的開發時間。

2系統實現

2.1主單片機單元設計

主單片機采用C8051F020單片機,該單片機提供2個串口、1個I2C接口(SMBus),提供P0~P3或P4~P7的并口。本設計中,設置特殊功能寄存器EMI0CF=0x27,使外部存儲器接口工作在地址/數據復用方式,選擇高端口P4~P7。設置特殊功能寄存器XBR0=0x15,將串口UART0和SMBus映射到P0端口。

C8051F020將FPGA視為外部存儲器,通過并口P4~P7進行訪問。C8051F020通過SMBus接口連接串行EEPROM,將系統信息實時寫入EEPROM,在系統突然掉電后上電時讀取EEPROM內的數據,完成系統掉電保護功能。主單片機連續不停地分析從單片機上傳的指令,判斷設備的狀態并給出告警顯示,同時存入內部緩沖區等待上位機查詢。

C8051F020提供串口和網口2種方式與上位機通信,兩個接口不能同時使用。網絡通信采用網口串口轉換模塊實現,網口和串口通過組合邏輯電路連接到C8051F020的UART0,如圖2所示,實現系統的本地監控和遠程監控功能。

圖2主單片機串口和網口連接示意圖

2.2FPGA單元設計

FPGA的設計是通信網絡的部分。依據功能要求,FPGA內部劃分成四大功能模塊:SRAM控制器、發送數據緩沖模塊、16個UART模塊、接收數據緩沖模塊。發送數據緩沖模塊劃分成16個RAM區,每個RAM區分別連接1個UART,當發送緩沖模塊接收到主單片機下發的控制數據后,啟動UART將數據發送至從單片機。接收緩沖區同樣分為16個RAM區,發送控制數據后,UART周期性地向從單片機發送狀態查詢命令,從單片機將狀態發送至UART模塊,UART模塊將數據存入接收緩沖模塊相應的RAM區。如圖3所示。

圖3FPGA內部功能模塊示意圖

FPGA內部共有16對讀/寫和數據總線,分別連接UART和相應的發送緩沖區RAM及接收緩沖區RAM。

FPGA內部模塊采用自頂向下的設計方法,將復雜系統劃分為簡單系統,然后通過邏輯和接口設計實現各個模塊功能。SRAM控制器用于FPGA和C8051F020的接口,負責內部RAM的讀寫控制。UART負責接收從單片機上傳的串行信號,將其并行化后存入接收數據緩沖RAM;另外也負責將發送緩沖RAM中的數據轉換成符合RS232協議規范的串行信號發送給從單片機。SRAM控制器和UART模塊同樣采用自頂向下的方式實現,關于SRAM控制器及UART的FPGA實現方案在參考文獻中有詳細的論述[56],本文不再介紹。

FPGA內部系統采用同步有限狀態機(FSM)的設計方法實現,FSM負責調配各功能模塊之間的協作。狀態機采用獨熱(onehot)編碼,使電路的可靠性和速度有顯著的提高。系統狀態轉移圖如圖4所示。

圖4有限狀態機狀態轉移圖

2.3通信協議設計

主單片機和上位機的通信速率及FPGA和從單片機的通信速率均設置為38.4Kbps,可以更的控制主單片機與各個從單片機之間的通信時間。通信指令由報頭、設備類型、設備號、命令號、命令數據、校驗等字段組成。報頭用于通知單片機開始串行通信,設備類型和設備號用于將指令正確傳達到相應的設備,命令號用于通知單片機指令,命令數據用于通知單片機具體的功能,校驗則采用CRC校驗以保證通信的準確性。寫入控制命令號為00H,讀取命令號為01H,讀取指令命令數據為0字節。通信指令的幀格式如下:

單片機接收到控制命令后,如果接收正確,返回00H,若錯誤則返回01H.返回幀格式為:

讀取指令沒有命令數據,幀格式為:

接收后單片機返回幀格式為:

結語

本文介紹了在FPGA上集成多個UART的方法,并以此為基礎搭建了一個多單片機通信網絡。設計中采用FPGA作為串行接口擴展器件與傳統器件相比具有功能靈活、擴展性好的特點。通過實驗證明,該通信網絡相對于傳統的總線拓撲網絡具有速度快、實時性好的特點,同時該網絡可以根據外設需要隨意擴展,非常適合應用于監督計算機控制系統和集散控制網絡。

參考文獻

[1]董加強.提高單片機多機串行通信的一種新方法[J].電工技術,2022(6):5354.[2]陳曉英,任國強.單片機多機通信系統穩定性的研究[J].單片機與嵌入式系統應用,2022(8):2022.[3]陳壽元.單片機多機通信網絡改進及數據通信容錯技術[J].山東師范大學學報,2022(2):3335.[4]汪吉鵬.工業

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論