版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
全自動(dòng)提花圓緯機(jī)電控系統(tǒng)設(shè)計(jì)摘要隨著嵌入式技術(shù)的快速發(fā)展,嵌入式技術(shù)應(yīng)用于工業(yè)領(lǐng)域的功能體現(xiàn)得尤其突出,特別是在江南地區(qū),輕工業(yè)代表的針織行業(yè)發(fā)展繁榮。在針織行業(yè),有一種全自動(dòng)提花圓緯機(jī),它通過電控的方式,在產(chǎn)能和產(chǎn)品種類方面都超越傳統(tǒng)圓緯機(jī)不少。本課題在圍繞著全自動(dòng)提花圓緯機(jī)電控系統(tǒng)的選針器控制這一部分,考慮以Zynq芯片作為主控單元,在Zynq芯片的PL部分設(shè)計(jì)出一個(gè)能夠?qū)崿F(xiàn)接口功能的IP核。并且在Linux操作系統(tǒng)下在Zynq的PS部分設(shè)計(jì)接口的驅(qū)動(dòng),通過PS向PL發(fā)送編織數(shù)據(jù),最終可以實(shí)現(xiàn)主控單元對(duì)于選針器動(dòng)作的控制。關(guān)鍵字:圓緯機(jī)IP核接口驅(qū)動(dòng)選針器目錄TOC\o"1-2"\h\u70181緒論 6273631.1課題研究背景 6139171.2本次設(shè)計(jì)的意義及現(xiàn)狀 7212361.3課題研究的主要內(nèi)容 8148612Zynq平臺(tái)的展示與介紹 8246612.1Zynq7000開發(fā)平臺(tái)的優(yōu)點(diǎn) 861872.2AX7021開發(fā)板介紹 947362.3AX7021核心板簡(jiǎn)介 986933設(shè)計(jì)的總體框架 10298643.1設(shè)計(jì)方案 11174153.2設(shè)計(jì)思路分析 12244354LinuxOS的配置 1342884.1配置LinuxOS的準(zhǔn)備工作 13208874.2使用petalinux定制Linux系統(tǒng) 14129425選針器接口驅(qū)動(dòng)IP核設(shè)計(jì) 18425.1為什么要自定義IP核 18299515.2設(shè)計(jì)與調(diào)試自定義IP核的流程 18122745.3SDK調(diào)試 21234096接口Linux驅(qū)動(dòng) 2225236.1驅(qū)動(dòng)設(shè)計(jì)框圖 22230676.2驅(qū)動(dòng)核心代碼編寫以及功能描述 23195357測(cè)試應(yīng)用程序編寫與結(jié)果調(diào)試 2511398總結(jié) 262136參考文獻(xiàn) 271緒論課題研究背景自1589年第一臺(tái)襪機(jī)問世以來,針織生產(chǎn)從手工轉(zhuǎn)向機(jī)械化已經(jīng)有400多年的歷史。盡管我國(guó)改革開放以來,我國(guó)的針織圓緯機(jī)的水平通過向外國(guó)學(xué)習(xí)和借鑒不斷提高,而且在某些環(huán)節(jié)的技術(shù)已經(jīng)非常成熟了,常規(guī)的針織圓緯機(jī)制造已經(jīng)可以實(shí)現(xiàn)自給自足,完全可以替代進(jìn)口機(jī)器,但是還是存在部分機(jī)型還是由國(guó)外進(jìn)口或者是通過仿制進(jìn)行制造,關(guān)鍵的核心技術(shù)還是掌握在像日本、意大利等國(guó)家。近幾年通過努力,差距已經(jīng)越來越小了。想要實(shí)現(xiàn)技術(shù)超越,就得順應(yīng)時(shí)代發(fā)展的潮流。在如今這個(gè)時(shí)代,由于人機(jī)交互平臺(tái)的方便性,快速性、友好性和未來發(fā)展的可能性,該類平臺(tái)也收到越來越多的關(guān)注。1.2本次設(shè)計(jì)的意義及現(xiàn)狀我國(guó)在現(xiàn)階段擁有不少的紡織廠,但是紡織企業(yè)的效益除了經(jīng)營(yíng)環(huán)境以外,受制于用工成本、設(shè)備狀態(tài)等因素久久不能夠提高。由于自動(dòng)化制造的程度低對(duì)于紡織這種擁有眾多相對(duì)獨(dú)立工序的行業(yè),用時(shí)和用工量都是十分大。進(jìn)入科技時(shí)代,不論哪個(gè)行業(yè),能否擁有智能制造是提高產(chǎn)能和生產(chǎn)效率的重要突破口。以智能生產(chǎn)線為代表的生產(chǎn)過程智能化是智能制造的核心,生產(chǎn)過程控制的信息化程度直接決定了工廠的智能化程度。目前使用的全自動(dòng)提花圓緯機(jī)編織范圍大,更換速度快,縮短產(chǎn)品設(shè)計(jì)周期,并且編織速度快,生產(chǎn)效率高,并保證系統(tǒng)生產(chǎn)的可靠性。但是關(guān)于如何減輕勞動(dòng)強(qiáng)度、提高生產(chǎn)效率等這類日益增長(zhǎng)的需求,現(xiàn)階段的圓緯機(jī)還無法滿足。因此我考慮從電控系統(tǒng)的接口這部分出發(fā),因?yàn)閭鹘y(tǒng)圓緯機(jī)主控單元采用的是ARM和FPGA兩部分片外連接,這樣的設(shè)計(jì)在布線上可能會(huì)因?yàn)橛捎诰€路之間的干擾影響傳輸?shù)目煽啃?,降低了處理器的性能,影響開發(fā)進(jìn)程。Zynq作為首款能夠把高性能的ARM處理器與高性能FPGA在單個(gè)芯片內(nèi)牢牢結(jié)合的產(chǎn)品,如果可以使用Zynq芯片作為主控單元,在根本上就解決了問題。只要合理設(shè)計(jì)在ARM與FPGA之間的互聯(lián)通路,就能夠?qū)崿F(xiàn)ARM處理器和FPGA之間的高速通信和數(shù)據(jù)交互,發(fā)揮ARM處理器和FPGA的性能優(yōu)勢(shì)[1]。事實(shí)上,在具體的設(shè)計(jì)工作中我們不太需要在連接這個(gè)地方下太多功夫,當(dāng)我們加入設(shè)計(jì)好的IP核以后,由于設(shè)計(jì)好的IP核帶有AXI4接口,這樣開發(fā)系統(tǒng)使用AXI總線實(shí)現(xiàn)通信傳輸協(xié)議將ARM和FPGA連接起來[3],進(jìn)一步提高了傳輸速度,我們只需要再做一點(diǎn)補(bǔ)充和修改就可以了。1.3課題研究的主要內(nèi)容1)構(gòu)建系統(tǒng)框架使用Zynq7000作為圓緯機(jī)電控系統(tǒng)的主控單元,在Zynq的PL設(shè)計(jì)可以實(shí)現(xiàn)接口功能的IP核,在Zynq的PS部分設(shè)計(jì)接口驅(qū)動(dòng),通過驅(qū)動(dòng)能夠使PS部分對(duì)PL上的寄存器寫數(shù)據(jù)從而對(duì)選針器動(dòng)作進(jìn)行控制。器件選型與工藝設(shè)計(jì)硬件上選用黑金AX7021開發(fā)板,軟件開發(fā)使用Vivado組件以及Petalinux配置工具。3)軟件設(shè)計(jì)IP核設(shè)計(jì)的編寫、SDK文件的編寫、接口驅(qū)動(dòng)的編寫、測(cè)試應(yīng)用程序的編寫。4)功能調(diào)試連接開發(fā)板和選針器,打開開發(fā)板的電源,通過測(cè)試應(yīng)用程序可以控制選針器的動(dòng)作。2Zynq平臺(tái)的展示與介紹本課題有關(guān)于硬件方面的使用采用的是Zynq芯片的開發(fā)板,主要通過它來開發(fā)展現(xiàn)實(shí)現(xiàn)功能。下面介紹它的優(yōu)點(diǎn)和核心板的主要特征:2.1Zynq7000開發(fā)平臺(tái)的優(yōu)點(diǎn)為了方便用戶能夠自我地對(duì)核心板進(jìn)行二次的開發(fā)、處理和利用,塞林思針對(duì)于Zynq7000平臺(tái)采用核心板加擴(kuò)展板的方式。由于使用ARM和FPGA都要用兩塊開發(fā)板,很不便捷。賽靈思公司提出了一個(gè)看似天馬行空的解決方案。如果能夠在核心板上面使用SOC技術(shù),這樣核心板就能集ARM與FPGA于一塊芯片上了,極大程度減少了傳統(tǒng)片外連接造成的線路干擾和性能降低等問題的發(fā)生。設(shè)計(jì)的的底板為用戶提供了包括5路千兆以太網(wǎng)接口,4個(gè)通路的USB2.0HOST接口等接口。用戶能夠在以太網(wǎng)的環(huán)境下通過較高的速度進(jìn)行數(shù)據(jù)交換、數(shù)據(jù)處理等各種功能化要求。內(nèi)部集成了ARM公司的雙核CortexA9處理器系統(tǒng)(ProcessingSystem)和Xilinx的可編程邏輯單元(ProgrammableLogic),在真正意義上完成實(shí)現(xiàn)了軟件和硬件的協(xié)同開發(fā)設(shè)計(jì),同時(shí)也大大縮短了系統(tǒng)的開發(fā)時(shí)間,節(jié)省了人力物力財(cái)力?,F(xiàn)階段看來Zynq作為一塊集ARM與FPGA于一體的開發(fā)平臺(tái),在產(chǎn)品定制化等滿足客戶需求的方面有很大的潛力[12],并且網(wǎng)上對(duì)于驅(qū)動(dòng)IP核自定義方面的文章敘述也比較稀少,讓我覺得做這方面的畢業(yè)課題更加有了興趣。2.2AX7021開發(fā)板介紹本開發(fā)板使用AX7021核心板主要由Zynq7020+2個(gè)DDR3+eMMC+QSPIFLASH的最小系統(tǒng)構(gòu)成,具有承擔(dān)Zynq系統(tǒng)的高速數(shù)據(jù)處理、傳輸和存儲(chǔ)的功能,Zynq7020和兩片DDR3之間的數(shù)據(jù)位寬為32位,兩片DDR3容量高達(dá)1GB。32GB的eMMCFLASH存儲(chǔ)芯片和256Mb的QSPIFLASH用來靜態(tài)存儲(chǔ)Zynq的操作系統(tǒng)、文件系統(tǒng)及用戶數(shù)據(jù),用戶可以通過核心板上的撥碼開關(guān)來控制選擇QSPI,SD卡等不同的啟動(dòng)方式。其次除了核心板,在底板上還設(shè)置了一個(gè)Micro型的SD卡槽口,SD卡可以用來存儲(chǔ)操作Zynq芯片產(chǎn)生的相關(guān)的BOOT程序、系統(tǒng)鏡像、用戶數(shù)據(jù)文件等[8]。并且支持用戶直接訪問。整個(gè)開發(fā)系統(tǒng)結(jié)構(gòu)圖如圖2-2-1所示:圖2-2-1開發(fā)系統(tǒng)結(jié)構(gòu)圖2.3AX7021核心板簡(jiǎn)介該核心板的芯片是Zynq7000系列中的XC7Z020-2CLG484I。繼承了兩個(gè)Cortex?-A9最小系統(tǒng)處理器,其中的AMBA互相連接,內(nèi)部存儲(chǔ)和外部存儲(chǔ)與外設(shè)相連。Zynq芯片的FPGA內(nèi)部同時(shí)包含著可編程邏輯陣列,DSP和內(nèi)部ARM這三個(gè)部分。該款核心板還使用了2片型號(hào)H5TQ4G63AFR-PBIDDR3芯片,該芯片的內(nèi)存容量為4Gbit,2片DDR芯片組合成了32bit的數(shù)據(jù)總線位寬度,正因?yàn)檫@兩個(gè)DDR3芯片的使用,可以滿足系統(tǒng)的高帶寬的數(shù)據(jù)處理的需求,讓Zynq和DDR3之間的讀寫數(shù)據(jù)時(shí)鐘頻率高達(dá)533Mhz。這款核心板的4個(gè)板對(duì)板連接器擴(kuò)展出了PS端的USB接口,千兆以太網(wǎng)接口,SD卡接口及其它剩余的MIO口使與底板的連接更加方便。并且關(guān)于IO連接部分的問題,設(shè)計(jì)上從Zynq芯片到接口之間的走線特意做了等長(zhǎng)的差分處理。而且核心板的尺寸很小,特別適合于二次開發(fā)。核心板正面圖如圖2-3-1所示:圖2-3-1核心板正面圖我采用Zynq7000系列AX7021開發(fā)板首先是看中了它降低了軟件開發(fā)的難度,黑金社區(qū)專門也為這塊開發(fā)板撰寫了中文教程,在開發(fā)初期對(duì)基礎(chǔ)理論不懂時(shí)可以進(jìn)行參考。并且這塊開發(fā)板在實(shí)驗(yàn)室就是現(xiàn)有的素材,不需要再花大把時(shí)間和金錢去尋找。其次是這塊AX7021核心板其中對(duì)于IP核驅(qū)動(dòng)和Linux的內(nèi)核都做好了對(duì)應(yīng)軟件的支持,更加方便融入ARM的軟件生態(tài)系統(tǒng)。而且該板具有很高的集成度,所以我選擇他作為我的調(diào)試板。3設(shè)計(jì)的總體框架3.1設(shè)計(jì)方案全自動(dòng)提花圓緯機(jī)的電控系統(tǒng)主要由五部分構(gòu)成:LCD觸摸屏[11]、零位傳感器、編碼器、選針器以及Zynq開發(fā)板[5],具體框圖如圖3-1-1所示:圖3-1-1全自動(dòng)提花圓緯機(jī)電控系統(tǒng)的組成框圖傳統(tǒng)的電控系統(tǒng)是采用ARM和FPGA兩個(gè)平臺(tái),利用總線將兩塊板子連接在一起,缺點(diǎn)很明顯,兩塊開發(fā)板占用的面積太大,且通信麻煩。而Zynq環(huán)境的開發(fā)最大的亮點(diǎn)就是在于FPGA里包含了完整的ARM處理子系統(tǒng)(PS),換句話Zynq包含了ARM的SOC部分(PS)以及FPGA部分(PL)。通過減少一塊ARM的面積從而降低了關(guān)于通訊總線的相關(guān)資源消耗,方便通訊。并且減少了CPU與FPGA之間的通訊總線,通訊速度會(huì)更快,信息傳遞結(jié)構(gòu)也會(huì)更簡(jiǎn)單[4]。我此次的課題框架就是從選針器這個(gè)部分出發(fā),設(shè)計(jì)具有接口功能的IP核,通過在LinuxOS系統(tǒng)下設(shè)計(jì)接口驅(qū)動(dòng),實(shí)現(xiàn)現(xiàn)Zynq開發(fā)板芯片對(duì)于選針器部分的動(dòng)作控制。具體設(shè)計(jì)框架如圖3-1-2所示:圖3-1-2電控系統(tǒng)接口功能實(shí)現(xiàn)框架3.2設(shè)計(jì)思路分析Zynq的基本開發(fā)流程是先硬件設(shè)計(jì)開發(fā),再導(dǎo)出硬件信息進(jìn)行軟件設(shè)計(jì)開發(fā),本次課題的開發(fā)思路流程大致如圖3-2-1所示:圖3-2-1設(shè)計(jì)思路流程圖1)創(chuàng)建打包一個(gè)新的帶有AXI4接口的IP核,這樣才能滿足PS和PL通過AXI通信傳輸連接。通過對(duì)IP核例化,代入函數(shù),調(diào)用寄存器為其添加功能。2)在Vivado應(yīng)用程序中將Zynq處理器和設(shè)計(jì)好的IP核放入Block工程并自動(dòng)連線后,生成頂層文件,并添加約束文件和時(shí)序文件。再編譯生成比特流文件。3)導(dǎo)出硬件信息到SDK軟件開發(fā)環(huán)境,在SDK環(huán)境里可以編寫一些調(diào)試應(yīng)用程序驗(yàn)證硬件和軟件設(shè)計(jì)的合理性,還可以單獨(dú)調(diào)試Zynq系統(tǒng)。4)將SDK文件復(fù)制到LinuxOS,在虛擬機(jī)里生成u-boot.elf,bootloader鏡像。通過petaliunx配置工具將這些文件以及硬件信息打包后生成BOOT.BIN文件。5)編寫接口驅(qū)動(dòng)和測(cè)試應(yīng)用程序代碼,將它們通過配置工具和Ubuntu的內(nèi)核鏡像文件、根文件系統(tǒng)等一同打包生成Image文件[10]。6)把BOOT,Image文件復(fù)制到SD卡中,啟動(dòng)開發(fā)板電源,通過測(cè)試應(yīng)用程序?qū)崿F(xiàn)選針器的動(dòng)作控制。4LinuxOS的配置因?yàn)閆ynq芯片PS部分的驅(qū)動(dòng)編寫、測(cè)試應(yīng)用程序的交叉編譯都必須在LinuxOS下完成,所以我們需要對(duì)LinuxOS進(jìn)行環(huán)境配置。4.1配置LinuxOS的準(zhǔn)備工作4.1.1安裝petalinux1)安裝必需庫在虛擬機(jī)終端輸入以下代碼下載安裝所需要的庫[6]sudoapt-getinstalltofrodosgawkxvfbgitlibncurses5-devtftpdzlib1g-devzlib1g-dev:i386\libssl-devflexbisonchrpathsocatautoconflibtooltexinfogcc-multilib\libsdl1.2-devlibglib2.0-devscreenpax配置tftp服務(wù)器使用tftp命令可以將文件下載到內(nèi)存中,但是使用前需要先配置好服務(wù)器:sudo-sapt-getinstalltftpd-hpachmoda+w/var/lib/tftpboot/reboot3)添加運(yùn)行權(quán)限運(yùn)行以下命令做安裝準(zhǔn)備,alinx為我虛擬機(jī)設(shè)置的用戶名,為安裝文件夾添加運(yùn)行權(quán)限,如圖4-1-1所示:圖4-1-1安裝文件權(quán)限添加圖4)安裝配置工具進(jìn)行安裝,點(diǎn)擊ENTER查看安裝協(xié)議內(nèi)容,在安裝過程中會(huì)不斷跳出License按Y同意協(xié)議,按Q退出協(xié)議,重復(fù)大概4次。4.1.2NFS網(wǎng)絡(luò)服務(wù)器安裝1)安裝NFS服務(wù)組件通過命令sudoapt-getinstallnfs-kernel-server進(jìn)行安裝2)建立專屬工作目錄新建一個(gè)名為work文件夾來做為NFS服務(wù)的工作目錄,方便我們掛載開發(fā)板后能夠共享到該目錄里的文件。3)配置工作目錄通過輸入以下代碼sudogedit/etc/exports打開文本exports,在文本內(nèi)容的末尾添加內(nèi)容命令,目的是將/home/alinx/work配置為為NFS的工作目錄。配置結(jié)束后重啟rpcbind服務(wù)以及NFS服務(wù)。因?yàn)镹FS是一個(gè)RPC程序,在使用它之前,需要命令sudo/etc/init.d/rpcbindrestart在rpcbind工具幫助下提前映射端口。4)測(cè)試NFS通過命令將本機(jī)將NFS工作路徑掛載在/mnt目錄。進(jìn)入/mnt,新建一個(gè)test目錄測(cè)試一下,可以在/home/alinx/work目錄同步看到test文件夾。4.2使用petalinux定制Linux系統(tǒng)使用Petalinux配置工具能夠非常方便地定制LinuxOS,只需要通過Vivado軟件把使用的硬件信息全部導(dǎo)出,然后Petalinux根據(jù)這些信息來配置uboot,內(nèi)核、文件系統(tǒng)等,前提是必須保證Linux連接上了互聯(lián)網(wǎng)[9]。4.2.1使用petalinux建立工程我們?cè)谧远xIP核的時(shí)候已經(jīng)生成了Vivado工程,通過導(dǎo)出硬件信息會(huì)在工程目錄下創(chuàng)建一個(gè).sdk目錄,該目錄下會(huì)存在一個(gè)“*.hdf”文件,該文件包含了petalinux配置時(shí)使用的所有文件。基礎(chǔ)開發(fā)環(huán)境變量配置將項(xiàng)目文件exam.sdk復(fù)制到主機(jī)通過輸入source命令可以完成對(duì)于petalinux環(huán)境變量和vivado環(huán)境變量的配置。2)新建工程目錄最后通過命令petalinux-create--typeproject--templatezynq--nameax_peta自動(dòng)創(chuàng)建一個(gè)名為ax_peata的工程目錄。3)SDK文件環(huán)境配置進(jìn)入目錄后輸入命令petalinux-config--get-hw-description../exam.sdk調(diào)用配置頁面如圖4-2-1所示:圖4-2-1環(huán)境配置頁面因?yàn)楸菊n題都保持默認(rèn)設(shè)置,所以不需要修改。選擇Save退出配置,并且等待一段較長(zhǎng)的時(shí)間。4.2.2配置Linux內(nèi)核1)進(jìn)入配置界面輸入命令petalinux-config-ckernel來進(jìn)行配置Linux內(nèi)核,又需要等待一段時(shí)間進(jìn)入配置界面[11]。如圖4-2-2所示:圖4-2-2Linux內(nèi)核配置頁面2)開啟PHY芯片驅(qū)動(dòng)由于以太網(wǎng)的phy芯片驅(qū)動(dòng)默認(rèn)沒有打開,需要手動(dòng)打開,選擇DeviceDrivers>Networkdevicesupport>PHYDevicesupportandinfrastructure選中MicrelPHYs,如圖4-2-3所示,修改后保存退出。圖4-2-3PHY芯片配置頁面4.2.3配置根文件系統(tǒng)輸入命令petalinux-config-crootfs進(jìn)行配置根文件系統(tǒng),保持默認(rèn)設(shè)置后保存退出,如圖4-2-4所示:圖4-2-4根文件系統(tǒng)配置頁面4.2.4編譯生成BOOT文件并測(cè)試1)編譯使用命令petalinux-build進(jìn)行編譯,編譯完成界面如圖4-2-5所示:圖4-2-5編譯界面打包文件到SD卡輸入命令petalinux-package--boot--fsbl./images/linux/zynq_fsbl.elf--fpga--u-boot--force生成BOOT文件。進(jìn)入在images->linux目錄,找到剛剛生成的BOOT.BIN及包含接口驅(qū)動(dòng)和測(cè)試應(yīng)用程序的image.ub文件,將其復(fù)制到準(zhǔn)備好的SD卡上,將SD卡插入開發(fā)板的卡槽中,默認(rèn)設(shè)置開發(fā)板為到SD卡啟動(dòng)。3)啟動(dòng)開發(fā)板打開串口終端,啟動(dòng)開發(fā)板,默認(rèn)用戶密碼都為root輸入后會(huì)出現(xiàn)界面。如圖4-2-6所示:圖4-2-6開發(fā)板終端界面5選針器接口驅(qū)動(dòng)IP核設(shè)計(jì)Vivado設(shè)計(jì)套件是一個(gè)基于AMBAAXI4互聯(lián)規(guī)范、IP-XACTIP封裝元數(shù)據(jù)、工具命令語言、Synopsys系統(tǒng)約束以及其它有助于根據(jù)客戶需求量身定制設(shè)計(jì)流程的開放式環(huán)境。簡(jiǎn)單來說,它擁有能夠創(chuàng)建打包封裝IP核的工具,能夠使實(shí)驗(yàn)流程縮短,節(jié)省人力物力財(cái)力這也是選擇該軟件的幾個(gè)原因。此外,它對(duì)于Zynq系列的芯片兼容性高,能夠更好地發(fā)揮芯片性能。5.1為什么要自定義IP核IP核屬于硬件規(guī)范,可以用來配置FPGA的邏輯資源。而能夠自定義的IP核我們叫做軟IP核[2]。不同IP核具有不同功能,能夠自定義IP核也是產(chǎn)品定制化的體現(xiàn)。本課題也是需要圍繞著接口驅(qū)動(dòng)進(jìn)行試驗(yàn),需要設(shè)計(jì)出一個(gè)能實(shí)現(xiàn)接口功能的自定義IP核。5.2設(shè)計(jì)與調(diào)試自定義IP核的流程IP核的設(shè)計(jì)流程圖5-2-1所示:圖5-2-1IP核設(shè)計(jì)流程圖我的設(shè)計(jì)目標(biāo)是從PS端能夠通過在PL端上寫寄存器的數(shù)據(jù)來控制選針器的動(dòng)作,因此能夠滿足實(shí)現(xiàn)選針器接口功能的IP核不可缺少。選針器的結(jié)構(gòu)圖如5-2-2所示:圖5-2-2選針器的結(jié)構(gòu)圖選針器的工作原理是通過高低電平來控制電磁螺線管,進(jìn)而控制選針刀片的動(dòng)作。選針器的工作原理圖如圖5-2-3所示:圖5-2-3選針器的工作原理圖5.2.1驅(qū)動(dòng)IP核設(shè)計(jì)1)創(chuàng)建IP核點(diǎn)擊Tools->createandpackagenewip,創(chuàng)建一個(gè)名為axi_led的帶有AXI4接口的新IP核。2)創(chuàng)建IP核工程保持基本默認(rèn)設(shè)置將新建的IP核存入IPCatalog中,右鍵點(diǎn)擊Editinpackage進(jìn)入對(duì)于IP核的設(shè)計(jì)工程中。修改IP核源文件對(duì)led_v1_0和led_v1_0_S00_AXI這兩個(gè)文件內(nèi)容進(jìn)行例化,對(duì)函數(shù)進(jìn)行調(diào)用等[14]。在led_v1_0這個(gè)文件中需要對(duì)選針器端口進(jìn)行例化:.LED(LED),在led_v1_0_S00_AXI這個(gè)文件中對(duì)控制選針器需要的寄存器進(jìn)行調(diào)用:.clk(S_AXI_ACLK),.rst(~S_AXI_ARESETN),.period(slv_reg0),.duty(slv_reg1),.led(led),assignLED[1:0]=slv_reg0[1:0];在兩個(gè)文件內(nèi)容都添加選針器輸出端口代碼:outputwire[1:0]LED,4)封裝打包完成后點(diǎn)擊封裝庫下IP-Xact中的compoenent.xml->MergechangersWizard對(duì)IP核進(jìn)行打包封裝。5.2.2導(dǎo)出硬件信息1)配置Zynq處理器在Vivado中需要?jiǎng)?chuàng)建一個(gè)Block設(shè)計(jì),將設(shè)計(jì)好的IP核以及Zynq處理器通過自動(dòng)連線連接在一起,在連接前也需要雙擊對(duì)于Zynq處理器進(jìn)行相關(guān)的設(shè)置,DDR芯片部分選擇MT41J256M16RE-125,時(shí)鐘部分也需要做相應(yīng)修改。2)生成連線圖將外設(shè)Zynq處理器和設(shè)計(jì)好的IP核都放入工程中自動(dòng)連線,如圖5-2-4所示:圖5-2-4Block設(shè)計(jì)連線圖3)生成頂層文件和約束文件右鍵點(diǎn)擊Block設(shè)計(jì)圖->CreateHDLWrapper生成HDL頂層文件,通過addsource添加約束文件.xdc,具體的引腳號(hào)需要通過AX7021開發(fā)用戶手冊(cè)查找。再點(diǎn)擊GnearateBitstream生成比特流文件。導(dǎo)出包括比特流文件的所有硬件信息,此過程會(huì)花費(fèi)一定的時(shí)間。引腳約束文件內(nèi)容如下:set_propertyIOSTANDARDLVCMOS33[get_ports{LED[1]}]set_propertyIOSTANDARDLVCMOS33[get_ports{LED[0]}]set_propertyPACKAGE_PINR7[get_ports{LED[0]}]set_propertyPACKAGE_PINA16[get_ports{LED[1]}]5.3SDK調(diào)試SDK是Xilinx軟件開發(fā)套件,在SDK也為所有支持的XilinxIP硬核提供了驅(qū)動(dòng)程序。SDK支持IP硬核(FPGA上)和處理器軟件協(xié)同調(diào)試,我們可以使用高級(jí)C或C++語言來開發(fā)和調(diào)試ARM和FPGA系統(tǒng),測(cè)試硬件系統(tǒng)是否工作正常。1)文件解讀通過LauchSDK進(jìn)入SDK軟件,創(chuàng)建一個(gè)Helloword為模板的APP工程。我們可以通過“xparameters.h”這個(gè)文件查找到自定義IP的基地址,以及寄存器的基地址。通過基地址我們能夠編寫代碼。如圖5-3-1所示:圖5-3-1自定義IP核的基地址2)測(cè)試IP功能之前已經(jīng)配置調(diào)用了寄存器,我們也能從文件內(nèi)容找到自定義IP的基地址,我們開始圍繞調(diào)用的兩個(gè)寄存器Reg0,Reg1進(jìn)行編寫代碼,下載到開發(fā)板來測(cè)試自定義IP。測(cè)試代碼如圖5-3-2所示:圖5-3-2測(cè)試代碼6Linux驅(qū)動(dòng)6.1驅(qū)動(dòng)設(shè)計(jì)框圖當(dāng)我們完成對(duì)于IP核的功能自定義后,需要在LinuxOS環(huán)境下編寫驅(qū)動(dòng)來調(diào)用接口功能,完成PS對(duì)PL的寫值。具體的驅(qū)動(dòng)設(shè)計(jì)流程框圖如圖6-1-1所示:圖6-1-1驅(qū)動(dòng)設(shè)計(jì)框圖6.2驅(qū)動(dòng)核心代碼編寫以及功能描述1)回調(diào)函數(shù)指針和設(shè)備信息的描述當(dāng)我們定義完函數(shù)后,由于函數(shù)名過長(zhǎng),會(huì)使用struct這個(gè)命令代碼將函數(shù)名稱替換成較為簡(jiǎn)便的表達(dá)方式,也更加利于觀察設(shè)備文件的各種信息。具體代碼如下://描述與設(shè)備文件觸發(fā)的事件對(duì)應(yīng)的回調(diào)函數(shù)指針staticstructfile_operationsdev_fops={ .owner=THIS_MODULE, .open=Regs_drv_open, .write=Regs_drv_write,};//描述設(shè)備文件的信息staticstructmiscdevicemisc={ .minor=MISC_DYNAMIC_MINOR, .name=DEVICE_NAME, .fops=&dev_fops};2)驅(qū)動(dòng)的初始化和卸載驅(qū)動(dòng)的使用需要初始化,而當(dāng)你不需要當(dāng)前驅(qū)動(dòng)時(shí),考慮到占內(nèi)存可以卸載當(dāng)前內(nèi)存,因?yàn)槭前殡S著SD卡啟動(dòng)的驅(qū)動(dòng)[15],所以我設(shè)計(jì)當(dāng)開啟時(shí)初始化驅(qū)動(dòng),停止使用時(shí)可選擇卸載驅(qū)動(dòng)。代碼如下://初始化Linux驅(qū)動(dòng)staticint__initRegs_drv_init(void){ intret; Regs=ioremap(REGS_BASE_ADDR,sizeof(Regs_T)); //建立設(shè)備文件 ret=misc_register(&misc);//卸載Linux驅(qū)動(dòng)staticvoid__exitRegs_drv_exit(void){ iounmap(Regs); //刪除設(shè)備文件 misc_deregister(&misc);3)注冊(cè)函數(shù)當(dāng)然在我們使用初始化驅(qū)動(dòng)或者卸載驅(qū)動(dòng)的函數(shù)時(shí),需要用module命令代碼進(jìn)行注冊(cè)。代碼如下://注冊(cè)初始化Linux驅(qū)動(dòng)的函數(shù)module_init(Regs_drv_init);//注冊(cè)卸載Linux驅(qū)動(dòng)的函數(shù)module_exit(Regs_drv_exit);4)驅(qū)動(dòng)的賦值功能PS要能夠?qū)⒕幙棓?shù)據(jù)傳輸?shù)絇L,通過該驅(qū)動(dòng)能夠完成對(duì)PL上的寄存器進(jìn)行賦值[7],從而能夠?qū)崿F(xiàn)對(duì)于選針器的動(dòng)作進(jìn)行控制。具體的代碼如下://寄存器的數(shù)值賦值staticssize_tRegs_drv_write(structfile*file,constchar__user*buf,size_tcount,loff_t*ppos){ unsignedintret=0; unsignedinttmp_val; ret=copy_from_user(&tmp_val,buf,4); switch(count){ case1: Regs->Reg0=tmp_val; break; case2: Regs->Reg1=tmp_val; break;通過copy_from_user這個(gè)代碼可以把buf里面的數(shù)值復(fù)制到&tmp_val從而完成對(duì)PL寄存器的賦值。因?yàn)槲以贗P核設(shè)置的時(shí)候調(diào)用了兩個(gè)寄存器,所以代碼編寫時(shí)也分為兩個(gè)工作模式,case1是測(cè)試模式,case2是運(yùn)行模式。7程序的移植與調(diào)試7.1測(cè)試開發(fā)板1)連接開發(fā)板首先我們需要將開發(fā)板連接好并且與終端進(jìn)行連接掛載,插入SD卡,打開開發(fā)板電源。連接實(shí)物圖如圖7-1-1所示:圖7-1-1開發(fā)板連接實(shí)物圖2)編寫應(yīng)用程序并執(zhí)行驅(qū)動(dòng)編寫成功后需要再變現(xiàn)一個(gè)簡(jiǎn)單的應(yīng)用程序?qū)ψ远xIP核的功能進(jìn)行再次測(cè)試,因?yàn)榍懊嬖O(shè)計(jì)的時(shí)候?yàn)閐uty這個(gè)參數(shù)調(diào)用了寄存器,所以應(yīng)用程序的代碼主要圍繞著duty來寫。因?yàn)檫€沒有連接選針器,我選擇先使用開發(fā)板上的LED燈來測(cè)試功能。當(dāng)給定duty一個(gè)值后,可以控制LED燈的亮滅。 ret=write(fd,&buf,1); printf("write1:%d\n",ret); ret=write(fd,&duty,2); printf("val=:%d\n",duty); printf("write2:%d\n",ret);/*for(duty=0x8fffffff;duty<0xffffffff;duty=duty+100000) {ret=write(fd,&du
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 阜陽2025年下半年安徽阜陽界首市中醫(yī)院招聘衛(wèi)生專業(yè)技術(shù)人員30人筆試歷年參考題庫附帶答案詳解
- 遼寧2025年遼寧科技學(xué)院招聘35人筆試歷年參考題庫附帶答案詳解
- 秦皇島2025年河北唐山灤南縣事業(yè)單位招聘225人筆試歷年參考題庫附帶答案詳解
- 湖南2025年湖南工貿(mào)技師學(xué)院招聘高技能人才筆試歷年參考題庫附帶答案詳解
- 滄州河北滄州孟村回族自治縣融媒體中心招聘播音主持人采編記者5人筆試歷年參考題庫附帶答案詳解
- 新疆2025年新疆醫(yī)科大學(xué)第一附屬醫(yī)院招聘16人筆試歷年參考題庫附帶答案詳解
- 安康2025年陜西安康高新區(qū)教育系統(tǒng)事業(yè)單位招聘20人筆試歷年參考題庫附帶答案詳解
- 周口2025年河南周口市太康縣事業(yè)單位人才引進(jìn)26人筆試歷年參考題庫附帶答案詳解
- 青年文明號(hào)培訓(xùn)班課件
- 職業(yè)性肺病影像學(xué)緩解后的復(fù)發(fā)監(jiān)測(cè)
- 2025年考愛情的測(cè)試題及答案
- 范可尼綜合征診療指南(2025年版)
- 2026年中國(guó)化工經(jīng)濟(jì)技術(shù)發(fā)展中心招聘?jìng)淇碱}庫及一套參考答案詳解
- 機(jī)房網(wǎng)絡(luò)改造施工方案
- HAD101-04-2025 核動(dòng)力廠廠址評(píng)價(jià)中的外部人為事件
- 2025年日語n4試題及答案
- 公司網(wǎng)絡(luò)團(tuán)隊(duì)介紹
- 2025年文化旅游活動(dòng)效果評(píng)估計(jì)劃可行性研究報(bào)告
- 2025及未來5年中國(guó)鼠李糖市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 塑木地板銷售合同范本
- 會(huì)展技術(shù)服務(wù)合同范本
評(píng)論
0/150
提交評(píng)論