当前位置:首页 > 嵌入式 > 嵌入式硬件

嵌入式视频通信系统由视频数据采集、处理和通信等部件组成,需要嵌入式网络协议栈的支持。中央处理器采用DSP,占用了大量资源,而网络协议栈能够使用的运算资源、内存资源有限,并且缺乏操作系统给网络协议栈的实现带来困难。针对视频监控应用,本文提出了在TI公司的高性能DSP芯片(以下简称DM642)上实现精简的TCP/IP协议栈的,阐述了其硬件的设计及软件实现。

1 TCP/IP协议栈分析

嵌入式TCP/IP协议栈具有TCP/IP协议栈的基本功能,它运行于以太网环境下,其软件模型如图1所示。

最底层是物理层,定义了以太网控制器的工作方式,实现以太网帧的封装、发送和接收。本系统使用公司的以太网收发器LXT97lA。

第二层是网络层,完成IP数据报的封装和转发,并根据帧的类型(、TCP或UDP等)进行相应处理。IP协议提供了一种高效、不可靠和无连接的传输方式。本系统不支持对IP包的分片和重组。地址解析协议ARP实现IP地址到MAC地址的动态转换。协议定义了一套差错报文和控制报文,在该系统用于测试网络的连通情况。

第三层是传输层,完成数据报的传输控制。该层主要包括TCP协议和UDP协议。TCP提供可靠的数据传输,而UDP提供不可靠的数据传输。与UDP相比,TCP的可靠性是通过非常复杂的措施以及由此增加的开销为代价获得的。监控终端传输的数据大部分是图像编码数据,这些数据对实时性和传输率的要求高,而对数据可靠性的要求相对较低,因此本系统将UDP协议作为传输层协议。

最上层是应用层,解决用户特定的应用,主要包括、FTP、、、、DNS等协议。在该层主要实现视频编码数据的传输。

作为一类特殊的计算机系统, 嵌入式系统通常由嵌入式处理器、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。嵌入式处理器是嵌入式系统的核心部件,它可分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)和高度集成的嵌入式SoC(System on Chip)。嵌入式外围设备是指嵌入式硬件系统中除中心控制部件以外的存储、通信、保护、调试、显示等其它辅助部件。嵌入式操作系统一般在比较大型或需要多任务的应用场合才考虑使用,它可方便嵌入式应用软件的设计,大大提高嵌入式系统的功能,但同时也要占用宝贵的嵌入式资源。嵌入式应用软件和普通的应用软件有一定的区别,它是针对特定的实际专业领域、基于相应的嵌入式硬件平台、能完成用户预期任务的计算机软件。

嵌入式处理器有许多种流行的处理器核,本文主要介绍采用Samsung公司基于ARM公司32位RISC的ARM7TDMI核的S3C44B0X处理器来进行Socket通信的软硬件平台的设计和实现方法。

S3C44B0X是高性价比、高性能的微控制器,它采用ARM7TDMI核,可工作在66MHz。ARM7TDMI是一种32位嵌入式RISC处理器,但也配备了16位压缩指令集Thumb。它支持片上调试,允许处理器响应调试请求暂停,芯片内的增强型乘法器(multiplier)可进行两个32位数相乘从而直接产生64位结果,也可为嵌入式ICE硬件提供片上断点和调试点支持。此外,它还可以提供三级流水线及冯?诺依曼结构。实际上,S3C44B0X已在ARM7TDMI内容基础上扩展了一系列完整的通用外围器件。图1所示是一种嵌入式网络通信系统的硬件体系结构。

3 软件设计

3.1 TCP/IP协议栈在DSP上的实现

根据TCP/IP协议栈的软件模型,将LwlP(TCP/IP)协议栈移植到DSP上。LwIP是瑞士计算机科学院Adam Dunkels等开发的一套用于嵌人式系统的开放源代码TCP/IP协议栈。它既可以移植到操作系统上,又可以在无操作系统的情况下独立运行。LwIP TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,它只需要几十KB的RAM和40KB左右的ROM便可以运行。因此LwIP协议栈适合在低端嵌入式系统中使用。

