岳嘯鳴,范輝,潘瑾,唐明
(1 河北省電力建設(shè)調(diào)整試驗(yàn)所,河北石家莊050021;2 西安交通大學(xué)電力設(shè)備國(guó)家重點(diǎn)實(shí)驗(yàn)室,陜西西安710049)
機(jī)械應(yīng)力、電應(yīng)力和環(huán)境應(yīng)力會(huì)導(dǎo)致發(fā)電機(jī)定子鐵心疊片間的絕緣惡化。絕緣惡化引起的故障電流產(chǎn)生熱點(diǎn),進(jìn)一步加速鐵心老化。因此,在發(fā)電機(jī)定子出廠試驗(yàn)、交接試驗(yàn)、電機(jī)大修時(shí),必須對(duì)定子鐵心疊片的絕緣狀況進(jìn)行檢測(cè)[1-3]。IRIS Power公司研發(fā)的電機(jī)定子鐵心故障檢測(cè)系統(tǒng),具有操作簡(jiǎn)單、靈敏度較高等特點(diǎn),在現(xiàn)場(chǎng)得到廣泛應(yīng)用[4,5]。但該檢測(cè)系統(tǒng)以單片機(jī)為核心處理器,存在處理能力弱以及應(yīng)用不便攜等缺點(diǎn)。本文采用雙核處理器,基于嵌入式Linux 系統(tǒng)研制電機(jī)鐵心便攜式檢測(cè)儀。
嵌入式系統(tǒng)設(shè)計(jì)包括硬件設(shè)計(jì)以及軟件開發(fā)兩部分。
硬件設(shè)計(jì)的基本流程有如下幾點(diǎn)[6,7]:
(1)明確需求。根據(jù)應(yīng)用確定CPU 處理能力、存儲(chǔ)容量、存儲(chǔ)速度、I/O 數(shù)量、總線接口等需求。(2)制定總體方案。根據(jù)需求分析制定硬件總體方案,尋求關(guān)鍵器件及技術(shù)資料、技術(shù)途徑和技術(shù)支持,充分考慮技術(shù)可行性、可靠性,并對(duì)開發(fā)與調(diào)試工具提出明確要求。(3)總體方案確定后,進(jìn)行硬件和軟件的詳細(xì)設(shè)計(jì),包括繪制硬件原理圖、軟件功能框圖、PCB 設(shè)計(jì)與器件清單。(4)PCB 板制作完成后,對(duì)各功能單元進(jìn)行焊接調(diào)試,必要時(shí)修改原理圖并作記錄。(5)軟硬件系統(tǒng)聯(lián)調(diào)、可靠性測(cè)試、穩(wěn)定性測(cè)試。
嵌入式linux 操作系統(tǒng)的一般開發(fā)流程如下[8]:建立開發(fā)環(huán)境,操作系統(tǒng)可使用ubuntu Linux,選擇定制安裝或全部安裝,下載相應(yīng)的GCC 交叉編譯器進(jìn)行安裝(如arm-1inux-gcc、armuclibc-gcc),或安裝產(chǎn)品廠家提供的交叉編譯器;
配置開發(fā)主機(jī),配置MINICOM 為調(diào)試輸入輸出工具,配置NFS 網(wǎng)絡(luò)文件系統(tǒng),配置時(shí)建議關(guān)閉防火墻,以簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程。建立引導(dǎo)裝載程序Bootloader,可選開源的Bootloader,如 UBOOT、BLOB、VIVI、LILO、ARMBOOT、RED-BOOT 等,根據(jù)具體芯片移植修改。
下載已經(jīng)移植好的Linux 操作系統(tǒng),如MCLiunx、ARM-Linux、PPC-Linux 等,如果有專門針對(duì)所使用CPU 且移植好的Linux 操作系統(tǒng)那再好不過(guò),下載后再添加特定硬件的驅(qū)動(dòng)程序,然后調(diào)試修改,對(duì)于帶MMU 的CPU 可以使用模塊方式調(diào)試驅(qū)動(dòng),而對(duì)于MCLiunx 只能編譯內(nèi)核調(diào)試。
建立根文件系統(tǒng),使用BUSYBOX 進(jìn)行功能裁減,產(chǎn)生最基本的根文件系統(tǒng),再根據(jù)應(yīng)用添加其他程序。由于默認(rèn)的啟動(dòng)腳本一般都不會(huì)符合應(yīng)用的需要,所以需修改根文件系統(tǒng)中的啟動(dòng)腳本,其存放位置位于/etc 目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile 等,自動(dòng)掛裝文件系統(tǒng)的配置文件/etc/fstab,具體情況會(huì)隨系統(tǒng)不同而異。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs genromfs 等工具產(chǎn)生燒寫映像文件。
建立應(yīng)用程序的FLASH 磁盤分區(qū),一般使用JFFS2 或YAFFS 文件系統(tǒng),需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用一個(gè)線性512KB ~32MB FLASH(NOR 型),有的使用非線性8MB ~512MB FLASH(NAND 型),有的兩個(gè)都使用,需根據(jù)應(yīng)用規(guī)劃FLASH 的分區(qū)方案。開發(fā)應(yīng)用程序,可放入根文件系統(tǒng)中,也可放入YAFFS、JFFS2 文件系統(tǒng)中,某些應(yīng)用不使用根文件系統(tǒng),則直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,類似μC/OS-II 操作系統(tǒng)。
以TMS320DM8168 處理器為核心,設(shè)計(jì)便攜式電機(jī)鐵心定子絕緣故障檢測(cè)儀。該處理器融合了運(yùn)行頻率高達(dá)1.35GHz 的Cortex-A8 RISC 處理器以及運(yùn)行性能為1.125GHz 的DSP,DDR3 內(nèi)存速率高達(dá)1 600Mbps。該處理器將浮點(diǎn)DSP 內(nèi)核、高清視頻音頻協(xié)處理器、3D 圖形加速引擎以及高度集成的外設(shè)集成,可滿足當(dāng)今苛刻的HD視頻應(yīng)用、數(shù)字信號(hào)處理等要求的應(yīng)用場(chǎng)合[9]。
由于TMS320DM8168 芯片高度的集成性以及多達(dá)1031 個(gè)引腳的BGA 封裝,引腳的扇出和信號(hào)的走線較難,硬件設(shè)計(jì)難度較大。在信號(hào)頻率如此高速的系統(tǒng)中,設(shè)計(jì)時(shí)必須充分考慮信號(hào)完整性問(wèn)題,如果硬件設(shè)計(jì)時(shí)不能保證信號(hào)完整性,則系統(tǒng)幾乎沒(méi)有成功的可能。本文設(shè)計(jì)的硬件總體方案如圖1 所示,主要包括電源模塊、內(nèi)存模塊、調(diào)試配置模塊、外圍接口模塊等。內(nèi)存模塊包括DDR3 及Flash;調(diào)試及配置模塊包括系統(tǒng)調(diào)試串口、JTAG、BOOT-UP;外圍接口包括以太網(wǎng)、SD 卡、RS232、USB2.0 與PCI-E 接口等。
圖1 硬件總體方案
最小系統(tǒng)包括:時(shí)鐘及復(fù)位電路;JTAG 調(diào)試電路;boot-up 電路;DDR3 內(nèi)存電路等。
DM8168 系統(tǒng)需要一個(gè)27M 時(shí)鐘源輸入內(nèi)部鎖相環(huán),以生成內(nèi)部各功能模塊所需時(shí)鐘。DM8168 的JTAG 接口,符合IEEE1149.I 標(biāo)準(zhǔn),用于仿真調(diào)試。除標(biāo)準(zhǔn)規(guī)定的4 條必須信號(hào)TMS、TDI、TDO、TCK 和可選TRSTn#信號(hào)外,還提供EMU[4:0]進(jìn)行功能仿真。DM8168 支持多種啟動(dòng)方式(NAND、NOR、SD、EMAC、UART、SPI),可通過(guò)BTMODE[4:0]引腳電平來(lái)選擇。
DM8168 集成了雙32 位DDR2/3 SDRAM 接口,地址空間可達(dá)2GB,支持DDR2-800 和DDR3-1600 的高速內(nèi)存。其管理方法實(shí)現(xiàn)了可編程多區(qū)內(nèi)存映射及交錯(cuò)、高效2D 成塊存取,支持0°、90°、180°、270°取向的平鋪對(duì)象和鏡像,優(yōu)化可交錯(cuò)存取。與DDR2 相比,DDR3 工作頻率更高、功耗更低、容量更大,本系統(tǒng)選用兩個(gè)控制器共連接8 片MT41J128M8 實(shí)現(xiàn)1GB 的內(nèi)存空間。
DM8168 內(nèi)部復(fù)雜的多電源要求通過(guò)上電順序控制來(lái)實(shí)現(xiàn)正確的加電過(guò)程,即依次為3.3V、1V-AVS、1V、1.8V、1.5V、0.9V 以提高系統(tǒng)的可靠性,限制起動(dòng)負(fù)載和浪涌電流,減小起動(dòng)尖峰電壓對(duì)系統(tǒng)總線的影響。通過(guò)對(duì)各電源芯片使能引腳和軟啟動(dòng)引腳的控制,實(shí)現(xiàn)系統(tǒng)要求的上電順序,DM8168 上電順序如圖2 所示。
圖2 電源上電順序
PCB 設(shè)計(jì)難點(diǎn)在于DDR3 的布局與布線,官方設(shè)計(jì)文檔中規(guī)定DDR3 布線至少需要4 層疊層結(jié)構(gòu),推薦使用6 層疊層結(jié)構(gòu),本文選用6 層結(jié)構(gòu)??紤]到信號(hào)完整性,DDR3 在布線時(shí)需注意以下幾點(diǎn)。
為了滿足時(shí)序邏輯信號(hào)建立時(shí)間和保持時(shí)間,防止時(shí)序錯(cuò)誤造成設(shè)計(jì)失敗,需要控制DDR3高速信號(hào)走線之間的等長(zhǎng)。為了減小高速信號(hào)的反射,單端信號(hào)阻抗應(yīng)控制在50Ω,差分信號(hào)阻抗應(yīng)控制在90Ω,同時(shí)利用DDR3 ODT 功能對(duì)數(shù)據(jù)信號(hào)線進(jìn)行短接補(bǔ)償,用外部并聯(lián)47Ω 電阻對(duì)地址信號(hào)、命令信號(hào)、控制信號(hào)、時(shí)鐘信號(hào)進(jìn)行端接匹配。
DDR3 采用Fly-By 的拓?fù)浣Y(jié)構(gòu),典型的Fly-By 的拓?fù)浣Y(jié)構(gòu)如圖3 所示,F(xiàn)ly-By 信號(hào)包括命令、地址、控制和時(shí)鐘信號(hào),這些信號(hào)以串接的方式從DDR3 控制器連接到每一個(gè)DDR3 芯片,從而減少分支數(shù)量和分支長(zhǎng)度。但這樣會(huì)導(dǎo)致每個(gè)DDR3 的延時(shí)不同,因此要求在軟件設(shè)計(jì)時(shí)采用讀調(diào)整和寫調(diào)整技術(shù)來(lái)補(bǔ)償延遲差異。PCB 繪制完畢后,DDR3 走線采用Fly-By 拓?fù)浣Y(jié)構(gòu),基于蛇形走線做了等長(zhǎng)處理。當(dāng)系統(tǒng)的硬件設(shè)計(jì)工作結(jié)束后,開始PCB 制版、焊接與硬件測(cè)試,上述工作完成后,就進(jìn)入軟件系統(tǒng)的設(shè)計(jì)環(huán)節(jié)。
圖3 典型的Fly-By 拓?fù)浣Y(jié)構(gòu)
嵌入式Linux 系統(tǒng)在上電或復(fù)位時(shí),從存儲(chǔ)器的0x00000000 地址處開始運(yùn)行,然后依次加載BootLoader、啟動(dòng)Linux 系統(tǒng)映像、掛載文件系統(tǒng)、啟動(dòng)用戶應(yīng)用程序。DM8168 內(nèi)部包含一段從0x00000 到0x2BFFFF 的ROM 代碼區(qū),系統(tǒng)上電后,DM8168 自動(dòng)從該ROM 代碼區(qū)開始運(yùn)行,完成堆棧、看門狗、系統(tǒng)時(shí)鐘、鎖相環(huán)等的初始化,然后進(jìn)入系統(tǒng)引導(dǎo)。DM8168 支持NOR Flash、NAND Flash、SD 卡、UART、Emac、SPI 多種引導(dǎo)方式。在上電時(shí),鎖存BTMODE[4:0]電平值至CONTRAL_STATUS 寄存器,DM8168 根據(jù)CONTRAL_STATUS 寄存器值設(shè)置啟動(dòng)器件列表。這個(gè)過(guò)程稱為RBL(ROM BootLoader)。本文所設(shè)計(jì)系統(tǒng),可通過(guò)撥碼開關(guān)選擇啟動(dòng)方式,一般在設(shè)計(jì)調(diào)試與生產(chǎn)調(diào)試時(shí)使用SD 卡啟動(dòng),出廠時(shí)通過(guò)SD 啟動(dòng)后燒寫程序至NAND Flash,然后從NAND Flash 啟動(dòng)。當(dāng)設(shè)置為NAND 啟動(dòng)時(shí),系統(tǒng)首先會(huì)進(jìn)行NAND 檢測(cè),讀取NAND 器件的ID、參數(shù)。當(dāng)被檢測(cè)到NAND Flash 容量大于1Gb 時(shí),DM8168 內(nèi)部會(huì)更改GPMC 中頁(yè)大小、塊大小、ECC 的設(shè)置以符合器件信息。更新完畢后,讀取無(wú)效的塊信息并作標(biāo)記,檢測(cè)流程如圖4 所示。當(dāng)NAND 檢測(cè)成功后,DM8168 首先檢測(cè)U-BOOT的stage 1 到片上內(nèi)存并執(zhí)行,stage 1 主要工作是完成DDR3 的初始化,然后將u-boot stage 2 復(fù)制到DDR3 內(nèi)存中并執(zhí)行。Stage 2 主要工作是完成必要器件的驅(qū)動(dòng),調(diào)試燒寫等命令以及最重要的加載內(nèi)核。完成后將控制權(quán)交給linux 內(nèi)核。文件系統(tǒng)由內(nèi)核加載,至此,系統(tǒng)啟動(dòng)過(guò)程完畢。
圖4 NAND 器件檢測(cè)流程
系統(tǒng)開發(fā)硬件環(huán)境包括系統(tǒng)目標(biāo)板、宿主機(jī)、調(diào)試工具等。宿主機(jī)采用普通計(jì)算機(jī),針對(duì)不同的處理器提供了免費(fèi)的開發(fā)包EZSDK5.05,包括uboot 源碼、linux 內(nèi)核源碼linux-2.6.37、SD 卡啟動(dòng)制作工具等。
交叉編譯工具鏈為 arm-2009q1-203-armnone-linux-gnueabi,可安裝在宿主機(jī)的/opt/crosstool 目錄下,命令如下:
# chmo d+x./arm-2009q1-203-arm-nonelinux-gnueabi.bin
#./arm-2009q1-203-arm-none-linux-gnueabi.bin
出現(xiàn)Sourcery G++的安裝界面后,根據(jù)提示安裝即可。進(jìn)入EZSDK 所在目錄,執(zhí)行如下命令,安裝EZSDK 開發(fā)包:
#chmod +x./ezsdk_dm816x-evm_5_05_02_00_setuplinux.bin
#./ezsdk_dm816x-evm_5_05_02_00_setuplinux.bin
此時(shí)出現(xiàn)EZSDK 選擇交叉編譯工具的安裝界面,選擇已安裝的arm-2009q1-203-arm-nonelinux-gnueabi 即可。其他步驟按照提示安裝在/home/work/ezsdk目錄下。安裝完成后,ezsdk目錄中每個(gè)文件夾的用途如表1 所示。終端切換到ezsdk 目錄下,執(zhí)行:#./setup.sh。
該腳本是開發(fā)包中提供的配置環(huán)境變量腳本,配置安裝tftp-server、NFS、minicom、autoconf、automake 等必要的工具,并配置交叉編譯工具鏈路徑。在安裝過(guò)程中,會(huì)提示輸入或選擇tftpboot路徑,在此設(shè)置為/work/tftpboot。目標(biāo)板文件系統(tǒng)路徑設(shè)為/work/rootfs。執(zhí)行完成后,DM8168嵌入式軟件系統(tǒng)開發(fā)環(huán)境搭建完畢。
表1 ezsdk 目錄結(jié)構(gòu)及描述
Ezsdk 下linux 內(nèi)核編譯與u-boot 編譯類似,終端切換到ezsdk 目錄下:#make linux。
執(zhí)行完成后,會(huì)在內(nèi)核的/arch/arm/boot 目錄下生成所需uImage 文件。如需要修改linux 配置,可執(zhí)行:#make linux_config。內(nèi)核的編譯和配置跟我們所熟知的內(nèi)核配置、編譯差別不大,唯一不同的是ezsdk 將我們平時(shí)使用的編譯配置命令統(tǒng)一放到主目錄的Makefile 文件當(dāng)中,但其本質(zhì)是相同的。
Ezsdk 提供了制作sd 卡啟動(dòng)的工具ezsdk/bin/mksdboot.sh,將sd 卡通過(guò)讀卡器接入宿主機(jī)usb 接口,終端切換到ezsdk/bin/目錄下,并執(zhí)行:
#./mksdboot. sh--device /dev/sda--sdk $(EZSDK)
這樣就將u-boot、uImage 文件燒寫到SD 卡中了,將目標(biāo)板上bootmode 設(shè)置的撥碼開關(guān)切換到SD 卡啟動(dòng)模式,插入燒寫好的SD 卡,啟動(dòng)目標(biāo)板,通過(guò)調(diào)試串口,可看到u-boot 及內(nèi)核啟動(dòng)信息。
Linux 文件系統(tǒng)包含了文件中的數(shù)據(jù)和文件結(jié)構(gòu)。用戶和程序看到的全部文件、目錄、連接及文件保護(hù)信息等都存在文件系統(tǒng)中。Linux 操作系統(tǒng)的根文件系統(tǒng)以目錄的結(jié)構(gòu)方式組織,在調(diào)試過(guò)程中,可以選擇將文件系統(tǒng)直接制作在SD 卡上,也可使用nfs 方式掛載文件系統(tǒng),直到最終的應(yīng)用程序編寫調(diào)試完成后,才制作生成燒寫到目標(biāo)板的映像文件。
經(jīng)過(guò)軟件與硬件調(diào)試,并設(shè)計(jì)合適的系統(tǒng)界面,顯示屏為7 寸液晶顯示屏,采用觸摸板為系統(tǒng)輸入接口。硬件系統(tǒng)設(shè)計(jì)成核心板與底板的方式,核心板為DM8168 最小系統(tǒng),通過(guò)高速接口總線與底板連接。底板電路主要包括高速數(shù)據(jù)采集電路以及各種外部接口電路。調(diào)試時(shí)參考傳感器的電流值為144mA,檢測(cè)傳感器的電流值為357mA。
本文采用TMS320DM8168 雙核處理器,并配置DDR3 內(nèi)存、高速總線接口,基于嵌入式Linux系統(tǒng)研制電機(jī)鐵心便攜式檢測(cè)儀。從測(cè)試情況看,該系統(tǒng)具有人機(jī)交互性能好、數(shù)據(jù)處理速度快、功能擴(kuò)展方便等特點(diǎn),為電機(jī)鐵心檢測(cè)提供了有意義的參考與借鑒作用。
[1] G.K.Ridley. Electromagnetic field effects on EL CID tests[J].Seventh International Conference on Electrical Machines and Drives,1995:187-193.
[2] 關(guān)建軍,于慶斌,鐘浩文. 發(fā)電機(jī)定子鐵心ELCID試驗(yàn)分析與探討[J].大電機(jī)技術(shù),2005,(5):13-17.
[3] C.Kreischer,L.Golebiowski. Comparison of Different Methods to Determine Defects in the Stator Core[C]. XXth International Conference on Electrical Machines(ICEM),2012:1608-1611.
[4] C.Rickson,Electrical machine core imperfection detection[J].IEE Proceedings B Electric Power Applications,1986,133(3):190-195.
[5] M.Eltabach,A.Charara,I.Zein.A comparison of external and internal methods of signal spectral analysis for broken rotor bars detection in induction motors[J].IEEE Transactions on Industrial Electronics,2004,51(1):107-121.
[6] 孫圣武,葉芝慧,曹允,等. 基于TMS320DM8168的嵌入式高清視頻系統(tǒng)[J]. 光電子技術(shù),2014,34(1):36-41.
[7] 楊振永,王延杰,孫海江,等.基于TMS320DM8168的SOC 高清視頻處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 液晶與顯示,2013,28(5):764-769.
[8] 姜忠兵,羅鈞,楊曉花,等.基于TMS320DM8168 的高清視頻編碼技術(shù)與實(shí)現(xiàn)[J].數(shù)據(jù)采集與處理,2012,27(6):690-695.
[9] 賈文全,李勇,王軍輝.基于TMS320DM8168 硬件平臺(tái)的智能網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[J].計(jì)算機(jī)與數(shù)字工程,2012,40(9):60-62.