1. gzyueqian
      18529173453
      首頁 > 新聞中心 > > 正文

      Blackfin處理器及嵌入式ktClinux在數據采集系統中的應用

      更新時間: 2007-06-05 12:01:09來源: 粵嵌教育瀏覽量:1187

      前言 

        在數據采集系統中,數字處理是系統核心內容之一;然而隨著科技發展,越來越多的功能需求使得采集系統的外設也越來越復雜,外設通訊和驅動編寫成為一項復雜和繁瑣的工作。以應用為中心的嵌入式系統為此類需求提供了一個良好的解決方案,能夠適應實際應用中對功能、可靠性、成本、體積、功耗的嚴格要求。ADI公司的Blackfin系列處理器將嵌入式微控制器和DSP融為一體,取二者之長,提高了系統工作效能,大大降低了成本。同時,多線程的實時嵌入式操作系統也可增強采集系統的實時性、穩定性。對開發者來說,Blackfin處理器和μClinux的結合很有吸引力。

      系統結構及硬件平臺

        本數據采集系統主要由2個數據采集通道、1個觸發通道、ADc轉換及存儲電路、DSP及FPGA控制部分組成,并包含有以太網、RS232接口、USB、TFT液晶顯示部分。系統硬件平臺原理框圖如圖1所示。

        信號從采集通道進入,經過信號調理電路進入ADC,被轉換后的數字信號即進入FPGA、DSP進行數字控制處理。經過DSP處理過的信號,可送至其它外設以顯示、存儲,或通訊。

        BF531為系統的核心部分之一,供電電壓3.3V,內核電壓1.2V,為了使系統能夠開機自動從FLASH中啟動,設置。BMODE為00,即從外部存儲器啟動。FPGA、片外SDRAM、FLASH,以及USB和液晶直接和BF531通過地址線、數據線相連。

        系統中應用了TFT LCD液晶顯示模塊FG050605DNC:,該LCD控制簡單,只有RGB每色5個共15個信號,以及數據使能、數據時鐘和行頻、場頻控制信號。LCD晶直接由DSP控制,DSP的Timerl、Timer2提供行、場頻信號,PPI口傳輸數據,由FPGA提供時鐘,配置μClinux開辟一塊framebuffer作為顯示數據存儲區,配合Linux下的液晶驅動,即可工作。

      軟件設計

        由于DSP中運行的是基本上已經成熟的算法和控制流程,所以軟件設計的主要工作為在DSP中嵌入操作系統。

      U-Boot的移植

        U-Boot的移植主要分為兩個層面,一個是對CPU的移植,一個是針對Board的移植。U-Boot中已經有大量可直接下載到某些開發板上的程序,為了減小工作量,可選一個接近自己設計的開發板來進行修改。本設計中采用了stamp目標板。

      具體如下:

        (1)拷貝board下面的文件夾stamp,重命名為mybf531,作為即將要修改配置的目標板。拷貝cpu下面的文件夾bf533,重命名為bf531,作為將要修改的cpu bf531。再將board和bf531文件夾中所有關于stamp板的文件名及包含頭文件等改為mybf531;將所有關于bf533的文件名及包含頭文件等改為bf531。注意文件間的依賴關系,確定是該添加文件還是修改文件,并記錄文件改動。

        (2)Makefile文件

        在u-boot根目錄下的makefile文件中添加bf531和mybf531的編譯規則,如下:

      ifeq($(CPU),bf531)

      OBJS+=cpu/$(CPU)/start 1.0

      OBJS+=cpu/$(CPU)/interrupt.0

      0BJS+=cpu/$(CPU)/cache.0

      OBJS+=cpu/$(CPU)/cplbhdlr.0
      OBJS+=cpu/$(CPU)/cplbmgr.O

      OBJS+=cpu/$(CPU)/flush.O

      OBJS+=cPu/$(CPU)/

      init sdram.O

      endif

      mybf531_config: unconfig

      @./mkconfig$(@:_config=)

      blackfin bf531 mybf531

        (3)include/configs/mybf531.h

        板子的功能配置信息大都在include/configs/mybf531.h中,故拷貝stamp.h并修改其中的啟動信息和配置信息。重點修改部分如下:

      時鐘信息:

      #define CONFIG CLKIN HZ

      11059200

      #deftne CONFIG VCO MULT

      36

      #deftne CONFIG SCLK DIV

      5

      FLASH信息:

      #deftlie CFG MAX

      FLASH SECT 67

      #define CFG ENV ADDR

      0x20004000

      #defilie CFG ENV SIZE

      0x2000

      #deftne CFG ENV SECT SIZE

      0x2000

      #defi!qe CFG FLASH ERASE

      TOUT 30000

      #define CFG FLASH ERASE

      TOUT 30000

      SDRAM信息:

      #define CONFIG MEM SIZE

      128

      #define CONFIG MEM ADD

      WDTH 11

      #deftlie CONFIG MEM

      MT48LC64M4A2FB 7E 1

      其它配置信息

      #defilie AMBCTLOVAL

      0xBBC3BBC3

      #define AMBCTL 1 VAL

      0x99839983

      #define VDSP--ENTRY--ADDR

      0xFFA00000

        并將板子上不需要的功能的宏定義作相應設置。

        (4)Board的移植

        檢查board/mybf531/中所有文件,首先將board和CPU的相關stamp.h、stamp.C改為bf531.h和mybf531.C,并檢查其文件的設置、包含的頭文件和宏定義是否正確。在board/mybf531/config.mk中,找到

      TEXT_BASE=0x03FC0000

      PLATFORM_CPPFLAGS+=-

      I$(TOPDIR)

        修改其中的TEXT_BASE值為SDRAM的地址與CFG_MONITOR_LEN之差。

        (5)CPU的移植

        檢查cpu/bf531/中所有文件,首先將board和cpu的相關stamp.h、stamp.C改為bf531.h和mybf531.C,并檢查其文件的設置、包含的頭文件和宏定義是否正確。

        cpu/bf53 1/cpu.C文件的修改主要在于配置SDRAM頁的大小屬性,設置ICPLB、DCPLB、cache的狀態設置,icplb_table和dcplb_table和其相應屬性的修改。

        (6)其它

        在以下文件夾中找到下面函數,檢查并根據具體要求修改

      init IRQ() cpu/bf531/ints.C

      flash_init()drivers/

      cfi_flash.C

      env_init() common/

      env flash.C

      init_baudrate() lib_blackfin/

      board.C

      serial_init() cpu/bf531/

      serial.C

      console_init_f(); common/

      console.C

      display_banner();lib_blackfin/

      board.C

      checkboard(); board/stamp/

      stamp.C

      timer_init(); cpu/bf531/

      interrupts.C

        至此,U-Boot的修改配置基本完成,重新編譯U-Boot代碼,將得到的u-boot.bin通過JTAG口下載到目標板,如果能夠通過串口輸出啟動信息,表明移植基本成功。其間仍需多次修改。移植成功后可相應對功能進行增刪。

      μClinux的移植下載

        本文選擇了httP://blackfin.UClinux.org中提供的μClinux-dist-RO6R2-RC2.tar.bz2作為系統使用μClinux的源代碼。解壓縮之后就可以進行內核配置和內核編譯了,內核配置即為內核制定適當的功能。在解壓縮之后的源碼根目錄下,執行make menuconfig或make xconfig進行配置。

        其中重要的部分如下:

        (1)系統cpu的選擇、系統板卡的選擇及設置

      Kernel executes from RAM

      Cyrstal Frequency 1000Hz

      SDRAM Memory Size in Mbytes

      32 SDRAM Memory

      Address Width 9

      Baud Rate 57600

      Enable DMA Support

      (BFIN_DMA_5xx)

      EBIU_AMBCTL Global Control

      EBIU_AMBCTL Control

        (2)系統外設選擇及驅動設置

        本系統外掛以太網、USB、LCD及SPI FALSH,使用RS232、PPI接口等,μClinux內核源文件已經包含支持Blackfin系列處理器的驅動,故只需對各接口進行驅動選擇,對部分外設進行驅動編寫即可。主要的設置如下:

      Networking support(NET)

      Device Drivers

      Detect non-CFI AMD/JEDEC-C 0 m P a t i b 1 e fl a s h C h i P S(MTD jEDECPROBE)

      ST MW320D compatible flashchip support(MTD_MW320D)

      Support for RAM chips in busmapping(MTD_RAM)

      Parallel port support(PARPORT)

      SCSI device support

      NetW0 rk deVice SUPPort(NETDEVICES)

      Blackfin BF53x ProgrammableFlags Driver(BF533_PFLAGS)

      B1ackfin BF5xx PPI Driver(BF5xx_PPI)

      Support for flame buffer devices(FB)

      FG0506 TFT LCD on uClinux(M Y B F 5 3 1 S T A M P)(FB_BF531_FG0506)

      Support for Host-side USB(USB)

        其中FG0506 TFT LCD onUClinux(MYBF531 STAMP)(FB_BF531_FG0506)為在/uClinux-dist/linux2.6.x/driver/video/下編寫bf531_fg0506.C的液晶顯示驅動,并改寫該文件夾下的Makefile和Kconfig文件,將該選項編入?clinux源程序的配置選項中。

        (3)操作系統內核的剪裁

        Analog DeVice s BlackfinEmbedded Linux Applicationconfiguration菜單下為關于Linux系統應用程序的配置信息,可以添加或刪除適合本系統的軟件設置,應用程序等。例如,如果要在系統上使用圖形界面,就需要在此部分中選擇Microwindows下的microwin和nano-x的相應選項,或是將Qt/Embedded編人μClinux源文件,再編入系統內核中。除了適合系統的特殊需要,一般此項中的內容不需修改。

        全部選擇完成之后,使用make進行內核編譯,在images文件夾下會生成內核文件:linux.ext2、uImage.ext2、  vmlinux、rootfs.ext2、rootfs.jffs2等,分別對應不同的文件系統、不同功能大小的系統。

        使用串口或以太網將內核下載到板子上,啟動?clinux看到歡迎界面和root:/>后,嵌入式操作系統即移植成功。

      結語

        經調試、修改,終生成的內核已可以運行,并對USB、以太網、LCD有良好的支持,節約了大量設備驅動及通訊協議的編寫,給多外設的采集系統提供了良好的驅動解決方案,節約了開發周期和難度。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲五月综合缴情在线观看 | 一级a毛一级a做视频在线观看 | 亚洲综合网伊人中文 | 亚洲午夜精品久久久中文影院 | 亚洲乱码国产乱码精品精在线观看 | 亚洲色大情久久久 |