岳嘯鳴,范輝,潘瑾,唐明
(1 河北省電力建設調整試驗所,河北石家莊050021;2 西安交通大學電力設備國家重點實驗室,陜西西安710049)
機械應力、電應力和環境應力會導致發電機定子鐵心疊片間的絕緣惡化。絕緣惡化引起的故障電流產生熱點,進一步加速鐵心老化。因此,在發電機定子出廠試驗、交接試驗、電機大修時,必須對定子鐵心疊片的絕緣狀況進行檢測[1-3]。IRIS Power公司研發的電機定子鐵心故障檢測系統,具有操作簡單、靈敏度較高等特點,在現場得到廣泛應用[4,5]。但該檢測系統以單片機為核心處理器,存在處理能力弱以及應用不便攜等缺點。本文采用雙核處理器,基于嵌入式Linux 系統研制電機鐵心便攜式檢測儀。
嵌入式系統設計包括硬件設計以及軟件開發兩部分。
硬件設計的基本流程有如下幾點[6,7]:
(1)明確需求。根據應用確定CPU 處理能力、存儲容量、存儲速度、I/O 數量、總線接口等需求。(2)制定總體方案。根據需求分析制定硬件總體方案,尋求關鍵器件及技術資料、技術途徑和技術支持,充分考慮技術可行性、可靠性,并對開發與調試工具提出明確要求。(3)總體方案確定后,進行硬件和軟件的詳細設計,包括繪制硬件原理圖、軟件功能框圖、PCB 設計與器件清單。(4)PCB 板制作完成后,對各功能單元進行焊接調試,必要時修改原理圖并作記錄。(5)軟硬件系統聯調、可靠性測試、穩定性測試。
嵌入式linux 操作系統的一般開發流程如下[8]:建立開發環境,操作系統可使用ubuntu Linux,選擇定制安裝或全部安裝,下載相應的GCC 交叉編譯器進行安裝(如arm-1inux-gcc、armuclibc-gcc),或安裝產品廠家提供的交叉編譯器;
配置開發主機,配置MINICOM 為調試輸入輸出工具,配置NFS 網絡文件系統,配置時建議關閉防火墻,以簡化嵌入式網絡調試環境設置過程。建立引導裝載程序Bootloader,可選開源的Bootloader,如 UBOOT、BLOB、VIVI、LILO、ARMBOOT、RED-BOOT 等,根據具體芯片移植修改。
下載已經移植好的Linux 操作系統,如MCLiunx、ARM-Linux、PPC-Linux 等,如果有專門針對所使用CPU 且移植好的Linux 操作系統那再好不過,下載后再添加特定硬件的驅動程序,然后調試修改,對于帶MMU 的CPU 可以使用模塊方式調試驅動,而對于MCLiunx 只能編譯內核調試。
建立根文件系統,使用BUSYBOX 進行功能裁減,產生最基本的根文件系統,再根據應用添加其他程序。由于默認的啟動腳本一般都不會符合應用的需要,所以需修改根文件系統中的啟動腳本,其存放位置位于/etc 目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile 等,自動掛裝文件系統的配置文件/etc/fstab,具體情況會隨系統不同而異。根文件系統在嵌入式系統中一般設為只讀,需要使用mkcramfs genromfs 等工具產生燒寫映像文件。
建立應用程序的FLASH 磁盤分區,一般使用JFFS2 或YAFFS 文件系統,需要在內核中提供這些文件系統的驅動,有的系統使用一個線性512KB ~32MB FLASH(NOR 型),有的使用非線性8MB ~512MB FLASH(NAND 型),有的兩個都使用,需根據應用規劃FLASH 的分區方案。開發應用程序,可放入根文件系統中,也可放入YAFFS、JFFS2 文件系統中,某些應用不使用根文件系統,則直接將應用程序和內核設計在一起,類似μC/OS-II 操作系統。
以TMS320DM8168 處理器為核心,設計便攜式電機鐵心定子絕緣故障檢測儀。該處理器融合了運行頻率高達1.35GHz 的Cortex-A8 RISC 處理器以及運行性能為1.125GHz 的DSP,DDR3 內存速率高達1 600Mbps。該處理器將浮點DSP 內核、高清視頻音頻協處理器、3D 圖形加速引擎以及高度集成的外設集成,可滿足當今苛刻的HD視頻應用、數字信號處理等要求的應用場合[9]。
由于TMS320DM8168 芯片高度的集成性以及多達1031 個引腳的BGA 封裝,引腳的扇出和信號的走線較難,硬件設計難度較大。在信號頻率如此高速的系統中,設計時必須充分考慮信號完整性問題,如果硬件設計時不能保證信號完整性,則系統幾乎沒有成功的可能。本文設計的硬件總體方案如圖1 所示,主要包括電源模塊、內存模塊、調試配置模塊、外圍接口模塊等。內存模塊包括DDR3 及Flash;調試及配置模塊包括系統調試串口、JTAG、BOOT-UP;外圍接口包括以太網、SD 卡、RS232、USB2.0 與PCI-E 接口等。

