• 
    

    
    

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

      基于FPGA的核磁共振成像儀通信主控系統(tǒng)設(shè)計(jì)

      2022-09-01 02:29:32王松
      微型電腦應(yīng)用 2022年8期
      關(guān)鍵詞:脈沖序列主控板中斷

      王松

      (臨邑縣人民醫(yī)院,山東,德州 251500)

      0 引言

      核磁共振成像系統(tǒng)中的主控板既要負(fù)責(zé)與計(jì)算機(jī)的通信,又要生成相應(yīng)的脈沖序列,同時(shí)還需對其他模塊進(jìn)行控制。因此,其性能的好壞會(huì)直接影響成像效果[1]。在對主控板進(jìn)行設(shè)計(jì)時(shí),通常將其絕大多數(shù)功能交由CPU執(zhí)行,但當(dāng)任務(wù)繁重時(shí)會(huì)大大增加CPU的負(fù)擔(dān),進(jìn)而降低整個(gè)系統(tǒng)的性能[2-3]。本文所設(shè)計(jì)的主控板中數(shù)據(jù)的存儲(chǔ)和通信由CPU處理,其余功能均由FPGA所編寫的其他硬件模塊來執(zhí)行,這將有效提高整個(gè)成像系統(tǒng)的使用性能。

      1 主控板的設(shè)計(jì)

      為了滿足設(shè)計(jì)要求,本文選擇帶有性能較好的FPGA芯片的Stratix系列開發(fā)板作為主控板,其整體結(jié)構(gòu)如圖1所示。在對主控板進(jìn)行設(shè)計(jì)時(shí),主要分為軟件設(shè)計(jì)和硬件設(shè)計(jì)。在對軟件進(jìn)行設(shè)計(jì)時(shí),協(xié)處理器采用系統(tǒng)自帶的NiosⅡ,利用SoPC Builder軟件構(gòu)建基于FPGA上的開發(fā)平臺,具體結(jié)構(gòu)如圖2所示。通過相應(yīng)的操作系統(tǒng)和協(xié)議棧,實(shí)現(xiàn)主控板和軟件之間的數(shù)據(jù)傳輸和通信。將網(wǎng)口所傳輸?shù)臄?shù)據(jù)存儲(chǔ)在RAM中,同時(shí)將所收集的數(shù)據(jù)傳輸給計(jì)算機(jī)進(jìn)行圖像處理,通過網(wǎng)線實(shí)現(xiàn)與計(jì)算機(jī)之間的通信,這樣可以保證數(shù)據(jù)傳輸?shù)乃俣群头€(wěn)定性。

      圖1 主控板整體結(jié)構(gòu)

      圖2 嵌入式開發(fā)平臺

      在對主控板進(jìn)行硬件設(shè)計(jì)時(shí),利用Verilog語言生成相應(yīng)的控制模塊,通過脈沖序列所生成的模塊對RAM中的數(shù)據(jù)進(jìn)行處理,進(jìn)而實(shí)現(xiàn)對其他模塊的控制并生成所需的脈沖序列[4-5]。本文將主控板的功能進(jìn)行了明確的區(qū)分,通過對主控板進(jìn)行嵌入式設(shè)計(jì)實(shí)現(xiàn)了與計(jì)算機(jī)之間的通信,通過相應(yīng)的硬件設(shè)計(jì)生成了系統(tǒng)所需的脈沖序列,通過該設(shè)計(jì)可有效降低CPU的運(yùn)行壓力,提升整個(gè)系統(tǒng)的運(yùn)行速度和穩(wěn)定性,同時(shí)還可實(shí)現(xiàn)對系統(tǒng)多通道的擴(kuò)展。

      2 通信模塊

      在進(jìn)行嵌入式設(shè)計(jì)時(shí),操作系統(tǒng)選用代碼公開、移植方便且可裁剪的μC/OS-Ⅱ,其具體結(jié)構(gòu)如圖3所示。

      圖3 文件系統(tǒng)結(jié)構(gòu)

      在對其進(jìn)行移植時(shí)需要對OS_CPU.C、OS_CPU_A、OS_CPU.H中與處理器相關(guān)的代碼進(jìn)行修改。在對OS_CPU.H進(jìn)行編譯時(shí),主要對于編譯器相關(guān)的數(shù)據(jù)和定義進(jìn)行修改,具體代碼如下[6]:

      /* This is the definition for Nios II.*/

      typedef unsigned char BOOLEAD;

      typedef unsigned char INT8U;

      ……

      typedef unsigned int OS_STK;

      # define OS_STK_GROWTH 1/* Stack grows from HIGH to LOW memory */

      在該文件中還對2個(gè)重要函數(shù)進(jìn)行了宏定義,代碼如下。其中,OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()分別為關(guān)中斷和開中斷函數(shù)。該函數(shù)是進(jìn)行原子操作的重要環(huán)節(jié),在操作時(shí)還可調(diào)用系統(tǒng)自帶的中斷函數(shù)[7]。

      # define OS_CPU_SR alt_irq_context

      # define OS_ENTER_CRITICAL()cpu_sr=alt_irq_disable_all()

      # define OS_EXIT_CRITICAL()alt_irq_enable_all(cpu_sr)

      在對OS_CPU.C進(jìn)行編譯時(shí),主要對堆棧函數(shù)進(jìn)行初始化,同時(shí)對系統(tǒng)所用到的Hook函數(shù)進(jìn)行修改。在對OS_CPU.S進(jìn)行處理時(shí),主要對實(shí)現(xiàn)任務(wù)的啟動(dòng)和切換函數(shù)進(jìn)行編譯,這也是進(jìn)行系統(tǒng)移植的核心工作。在編譯時(shí),主要針對以下函數(shù):OSStartHighRdy()為優(yōu)先級最高的啟動(dòng)運(yùn)行函數(shù);OSCtxSW()和OSIntCtxSW()分別為任務(wù)級和中斷級的任務(wù)切換函數(shù)。當(dāng)以上設(shè)置完成后還需對系統(tǒng)的時(shí)鐘進(jìn)行設(shè)置,對定時(shí)器的中斷行為進(jìn)行設(shè)置,同時(shí)還需將其與中斷函數(shù)進(jìn)行綁定[8-9]。

      將lwIP協(xié)議棧(即TCP/IP小型協(xié)議棧)移植到本文所用的操作系統(tǒng)上,以實(shí)現(xiàn)主控板和計(jì)算機(jī)之間的通信。由于lwIP協(xié)議棧中與編譯器和操作系統(tǒng)等相關(guān)部分的代碼都是獨(dú)立的且位于同一目錄下(.srcarch),所以在進(jìn)行協(xié)議棧的移植時(shí)只需對相應(yīng)目錄下的文件進(jìn)行修改即可。在對與CPU或編譯器相關(guān)的接口進(jìn)行修改時(shí),主要針對相應(yīng)目錄下cc.h和pre.h中的數(shù)據(jù)類型、存儲(chǔ)方式等,在修改時(shí)要與之前所定義的參數(shù)保持一致。

      在對操作系統(tǒng)相關(guān)的接口進(jìn)行編譯時(shí),主要針對sys_arch.h和sys_arch.c兩個(gè)文件,主要目的是實(shí)現(xiàn)信號量函數(shù)、消息量函數(shù)、定時(shí)器函數(shù)和創(chuàng)建線程的函數(shù)。本文所用操作系統(tǒng)中也有信號量和消息機(jī)制,對系統(tǒng)中的類似函數(shù)進(jìn)行封裝處理后即可實(shí)現(xiàn)所需功能。除此之外,還有幾個(gè)函數(shù)需進(jìn)行重新定義,其中包括消息隊(duì)列結(jié)構(gòu),通過系統(tǒng)自身的QSQ管理模塊即可實(shí)現(xiàn)對消息隊(duì)列的管理,包括創(chuàng)建、刪除等操作。在lwIP中每個(gè)線程都需有相應(yīng)的結(jié)構(gòu)隊(duì)列,由于上文中已經(jīng)定義了sys_timeout和sys_timeouts結(jié)構(gòu)體,所以只要找到相應(yīng)線程所使用的指針函數(shù)即可。

      本文所采用的網(wǎng)絡(luò)芯片為88E1111以太網(wǎng)收發(fā)器芯片,其具體的驅(qū)動(dòng)結(jié)構(gòu)如圖4所示。其中,函數(shù)1主要實(shí)現(xiàn)對芯片的初始化,函數(shù)2主要實(shí)現(xiàn)對以太網(wǎng)數(shù)據(jù)包的讀取,函數(shù)3的主要作用是在進(jìn)行初始化時(shí)對以太網(wǎng)數(shù)據(jù)包進(jìn)行發(fā)送,函數(shù)7主要是對網(wǎng)卡進(jìn)行初始化,函數(shù)8和9的基本功能是進(jìn)行數(shù)據(jù)包收發(fā)。

      圖4 底層驅(qū)動(dòng)程序

      當(dāng)以上程序開發(fā)完畢后,對其網(wǎng)絡(luò)通信進(jìn)行測試,看所進(jìn)行的移植操作是否成功。利用Ping命令和iperf軟件測試相應(yīng)協(xié)議的工作狀態(tài),測試結(jié)果如圖5所示。觀察測試結(jié)果發(fā)現(xiàn),lwIP協(xié)議在μC/OS-Ⅱ運(yùn)行正常,由于主控板頻率較低,在一定程度上限制了網(wǎng)卡芯片的性能發(fā)揮[10]。通過iperf測試可發(fā)現(xiàn)數(shù)據(jù)傳輸?shù)乃俾始s為12.6 Mbps,完全可滿足實(shí)際需要,如圖6所示。

      圖5 測試結(jié)果

      圖6 50 MHz工作頻率iperf測試結(jié)果

      3 脈沖序列的生成

      圖7為整體功能實(shí)現(xiàn)的流程圖。其中,通信模塊已實(shí)現(xiàn)了其主要功能,后續(xù)還需主控板對數(shù)據(jù)進(jìn)行處理分析并生成對應(yīng)的脈沖序列,這也是本文硬件設(shè)計(jì)所需解決的主要問題。要想生成對應(yīng)的脈沖序列,首先需要對硬件中的各個(gè)模塊進(jìn)行初始化,當(dāng)軟件收到相應(yīng)命令后發(fā)出信號通知脈沖序列生成模塊進(jìn)行數(shù)據(jù)的讀取,后續(xù)還需對所有的數(shù)據(jù)進(jìn)行校驗(yàn),以保證數(shù)據(jù)的有效性。最后得到整個(gè)命令的總長度并執(zhí)行命令,根據(jù)所得命令對各個(gè)模塊進(jìn)行配置,進(jìn)而生成相應(yīng)的脈沖序列達(dá)到最終目標(biāo)。

      圖7 整體功能實(shí)現(xiàn)的流程圖

      圖8為利用Modelsim軟件對硬件進(jìn)行仿真的結(jié)果,觀察發(fā)現(xiàn)其幅值和時(shí)序均達(dá)到了預(yù)期目標(biāo)。圖9為示波器所采集的圖像結(jié)果,觀察可發(fā)現(xiàn)測試所得結(jié)果與仿真結(jié)果基本一致,可滿足最終的成像要求。

      圖8 硬件仿真結(jié)果

      圖9 示波器采集圖像

      4 總結(jié)

      本文主要對核磁共振成像系統(tǒng)的主控板進(jìn)行設(shè)計(jì),通過軟件實(shí)現(xiàn)了處理器和計(jì)算機(jī)之間的通信,利用硬件得到了系統(tǒng)所需的脈沖序列。通過對所設(shè)計(jì)的系統(tǒng)進(jìn)行仿真和測試發(fā)現(xiàn),通過這種設(shè)計(jì)可增加系統(tǒng)成像的精度和穩(wěn)定性。本設(shè)計(jì)在開發(fā)過程中得到了臨邑縣人民醫(yī)院信息中心技術(shù)人員的大力支持和幫助,特此鳴謝。

      猜你喜歡
      脈沖序列主控板中斷
      一種快速可靠的主控冗余及切換機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)
      一種基于TOA的同型雷達(dá)同源判別方法
      升級雙主控板交換機(jī)ISO
      跟蹤導(dǎo)練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      基于脈沖序列核的脈沖神經(jīng)元監(jiān)督學(xué)習(xí)算法
      變頻器檢測臺的設(shè)計(jì)、制作及主控板的維修
      電子制作(2016年11期)2016-11-07 08:43:30
      一D-T2二維核磁共振脈沖序列改進(jìn)設(shè)計(jì)及性能對比
      二維反式氫磷相關(guān)脈沖序列設(shè)計(jì)及在含磷化學(xué)毒劑分析中的應(yīng)用
      AT89C51與中斷有關(guān)的寄存器功能表解
      准格尔旗| 大方县| 崇义县| 宜丰县| 南和县| 安龙县| 栾川县| 土默特右旗| 新源县| 隆德县| 永泰县| 临桂县| 贵州省| 和田市| 大名县| 玛纳斯县| 屏山县| 南江县| 玉环县| 邹城市| 光山县| 赣榆县| 个旧市| 巴楚县| 宁夏| 沾化县| 繁昌县| 九龙城区| 漯河市| 宜都市| 望都县| 韶关市| 韩城市| 泸定县| 启东市| 搜索| 内黄县| 灯塔市| 株洲县| 集贤县| 芒康县|