FPGA單片機(jī)帶你領(lǐng)略如何實(shí)現(xiàn)多機(jī)串行通信網(wǎng)絡(luò)
隨著電子技術(shù)和EDA技術(shù)的發(fā)展,FPGA技術(shù)以其獨(dú)有的優(yōu)勢,在電子設(shè)計(jì)領(lǐng)域得到越來越廣泛的應(yīng)用。FPGA具有集成度高、體積小和功耗低等優(yōu)點(diǎn),而且還具有用戶可編程能力。采用FPGA器件可以大大縮短開發(fā)周期,減少資金投入,實(shí)現(xiàn)片上可編程系統(tǒng)(SOPC)的設(shè)計(jì)。同時(shí),測控系統(tǒng)中使用串行擴(kuò)展通信的趨勢越來越突出,但是傳統(tǒng)總線拓?fù)浣Y(jié)構(gòu)較低的響應(yīng)效率已經(jīng)不能滿足復(fù)雜系統(tǒng)的要求。本文的主要目的是基于FPGA設(shè)計(jì)一個(gè)集成16個(gè)簡單UART(通用異步接收發(fā)送設(shè)備)的模塊,該模塊采用VHDL語言描述。主單片機(jī)通過并口與FPGA相連,F(xiàn)PGA通過16個(gè)UART分別與16個(gè)從單片機(jī)相連,實(shí)現(xiàn)單片機(jī)串行通信網(wǎng)絡(luò)系統(tǒng)。
本文引用地址:http://www.ex-cimer.com/article/226915.htm1 系統(tǒng)硬件總體設(shè)計(jì)
系統(tǒng)設(shè)計(jì)要求主單片機(jī)能同時(shí)控制從單片機(jī),并且能同時(shí)采集從單片機(jī)上傳的信息,進(jìn)行判斷并傳送給上位機(jī)。主單片機(jī)功能主要有:
① 與上位機(jī)通信,接收上位機(jī)命令并解析;
② 根據(jù)上位機(jī)命令,向下控制從單片機(jī);
③ 監(jiān)測從單片機(jī)中上傳的各種指標(biāo)是否符合要求;
④ 提供告警顯示。
FPGA完成主單片機(jī)命令的解復(fù)接和從單片機(jī)上傳信息的復(fù)接。從單片機(jī)主要功能為接收主單片機(jī)通過FPGA下發(fā)的命令,完成對設(shè)備的控制并上傳設(shè)備狀態(tài),如圖1所示。
圖1 單片機(jī)多機(jī)通信原理示意圖
本設(shè)計(jì)中使用的單片機(jī)為Cygnal公司的C8051F系列單片機(jī),F(xiàn)PGA為Xilinx公司的XC3S100E。C8051F系列單片機(jī)是Cygnal公司開發(fā)的高端單片機(jī),指令與8051兼容,最高具有25 MIPS的處理能力,同時(shí)集成了ADC、DAC、可編程放大器、電壓比較器、傳感器等豐富的外設(shè),非常適合應(yīng)用于測控領(lǐng)域。C8051F系列單片機(jī)還具有JTAG接口,方便用戶在線調(diào)試,極大節(jié)省了用戶的開發(fā)時(shí)間。2 系統(tǒng)實(shí)現(xiàn)
2.1 主單片機(jī)單元設(shè)計(jì)
主單片機(jī)采用C8051F020單片機(jī),該單片機(jī)提供2個(gè)串口、1個(gè)I2C接口(SMBus),提供P0~P3或P4~P7的并口。本設(shè)計(jì)中,設(shè)置特殊功能寄存器EMI0CF=0x27,使外部存儲(chǔ)器接口工作在地址/數(shù)據(jù)復(fù)用方式,選擇高端口P4~P7。設(shè)置特殊功能寄存器XBR0=0x15,將串口UART0和SMBus映射到P0端口。
C8051F020將FPGA視為外部存儲(chǔ)器,通過并口P4~P7進(jìn)行訪問。C8051F020通過SMBus接口連接串行EEPROM,將系統(tǒng)信息實(shí)時(shí)寫入EEPROM,在系統(tǒng)突然掉電后上電時(shí)讀取EEPROM內(nèi)的數(shù)據(jù),完成系統(tǒng)掉電保護(hù)功能。主單片機(jī)連續(xù)不停地分析從單片機(jī)上傳的指令,判斷設(shè)備的狀態(tài)并給出告警顯示,同時(shí)存入內(nèi)部緩沖區(qū)等待上位機(jī)查詢。
C8051F020提供串口和網(wǎng)口2種方式與上位機(jī)通信,兩個(gè)接口不能同時(shí)使用。網(wǎng)絡(luò)通信采用網(wǎng)口串口轉(zhuǎn)換模塊實(shí)現(xiàn),網(wǎng)口和串口通過組合邏輯電路連接到C8051F020的UART0,如圖2所示,實(shí)現(xiàn)系統(tǒng)的本地監(jiān)控和遠(yuǎn)程監(jiān)控功能。
圖2 主單片機(jī)串口和網(wǎng)口連接示意圖
2.2 FPGA單元設(shè)計(jì)
FPGA的設(shè)計(jì)是通信網(wǎng)絡(luò)的核心部分。依據(jù)功能要求,F(xiàn)PGA內(nèi)部劃分成四大功能模塊:SRAM控制器、發(fā)送數(shù)據(jù)緩沖模塊、16個(gè)UART模塊、接收數(shù)據(jù)緩沖模塊。發(fā)送數(shù)據(jù)緩沖模塊劃分成16個(gè)RAM區(qū),每個(gè)RAM區(qū)分別連接1個(gè)UART,當(dāng)發(fā)送緩沖模塊接收到主單片機(jī)下發(fā)的控制數(shù)據(jù)后,啟動(dòng)UART將數(shù)據(jù)發(fā)送至從單片機(jī)。接收緩沖區(qū)同樣分為16個(gè)RAM區(qū),發(fā)送控制數(shù)據(jù)后,UART周期性地向從單片機(jī)發(fā)送狀態(tài)查詢命令,從單片機(jī)將最新狀態(tài)發(fā)送至UART模塊,UART模塊將數(shù)據(jù)存入接收緩沖模塊相應(yīng)的RAM區(qū)。如圖3所示。
串行通信網(wǎng)絡(luò)" style="b
fpga相關(guān)文章:fpga是什么
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
通信相關(guān)文章:通信原理
評論