【正文】
9 G 2 0 )M A CC o n t r o lD M 9 1 6 1R J 4 5J T A GS P I _ 0A D 8 0 2 0 6L M X0 4 0 3 1F P G AK 4 S 5 6 1 6 3 2 H( 3 2 M B )K 9 F 1 2 0 8 U 0 M( 6 4 M B )D a t a B u s / A d d r e s s B u s / C S x / G P I OE B IU A R TD E B U GN R S TU S BH o s tU S BD e v i c eX I NX O U TX I N 3 2X O U T 3 21 8 . 4 3 2 0 M H z3 2 . 7 2 8 K H zA I CR e s e tM u l t i p l eI 2 CS F P * 8M A C * 8M I IS P I _ 1T XL M X 2 5 3 1L M X0 1 0 1 0A D 9 1 2 2A D 9 1 2 2R XL M X 2 5 3 1R X 0P E 4 3 0 2M O S IM I S OC L KTDITMSTCKRTCKTDOJTAGSELM O S IM I S OC L KHDMAHDPADDMDDPU A R T 0U A R T 1S P 3 2 3 2D T X DD R X DT X D 0R X D 0R S 2 3 2M o d e mT 1 IT 1 OR 1 IR 1 OT 2 IT 2 OR 2 IR 2 OR S 2 3 2T X D 1R X D 1AddrBus9A 0 A 8D 0 D 1 5C SNCS1I O 0 I O 1 5NANDOENANDWER E W EK 2 4 L C 3 2C L K / D A T AAddrBus1 0NCS2I R Q 0I R Q 1F I QDataBusDataBus1 68DataBus1 6T XP E 4 3 0 2MOSI/MISO/CLKMOSI/MISO/CLKG P I OC SC SL EL EL EC SC SL EL EI 2 CC L KD A T AC L K / D A T AR X 1P E 4 3 0 2L E圖 監(jiān)控終端 CPU 架構 系統(tǒng)網絡結構整機物理結構由主單元和遠端接入單元、光擴展單元(OE)、五類線擴展單元(CE)和 CPICO、OPICO 構成,系統(tǒng)總體結構如圖 所示。主單元(MU)監(jiān)控系統(tǒng)通過網口、PS 域、CS 域或短信等通信方式接入到網管監(jiān)控中心(OMC ),通過光纖與相連的 OE 和遠端接入單元通信;OE 和遠端接入單元監(jiān)控系統(tǒng)不直接和 OMC 通信,通過光口與其相連的設備通信。本地調試能夠通過 RS232 或 USB 等接口方式對終端監(jiān)控系統(tǒng)實現(xiàn)本地控制。僅針對監(jiān)控鏈路而言,遠端接入單元與 OE 內部監(jiān)控鏈路是相同的,其內部監(jiān)控結構如圖 所示?;?主單元遠端接入單元 遠端接入單元 遠端接入單元遠端接入單元 遠端接入單元遠端接入單元 遠端接入單元O EC EO EO E C EC P I C OC P I C OO EO P I C OO P I C OO P I C OO P I C OC P I C OC P I C O圖 系統(tǒng)網絡結構 主單元光口光口光口光口光口FPGAMCU網口光口光口光口FPGA網口光口MCU(a) 主單元內部監(jiān)控鏈路 (b) 從單元內部監(jiān)控鏈路圖 主/ 從單元內部監(jiān)控鏈路結構圖主/從單元監(jiān)控物理鏈路如圖 所示。光口的操作與網口的操作相同,都支持TCP/IP 通信。在通過光口進行 TCP/IP 通信過程中,鏈路先經過 FPGA 然后再通過光口傳輸。鏈路經由 FPGA 時,F(xiàn)PGA 會獲取通信包的 MAC 地址與所在設備的 MAC 地址進行比較,若相同表明該通信包的目的設備為該設備,則將通信包截獲并交由設備MCU 進行處理;若 MAC 地址不同,則將通信包以廣播包方式發(fā)到各光口。主單元121 . 11 . 22 . 11 . 1 . 11 . 1 . 21 . 2 . 12 . 1 . 11 . 1 . 1 . 12 . 1 . 1 . 11 . 1 . 1 . 2圖 監(jiān)控物理鏈路示意圖舉例:網管中心系統(tǒng)對從單元 進行操作。首先網管中心與主單元通過網口進從單元行通信,將包含目標設備信息和操作命令的報文發(fā)送到主單元;然后主單元監(jiān)控軟件對報文進行解析,判斷報文中包含的設備信息是否與主單元一致。當判定報文命令不是對主單元進行操作時,監(jiān)控軟件根據(jù)設備信息查詢與設備相關的 MAC 地址等信息,并將 MAC 地址信息與操作命令重新組包發(fā)送到 FPGA。最后,F(xiàn)PGA 根據(jù) MAC 地址一級一級的進行判斷直至通信包 MAC 地址與設備 MAC 地址相同后,F(xiàn)PGA 才將操作命令發(fā)送到設備監(jiān)控軟件進行處理。從 MCU 上運行的監(jiān)控軟件來看,從單元都好像是直接與主單元進行通信連接,因此整個監(jiān)控邏輯鏈路如圖 所示:主單元從單元從單元從單元從單元2從單元從單元1從單元從單元圖 監(jiān)控邏輯鏈路在軟件系統(tǒng)設計中,主單元作為服務器端,所有從單元作為客戶端與近端單元建立連接。 Linux 在 AT91SAM9G20 上的移植Linux 的移植包括 UBoot 的編寫、 Linux 內核編譯和文件系統(tǒng)定制。本節(jié)首先討論 Linux 在 AT91SAM9G20 芯片上的啟動順序,然后根據(jù)課題的需要對 Linux 內核進行裁剪與編譯;最后介紹如何創(chuàng)建文件系統(tǒng)。在 AT91SAM9G20 芯片資料中有關于Linux 移植的 UBoot 等資料,這里只介紹根據(jù)課題的需要,對內核與文件系統(tǒng)進行再編譯。詳細移植過程參考文獻[3436]。 Linux 在 AT91SAM9G20EK 上啟動簡介(1) 啟動流程Linux內核在SAM9 系列芯片上啟動需要三級 loader引導最終進入Linux系統(tǒng) [34]。系統(tǒng)運行由以下幾個模塊協(xié)作完成:ROM code: :出廠時固化在 MCU片內的一段代碼,負責查找可用存儲介質(FLASH, DATAFLASH, NANDFLASH, SDCARD), 并將存儲介質中AT91Bootstrap加載至片內SRAM中運行。AT91Bootstrap:配置片內的外圍資源,并將uboot從外部Flash中加載至SDRAM 中運行。Uboot:配置必要的片外資源,將kernel從存儲介質(FLASH, work, USB key 等)加載至SDRAM,設置必要的啟動參數(shù)后,跳至kernel處運行。Linux kernel:操作系統(tǒng)內核。根文件系統(tǒng):其中包含應用程序和系統(tǒng)運行所需要的必要文件。開始R O M C o d eL o a d A T 9 1 B o o t S t r a p f r o m F L A S H T o S R A M amp。 s t r a t i tA T 9 1 B o o t S t r a pS D R A M , C l o c k i n i t i a l i s a t i o n L o a d U B o o t f r o m F L A S H T o S D R A M amp。 s t a r t i tU B o o tL o a d k e r n e l i m a g e F r o m F L A S H t o S D R A M amp。 s t a r t i tL i n u n x K e r n e lS t a r t i n t k e r n e lU n c o m p r e s s i n g L i n u x結束圖 SAM9G20 啟動流程(2) Linux4SAM DataFlash 啟動資源分配,如圖 所示。0 x 00 x 4 0 0 0 0 0L i n u x K e r n e lU B o o tU B o o t E n vA T 9 1 B o o t s t r a p *D A T A F L A S H0 x 4 2 0 0 00 x 8 4 0 00 x 4 2 0 00 x 0R o o t F S ( j f f s 2 )I N T E R N A LF L A S H *0 x 0 A T 9 1 B o o t s t r a p *圖 Linux4SAM DataFlash 啟動資源分配(3) Linux4SAM NandFlash 啟動資源分配,如圖 所示。帶有片內 Flash 的 AT91 系列芯片上,AT91Bootstrap 放置在片內 Flash 的 0x0 地址處,而不是放置在 DataFlash 或 NandFlash 上。AT91SAM9G20 無片內 Flash。I N T E R N A LF L A S H *0 x 0 A T 9 1 B o o t s t r a p *N A N D F L A S H0 x 00 x 4 0 0 0 0 0L i n u x K e r n e lU B o o tU B o o t E n vA T 9 1 B o o t s t r a p *0 x 2 0 0 0 0 00 x 6 0 0 0 00 x 2 0 0 0 0R o o t F S ( j f f s 2 ) Linux4SAM NandFlash 啟動資源分配 編譯 Linux 內核編譯Linux內核需進行以下步驟:(1)在atmel官網可以下載官方提供的Linux內核和最新的補丁文件。 和內核最新的補丁文件 。(2)解壓內核源碼包$ tar jxvf 。(3)為內核打上補丁文件。$ cp 安裝補丁文件。$ zcat |patch p1(4)修改Makefile文件打開Makefile文件$gedit Makefile查找到如下代碼部分:export KBUILD_BUILDHOST := $(SUBARCH)ARCH ?=$(SUBARCH)CROSS_COMPILE ?= ?修改后代碼如下,即可將編譯環(huán)境改為當前系統(tǒng)的交叉編譯環(huán)境。export KBUILD_BUILDHOST := $(SUBARCH)ARCH ?= arm /*硬件類型 */CROSS_COMPILE ?= armLinux /*交叉編譯環(huán)境*/(5) 配置Linux內核拷貝開發(fā)板默認配置文件到當前目錄。$ cp arch/arm/configs/at91sam9f20ek_defconfig ./清除原有配置: $ make distclean配置為默認配置:$ make at91sam9f20ek_defconfig 詳細配置注: 系統(tǒng),運行make menuconfi前需要安裝ncurses文件,因此先安裝該文件。$ sudo aptget install ncursesdev$ make menuconfig彈出如圖 所示內核配置界面。1) 配置 CPU在主菜單選擇System TypeAtmel AT91 SystemonChip 選擇Atmel AT91SAM9G20EK Evaluation kit。 圖 內核配置主菜單 2) 配置網卡驅動主菜單Networking support Networking options選擇要用的網絡配置:包括socket編程的支持,TCP/IP協(xié)議等。退回到主菜單:Device Drivers Network device support Ether(10 or 100Mbit)選擇設備所采用的網卡Atmel MACB support, 選擇Exit退出。3) 配置串口驅動在主菜單選擇:Device Drivers Charter devices Serial drivers 做如圖 所示的選擇。圖 配置串口支持4) 配置 U盤的支持U盤設備需