周林霞 周記超 胡歡 傅亞光
(1.許繼集團(tuán)有限公司 河南省許昌市 461000 2.許昌大成實(shí)業(yè)集團(tuán)有限公司 河南省許昌市 461000)
隨著嵌入式設(shè)備的發(fā)展,包括智能手機(jī)以及具有物聯(lián)網(wǎng)功能諸如智能家具等諸多嵌入式設(shè)備產(chǎn)品進(jìn)入人們的生活,使人們生活變得越來越智能化[1]?!爸悄芑?,是指由現(xiàn)代通信與信息技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、行業(yè)技術(shù)、智能控制技術(shù)匯集而成的針對某一個(gè)方面的應(yīng)用,而這方面的研究尚處于初始的階段,從一般的意義上講,智能就是一種能夠隨外界條件的變化,確定正確行動(dòng)的能力。在計(jì)算機(jī)問世后,人們開始試圖利用電子計(jì)算機(jī)去執(zhí)行人類各種工作任務(wù),或代替人們?nèi)ミM(jìn)行有關(guān)推理和決策,完成對人類自身智能的模擬,HCM3000 板卡固件智能化下載系統(tǒng)就是智能化的模擬人類下載固件的一個(gè)系統(tǒng)。
本系統(tǒng)主要解決工程現(xiàn)場更新固件的問題,特別是國外的工程,更新現(xiàn)場工程板卡的固件,需要硬件開發(fā)的人員跑到現(xiàn)場更新,浪費(fèi)出差費(fèi)用和時(shí)間。HCM3000 板卡固件智能化下載系統(tǒng),可以實(shí)現(xiàn)一鍵式、智能化下載板卡固件,操作非常簡單,現(xiàn)場的人員可以自己利用這個(gè)軟件下載板卡固件,不需要硬件開發(fā)的人員出差下載,可以大大地為公司省去出差費(fèi)用和時(shí)間。
HCM3000 板卡固件智能化下載系統(tǒng)的框架結(jié)構(gòu)主要包括智能下載部分和基礎(chǔ)運(yùn)行部分,智能下載部分運(yùn)行于PC 機(jī)中,基礎(chǔ)運(yùn)行部分運(yùn)行于要下載固件的HCM3000 板卡中。HCM3000 板卡固件智能化下載系統(tǒng)總體框架如下圖1。
智能下載部分是圖1 的上面的部分,其運(yùn)行在PC 機(jī)中。職能下載部分主要分為三層,最上層是智能下載流程控制模塊,控制著HCM3000 板卡固件智能化下載系統(tǒng)的流程。從一鍵式下載命令下達(dá)到固件下載完成,需要調(diào)用哪個(gè)軟件、怎么調(diào)用、調(diào)用后什么時(shí)候完成下載、完成下載后怎么退出軟件,這整個(gè)過程都由這個(gè)模塊控制。中層主要根據(jù)不同的板卡類型、固件類型調(diào)用相應(yīng)的模塊,因?yàn)椴煌陌蹇愋?、固件類型其下載的方法不一樣,調(diào)用的軟件也不一樣。最底層是Tftpd32.exe 軟件和Xilinx Design Tools 軟件。
基礎(chǔ)運(yùn)行部分就是圖1 的下面的部分,其運(yùn)行在被下載固件的HCM3000 板卡中,只有板卡正常啟動(dòng)的情況下,才可以下載固件。VxWorks 鏡像運(yùn)行在EPU20B 板卡中,EPU20B 板卡在VxWorks 鏡像下正常啟動(dòng),才可以下載BOOTROM?;A(chǔ)運(yùn)行運(yùn)行在要下載FPGA 固件的板卡中,保證其正常啟動(dòng)運(yùn)行,才可以下載FPGA。
圖1
HCM3000 板卡固件智能化下載系統(tǒng)的流程圖如圖2,通過系統(tǒng)軟件界面選擇板卡類型、固件類型。固件的類型主要分為兩種:1.BOOTROM 固件;2.FPGA 固件,其中HCM3000 的所有板卡都有FPGA 固件,但是BOOTROM 固件只有EPU20B 有。
當(dāng)通過系統(tǒng)軟件界面選擇完板卡類型、固件類型后,如果選擇的是EPU20B 板卡的BOOTROM 固件,先把BOOTROM 固件放在固定的某個(gè)路徑下,系統(tǒng)自動(dòng)的調(diào)用串口,通過串口下達(dá)EPU20B 板卡重啟命令,EPU20B 板卡重啟后,通過串口信息保存現(xiàn)在的IP 地址和啟動(dòng)參數(shù),保存完成后,再次通過串口下達(dá)重啟命令,在EPU20B 板卡重啟時(shí),重新設(shè)置EPU20B 板卡的IP 地址為192.168.10.1,并設(shè)置其他的參數(shù)信息,這些參數(shù)信息要保證VXWORK 的正常啟動(dòng),保證板卡的正常啟動(dòng)。EPU20B 板卡正常啟動(dòng)后,系統(tǒng)軟件會自動(dòng)的調(diào)用Tftpd32.exe,并調(diào)用一個(gè)批處理自動(dòng)的把運(yùn)行系統(tǒng)軟件的電腦的IP 地址修改成192.168.10.250。通過串口下達(dá)燒寫B(tài)OOTROM 固件命令,開始下載BOOTROM 固件,下載完成后可以通過串口的打印信息查看是否下載成功,下載完成后,通過串口下達(dá)EPU20B 板卡重啟命令,板卡重啟后設(shè)置回原來的IP 地址及啟動(dòng)參數(shù),最后把下載是否成功的結(jié)果通過系統(tǒng)軟件界面顯示,整個(gè)過程都是自動(dòng)化的完成。
當(dāng)通過系統(tǒng)軟件界面選擇完板卡類型、固件類型后,如果選擇的是HCM3000 某個(gè)板卡的FPGA 固件,首先選擇某個(gè)板卡的FPGA 存放路徑,并把相應(yīng)的路徑信息寫進(jìn)相應(yīng)板卡的批處理文件中,然后把寫完路徑信息的批處理拷貝到C:Xilinx14.7ISE_DSISEin t64下,并用C:Xilinx14.7ISE_DSISEin t64路徑下的impact 運(yùn)行相應(yīng)板卡的批處理的命令進(jìn)行FPGA 下載,下載完成后,批處理把下載結(jié)果寫進(jìn)TXT 文件中。系統(tǒng)軟件通過讀取這個(gè)TXT 文件來查看FPGA 是否下載成功,校驗(yàn)碼是多少,并通過系統(tǒng)軟件界面顯示出來,整個(gè)過程都是自動(dòng)化的完成。
腳本是實(shí)現(xiàn)HCM3000 板卡固件智能化下載系統(tǒng)的重要部分,腳本的優(yōu)劣直接影響到系統(tǒng)軟件的效率和開銷。腳本語言可移植性好壞,直接影響著腳本代碼的可重用性及系統(tǒng)軟件的可重復(fù)性[2]。
HCM3000 板卡固件智能化下載系統(tǒng)主要用VC++和批處理編寫完成,VC++的優(yōu)點(diǎn)是界面簡潔,占用資源少,操作方便[3],批處理優(yōu)點(diǎn)就是資源利用率高和系統(tǒng)吞吐量大,CPU 利用率高。
4.2.1 調(diào)用串口工具
EPU20B 板卡被大量使用在工程現(xiàn)場控制環(huán)境中,而EPU20B板卡片內(nèi)集成的串口模塊負(fù)責(zé)EPU20B 板卡控制系統(tǒng)與外界的數(shù)據(jù)通信[4]。通過串口向EPU20B 下達(dá)命令,通過串口打印信息顯示EPU20B 板卡狀態(tài),這都可以通過使用MSCOMM 控件實(shí)現(xiàn)的,在VC++腳本中添加這個(gè)控件,再添加相應(yīng)的類文件,編寫需要的代碼即可。
4.2.2 調(diào)用Tftpd32.exe 軟件
一般情況下打開Tftpd32.exe 軟件后,需要選擇BOOTROM固件存放路徑、運(yùn)行Tftpd32.exe 軟件的電腦IP 地址等信息,BOOTROM 固件存放路徑第一次設(shè)置好,以后打開都是這樣,但是如果運(yùn)行Tftpd32.exe 軟件的電腦IP 改變后,Tftpd32.exe 軟件里的IP 地址需要重新設(shè)置,通過把Tftpd32.exe 軟件的注冊表里的IP 地址設(shè)為固定的IP 192.168.10.250,這樣每次用批處理打開Tftpd32.exe 軟件,Tftpd32.exe 軟件里的路徑、IP 信息都是固定的。再調(diào)用批處理,把運(yùn)行Tftpd32.exe 軟件的電腦IP 地址改為固定的IP 192.168.10.250,這樣就可以通過串口下達(dá)下載相應(yīng)路徑下BOOTROM 固件命令,完成BOOTROM 固件下載。
4.2.3 調(diào)用Xilinx Design Tools 軟件
圖2
首先把用Xilinx Design Tools 軟件下載每類板卡的FPGA 的命令編制成BAT 批處理文件,批處理文件里面是調(diào)用Xilinx Design Tools 工具下載FPGA 固件的CMD 命令,批處理里面除了CMD 命令,還有一些信息是下載每類板卡FPGA 時(shí)選的編程方式、器件類型、數(shù)據(jù)寬度等信息,每類板卡的這些信息會不一樣。把這些寫完路徑信息的批處理拷貝到C:Xilinx14.7ISE_DSISEin t64下,并用C:Xilinx14.7ISE_DSISEin t64路徑下的impact 運(yùn)行相應(yīng)板卡的批處理命令文件來完成FPGA 下載。