Blackfin及嵌入式ktClinux在数据采集系统中的应用
发布时间:2008/5/27 0:00:00 访问次数:543
前言
在数据采集系统中,数字处理是系统核心内容之一;然而随着科技发展,越来越多的功能需求使得采集系统的外设也越来越复杂,外设通讯和驱动编写成为一项复杂和繁琐的工作。以应用为中心的嵌入式系统为此类需求提供了一个良好的解决方案,能够适应实际应用中对功能、可靠性、成本、体积、功耗的严格要求。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,并检查其
前言
在数据采集系统中,数字处理是系统核心内容之一;然而随着科技发展,越来越多的功能需求使得采集系统的外设也越来越复杂,外设通讯和驱动编写成为一项复杂和繁琐的工作。以应用为中心的嵌入式系统为此类需求提供了一个良好的解决方案,能够适应实际应用中对功能、可靠性、成本、体积、功耗的严格要求。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,并检查其