使用该协议栈前,需要针对系统采用的底层网络硬件和操作系统作相关移植工作,并需对协议栈裁剪和优化,以适应嵌入式系统的特定网络应用需求。LwIP移植关键是底层硬件驱动函数和封装协议栈使用到的系统函数的编写,为DSP/提供API接口。协议栈软件结构如图4所示。

虚线框内是移植的LwIP协议栈,实现应用程序、操作系统及物理层设备驱动的API。在LwIP原有协议的基础上,实现底层网络驱动和硬件驱动API,将网络上层协议与通信链路的物理接口隔离。同时封装协议栈中用到的事件管理、任务管理、时间管理等系统函数实现系统API功能。通过DSP/可以实现任务线程操作、存储器分配、包缓冲管理、器管理等。

网络控制模块是协议栈控制的核心,控制TCP/IP协议栈与外界的交互,完成TCP/IP协议栈和底层设备驱动的初始化;并调用用户配置函数获取系统配置,为底层设备驱动提供接口,调度驱动事件进入TCP/IP栈;在退出时卸载系统配置并清除驱动。

3.2 协议栈接口设计

TCP/IP协议接口包括与实时操作系统的交互、驱动程序接口、进程间通信、存储管理、缓冲区管理、器和事件管理、配置与控制等。

3.2.1 操作系统接口

DSP/是为需要实时调度和同步以及主机/目标系统通信和实时检测的应用而设计的实时操作系统。在协议栈中,通过设计操作系统。API,为DSP/BIOS提供接口函数,完成操作系统的配置,提供任务、信号灯、存储器分配、缓冲区管理等支持。

在协议栈内部定义了一个配置结构用于操作系统的配置,通过它对协议栈的优先级及大小进行配置。

与一般的桌面系统不同,嵌入式实时系统需要用户根据需要分配存储区。在该系统中,将协议栈代码存储在外部,包缓冲区分配在外部。

TCP/IP栈和设备驱动使用包缓冲区发送及接收网络包数据。标准的以太网缺省帧为1518字节(包括帧头和循环冗余校验)。系统采用一个由32个缓冲区构成的缓冲池,每个缓冲区的大小为1664字节。这样分配可以对齐Cache边界,保证冲洗(flush)Cache时,不会与缓冲区发生冲突。

3.2.2 驱动程序接口

驱动程序完成芯片和器的初始化及各种参数设置,并提供发送、接收数据的接口。其软件操作流程有查询模式和中断模式。为提高响应速度采用中断模式,同时尽量把大部分操作放在主流程中执行,以缩减中断处理程序的操作。

3.2.3 事件管理

协议栈的事件调度管理在网络控制模块中实现,用于定时器到时、缓冲区入队列、接收数据包等管理。在协议栈完成设备初始化后调用调度程序。

该模块定义了一种内核模式的操作方式,该模式处于最高优先级。当网络事件发生时,进入内核模式运行。通过调用系统函数llEnter()和llExit()进入或退出内核模式。事件调度的基本流程如下:

Static void NetScheduler()

{

SetSchedulingPriority(); //设定调度程序的优先级

while(!NetHaltFlag)

{

WaitForEvents(); //中断模式下,等待事件中断

ServiceDeviceDrivers();//设备驱动服务,获取事件

//在内核模式下处理事件

If(StackEvents)

{

llEnter();//进入内核模式

ServiceStackEvents();// 处理事件

llExit();// 退出内核模式

}

}

}

3.3 网络控制初始化流程

由于TCP/IP栈需要操作系统完成其初始化,因此必须硬件诊断完成且DSP/BIOS初始化完成之后对网络控制进行初始化。

在调用TCP/IP协议相关函数前,先初始化操作系统环境,再创建一个新的配置,或从只读存储器中导出一个已存在的配置,然后把配置句柄及回调函数start、stop和IP地址变换操作传递给协议栈。直到网络关闭时,应用程序关闭在start中调用的操作并释放分配的资源,退出网络协议栈,网络控制初始化流程如图5所示。

图5 网络控制初始化流程

本文在DM642芯片上实现了一个高度精简的嵌入式TCP/IP协议栈,论述了协议栈的硬件接口设计和软件实现。可以方便地在DSP上实现网络视频的传输,本协议栈目前已成功应用于高速公路的数字视频中,运行状况良好,该协议栈的实现对数字视频广播系统、视频点播系统等实时多媒体处理的应用也有借鉴作用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