• 
    

    
    

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

      基于Zynq-7000的CT機(jī)高壓控制系統(tǒng)研究

      2019-08-13 07:48:36和曉軍
      關(guān)鍵詞:燈絲內(nèi)核寄存器

      郭 喆,和曉軍

      (沈陽理工大學(xué) 自動(dòng)化與電氣工程學(xué)院,遼寧 沈陽 110159)

      CT機(jī)作為一種疾病診斷及健康檢查的醫(yī)療輔助設(shè)備,目前已廣泛應(yīng)用于臨床醫(yī)學(xué)領(lǐng)域.在CT機(jī)掃描過程中,高壓發(fā)生器產(chǎn)生穩(wěn)定的管電流與管電壓,控制球管產(chǎn)生X射線并打到探測(cè)器上,從而采集數(shù)據(jù)并進(jìn)行圖像重建.在此過程中,高壓發(fā)生器的輸出功率、響應(yīng)速度、穩(wěn)定性、控制精度等會(huì)影響CT機(jī)的掃描性能,從而影響掃描圖像的質(zhì)量.近年來,隨著科技的發(fā)展,高壓控制系統(tǒng)正向智能化、集成化和實(shí)用化方向飛速發(fā)展.同時(shí),嵌入式系統(tǒng)因其良好的實(shí)時(shí)性、穩(wěn)定性等,被廣泛用于工業(yè)制造的各個(gè)領(lǐng)域.傳統(tǒng)CT機(jī)的高壓控制部分通常采用FPGA(Field Programmable Gate Array)作為控制中心,邏輯控制方面的設(shè)計(jì)繁雜且難以調(diào)試.Xilinx公司出品的Zynq-7000可擴(kuò)展平臺(tái),集成Cortex-A9核心處理器,改變了傳統(tǒng)的分離式FPGA+ARM(Advanced RISC Machines)/DSP(Digital Signal Processing)架構(gòu)模式,能夠提供集成式、高效快速多核處理的小型化解決方案[1].該平臺(tái)以傳統(tǒng)的可編程門陣列FPGA結(jié)構(gòu)為基礎(chǔ),將處理單元和可編程邏輯資源集成在單個(gè)芯片上,把復(fù)雜的程序設(shè)計(jì)放在處理器端,以便于研發(fā)人員修改與調(diào)試.此外,F(xiàn)PGA與ARM之間采用高速內(nèi)部總線進(jìn)行通信,使系統(tǒng)處理數(shù)據(jù)更加迅速、可靠.鑒于此,本文基于黑金AC7020開發(fā)板,從定制IP(Intellectual Property)核的設(shè)計(jì),到Linux操作系統(tǒng)的移植和驅(qū)動(dòng)程序設(shè)計(jì),從整體上實(shí)現(xiàn)CT機(jī)的高壓控制系統(tǒng),并驗(yàn)證嵌入式系統(tǒng)與FPGA結(jié)合的可靠性與靈活性,為Zynq-7000軟硬件的協(xié)同開發(fā)提供借鑒.

      1 系統(tǒng)開發(fā)平臺(tái)

      與傳統(tǒng)上以FPGA為核心的設(shè)計(jì)思路相比,Zynq-7000可擴(kuò)展平臺(tái)主要采用ARM處理器,而非可編程邏輯元件進(jìn)行控制.系統(tǒng)能夠在CT機(jī)運(yùn)行時(shí)引導(dǎo)并運(yùn)行各個(gè)獨(dú)立于可編程邏輯之外的操作系統(tǒng),通過驅(qū)動(dòng)程序?qū)τ布O(shè)備進(jìn)行管理.這為CT機(jī)的整機(jī)設(shè)計(jì)提供了便利.

      Zynq-7000可擴(kuò)展平臺(tái)為系統(tǒng)的處理核心,包括可編程邏輯(Programming Logic,PL)和處理系統(tǒng)(Processing System,PS)兩部分[2].其PS部分包括雙核 ARM? CortexTM-A9處理器、512 kB的L2緩存、256 kB的片上存儲(chǔ)器和通用I/O外設(shè)端口等;其PL部分包括36 kB的BRAM(Block Random Access Memory)資源、數(shù)字信號(hào)處理DSP48E1資源、時(shí)鐘管理單元、模擬數(shù)字轉(zhuǎn)換器等.PS部分與PL部分之間通過AXI(Advanced eXtensible Interface)接口總線實(shí)現(xiàn)通信.本文采用的AXI- GP接口包含兩個(gè)32位主設(shè)備接口和兩個(gè)32位從設(shè)備接口.通過接口可訪問PS部分的片內(nèi)外設(shè).

      鑒于Zynq的獨(dú)特性質(zhì),本文采用IP核來完成軟件設(shè)計(jì)與硬件設(shè)計(jì)的協(xié)同.基于Zynq-7000搭建的CT機(jī)高壓控制系統(tǒng)如圖1所示.其中,上位機(jī)利用以太網(wǎng)同Zynq-7000 PS端移植的Linux操作系統(tǒng)進(jìn)行通信;PL端通過AXI總線與PS端進(jìn)行高速數(shù)據(jù)信號(hào)傳輸.在PL端,上位機(jī)發(fā)送的命令經(jīng)過定制IP核和SPI(Serial Peripheral Interface)邏輯接口的處理,通過通用I/O管腳被送入外部硬件設(shè)備,從而實(shí)現(xiàn)對(duì)高壓發(fā)生器的控制.

      圖1 基于Zynq-7000搭建的CT機(jī)高壓控制系統(tǒng)

      2 系統(tǒng)模塊設(shè)計(jì)

      CT機(jī)高壓控制系統(tǒng)的模塊設(shè)計(jì)主要分為PS端、PL端及二者間的通信部分.

      2.1 PS端設(shè)計(jì)

      Zynq-7000可擴(kuò)展平臺(tái)采用的是1 GHz ARM? 雙核CortexTM-A9 MPCore處理器.為構(gòu)建更加靈活的控制系統(tǒng),在PS端設(shè)計(jì)時(shí),將Linux系統(tǒng)移植到PS端,并把高壓發(fā)生器控制系統(tǒng)的主要控制功能放在更擅長(zhǎng)控制的PS端,而將擅長(zhǎng)數(shù)據(jù)處理的PL端作為從機(jī),相當(dāng)于由PS端所控制的大型“外設(shè)接口”.這樣,該平臺(tái)總體架構(gòu)以ARM處理器為主,F(xiàn)PGA為輔,F(xiàn)PGA只是ARM處理器的一個(gè)協(xié)處理器[3],可省去PL端設(shè)計(jì)的許多工作.

      傳統(tǒng)的系統(tǒng)移植方法必須進(jìn)行部分修改才能用于Zynq-7000可擴(kuò)展平臺(tái)?;赯ynq-7000可擴(kuò)展平臺(tái)的Linux系統(tǒng)移植包括:第一階段啟動(dòng)程序的修改和移植,內(nèi)核(uImage)與設(shè)備樹(devicetree.dtb)的編譯,Boot.bin 鏡像文件的創(chuàng)建與文件系統(tǒng)制作等部分。其中,第一階段啟動(dòng)程序包括Bootloader程序(通常是U-boot[4])和FSBL(First Stage Boot Loader)程序。

      將生成的 Boot.bin文件、編譯后的Linux 系統(tǒng)內(nèi)核、設(shè)備樹文件拷貝到SD卡的FAT格式分區(qū)中,并將文件系統(tǒng)放入EXT格式分區(qū),啟動(dòng)開發(fā)板,運(yùn)行SD卡上的文件,即可完成Linux系統(tǒng)移植。其移植設(shè)計(jì)框圖如圖2所示。

      圖2 Linux系統(tǒng)移植設(shè)計(jì)框圖

      Linux設(shè)備驅(qū)動(dòng)分為3類,即字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備.在PS端設(shè)計(jì)時(shí),需要編寫一個(gè)字符設(shè)備并以模塊化的形式將其加載到Linux系統(tǒng)上.

      在交叉編譯的環(huán)境下,生成.ko格式擴(kuò)展名的驅(qū)動(dòng)文件,使用insmod及rmmod命令進(jìn)行裝載和卸載,使用Open、Write、Read等底層函數(shù)讀寫數(shù)據(jù),利用 copy_from_user()、copy_to_user()函數(shù)進(jìn)行用戶層與內(nèi)核的數(shù)據(jù)交換,并用ioremap()函數(shù)將AXI-Lite總線定義的寄存器地址映射為虛擬地址.這里,需要定義在PL端定制IP核的基地址范圍,一般為0x4000_0000~0x4000_FFFF.

      2.2 PL端設(shè)計(jì)

      PL端設(shè)計(jì)主要圍繞高壓發(fā)生器展開。高壓發(fā)生器是由高壓直流電源、燈絲驅(qū)動(dòng)電源、陽極驅(qū)動(dòng)電源組成的。在高壓發(fā)生器工作時(shí),高壓直流電源施加在X射線管的陰陽兩極而產(chǎn)生電場(chǎng),為電子加速;燈絲驅(qū)動(dòng)電源施加在X射線管的陰極燈絲上,使球管的燈絲加熱,形成擁有大量游離電子的電子云,為高壓電場(chǎng)提供游離電子;旋轉(zhuǎn)陽極電源施加于X射線管的陽極,使陽極靶高速旋轉(zhuǎn)[5]。這3種電源協(xié)同工作,控制射線管陰極發(fā)射大量游離電子,使電子撞擊在高速旋轉(zhuǎn)的陽極靶上,電子束所攜帶的能量在遭遇阻擋后,大部分以熱能的形式被消散,而有效的部分能量可激發(fā)陽極靶產(chǎn)生 X 射線。在射線掃描人體的同時(shí),探測(cè)器采集經(jīng)過人體的X射線并將其轉(zhuǎn)換為數(shù)字信號(hào)后返給計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)通過圖像重建而最終形成影像信息。

      在設(shè)計(jì)系統(tǒng)開發(fā)平臺(tái)與高壓發(fā)生器的轉(zhuǎn)接電路時(shí),采用DS34LV87T四路差分線路驅(qū)動(dòng)器輸出差分信號(hào)。在邏輯設(shè)計(jì)時(shí),利用Verilog語言,設(shè)計(jì)SPI邏輯接口模塊(圖3)與高壓發(fā)生器的通信方案。

      圖3 SPI邏輯接口模塊

      PL端邏輯設(shè)計(jì)采用標(biāo)準(zhǔn)的SPI協(xié)議,通過通信,由主設(shè)備控制次設(shè)備。Zynq-7000平臺(tái)的PL端作為主設(shè)備,高壓發(fā)生器作為次設(shè)備。次設(shè)備的時(shí)鐘信號(hào)由主設(shè)備通過sck_in 管腳提供,同時(shí)由cs_in管腳發(fā)送片選信號(hào),對(duì)次設(shè)備進(jìn)行控制。在數(shù)據(jù)傳輸過程中,主設(shè)備首先發(fā)送片選信號(hào),選擇想要訪問的次設(shè)備,而后通過控制時(shí)鐘信號(hào)的極性與相位來保證數(shù)據(jù)在設(shè)備間的同步傳輸。 miso、mosi_in接口分別作為數(shù)據(jù)的出口、入口,主要用于 SPI 設(shè)備發(fā)送、接收數(shù)據(jù)。

      2.3 PS端與PL端的通信設(shè)計(jì)

      為提高處理器與FPGA之間的通信速度,實(shí)現(xiàn)控制的實(shí)時(shí)性,可選用高性能、高帶寬、低延遲的片上AXI總線.AXI總線符合AMBA(Advanced Microcontroller Bus Architecture)總線標(biāo)準(zhǔn)[6],采用的是READY-VALID握手通信機(jī)制.由主機(jī)產(chǎn)生的VALID信號(hào)指明何時(shí)的數(shù)據(jù)或控制信息有效.從機(jī)產(chǎn)生READY信號(hào),表明其已經(jīng)準(zhǔn)備好接收數(shù)據(jù)或控制信息.

      PS端發(fā)出的控制參數(shù)hv_ref、ie_ref、if_ref信號(hào),分別為千伏、毫安、千瓦,通過邏輯設(shè)計(jì)由miso接口送給高壓發(fā)生器。hv_a_meas、hv_c_meas、ie_meas、if_meas、ia_meas信號(hào)是mosi_in管腳接收的由高壓發(fā)生器返回的串行數(shù)據(jù)。通過解析,這些串行數(shù)據(jù)被并行化,而后返回PS端.

      針對(duì)PS端與PL端的通信,有研究者使用Vivado Desgin Suite軟件進(jìn)行設(shè)計(jì)[7],仍有需改進(jìn)之處.本文采用AXI_GP接口,以PS端作為主設(shè)備,PL端作為從設(shè)備,且在設(shè)計(jì)PS端與PL端的通信時(shí)自定義一個(gè)AXI-Lite的IP核(圖4),用來設(shè)置數(shù)據(jù)寬度、寄存器個(gè)數(shù).它也可用于修改頂層文件,以設(shè)計(jì)輸出輸入端口.

      在設(shè)計(jì)時(shí),考慮到需要從高壓發(fā)生器讀取大量數(shù)據(jù)信息,同時(shí)還要向高壓發(fā)生器發(fā)送配置參數(shù),因此定義了16個(gè)寄存器。通信時(shí),PS端通過寄存器尋址的方式對(duì)PL端進(jìn)行讀寫操作.對(duì)于高壓發(fā)生器的參數(shù)配置,通過Linux應(yīng)用程序?qū)懭腩A(yù)先設(shè)定地址的寄存器,并通過AXI4-Lite總線發(fā)送給PL端。當(dāng)PL端返回高壓發(fā)生器狀態(tài)信息時(shí),PS端從總線上讀取數(shù)據(jù),并將讀取的數(shù)據(jù)放入寄存器.IP核定義的16個(gè)寄存器(reg0~reg15)與AXI-Lite總線相連,PS端可以通過2個(gè)寄存器(reg0~reg1)向高壓發(fā)生器發(fā)送參數(shù)及控制命令;后14個(gè)寄存器(reg2~reg15)的功能是存放高壓發(fā)生器的狀態(tài)信息及實(shí)時(shí)數(shù)據(jù)值.

      實(shí)驗(yàn)表明,PS端與PL端的通信采用AXI總線,通信速度達(dá)到了300 Mb/s,能夠滿足控制系統(tǒng)高速傳輸信號(hào)的需求.

      3 系統(tǒng)實(shí)現(xiàn)

      Vivado軟件中模塊的設(shè)計(jì)是以IP核形式提交的[8].在Vivado軟件中加載各模塊,可搭建整套系統(tǒng).首先,將所編譯的內(nèi)核(uImage)、設(shè)備樹(devicetree.dtb)和Boot.bin拷貝到SD卡上,并制作文件系統(tǒng),安裝驅(qū)動(dòng)程序,同時(shí)將開發(fā)板連接到轉(zhuǎn)接板上;其次,使轉(zhuǎn)接板通過RS-485接口協(xié)議連接高壓發(fā)生器,啟動(dòng)Zynq-7000可擴(kuò)展平臺(tái)并運(yùn)行Linux系統(tǒng),系統(tǒng)上電后,將 FSBL程序加載到內(nèi)存,完成PS端的初始化,并由Bootloader程序?yàn)長(zhǎng)inux內(nèi)核配置初始化信息及重要外設(shè)參數(shù);然后,通過設(shè)備樹文件將硬件設(shè)備信息傳給內(nèi)核,把控制權(quán)交給 Linux 系統(tǒng)內(nèi)核[9];最后,將上位機(jī)通過串口調(diào)試助手連接到超級(jí)終端上,裝載驅(qū)動(dòng),并運(yùn)行執(zhí)行文件。圖5所示為高壓發(fā)生器硬件設(shè)備平臺(tái)圖片.

      圖4 AXI-Lite IP核接口選項(xiàng)界面

      圖5 高壓發(fā)生器硬件設(shè)備平臺(tái)圖片

      系統(tǒng)實(shí)現(xiàn)的具體流程為:

      mount/dev/mmcblk0p1/mnt //掛載SD卡

      cd/mnt //進(jìn)入SD目錄

      insmod HV.ko //裝載HV驅(qū)動(dòng)

      lsmod //查看驅(qū)動(dòng)信息

      ./start_hv.py //執(zhí)行命令文件系統(tǒng)的測(cè)試信息如圖6所示.

      啟動(dòng)上電,燈絲電流關(guān)閉,交流接觸器閉合,等待6 s,燈絲電流設(shè)置為2 A,可觀察到高壓發(fā)生器工作正常.因此,基于Zynq-7000的CT機(jī)高壓控制系統(tǒng)能夠?qū)崿F(xiàn)對(duì)高壓發(fā)生器的準(zhǔn)確控制.

      圖6 系統(tǒng)的測(cè)試信息

      4 結(jié)束語

      本文基于Zynq-7000開發(fā)板,通過軟硬件協(xié)同工作,從電路邏輯設(shè)計(jì)、Linux系統(tǒng)移植及驅(qū)動(dòng)程序編寫等方面介紹了CT機(jī)高壓發(fā)生器控制系統(tǒng)的整體架構(gòu).本控制系統(tǒng)的設(shè)計(jì),使用Zynq-7000可擴(kuò)展平臺(tái),整體集成度較高,省掉了通信總線的資源消耗和大量邏輯設(shè)計(jì)工作;采用AXI總線方式,滿足了高通信速度的要求.

      通過系統(tǒng)實(shí)現(xiàn)可知,基于Zynq-7000可擴(kuò)展平臺(tái)設(shè)計(jì)的高壓控制系統(tǒng),能夠?qū)崿F(xiàn)對(duì)CT機(jī)高壓發(fā)生器的準(zhǔn)確控制.

      猜你喜歡
      燈絲內(nèi)核寄存器
      萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      為什么燈泡是鴨梨狀的?
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      國(guó)產(chǎn)500kW發(fā)射機(jī)燈絲UPS電源保障系統(tǒng)
      電子制作(2017年9期)2017-04-17 03:00:38
      倒裝LED燈絲燈的光學(xué)性能詳解
      微機(jī)控制系統(tǒng)在TBH522型廣播發(fā)射機(jī)燈絲邏輯控制中的應(yīng)用
      德安县| 宁海县| 清苑县| 孟连| 衡山县| 云龙县| 太和县| 龙海市| 漠河县| 奇台县| 江油市| 克东县| 大关县| 秀山| 佛山市| 松桃| 自治县| 威信县| 太湖县| 阿坝县| 张北县| 阿拉善左旗| 丰县| 多伦县| 汝阳县| 偃师市| 韩城市| 辽宁省| 拜城县| 西青区| 会昌县| 惠东县| 通城县| 广昌县| 葵青区| 定兴县| 平和县| 宜章县| 鄂州市| 同江市| 嫩江县|