首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 基于OMAP的嵌入式TCP/IP开发(1)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于OMAP的嵌入式TCP/IP开发(1)
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2016-1-4 16:39
|
只看该作者
基于OMAP的嵌入式TCP/IP开发(1)
嵌入式
,
开发
随着人们对智能化产品需求的增加,未来的
嵌入式
产品,包括各种家电、通信、PDA、仪器仪表等设备正逐渐走向网络化,以共享互联网中庞大的信息资源,因此使
嵌入式
设备的网络化开发有广阔市场前景,由于
嵌入式
硬件资源有限,而传统的TCP/IP等网络通信协议对计算机存储器、运算速度的要求较高,所以不能直接应用,为此,必须开发一套适合
嵌入式
系统的、高度优化的、最为精简的TCP/IP协议栈。
开放式多媒体应用平台OMAP(Open Multimedia Application Platform)是美国德州仪器公司推出的高度集成的软硬件平台。OMAP具有独特的双芯结构,结合了DSP与RISC内核,可为无线多媒体设备提供独一无二的性能和功耗优势,OMAP可连接十分丰富的外围设备,包括USB、摄像头、声音设备、视频设备、网络设备等,OMAP拥有开放式体系结构,其应用环境完全可编程。
软件协议的设计与实现在很大深度上决定了通信终端的质量,基于OMAP的3G移动终端软件协议结构由信令协议栈和应用业务协议栈组成,如图1所示,TCP/IP协议栈位于应用业务协议栈的底层,为上层的H.323协议栈提供基础与服务,其性能质量将直接决定整个通信终端软件系统的运行质量。因此,针对
嵌入式
系统联网的发展方向,为OMAP系统其设计一套高效、简洁的TCP/IP协议,对其应用具有十分重要的意义。
1 开发方案
PC上有功能强大的VC平台和网络分析工具(如Sniffer)便于调试,其设计不针对任何一个
嵌入式
芯片,具有较好的通用性和可移植性,在PC机上实现的TCP/IP协议,除了以太网层要结合OMAP平台的网卡硬件重写外,基本上可以直接移植到OMAP平台上,不需要再做大的改动,作为一个通信程序,必须需要两端程序同时调试,在PC机上编好的程序能度OMAP平台上程序的调试提供可靠的帮助,因此,协议开发采用先模拟再移植、先整体再部分的设计思路,而协议各层实现的顺序为自下而上。具体步骤是:
(1)在PC机上的Windows操作系统及VC6.0开发平台上,实现
嵌入式
系统TCP/IP协议族的模拟器,该模拟器应该能实现TCP/IP协议的基本功能,包括以太网驱动程序、ARP、IP、UDP、TCP等,并且实现的ARP、IP、UDP、TCP层的程序应该通用于各
嵌入式
系统并可移植。
(2)将该模拟器移植到OMAP开发平台,用其以太网卡的驱动程序替换原模拟器的链路层程序,在TI提供的CCS平台上最终实现基于OMAP的TCP/IP协议。
2 开发平台
OMAP的多媒体开发平台Innovator主要由4个模块组成:PM(处理器模块)、IM(接口模块)、M(扩展模块)、BOB(主连接板)。OMAP处理器在PM上,以太网卡在BOB上,可以通过Innovator上的OMAP1510芯片的ARM微处理器对单片以太网控制器LAN91C96的工作进行控制,实现以太网帧的收发,并通过CCS对程序调试,图2为OMAP平台调试环境。
3 在PC上实现协议的基本模块
3.1 主要模块介绍
(1)主流程:首先对TCP/IP协议族的各层初始化,成功则进入主循环,主循环采用"中断+循环)"结构,简单且分层清晰,中断作为应用层发出命令,调用下层的入口。对于接收到的以太网帧,则由下到上分别进入各层进行处理。协议实现主流程如图3所示。
(2)PC上的以太网层:在内存中开辟接收和发送两个相同的循环缓冲区,用于存放接收和发送的以太网帧。 Winpcap软件是基于Windows平台的一个网络包工具,它提供一个系统内核级的动态链接库Packet.dll作为标准的API,具有独立于操作系统的编程接口。利用其提供的API可直接联系网卡驱动与已定义的循环缓冲区,将缓冲区中的数据发出,并将网卡接收的数据存入缓冲区。
(3)ARP层,在内存中开辟一块循环存储区域用于存放已知的IP-MAC对应表,该表可以由上层添加,在接收到ARP应答时会自动添加,也可以上层清空。处理ARP层函数的过程中:根据以太网首部协议字段过滤出ARP包,针对ARP请求与ARP应答进行不同的处理,应答对方的请求,记录对方的应答。
(4)IP层:根据以太网首部的帧类型标注判断接收到的是不是IP包来处理IP层函数,如果是:则调用IP包的接收函数,对给收到的IP包用各种条件进行过滤,对于满足条件的包获取其长度与指针信息供上层使用。本层另一个主要函数是IP包发送函数,由上层调用进行IP封装。
IP的检验和仅包括IP首部,长度一般为20字节(如果没有选项)。在接收端,丢弃检验和不为OxFFFF的包,在发送端,将计算所得值的反码填入检验和字节,由于主机和网络对数据中高低字节默认的顺序不同,在读写包中的16、32数据时,应该先进行高低字节的交换。
(5)UDP 层,处理UDP层函数应根据IP首部的协议字段判断是否UDP包。如果是:则调用UDP包接收函数,用各种条件对其进行过滤,提出UDP数据及各种有用信息,根据端口号提交给应用进程处理,本层的另一个主要函数是UDP发送函数,实现封装UDP包(包括载入UDP数据,计算并填入UDP首部信息),最后调用IP发送函数,较由IP层处理。
(6)TCP层:与UDP不同,TCP主机要进行数据通信之前,必须与对方建立连。与几个主机通信,就要建立几个连接。然而,若要知道接收到的TCP包属于哪个连接且使得几个不同的连接之间独立工作、互不干扰,则需要定义TCP的控制模块,这里用一个结构体数组实现,存放所有关于连接的信息。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
测试测量
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议