圖1 硬件總體方案
最小系統包括:時鐘及復位電路;JTAG 調試電路;boot-up 電路;DDR3 內存電路等。
DM8168 系統需要一個27M 時鐘源輸入內部鎖相環,以生成內部各功能模塊所需時鐘。DM8168 的JTAG 接口,符合IEEE1149.I 標準,用于仿真調試。除標準規定的4 條必須信號TMS、TDI、TDO、TCK 和可選TRSTn#信號外,還提供EMU[4:0]進行功能仿真。DM8168 支持多種啟動方式(NAND、NOR、SD、EMAC、UART、SPI),可通過BTMODE[4:0]引腳電平來選擇。
DM8168 集成了雙32 位DDR2/3 SDRAM 接口,地址空間可達2GB,支持DDR2-800 和DDR3-1600 的高速內存。其管理方法實現了可編程多區內存映射及交錯、高效2D 成塊存取,支持0°、90°、180°、270°取向的平鋪對象和鏡像,優化可交錯存取。與DDR2 相比,DDR3 工作頻率更高、功耗更低、容量更大,本系統選用兩個控制器共連接8 片MT41J128M8 實現1GB 的內存空間。
DM8168 內部復雜的多電源要求通過上電順序控制來實現正確的加電過程,即依次為3.3V、1V-AVS、1V、1.8V、1.5V、0.9V 以提高系統的可靠性,限制起動負載和浪涌電流,減小起動尖峰電壓對系統總線的影響。通過對各電源芯片使能引腳和軟啟動引腳的控制,實現系統要求的上電順序,DM8168 上電順序如圖2 所示。

圖2 電源上電順序
PCB 設計難點在于DDR3 的布局與布線,官方設計文檔中規定DDR3 布線至少需要4 層疊層結構,推薦使用6 層疊層結構,本文選用6 層結構。考慮到信號完整性,DDR3 在布線時需注意以下幾點。
為了滿足時序邏輯信號建立時間和保持時間,防止時序錯誤造成設計失敗,需要控制DDR3高速信號走線之間的等長。為了減小高速信號的反射,單端信號阻抗應控制在50Ω,差分信號阻抗應控制在90Ω,同時利用DDR3 ODT 功能對數據信號線進行短接補償,用外部并聯47Ω 電阻對地址信號、命令信號、控制信號、時鐘信號進行端接匹配。
DDR3 采用Fly-By 的拓撲結構,典型的Fly-By 的拓撲結構如圖3 所示,Fly-By 信號包括命令、地址、控制和時鐘信號,這些信號以串接的方式從DDR3 控制器連接到每一個DDR3 芯片,從而減少分支數量和分支長度。但這樣會導致每個DDR3 的延時不同,因此要求在軟件設計時采用讀調整和寫調整技術來補償延遲差異。PCB 繪制完畢后,DDR3 走線采用Fly-By 拓撲結構,基于蛇形走線做了等長處理。當系統的硬件設計工作結束后,開始PCB 制版、焊接與硬件測試,上述工作完成后,就進入軟件系統的設計環節。

圖3 典型的Fly-By 拓撲結構
嵌入式Linux 系統在上電或復位時,從存儲器的0x00000000 地址處開始運行,然后依次加載BootLoader、啟動Linux 系統映像、掛載文件系統、啟動用戶應用程序。DM8168 內部包含一段從0x00000 到0x2BFFFF 的ROM 代碼區,系統上電后,DM8168 自動從該ROM 代碼區開始運行,完成堆棧、看門狗、系統時鐘、鎖相環等的初始化,然后進入系統引導。DM8168 支持NOR Flash、NAND Flash、SD 卡、UART、Emac、SPI 多種引導方式。在上電時,鎖存BTMODE[4:0]電平值至CONTRAL_STATUS 寄存器,DM8168 根據CONTRAL_STATUS 寄存器值設置啟動器件列表。這個過程稱為RBL(ROM BootLoader)。本文所設計系統,可通過撥碼開關選擇啟動方式,一般在設計調試與生產調試時使用SD 卡啟動,出廠時通過SD 啟動后燒寫程序至NAND Flash,然后從NAND Flash 啟動。當設置為NAND 啟動時,系統首先會進行NAND 檢測,讀取NAND 器件的ID、參數。當被檢測到NAND Flash 容量大于1Gb 時,DM8168 內部會更改GPMC 中頁大小、塊大小、ECC 的設置以符合器件信息。更新完畢后,讀取無效的塊信息并作標記,檢測流程如圖4 所示。當NAND 檢測成功后,DM8168 首先檢測U-BOOT的stage 1 到片上內存并執行,stage 1 主要工作是完成DDR3 的初始化,然后將u-boot stage 2 復制到DDR3 內存中并執行。Stage 2 主要工作是完成必要器件的驅動,調試燒寫等命令以及最重要的加載內核。完成后將控制權交給linux 內核。文件系統由內核加載,至此,系統啟動過程完畢。

