• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于STM32F407的FPGA 動態(tài)加載設(shè)計*

      2022-04-11 02:55:12川,鄧蕾,張
      通信技術(shù) 2022年3期
      關(guān)鍵詞:嵌入式軟件以太網(wǎng)芯片

      賴 川,鄧 蕾,張 顯

      (中國電子科技集團公司第三十研究所,四川 成都 610041)

      0 引言

      因現(xiàn)代民用電子裝備更新?lián)Q代快、復(fù)雜度高,故民用電子測試系統(tǒng)面臨著測試種類多、多技術(shù)高交叉性以及技術(shù)更新迭代加快等新挑戰(zhàn)。傳統(tǒng)的裝備測試系統(tǒng)很難兼顧高效率測試和低成本測試,不具備能夠根據(jù)被測裝備測試需求的變化而進行調(diào)整的靈活性,且可擴展性差[1]。

      近年來,現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)行業(yè)發(fā)展快速,門數(shù)量的增加和生產(chǎn)工藝的進步使FPGA 走到了技術(shù)的前沿,現(xiàn)如今在硬件設(shè)計中FPGA 起到了至關(guān)重要的作用。類型多樣、功能強大的FPGA 器件、豐富的知識產(chǎn)權(quán)(Intellectual Property,IP)以及友好的設(shè)計開發(fā)工具給硬件設(shè)計提供了非常大的便利[2],在各種民用電子測試系統(tǒng)中得到了廣泛的應(yīng)用,而如何對測試系統(tǒng)中的FPGA 程序?qū)崿F(xiàn)快速更換,從而滿足被測裝備的多樣化測試需求,成為新的挑戰(zhàn)。

      為實現(xiàn)低成本的FPGA 程序更換,本文設(shè)計了一套基于STM32F407的FPGA 動態(tài)加載系統(tǒng),該系統(tǒng)采用32 位閃存微控制器STM32F407 和FPGA 芯片XC7K325T。本文詳細(xì)闡述了系統(tǒng)的軟硬件實現(xiàn),最后通過系統(tǒng)調(diào)試和測試分析論證了該系統(tǒng)的可行性、有效性,并且證明了該系統(tǒng)具有很高的工程應(yīng)用價值。

      1 系統(tǒng)總體方案

      該系統(tǒng)主要由32 位閃存微控制器微控制單元(Microcontroller Unit,MCU)、FPGA 芯片、以太網(wǎng)物理層接口(Physical Layer,PHY)芯片、模擬開關(guān)切換芯片、SPI Flash 芯片和PC 機組成。以太網(wǎng)PHY 芯片與PC 機之間通過以太網(wǎng)接口連接,以太網(wǎng)PHY 芯片與MCU 之間通過簡化媒體獨立接口(Reduced Media Independent Interface,RMII)方式直接連接,MCU 可直接通過調(diào)用10 Mbit/s 或100 Mbit/s的以太網(wǎng)介質(zhì)訪問控制層(Media Access Control,MAC)控制器與PC 機之間進行網(wǎng)絡(luò)通信。PC 機上安裝上位機加載軟件,通過以太網(wǎng)與MCU進行數(shù)據(jù)通信。

      為了驗證系統(tǒng)的可行性和有效性,系統(tǒng)的測試方案是在確保硬件連接正常的前提下,在上位機加載軟件上通過以太網(wǎng)發(fā)送不同的二進制(binary,bin)文件,MCU 將接收到的bin 文件按照相應(yīng)的地址寫入SPI Flash 中,寫入完畢后,再產(chǎn)生低脈沖信號送入FPGA 芯片的PROGRAM_B 管腳上,實現(xiàn)其硬復(fù)位,并觀察FPGA 程序是否能夠正常啟動,基于這一測試來分析系統(tǒng)設(shè)計的有效性?;赟TM32F407的FPGA 動態(tài)加載的系統(tǒng)總體設(shè)計如圖1 所示。

      圖1 系統(tǒng)設(shè)計

      2 系統(tǒng)硬件設(shè)計

      本文設(shè)計的動態(tài)加載系統(tǒng)基于STM32F407 為主處理單元,完成對FPGA 程序加載的控制。動態(tài)加載系統(tǒng)主要由主處理單元、以太網(wǎng)接口單元、SPI 接口切換單元和FPGA 程序加載單元組成,其硬件組成如圖2 所示。

      圖2 系統(tǒng)硬件組成

      以太網(wǎng)接口單元中變壓器與PHY 芯片之間以介質(zhì)相關(guān)接口(Medium Dependent Interface,MDI)進行連接,將上位機發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)通過變壓器和PHY 芯片轉(zhuǎn)換成簡化媒體獨立接口(Reduced Media Independent Interface,RMII)接入MCU 主處理芯片,通過MCU 程序處理實現(xiàn)以太網(wǎng)數(shù)據(jù)的收發(fā)。主處理單元通過MCU 芯片的SPI 接口和通用輸入/輸出端口(General Purpose Input Output,GPIO)完成對切換芯片的控制和SPI Flash的讀寫操作;SPI Flash寫入完畢后,切換SPI 接口管腳到FPGA,并控制FPGA 重新加載程序。

      2.1 主處理單元

      主處理單元是動態(tài)加載系統(tǒng)的核心部分,負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)收發(fā)、bin 文件傳輸協(xié)議的解析和封裝、復(fù)用管腳的配置、SPI 接口切換和FPGA 程序加載狀態(tài)的控制。

      主處理單元選用意法半導(dǎo)體公司的單片機最小系統(tǒng)STM32F407,該器件支持通過以太網(wǎng)收發(fā)數(shù)據(jù),具有數(shù)據(jù)傳輸速率快、效率高,集成度高、配置靈活、可擴展等特點,能適應(yīng)各種不同客戶需求,工作時鐘可高達(dá)168 MHz,尤其是內(nèi)部集成了高精度時鐘源及電壓調(diào)節(jié)功能,以及硬件實現(xiàn)增強型SPI 串行接口,因此設(shè)計時可直接使用[3];該器件主要包括供電電路、串行調(diào)試(Serial Wire Debug,SWD)電路、時鐘電路和復(fù)位電路的設(shè)計。系統(tǒng)供電電壓設(shè)為3.3 V,外部晶振選用8 MHz 和32.768 kHz。該芯片能較好地滿足整體的技術(shù)指標(biāo)要求,并具備較強的升級擴展性。其主要特性如下:

      (1)集成了專用于浮點運算的處理器(Float Point Unit,F(xiàn)PU)和數(shù)字信號處理(Digital Signal Processing,DSP)指令,并具有192 KB的內(nèi)部靜態(tài)隨機存取存儲器(Static Random-Access Memory,SRAM)和1 024 KB的Flash;

      (2)包含2 個32 位定時器、2 個直接存儲器訪問(Direct Memory Access,DMA)控制器、3 個串行外設(shè)接口(Serial Peripheral Interface,SPI)、3個集成電路總線(Inter-Integrated Circuit,IIC)、6 個串口、2 個控制器局域網(wǎng)絡(luò)(Controller Area Network,CAN)、3 個12 位模擬數(shù)字轉(zhuǎn)換器(Analog To Digital Converter,ADC)、2 個12 位數(shù)字模擬轉(zhuǎn)換器(Digital to Analog Converter,DAC)、1 個安全數(shù)字輸入輸出卡(Secure Digital Input and Output,SDIO)接口、1 個可變靜態(tài)存儲控制器(Flexible Static Memory Controller,F(xiàn)SMC)接口、1個數(shù)字?jǐn)z像頭接口(Digital camera interface,DCMI)以及112 個通用輸入和輸出(Input/Output,IO)接口等[4];

      (3)它還帶有一個10/100 Mbit/s的以太網(wǎng)MAC 控制器,支持以太網(wǎng)通信[5]。

      2.2 以太網(wǎng)接口單元

      以太網(wǎng)接口單元用于上位機與STM32F407 芯片之間以太網(wǎng)數(shù)據(jù)交互物理層通道的建立。本設(shè)計選用SMSC 公司的LAN8710A 作為以太網(wǎng)物理層的交互芯片。LAN8710A 是一款低功耗的10/100 Mbit/s物理層收發(fā)器,全面支持IEEE802.3—2005《物理層和數(shù)據(jù)鏈路層的有線以太網(wǎng)》標(biāo)準(zhǔn),此外,可支持通過RMII 接口與以太網(wǎng)MAC 進行通信。在本設(shè)計中與STM32F407的RMII 總線連接,實現(xiàn)100 Mbit/s 網(wǎng)絡(luò)全雙工通信。LAN8710A的外圍接口電路如圖3 所示。

      圖3 LAN8710A 外圍接口電路

      PHY 芯片LAN8710A 右側(cè)為變壓器和RJ45 插座,主處理單元調(diào)用內(nèi)部的MAC 控制器通過RMII接口完成與PHY 芯片的底層通信;XTAL1 為PHY芯片工作時鐘,采用50 MHz的有源晶振;該50 MHz時鐘與MCU 芯片的RMII 接口為同一時鐘源;PHY芯片地址配置為000,與MCU 程序中的PHY 地址保持一致;LAN8710A 采用2 位位寬收發(fā)數(shù)據(jù),采樣時鐘為50 MHz,完成100 MHz 速率的適配。

      2.3 SPI 接口切換單元

      SPI 接口切換單元由主處理單元的MCU 芯片通過GPIO 管腳控制模擬開關(guān)切換芯片IDT74CBTLV3257PGG的狀態(tài),使SPI Flash 芯 片GD25Q256DYIG 分別與STM32F407的SPI接口、FPGA的程序加載接口連接。SPI 接口切換單元的連接如圖4 所示。

      圖4 SPI 接口切換單元連接

      SPI 接口切換單元默認(rèn)狀態(tài)為SPI 接口與FPGA的程序加載接口連接,是為了保證FPGA 上電第一時間就能進行程序的加載,此外,只有當(dāng)主處理單元在接收到上位機動態(tài)加載軟件的網(wǎng)絡(luò)數(shù)據(jù)包后,并符合通信協(xié)議要求,才將SPI Flash的接口切換過來,然后調(diào)用其內(nèi)部的SPI 接口完成文件的讀寫操作。當(dāng)文件寫入完畢后,主處理單元會將SPI 接口切換到FPGA,使其能夠正常工作。

      2.4 FPGA 程序加載單元

      FPGA 程序加載單元選用Xilinx 公司7 系列芯片XC7K325T,它擁有豐富的資源,包含478 000個邏輯單元、34 MB的塊隨機存儲器(Random Access Memory,RAM)以及500 用戶的IO 口,最大工作頻率為640 MHz;其程序加載如圖5 所示。

      圖5 FPGA 程序加載

      FPGA 芯片的加載模式配置為001,即MASTER SPI 主動讀取模式。上電后,由FPGA 配置BANK主動從SPI FLAHS 中讀取相應(yīng)的程序,進行程序的加載。本文設(shè)計的讀取方式為SPI X4 模式,使用到片選、時鐘和4 位數(shù)據(jù)線。

      3 系統(tǒng)軟件設(shè)計

      動態(tài)加載系統(tǒng)的軟件包括上位機動態(tài)加載軟件(安裝運行于Windows 操作系統(tǒng)),還包括運行于STM32F407 芯片內(nèi)的MCU 嵌入式軟件。

      3.1 上位機動態(tài)加載軟件

      上位機動態(tài)加載軟件采用模塊化分層的框架體系。各層間耦合性較小,便于獨立開發(fā)和驗證測試。上位機加載軟件基于Visual Studio 2015 平臺進行開發(fā)設(shè)計,按功能劃分為參數(shù)設(shè)置模塊、加載文件獲取模塊、數(shù)據(jù)封裝解析模塊、異常情況處理模塊和網(wǎng)絡(luò)數(shù)據(jù)發(fā)送模塊等。具體的模塊劃分如圖6所示。

      圖6 測試環(huán)境

      3.1.1 參數(shù)設(shè)置模塊

      參數(shù)設(shè)置模塊主要用于設(shè)置底層硬件的IP 地址、源端端口號和目的端端口號,設(shè)置的參數(shù)用于用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)報文網(wǎng)絡(luò)數(shù)據(jù)發(fā)送,IP 地址、源目的端口號可根據(jù)實際情況進行相應(yīng)的修改,如圖7 所示。

      圖7 參數(shù)設(shè)置界面

      3.1.2 加載文件獲取模塊

      加載文件獲取模塊主要完成bin 文件的載入,包長設(shè)置確定每一包數(shù)據(jù)的長度,如圖8 所示。

      圖8 加載文件獲取界面

      3.1.3 數(shù)據(jù)封裝解析模塊

      數(shù)據(jù)封裝解析模塊是軟件設(shè)計的關(guān)鍵和重點,按照數(shù)據(jù)傳輸協(xié)議幀格式,對獲取的bin 文件進行分包處理,與加載文件獲取界面上設(shè)置的包長共同計算出結(jié)束包號,在數(shù)據(jù)傳輸過程中,實時記錄當(dāng)前包號,進行封裝和處理,再運用CRC16 校驗保證發(fā)送數(shù)據(jù)的正確性。數(shù)據(jù)傳輸協(xié)議幀格式如圖9 所示。

      圖9 數(shù)據(jù)傳輸協(xié)議幀格式

      數(shù)據(jù)封裝解析模塊接收到底層硬件返回的數(shù)據(jù)后,先判定其幀頭和CRC16 校驗是否正確,正確即代表數(shù)據(jù)有效,之后按照數(shù)據(jù)傳輸協(xié)議進行數(shù)據(jù)解析,解析正確則給出正確應(yīng)答,解析錯誤則給出錯誤應(yīng)答。

      3.1.4 異常情況處理模塊

      異常情況處理模塊對接收到的底層硬件網(wǎng)絡(luò)數(shù)據(jù)包進行解析,判斷其是否為有效數(shù)據(jù)。如果為有效數(shù)據(jù),則繼續(xù)按照數(shù)據(jù)傳輸協(xié)議格式封包發(fā)送數(shù)據(jù);如果為無效數(shù)據(jù),則按協(xié)議格式重發(fā)當(dāng)前數(shù)據(jù)包,若重傳3 次后仍然收到無效數(shù)據(jù),則表示接收應(yīng)答失敗,此次加載任務(wù)結(jié)束。超時應(yīng)答如圖10所示。

      圖10 超時應(yīng)答

      3.1.5 網(wǎng)絡(luò)數(shù)據(jù)發(fā)送

      網(wǎng)絡(luò)數(shù)據(jù)發(fā)送模塊調(diào)用Visual Studio 2015 自帶的UDP 控件,將IP 地址、源/目的端口和數(shù)據(jù)傳輸凈荷按照UDP 協(xié)議報文格式發(fā)送給底層硬件進行處理。

      3.2 MCU 嵌入式軟件

      MCU 嵌入式軟件的開發(fā)基于Keil5 平臺,設(shè)計主要分為任務(wù)處理層、數(shù)據(jù)接口層和硬件驅(qū)動層3個部分,嵌入式軟件架構(gòu)如圖11 所示。任務(wù)處理層主要完成以太網(wǎng)協(xié)議棧的調(diào)用、協(xié)議封裝解析和加載狀態(tài)控制,是軟件設(shè)計的關(guān)鍵和重點。數(shù)據(jù)接口層主要處理bin 文件數(shù)據(jù)包的獲取、拆封和讀寫。硬件驅(qū)動層主要完成各類硬件接口的驅(qū)動實現(xiàn),主要包含以太網(wǎng)接口和SPI 接口。

      圖11 嵌入式軟件架構(gòu)

      3.2.1 任務(wù)處理層

      任務(wù)處理層作為嵌入式軟件的核心部分,通過數(shù)據(jù)接口層與硬件驅(qū)動層完成數(shù)據(jù)交互。不同的任務(wù)程序?qū)崿F(xiàn)不同的功能,每個任務(wù)程序之間相互協(xié)作。嵌入式軟件的任務(wù)列表,如表1 所示。

      表1 嵌入式軟件任務(wù)

      以太網(wǎng)協(xié)議棧任務(wù)主要完成以太網(wǎng)UDP 協(xié)議的解析和封裝。協(xié)議封裝解析任務(wù)對傳輸數(shù)據(jù)幀凈荷部分進行解析和封裝,加載狀態(tài)控制任務(wù)監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)包的接收狀態(tài),并根據(jù)讀寫SPI Flash的狀態(tài)來進行相應(yīng)的控制。

      3.2.2 數(shù)據(jù)接口層

      數(shù)據(jù)接口層是對硬件驅(qū)動層獲取的數(shù)據(jù)進行相應(yīng)的拆封,并傳遞給任務(wù)處理層內(nèi)的相關(guān)任務(wù)。數(shù)據(jù)接口層的函數(shù)如表2 所示。

      表2 數(shù)據(jù)接口層函數(shù)

      3.2.3 硬件驅(qū)動層

      硬件驅(qū)動層主要與底層硬件建立數(shù)據(jù)交互通道,包括初始化、中斷操作、參數(shù)配置和數(shù)據(jù)傳輸。在本設(shè)計中,包括以太網(wǎng)接口驅(qū)動和SPI 接口驅(qū)動。其中以太網(wǎng)驅(qū)動函數(shù)如表3 所示,SPI 驅(qū)動函數(shù)如表4 所示。

      表3 以太網(wǎng)驅(qū)動函數(shù)

      表4 SPI 驅(qū)動函數(shù)

      4 系統(tǒng)測試與分析

      完成動態(tài)加載系統(tǒng)軟硬件設(shè)計后,需要對本系統(tǒng)的硬件和軟件進行調(diào)試。系統(tǒng)上電前,檢查硬件的各個部分是否有短路,連接是否正確,確保硬件連接正確無誤的情況下,通過Keil5 和Visual Studio2015 開發(fā)平臺對系統(tǒng)軟件進行測試。軟件測試前,MCU 嵌入式軟件在Keil5 上完成編譯,編譯成功后通過SLINK 仿真器下載到單片機STM32F407內(nèi),然后在Visual Studio 2015 上完成動態(tài)加載軟件的編譯,確保編譯正確后,運行動態(tài)加載軟件程序,查看單片機接收和發(fā)送信號是否正常,并觀察動態(tài)加載軟件的運行是否正常。

      為測試系統(tǒng)的動態(tài)加載功能,在動態(tài)加載軟件中加載由Vivado 事先編譯生成好的bin 文件,測試動態(tài)加載軟件和MCU 嵌入式軟件是否工作正常。在測試過程中,通過示波器抓取SPI 接口數(shù)據(jù),如圖12 所示,bin 文件的加載過程如圖13 所示。

      圖12 SPI 接口讀寫波形

      圖13 bin 文件加載過程

      從圖12 中可以看出,MCU 嵌入式軟件能夠?qū)PI 接口進行正常的讀寫,讀寫時鐘為42 Mbit/s。從圖13 中可以看出,動態(tài)加載軟件的bin 文件加載過程能夠與MCU 嵌入式軟件之間進行正確的數(shù)據(jù)交互。加載不同的bin 文件后,F(xiàn)PGA 芯片均能從SPI Flash 中加載程序,并運行正常。

      5 結(jié)語

      本文針對民用電子測試系統(tǒng)FPGA 程序快速更換問題,提出了一種基于STM32F407的FPGA 動態(tài)加載設(shè)計方法,給出了系統(tǒng)總體設(shè)計方案,并對系統(tǒng)內(nèi)的軟硬件設(shè)計進行了詳細(xì)的闡述,最后,給出了系統(tǒng)測試方法。本文方法在保證設(shè)計要求和可行性的同時,實現(xiàn)了SPI FLASH的快速高效讀取,降低單片機開發(fā)難度,縮短了開發(fā)周期。同時,該設(shè)計方法使系統(tǒng)結(jié)構(gòu)變得更簡明,并具有很好的移植性,值得其他民用電子測試系統(tǒng)借鑒。

      猜你喜歡
      嵌入式軟件以太網(wǎng)芯片
      基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
      實時嵌入式軟件的測試技術(shù)
      電子測試(2018年10期)2018-06-26 05:54:08
      全景相機遙控器嵌入式軟件V1.0 相關(guān)操作分析
      電子制作(2017年17期)2017-12-18 06:40:56
      談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
      電子制作(2017年24期)2017-02-02 07:14:44
      芯片測試
      多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
      一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
      淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
      基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計與實現(xiàn)
      航天嵌入式軟件浮點運算誤差分析與控制
      莎车县| 新建县| 平和县| 阿拉善盟| 苏州市| 永顺县| 黄梅县| 定兴县| 肥城市| 施秉县| 香格里拉县| 廊坊市| 沽源县| 新河县| 阿图什市| 古浪县| 易门县| 北流市| 石河子市| 三明市| 嵊泗县| 来安县| 三明市| 邻水| 抚松县| 富阳市| 祥云县| 石林| 五指山市| 章丘市| 本溪市| 井研县| 秀山| 厦门市| 陆河县| 楚雄市| 大荔县| 沁源县| 洪洞县| 佳木斯市| 房产|