• 
    

    
    

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

      基于改良式SPI總線(xiàn)和LabVIEW的多通道數(shù)據(jù)采集系統(tǒng)

      2022-04-19 10:02:46龔大偉徐寶鶴
      儀表技術(shù)與傳感器 2022年3期
      關(guān)鍵詞:主控制板卡線(xiàn)程

      龔大偉,徐寶鶴,陸 麗

      (上海電機(jī)學(xué)院電氣學(xué)院,上海 200135)

      0 引言

      隨著數(shù)據(jù)采集系統(tǒng)被越來(lái)越多的領(lǐng)域廣泛應(yīng)用,使得數(shù)據(jù)采集系統(tǒng)需要具有更高的性能。目前大部分?jǐn)?shù)據(jù)采集系統(tǒng)的控制核心主要分為以下4種:MCU、DSP、ARM和FPGA。其中MCU難以應(yīng)用于復(fù)雜系統(tǒng);DSP主要應(yīng)用于對(duì)數(shù)字信號(hào)處理能力需求較高的場(chǎng)合,并且其難以實(shí)現(xiàn)復(fù)雜邏輯控制;ARM雖然具有豐富的功能,但不適合用于對(duì)控制需求較高的場(chǎng)合;FPGA因?yàn)槠鋸?qiáng)大的并行處理能力以及能夠?qū)崿F(xiàn)復(fù)雜邏輯控制,從而被廣泛應(yīng)用于數(shù)據(jù)采集系統(tǒng)中[1]。所以文中數(shù)據(jù)采集系統(tǒng)的主控制板卡和從控制板卡均選用FPGA作為控制核心。

      由于傳統(tǒng)的三線(xiàn)制SPI總線(xiàn)通信只有一根miso數(shù)據(jù)線(xiàn),無(wú)法實(shí)現(xiàn)多塊控制板卡間的高速并行通信[2],所以文中的主控制板卡和從控制板卡之間采用改良式SPI總線(xiàn)連接。通過(guò)增加miso數(shù)據(jù)線(xiàn)的數(shù)量,使所有從控制板卡可以同時(shí)向主控制板卡發(fā)送數(shù)據(jù),并且加快了傳輸速率。

      為解決傳統(tǒng)FPGA開(kāi)發(fā)模式中的開(kāi)發(fā)周期長(zhǎng)、開(kāi)發(fā)難度較高等問(wèn)題,文獻(xiàn)[3-4]使用LabVIEW FPGA工具包來(lái)進(jìn)行系統(tǒng)開(kāi)發(fā)。這種開(kāi)發(fā)模式的優(yōu)勢(shì)是使用圖形化編程語(yǔ)言,降低了程序的開(kāi)發(fā)難度,讓開(kāi)發(fā)思路變得更加清晰,但不足之處是只能兼容NI公司的硬件,且NI公司的硬件大多較昂貴,所以文中選擇LabVIEW FPGA工具包,其具有更好的兼容性,不僅解決了系統(tǒng)開(kāi)發(fā)過(guò)程中存在的周期長(zhǎng)、難度高等問(wèn)題,也讓系統(tǒng)擁有更多硬件選擇,使系統(tǒng)具有更好的拓展性和經(jīng)濟(jì)性。

      另外,由于單獨(dú)使用LabVIEW FPGA工具包進(jìn)行程序設(shè)計(jì),存在程序編譯時(shí)間較長(zhǎng)、資源占用較多等問(wèn)題,所以文中程序設(shè)計(jì)采用Vivado和LabVIEW FPGA相結(jié)合的開(kāi)發(fā)模式。具體設(shè)計(jì)思路為:首先通過(guò)Vivado編寫(xiě)verilog程序,編譯生成edf網(wǎng)表文件,再通過(guò)LabVIEW FPGA中的IP Block集成節(jié)點(diǎn)調(diào)用edf網(wǎng)表文件生成IP核。這種開(kāi)發(fā)模式不僅縮短了程序編譯時(shí)間,還降低了資源占用率。

      1 器件選型

      文中的主控制板卡和從控制板卡均選用FPGA板卡,具體型號(hào)為AX7035,該板卡以XC7A35T-2FGG484芯片作為核心,完全滿(mǎn)足系統(tǒng)需求。

      文中選用8通道A/D采集模塊,具體型號(hào)為AN706,該模塊以AD7606芯片作為核心,具有8個(gè)數(shù)據(jù)采集通道、16位的采樣精度和最高200 KSPS的采樣速率,可以對(duì)±10 V和±5 V的雙極性信號(hào)進(jìn)行采集,能夠滿(mǎn)足系統(tǒng)高精度需求[5]。

      2 系統(tǒng)總體架構(gòu)設(shè)計(jì)

      系統(tǒng)的整體架構(gòu)由1塊主控制板卡、3塊從控制板卡和3塊A/D采集模塊AN706構(gòu)成,使系統(tǒng)具有24個(gè)采集通道,且每通道都具有16位的采集精度。其整體架構(gòu)圖如圖1所示。系統(tǒng)的工作流程主要為:控制3塊AN706采集多通道數(shù)據(jù),并將數(shù)據(jù)傳輸?shù)綄?duì)應(yīng)的3塊從控制板卡;3塊從控制板卡通過(guò)改良式SPI總線(xiàn)將接收的數(shù)據(jù)傳輸給主控制板卡;主控制板卡通過(guò)FIFO將數(shù)據(jù)傳輸給千兆以太網(wǎng)模塊;最后通過(guò)千兆以太網(wǎng)模塊將數(shù)據(jù)傳輸給上位機(jī),通過(guò)上位機(jī)前面板的波形圖控件對(duì)采集的數(shù)據(jù)波形進(jìn)行顯示。文中系統(tǒng)涉及了大量不同線(xiàn)程間的數(shù)據(jù)傳輸,由于不同線(xiàn)程可能具有不同的吞吐率,所以將數(shù)據(jù)通過(guò)FIFO進(jìn)行傳輸,可以避免數(shù)據(jù)丟失或覆蓋[6]。異步信號(hào)通過(guò)兩級(jí)寄存器進(jìn)行延拍,減小亞穩(wěn)態(tài)出現(xiàn)的概率,確保了系統(tǒng)的穩(wěn)定可靠[7]。

      圖1 系統(tǒng)整體架構(gòu)圖

      3 接口設(shè)計(jì)

      3.1 AN706接口設(shè)計(jì)

      AD采集模塊AN706通過(guò)40pin擴(kuò)展接口與從控制板卡AX7035相連。AN706的控制信號(hào)均由從控制板卡AX7035產(chǎn)生。AN706接口簡(jiǎn)圖如圖2所示。

      圖2 AN706接口簡(jiǎn)圖

      3.2 改良式SPI總線(xiàn)接口設(shè)計(jì)

      文中使用改良式SPI總線(xiàn)實(shí)現(xiàn)主控制板卡和從控制板卡間的通信。同步通信時(shí)鐘SCK由改良式SPI總線(xiàn)主機(jī)模塊產(chǎn)生,并提供給改良式SPI總線(xiàn)從機(jī)模塊使用。為了加快傳輸速率,將輸入的16位數(shù)據(jù)拆分為高8位和低8位,分別通過(guò)2根miso數(shù)據(jù)線(xiàn)進(jìn)行傳輸。每個(gè)改良式SPI總線(xiàn)從機(jī)模塊均擁有2根miso數(shù)據(jù)線(xiàn),可以同時(shí)向改良式SPI總線(xiàn)主機(jī)模塊發(fā)送數(shù)據(jù),從而實(shí)現(xiàn)多塊控制板卡間的高速并行通信。改良式SPI總線(xiàn)接口簡(jiǎn)圖如圖3所示。

      圖3 改良式SPI總線(xiàn)接口簡(jiǎn)圖

      3.3 千兆以太網(wǎng)接口設(shè)計(jì)

      文中系統(tǒng)采用AX7035開(kāi)發(fā)板上集成的千兆以太網(wǎng)芯片KSZ9031作為千兆以太網(wǎng)模塊的控制核心。該芯片只需占用較少的I/O引腳資源,在需要使用千兆以太網(wǎng)通信的項(xiàng)目中是一個(gè)不錯(cuò)的選擇。由于文中系統(tǒng)只需通過(guò)千兆以太網(wǎng)向上位機(jī)發(fā)送數(shù)據(jù),所以文中只設(shè)計(jì)了千兆以太網(wǎng)發(fā)送線(xiàn)程。千兆以太網(wǎng)接口簡(jiǎn)圖如圖4所示。

      圖4 千兆以太網(wǎng)接口簡(jiǎn)圖

      4 程序設(shè)計(jì)

      4.1 AN706驅(qū)動(dòng)程序的設(shè)計(jì)

      文中AN706的8個(gè)通道采用并行采樣模式,采樣速率均設(shè)置為200 KSPS,沒(méi)有過(guò)采樣[8]。為保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,程序中設(shè)置了輸出有效信號(hào)data_out_valid。程序開(kāi)始時(shí),首先對(duì)A/D進(jìn)行復(fù)位,然后發(fā)送并行采集信號(hào)AD_convstab,啟動(dòng)A/D轉(zhuǎn)換。通過(guò)AD_busy信號(hào)判斷AN706當(dāng)前是否為空閑狀態(tài),當(dāng)AD_busy信號(hào)為低電平時(shí),表示AN706當(dāng)前處于空閑狀態(tài),開(kāi)始數(shù)據(jù)轉(zhuǎn)換,拉低AD_CS信號(hào)。當(dāng)8個(gè)通道的數(shù)據(jù)均轉(zhuǎn)換完成后,進(jìn)入轉(zhuǎn)換結(jié)束狀態(tài),拉高AD_CS信號(hào),取消片選。并在此時(shí)判斷采樣率計(jì)時(shí)器是否計(jì)滿(mǎn),計(jì)滿(mǎn)后一次數(shù)據(jù)轉(zhuǎn)換完成,數(shù)據(jù)輸出有效,此時(shí)數(shù)據(jù)會(huì)移到FIFO中進(jìn)行緩存,若不繼續(xù)采集,則結(jié)束。AN706控制流程圖如圖5所示。

      圖5 AN706控制流程圖

      文中的AN706控制程序是根據(jù)AN706控制流程圖使用硬件描述語(yǔ)言(verilog)進(jìn)行編寫(xiě),并且對(duì)程序的正確性和可靠性進(jìn)行仿真驗(yàn)證,AN706控制程序的仿真驗(yàn)證圖如圖6所示。使用編譯好的AN706控制程序生成edf網(wǎng)表文件,供LabVIEW FPGA調(diào)用生成IP核。

      圖6 AN706時(shí)序仿真驗(yàn)證圖

      4.2 改良式SPI總線(xiàn)通信的程序設(shè)計(jì)

      文中的改良式SPI總線(xiàn)通信程序以狀態(tài)機(jī)架構(gòu)作為設(shè)計(jì)核心思想。SCK時(shí)鐘分頻為10分頻,SCK時(shí)鐘在空閑狀態(tài)時(shí)會(huì)一直保持低電平,數(shù)據(jù)的發(fā)送和接收分別在該時(shí)鐘的上升沿和下降沿進(jìn)行。改良式SPI總線(xiàn)通信的程序分為主機(jī)程序和從機(jī)程序2個(gè)部分,其中主控制板卡作為主機(jī),從控制板卡作為從機(jī)。主機(jī)程序的控制流程為:當(dāng)開(kāi)始信號(hào)有效時(shí),通過(guò)計(jì)時(shí)器產(chǎn)生SCK時(shí)鐘,供從機(jī)使用,并且開(kāi)始進(jìn)行數(shù)據(jù)的接收,拉低CS信號(hào),當(dāng)接收完指定位數(shù)的數(shù)據(jù)后,一次數(shù)據(jù)接收完成,拉高CS信號(hào),若不繼續(xù)接收,則結(jié)束。主機(jī)程序控制流程圖如圖7所示。

      圖7 主機(jī)程序控制流程圖

      從機(jī)程序控制流程為:當(dāng)CS信號(hào)為低電平時(shí),當(dāng)前狀態(tài)由空閑狀態(tài)變?yōu)榘l(fā)送狀態(tài),當(dāng)SCK信號(hào)的上升沿到來(lái)時(shí),且當(dāng)前狀態(tài)為發(fā)送狀態(tài)時(shí),開(kāi)始數(shù)據(jù)的發(fā)送,當(dāng)發(fā)送完指定位數(shù)的數(shù)據(jù)后,一次數(shù)據(jù)發(fā)送完成,狀態(tài)變回空閑,若不繼續(xù)發(fā)送數(shù)據(jù),則結(jié)束。具體的從機(jī)程序控制流程圖如圖8所示。

      圖8 從機(jī)程序控制流程圖

      根據(jù)從機(jī)程序控制流程圖和主機(jī)程序控制流程圖,使用硬件描述語(yǔ)言(verilog)對(duì)改良式SPI總線(xiàn)通信程序進(jìn)行編寫(xiě),通過(guò)仿真驗(yàn)證了其正確性和可靠性,改良式SPI總線(xiàn)通信的仿真驗(yàn)證圖如圖9所示。主控制板卡可以同時(shí)接收3塊從控制板卡發(fā)送的數(shù)據(jù),互不干擾,并加入了input_rdy信號(hào)、data_valid信號(hào)和input_valid信號(hào)作為握手信號(hào),充分保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和穩(wěn)定性。將編譯完畢的程序生成edf網(wǎng)表文件,供LabVIEW FPGA調(diào)用生成IP核。

      圖9 改良式SPI時(shí)序仿真驗(yàn)證圖

      4.3 LabVIEW FPGA程序設(shè)計(jì)

      文中的LabVIEW FPGA程序設(shè)計(jì)主要分為主控制板卡部分和從控制板卡部分。主控制板卡部分主要包括千兆以太網(wǎng)通信線(xiàn)程和改良式SPI總線(xiàn)通信的主機(jī)線(xiàn)程;從控制板卡部分主要包括改良式SPI總線(xiàn)通信的從機(jī)線(xiàn)程和數(shù)據(jù)采集線(xiàn)程。這種模塊化的程序設(shè)計(jì)也便于管理以及后期維護(hù)[9]。

      4.3.1 主控制板卡部分

      千兆以太網(wǎng)線(xiàn)程的主要功能是實(shí)現(xiàn)上位機(jī)與下位機(jī)的通信。具體參數(shù)配置為:FPGA和上位機(jī)的IP地址分別設(shè)置為192.168.0.2和192.168.0.3,轉(zhuǎn)化為十六進(jìn)制分別是C0A80002和C0A80003;發(fā)送數(shù)據(jù)的長(zhǎng)度為1 536個(gè)字節(jié);PC端的物理地址設(shè)置為廣播,表示不對(duì)數(shù)據(jù)進(jìn)行過(guò)濾。通過(guò)FIFO實(shí)現(xiàn)數(shù)據(jù)的跨線(xiàn)程傳輸,當(dāng)send_en信號(hào)為真且FIFO沒(méi)有超時(shí),將FIFO中的數(shù)據(jù)發(fā)送給data_in端口,詳細(xì)的程序框圖如圖10所示。

      圖10 千兆以太網(wǎng)通信線(xiàn)程

      改良式SPI總線(xiàn)主機(jī)線(xiàn)程的功能是接收從控制板卡發(fā)送的數(shù)據(jù)。設(shè)計(jì)思路是使用LabVIEW FPGA中的IP Block集成節(jié)點(diǎn)將改良式SPI總線(xiàn)主機(jī)程序的edf網(wǎng)表文件生成IP核,對(duì)IP核中相應(yīng)的輸入輸出端口進(jìn)行I/O引腳配置,當(dāng)data_valid信號(hào)為真時(shí),F(xiàn)IFO會(huì)對(duì)此時(shí)接收的數(shù)據(jù)進(jìn)行緩存,具體程序框圖如圖11所示。

      圖11 改良式SPI總線(xiàn)主機(jī)線(xiàn)程

      4.3.2 從控制板卡部分

      本文共有3塊從控制板卡,由于程序設(shè)計(jì)大致相同,這里只舉一例說(shuō)明。從控制板卡部分主要包括改良式SPI總線(xiàn)從機(jī)線(xiàn)程和數(shù)據(jù)采集線(xiàn)程。改良式SPI總線(xiàn)從機(jī)線(xiàn)程的主要功能是將采集的多通道數(shù)據(jù)發(fā)送給改良式SPI總線(xiàn)主機(jī)線(xiàn)程。數(shù)據(jù)的輸入主要是通過(guò)握手制FIFO實(shí)現(xiàn),當(dāng)input_rdy信號(hào)為真時(shí),表示從機(jī)線(xiàn)程可以進(jìn)行數(shù)據(jù)接收,當(dāng)FIFO的輸出有效時(shí),從機(jī)線(xiàn)程會(huì)將當(dāng)前接收的數(shù)據(jù)轉(zhuǎn)化為串行數(shù)據(jù)通過(guò)2根miso數(shù)據(jù)線(xiàn)發(fā)送給主機(jī)線(xiàn)程。改良式SPI總線(xiàn)從機(jī)線(xiàn)程的程序框圖如圖12所示。

      圖12 改良式SPI總線(xiàn)從機(jī)線(xiàn)程

      數(shù)據(jù)采集線(xiàn)程的設(shè)計(jì)思路同樣是調(diào)用上述AD7606驅(qū)動(dòng)程序的edf網(wǎng)表文件生成IP核,該線(xiàn)程的主要功能是控制AN706進(jìn)行數(shù)據(jù)采集,并將采集的多通道數(shù)據(jù)傳遞給改良式SPI總線(xiàn)從機(jī)線(xiàn)程。根據(jù)AN706和AX7035的I/O引腳對(duì)應(yīng)關(guān)系,對(duì)IP核中相應(yīng)的輸入輸出端口進(jìn)行I/O引腳分配,當(dāng)data_out_valid信號(hào)為真時(shí),8個(gè)FIFO將分別緩存對(duì)應(yīng)的輸出端子輸出的數(shù)據(jù),避免數(shù)據(jù)的丟失和確保數(shù)據(jù)的準(zhǔn)確性。數(shù)據(jù)采集線(xiàn)程的程序框圖如圖13所示。

      圖13 數(shù)據(jù)采集線(xiàn)程

      5 系統(tǒng)驗(yàn)證

      5.1 系統(tǒng)驗(yàn)證平臺(tái)的搭建

      通過(guò)搭建系統(tǒng)驗(yàn)證平臺(tái),對(duì)系統(tǒng)進(jìn)行驗(yàn)證分析,將3塊AN706分別插入3塊從控制板卡AX7035的J9擴(kuò)展口中,再使用杜邦線(xiàn)將3塊從控制板卡與主控制板卡相連,最后使用千兆以太網(wǎng)線(xiàn)將主控制板卡連接到上位機(jī)。系統(tǒng)驗(yàn)證平臺(tái)如圖14所示。

      圖14 系統(tǒng)驗(yàn)證平臺(tái)

      5.2 系統(tǒng)實(shí)驗(yàn)分析

      文中的上位機(jī)前面板通過(guò)LabVIEW FPGA進(jìn)行設(shè)計(jì),通過(guò)前面板的顯示控件對(duì)采集的波形進(jìn)行分析。由于傳統(tǒng)的UDP通信存在數(shù)據(jù)覆蓋和數(shù)據(jù)丟失的可能性,所以文中上位機(jī)設(shè)計(jì)基于winpcap工具包,這種直接從網(wǎng)卡中提取數(shù)據(jù)的方式,可以有效避免數(shù)據(jù)的丟失。

      具體實(shí)驗(yàn)流程為:首先使用信號(hào)發(fā)生器產(chǎn)生2種波形分別為正弦波和三角波的電壓信號(hào),周期均為1 ms,峰峰值均為10 V,然后使用數(shù)據(jù)采集系統(tǒng)對(duì)產(chǎn)生的電壓信號(hào)進(jìn)行采集和傳輸,最后通過(guò)上位機(jī)前面板對(duì)采集的數(shù)據(jù)進(jìn)行觀測(cè)和分析。由于通道數(shù)過(guò)多,這里只列舉部分進(jìn)行說(shuō)明。圖15為系統(tǒng)前面板的部分波形圖顯示界面。由圖15可知,系統(tǒng)能夠正常工作,可以實(shí)現(xiàn)24通道并行采集,并且采集的信號(hào)波形完整穩(wěn)定,無(wú)失真信號(hào),信號(hào)周期為0.98 ms,峰峰值為9.94 V,與產(chǎn)生的電壓信號(hào)基本一致,表明系統(tǒng)具有良好的穩(wěn)定性和可靠性。

      5.3 系統(tǒng)誤差分析

      系統(tǒng)的采集范圍為-5~5 V,采集通道數(shù)為24,采樣精度為16位,系統(tǒng)理論分辨率為0.152 5 mV。表1為系統(tǒng)采集的部分?jǐn)?shù)據(jù)量,可以計(jì)算出系統(tǒng)的誤差都在0.65%左右,能夠滿(mǎn)足高精度需求。

      (a)通道7

      (b)通道8

      (c)通道2

      (d)通道3

      (e)通道5

      (f)通道6

      表1 誤差分析

      6 結(jié)論

      文中的多通道數(shù)據(jù)采集系統(tǒng)由4塊FPGA板卡AX7035搭配3塊A/D采集模塊AN706構(gòu)成,使系統(tǒng)具有24個(gè)采集通道和16位的采樣精度。多塊FPGA板卡間采用改良式SPI總線(xiàn)通信,實(shí)現(xiàn)了多板卡間的高速并行通信。與傳統(tǒng)開(kāi)發(fā)模式相比,文中通過(guò)LabVIEW FPGA工具包調(diào)用edf網(wǎng)表文件生成IP核的方式,能夠有效縮短系統(tǒng)開(kāi)發(fā)周期和程序編譯時(shí)間,很適合基于FPGA的系統(tǒng)開(kāi)發(fā)。由實(shí)驗(yàn)結(jié)果可知,系統(tǒng)可以實(shí)現(xiàn)24通道并行采集,且能夠適應(yīng)多種類(lèi)型的電壓信號(hào),具有良好的穩(wěn)定性和可靠性。另外,文中采用了模塊化的設(shè)計(jì)思想,也讓系統(tǒng)的后期擴(kuò)展和維護(hù)變得更加簡(jiǎn)便快捷。若需要提高系統(tǒng)的通道數(shù)和采樣精度,可以通過(guò)修改相應(yīng)的程序并更換A/D采集模塊來(lái)實(shí)現(xiàn)。

      猜你喜歡
      主控制板卡線(xiàn)程
      基于多核框架的無(wú)人機(jī)控制系統(tǒng)
      基于多核框架的無(wú)人機(jī)控制系統(tǒng)
      電子制作(2021年9期)2021-06-17 03:59:54
      基于PCI9054的多總線(xiàn)通信板卡的研制
      基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
      四工位組合機(jī)床動(dòng)力頭主控制電路的設(shè)計(jì)
      淺談linux多線(xiàn)程協(xié)作
      路虎攬勝車(chē)倒車(chē)影像功能失效
      一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑?xiě)技術(shù)
      一種通用模擬量及開(kāi)關(guān)量信號(hào)采集板卡的設(shè)計(jì)
      Linux線(xiàn)程實(shí)現(xiàn)技術(shù)研究
      江安县| 元阳县| 塔河县| 喀什市| 宁河县| 额敏县| 四子王旗| 乌兰察布市| 奉新县| 夏津县| 四平市| 绥芬河市| 桐柏县| 天门市| 漯河市| 庐江县| 台前县| 沿河| 太仆寺旗| 宜兰市| 改则县| 儋州市| 郸城县| 新竹市| 福泉市| 章丘市| 东乌珠穆沁旗| 土默特右旗| 隆化县| 绥芬河市| 华容县| 内丘县| 高台县| 铅山县| 林西县| 盐城市| 新兴县| 泾源县| 曲水县| 康平县| 义马市|