圖4 NAND 器件檢測流程
系統開發硬件環境包括系統目標板、宿主機、調試工具等。宿主機采用普通計算機,針對不同的處理器提供了免費的開發包EZSDK5.05,包括uboot 源碼、linux 內核源碼linux-2.6.37、SD 卡啟動制作工具等。
交叉編譯工具鏈為 arm-2009q1-203-armnone-linux-gnueabi,可安裝在宿主機的/opt/crosstool 目錄下,命令如下:
# chmo d+x./arm-2009q1-203-arm-nonelinux-gnueabi.bin
#./arm-2009q1-203-arm-none-linux-gnueabi.bin
出現Sourcery G++的安裝界面后,根據提示安裝即可。進入EZSDK 所在目錄,執行如下命令,安裝EZSDK 開發包:
#chmod +x./ezsdk_dm816x-evm_5_05_02_00_setuplinux.bin
#./ezsdk_dm816x-evm_5_05_02_00_setuplinux.bin
此時出現EZSDK 選擇交叉編譯工具的安裝界面,選擇已安裝的arm-2009q1-203-arm-nonelinux-gnueabi 即可。其他步驟按照提示安裝在/home/work/ezsdk目錄下。安裝完成后,ezsdk目錄中每個文件夾的用途如表1 所示。終端切換到ezsdk 目錄下,執行:#./setup.sh。
該腳本是開發包中提供的配置環境變量腳本,配置安裝tftp-server、NFS、minicom、autoconf、automake 等必要的工具,并配置交叉編譯工具鏈路徑。在安裝過程中,會提示輸入或選擇tftpboot路徑,在此設置為/work/tftpboot。目標板文件系統路徑設為/work/rootfs。執行完成后,DM8168嵌入式軟件系統開發環境搭建完畢。

表1 ezsdk 目錄結構及描述
Ezsdk 下linux 內核編譯與u-boot 編譯類似,終端切換到ezsdk 目錄下:#make linux。
執行完成后,會在內核的/arch/arm/boot 目錄下生成所需uImage 文件。如需要修改linux 配置,可執行:#make linux_config。內核的編譯和配置跟我們所熟知的內核配置、編譯差別不大,唯一不同的是ezsdk 將我們平時使用的編譯配置命令統一放到主目錄的Makefile 文件當中,但其本質是相同的。
Ezsdk 提供了制作sd 卡啟動的工具ezsdk/bin/mksdboot.sh,將sd 卡通過讀卡器接入宿主機usb 接口,終端切換到ezsdk/bin/目錄下,并執行:
#./mksdboot. sh--device /dev/sda--sdk $(EZSDK)
這樣就將u-boot、uImage 文件燒寫到SD 卡中了,將目標板上bootmode 設置的撥碼開關切換到SD 卡啟動模式,插入燒寫好的SD 卡,啟動目標板,通過調試串口,可看到u-boot 及內核啟動信息。
Linux 文件系統包含了文件中的數據和文件結構。用戶和程序看到的全部文件、目錄、連接及文件保護信息等都存在文件系統中。Linux 操作系統的根文件系統以目錄的結構方式組織,在調試過程中,可以選擇將文件系統直接制作在SD 卡上,也可使用nfs 方式掛載文件系統,直到最終的應用程序編寫調試完成后,才制作生成燒寫到目標板的映像文件。
經過軟件與硬件調試,并設計合適的系統界面,顯示屏為7 寸液晶顯示屏,采用觸摸板為系統輸入接口。硬件系統設計成核心板與底板的方式,核心板為DM8168 最小系統,通過高速接口總線與底板連接。底板電路主要包括高速數據采集電路以及各種外部接口電路。調試時參考傳感器的電流值為144mA,檢測傳感器的電流值為357mA。
本文采用TMS320DM8168 雙核處理器,并配置DDR3 內存、高速總線接口,基于嵌入式Linux系統研制電機鐵心便攜式檢測儀。從測試情況看,該系統具有人機交互性能好、數據處理速度快、功能擴展方便等特點,為電機鐵心檢測提供了有意義的參考與借鑒作用。
[1] G.K.Ridley. Electromagnetic field effects on EL CID tests[J].Seventh International Conference on Electrical Machines and Drives,1995:187-193.
[2] 關建軍,于慶斌,鐘浩文. 發電機定子鐵心ELCID試驗分析與探討[J].大電機技術,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的嵌入式高清視頻系統[J]. 光電子技術,2014,34(1):36-41.
[7] 楊振永,王延杰,孫海江,等.基于TMS320DM8168的SOC 高清視頻處理系統的設計與實現[J]. 液晶與顯示,2013,28(5):764-769.
[8] 姜忠兵,羅鈞,楊曉花,等.基于TMS320DM8168 的高清視頻編碼技術與實現[J].數據采集與處理,2012,27(6):690-695.
[9] 賈文全,李勇,王軍輝.基于TMS320DM8168 硬件平臺的智能網絡視頻監控系統[J].計算機與數字工程,2012,40(9):60-62.