[导读]嵌入式系统常用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,实时响应要求很高,特别是在面向视频应用的系统中。嵌入式操作系统具有体积小、实时性好等优点。嵌入式操作系统ucos-ii就是基于任务优先级抢占的嵌入式实时操作系统。
1 系统硬件平台设计
系统使用的主芯片是ADI公司Blackfin系列DSP中的BF533,这是一款专门面向视频应用的DSP,拥有丰富的外设接口和较好的系统扩展性。本系统利用BF533的PPI接口采集数字图像,利用芯片的EBIU总线,扩展SDRAM和网络芯片。BF533工作在600MHz频率,单个芯片即可完成对运动目标跟踪和网络传输等功能。基于BF533的嵌入式系统的外围电路主要可分为三个部分:图像采集部分,网络传输部分,存储器部分。系统硬件框图如图1:
图1 系统硬件框图
图像采集电路部分采用了TI公司的TVP5150A型视频解码芯片,它将NTSC/PAL/SECAM制式的视频信号转换成8bits的ITU-656格式,并按照YCbCr格式以4:2:2的比例转化成数字信号,支持两路模拟输入,解码芯片通过I2C串行接口编程。
网络传输部分采用LAN91C111芯片。这是SMSC公司为嵌入式应用系统推出的第三代快速以太网控制器。本系统中,LAN91C111被当作了是异步存储空间,利用AMS3把它映射在BF533的0x20300000地址空间。这样就可以通过DMA操作实现对LAN91C111内部存储空间读写操作,提高了传输效率并使复杂的网络数据传输过程简单化。
存储器部分BF533的存储结构是统一的4GB寻址空间。同步存储器、异步存储器、外设存储空间和片内存储器全部统一映射在4GB的空间。BF533的EBIU接口中有专门的SDRAM控制单元SDC,可以和SDRAM无缝连接。BF533支持的SDRAM地址是从0x00000000到0x08000000的空间,最大128MB。本系统中使用MICRON公司的MT48LC系列SDRAM,存储空间32MB,用于存储图像处理中的中间结果。另外,BF533支持四块连续的异步存储空间,每块空间大小为1MB,地址从0x20000000到0x20400000,由相应的AMS0-AMS3引脚选择使能。本系统使用的是ST公司的M29W系列FLASH,大小1MB。由AMS0片选使能,映射在BF533的第一块异步存储空间。
2 ucos-ii的移植
ucos-ii是一种具有可剥夺实时内核的实时操作系统,而且是免费公开源代码、结构小巧。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。最小内核可编译至2KB,适合小型控制系统。与CPU 硬件相关的部分用汇编语言编写,其他绝大部分代码采用C语言编写。ucos-ii在硬件平台上的移植主要分为两大步骤:ucos-ii中与处理器相关的程序的修改、应用程序的添加。
2.1 ucos-ii与嵌入式监控系统的软硬件架构
所有的嵌入式操作系统都是与CPU密切相关的,做移植前需要熟悉被移植CPU平台的硬件架构和ucos-ii的运行原理,图2是ucos-ii与本嵌入式监控系统的软硬件架构。
图2 系统架构图
2.2 基于BF533的ucos-ii的移植
移植ucos-ii需要理解处理器及C编译器的技术细节。处理器和编译器满足了ucos-ii的要求,并且已经有了必要工具。移植工作通常包括以下几个内容:
A 用#define设置一个常量的值(OS_CPU.H);
B 声明10个数据类型(OS_CPU.H);
C 用#define声明三个宏(OS_CPU.H);
D 用C语言编写六个简单的函数(OS_CPU_C.C);
E 编写四个汇编语言函数(OS_CPU_A.ASM);
针对不同的CPU平台,移植ucos-ii的过程也会有稍许不同。在本系统中,移植过程大致分为两大部分:1)修改部分文件使ucos-ii与DSP能够实现良好的接口(主要指ucos-ii对DSP硬件架构的支持);2)添加针对嵌入式监控系统硬件平台的初始化及驱动代码。
2.2.1 针对BF533的ucos-ii的代码修改
由于BF533是基于MSA(微信号架构)的16位定点DSP,为了能与ucos-ii数据处理单位统一,需要在OS_CPU.H文件中设置BF533的数据单元长度。部分宏定义代码如下:
typedef bool BOOLEAN;
typedef signed char INT8S;
typedef signed short int INT16S;
typedef signed int INT32S;
[!--empirenews.page--]另外在OS_CPU.H文件中还需设置几个堆栈的参数如堆栈的增长方向、堆栈的操作单位等。BF533支持的是自顶向下的堆栈增长方式,即堆栈空间从高地址向低地址增长。单次堆栈操作单位是INT32U。最后在OS_CPU.H还要对三个函数进行宏定义:屏蔽所有中断,恢复所有中断,进行任务切换。这三个函数在ucos-ii中十分重要,前两个是为了保证一些重要函数或任务运行中的数据不会被改变(即通常所说的代码临界段),第三个是用于ucos-ii的任务切换,在ucos-ii中要求任务的切换就好象是刚发生过一次中断一样。在本系统中首先假设申请切换的任务已经把相关的寄存器变量等参数保存,并将堆栈指针指向了优先级高的任务。这样任务切换函数就只需要完成中断返回操作。
开发软件采用VisualDSP++,它的编译器支持在C语言中嵌入汇编,因此我们把这个宏定义直接写成了一条软件中断指令:raise 14。这样一旦系统进行任务切换,实际上引起了一个中断操作,在OS_CPU_A.ASM文件中我们在此中断操作中完成任务切换前的保存寄存器等工作,最后是一条中断返回指令:RTS。这样优先级更高的任务运行时就会好像刚从中断返回一样。
在文件OS_CPU_A.ASM中还需要编写几个汇编函数来实现ucos-ii的时钟节拍、正常任务切换、中断级任务切换、初始化任务堆栈等功能。
在ucos-ii中,我们可以把时钟节拍TICKS比做是它的心脏节拍。TICKS为系统提供了一个时间基准并为各个任务提供了时间等待等服务。本系统使用BF533的核心定时器来完成系统时钟节拍的功能。系统TICKS设定的是100mS。以下是部分初始化核心定时器的汇编代码:
_CoreTimerInit:
p1.H = ( TCNTL >>16 ); //设置时间控制寄存器
p1.L = ( TCNTL &0xFFFF );
r3 = 1;
[ p1 ] = r3;
p1.H = ( TCOUNT >>16 ); //装载计数值
p1.L = ( TCOUNT &0xFFFF );
[ p1 ] = r1;
p1.H = ( TCNTL >>16 ); //开启定时器
p1.L = ( TCNTL &0xFFFF );
r1 = 0x07;
[ p1 ] = r1;
_CoreTimerInit.end:
除增加上述功能函数外,在ucos-ii启动代码的程序中加入BF533的一些必须的初始化程序如CPU频率的设定等, ucos-ii就可以在本系统上运行起来。
2.2.2 嵌入式监控系统在ucos-ii中的系统驱动程序添加
ucos-ii移植完成后,嵌入式系统要实现应有的功能还需要添加一些外围电路的驱动程序如:网卡芯片LAN91C111的初始化程序,视频A/D芯片的初始化程序等。由于Blackfin系列DSP支持存储空间的DMA操作,为了充分发挥BF533的硬件优势,本系统专门建立一个文件DMA_TRANS.C实现多个存储空间的DMA操作的初始化配置,以方便各个任务实现其功能调用。以下就是实现网卡芯片DMA存储操作的部分配置文件:
void init_dma(LAN91C111_DATA *d)
{dev =d; // 为LAN91C11设置一个全局静态变量,实现对它的数据访问
SET_SHORT((dev->DstStreamBaseAddr+OFFSET_CONFIG),(unsignedshort)0x0);
// 对目标地址的配置清零
SET _SHORT((dev->SrcStreamBaseAddr+OFFSET_CONFIG),(unsigned short)0x0);
//对源地址的配置清零
dma_mask_en(1); //将SIC控制寄存器的相应DMA传输位置1。}
2.3 基于ucos-ii和监控系统的任务程序添加
在ucos-ii中系统的各个应用程序被当成是任务,每个任务被分配一个优先级,ucos-ii支持的最大任务数可在OS_CFG .H文件中指定。ucos-ii可以管理多达64个任务,并从中保留了四个最高优先级和四个最低优先级的任务供自己使用,所以用户可以使用的只有56个任务。因为ucos-ii不支持相同优先级的任务,所以每建立一个任务就需要为任务分配一个优先级并建立一个独立的堆栈空间。
本智能监控系统主要实现对运动目标的跟踪监控和将原始数字图象转化为BMP格式并向网络发送现场图片的功能。在ucos-ii中分配了两个任务优先级0和1给对运动目标的跟踪和网络传输。之所以使网络传输的任务优先级低于对运动目标跟踪的任务,是因为考虑到网络延时等因素会造成对运动目标跟踪的实时性效果比较差,对图像做二值化和差分等运算的时间不大于150mS以及摄像机云台运动一次的时间大概是500mS。本系统在对运动目标跟踪任务中采取的策略是:每当任务完成一次跟踪,就使自己进入挂起状态,直到每秒定时到后,在时钟节拍中断服务程序中唤醒该任务使之处于就绪状态。
嵌入式系统常用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,实时响应要求很高,特别是在面向视频应用的系统中。嵌入式操作系统具有体积小、实时性好等优点。嵌入式操作系统ucos-ii就是基于任务优先级抢占的嵌入式实时操作系统。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...
关键字:
嵌入式
物联网
技术
随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...
关键字:
嵌入式
物联网
计算机
最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。
关键字:
APP
嵌入式
C语言
万物智联时代,嵌入式技术及其应用的形态将更加丰富和多元,同时也将日益呈现深度物理融合、混合架构共存、群体智能协同、网络安全攸关等诸多新的计算特性。显然,经典的嵌入式系统体系结构、软硬件技术和开发方法都已很难应对新趋势下的...
关键字:
嵌入式
物联网
计算机
物联网是新一代信息技术的重要组成部分,是互联网与嵌入式系统发展到高级阶段的融合。通用计算机经历了从智慧平台到互联网的独立发展道路;嵌入式系统则经历了智慧物联到局域智慧物联的独立发展道路。
关键字:
嵌入式
物联网
计算机
今天,小编将在这篇文章中为大家带来工控主板的有关报道,通过阅读这篇文章,大家可以对工控主板具备清晰的认识,主要内容如下。
关键字:
工控主板
嵌入式
主板
随着工业4.0、医疗电子、智能家居、物流管理和电力控制等快速的发展和推进,嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它在未来的工业和生活中有着广阔的应用前景。在现在...
关键字:
嵌入式
物联网
人工智能
长久来看,嵌入式只会越来越火,随着人工智能时代的发展,嵌入式必定又将迎来一次浪潮和技术的巨大变革。人工智能越是想要表达智能水平,就越要依靠嵌入式技术,嵌入式技术将朝着自动化控制和人机交互发展。嵌入式因其体积小、可靠性高、...
关键字:
嵌入式
物联网
人工智能
嵌入式软件技术到目前为止己经在很多领域起到了中流砥柱的作用,例如在电子消费、移动通讯方面,这种技术为我国的很多行业提供了更多的可能性。未来,嵌入式软件技术会为人类做出更大的贡献。伴随着计算机技术与电子技术的成熟发展,电子...
关键字:
嵌入式
软件
人工智能
esim卡的全名为Embedded-SIM,意思就是嵌入式的SIM卡。esim卡的原理简单来说,就是将手机传统插入到手机里的SIM卡直接嵌入进设备芯片中,这样大家就不必再手动物理插入SIM卡,减少了麻烦的同时也降低了si...
关键字:
嵌入式
esim卡
手机
在熟悉任务调度、程序分层和模块化编程关于软件架构、分层和模块设计后,除了函数调用设计中出现的情况外,还会遇到同层模块之前如何进行消息交互,通常是应用层之间。
关键字:
嵌入式
软件架构设计
一直以来,工控主板都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来工控主板的相关介绍,详细内容请看下文。
关键字:
嵌入式
工控主板
主板
从事计算机和或电子行业相关领域工作的朋友,一般都听说过单片机和嵌入式。但是要问单片机和嵌入式两者之间有什么联系,大多数人都不能很好的解释清楚。想要弄清楚嵌入式和单片机有什么联系,首先就要弄明白什么是嵌入式,什么是单片机。...
关键字:
嵌入式
单片机
secure boot是指确保在一个平台上运行的程序的完整性的过程或机制。secure boot会在固件和应用程序之间建立一种信任关系。在启用secure boot功能后,未经签名的固件或程序将不能运行在该设备上。
关键字:
secure boot
嵌入式
旗芯微近日发布了最新一代Hyper控制器家族产品,全系列对标英飞凌 TC家族控制器,覆盖智能底盘、功能安全控制器、域控制器等应用领域。超融合HPU(Hyper Processing Unit)FC7300系列芯片的性能媲...
关键字:
嵌入式
控制器
摘要:随着计算机技术与电子科技的快速发展,人工智能、云计算等技术的不断进步,智能家居新型产业模式也得到了巨大的发展,至今国内智能家居市场投资达到了2396亿元,市场规模占比不断增大,未来十年内家居智能化将实现大规模应用。...
关键字:
STM32
嵌入式
人工智能
以前都是等着,家里电器坏了赶紧拆解一下,这回实在是等不及了,找个便宜的下手吧。这个遥控器用了好多年,感觉还是不错,起码电池挺禁用的。古人云,三人行必有我师焉。那么对于每一个设备,也都有我们可以学习的地方。
关键字:
嵌入式
工程师
近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。 嵌入式系统一般由嵌入式微处理器、外...
关键字:
嵌入式
嵌入式系统
计算机
自上个世纪七十年代提出嵌入式系统的概念以来,嵌入式系统以其高性能、低功耗、低成本和小体积等优势,获得了飞速的发展与广泛的应用,然而,由于受到当时硬件水平的制约,嵌入式系统的软件开发方式与以 PC 为代表的通用计算机系统的...
关键字:
嵌入式
硬件
计算机