第日届京、津、沪、渝反套国城市有线电视技术研讨套论文集
一35一
基于DSP的嵌入式Ethernet接入方案设计
中国传媒大学信.电工程学院曹岱鸿王金涛
摘要:介绍了以DSP为核心具有以太网接El的嵌入式系统的硬件电路组成和软件设计方j矗。对系统的硬件设计进行了介绍.详细地介绍了网络控制器LAN9118的工作原理及散宇信号处理器TMS320C6713。介绍了嵌入式TCP/IP协议栈LwJP和实时操作系统1JC/OS—II在DSP上的移植方法。
关键词:嵌入式Ethemet
IJC/OS一¨LwIP
DSP
1
引言
在Intemet技术应用日益广泛的今天,嵌入式的产品需要支持网络的功能,而网络是最方便和最有效的传
输方式。TCP/IP是目前一种广泛采用的网络协议,是一套把因特网上的各种系统连接起来的协议组,已经成为事实上的最常用的网络协议。本文利用Ⅱ公司的TMS320C6713芯片和v,C/OS-II嵌入式操作系统和加载LwlP
的TCP/IP协议栈来实现以太网的接人。
2系统总体结构
系统层次结构
本课题研究的以太网通信系统大致分为上图所示的5个层次,由下向上分别为:硬件层、设备驱动层、操作
系统、网络模块和用户代码。
系统硬件电路,包括DSP系统和以太网控制芯片LAN9118的接口电路,是系统的物理基础。
快速以太网驱动程序处于硬件抽象层,本身虽为软件,但与硬件结合紧密,为操作系统提供了访问快速以
太网控制芯片LAN9118或改变其工作行为的系统调用。
斗c/os—II操作系统处于系统内核,为用户代码统一管理系统软硬件资源,提供用户所需的底层服务。
TCP/IP协议栈软件为p,C/OS一Ⅱ操作系统扩展了网络通信能力。
用户代码处理特定的应用程序细节,可以直接使用TCP/IP协议模块提供的API函数,开发基于以太网
的通信项目。
3系统硬件框图
一36一
第口届京、津、沪、渝及全国城市有线电视技术研讨会论文集
在系统中我们选择了DSP上CE0、CEl接SDILAM,CEl接FLASH,CE3接LAN9118。系统的整体框架图如
下:
TMS320C6713和LAN9118的接口如下图
TMs320C6713
L~N9118
ED[31:olEA{21:9】EA[8:21
ARE#
D口l:伽A[7:I】
RD#
AWE#CE坤
EXTINT4
ARDY
WR#CS#
mQ
PME
4
TMS320C6713数字信号处理器简介
Ⅱ公司推出的6000系列处理器TMS320C6713,运算功能强,片内存储空间大,完全支持浮点;相应的DSK
开发板功能强大,有丰富的外设接口,并有如下主要特性:
(1)超长指令字(vLiw)结构
装载/存储结构;指令包以减小代码长度;100%条件指令以提高执行速度;
(2)CPU主要特性
内部包含4KByte的1级程序缓存,4KByte的l级数据缓存,256KByte的内部存储器,可以动态分配其中的64KByte作为程序和数据共享的2级缓存;8个独立的功能单元(包括两个乘法器,6个算术逻辑单元ALU);8个定点运算单元,6个浮点运算单元;32个32位寄存器;主频高达225MHz,1800MIPS/1350MnDPs(1M
FLOPS------每秒约100万次浮点操作);3.3ns指令周期;32位寻址空间;可寻址32、16、8位数据,16通道ED.
MA:
(3)存储器及外围设备
32位的片外存储器接口(EMIF);2个32位定时器,4个开关量SW;16MByte片外存储器SDRAM;
512KByteFLASH:
第日届京、璋、沪、渝反全国城市有线电视技术研讨奋论文集
一37—
5
pC/OS-II操作系统概述及移植要点
嵌入式的操作系统肛C/OS—II是一个完整的,可移植、固化、剪裁的占先式实时多任务内核RTOS,其性能和
安全性可以与商业产品竞争。斗C/OS—II是用ANSIC语言编写的,包含一小部分汇编语言代码,使之可供不同架构的微处理器使用。p,C/OS—II的特点是源代码公开,你只需买一本书(文献3),附带的光盘就可得到V2.52
版本的源代码。而且对学校和教育的使用是完全免费的,商业应用的费用也相对较低。
要使¨C/OS-II正常运行于不同的处理器上,那么处理器必须满足以下的要求:①处理器的c编译器能产生可重人型代码
②处理器支持中断,并且能产生定时中断(通常为10-100Hz)③用c语言就可以开关中断
④处理器能支持一定数量的数据存储硬件堆栈(可能是几千字节)
⑤处理器有将堆栈指针以及其它CPU寄存器的内容读出,并存储到堆栈或内存中去的指令。
一般的移植步骤如下:
①深入了解所采用的系统的核心②分析所采用的c语言开发环境的特点③编写移植代码④进行移植的测试
⑤针对项目的开发平台,封装服务函数
下图说明了wC/OS-II的结构以及它与硬件的关系
v,C/OS-II
(与处理器无关的代码)
OS_CORECOSMBOXCOS_MEMCOS_SEM.C
IJ_C/OS-II.C
啦,OS一Ⅱ.C
Os-Qc
OS_TASK-C
0SⅧEC
当你拿到斗C/OS—II的源代码后,打开文件与平台相关的移植代码仅存在于0s_CPu』.ASM、0s_cPU_C.
C、Os_cPU.H这三个文件中。在OS-cPU.H中包括了用#define语句定义的、与处理器相关的常数、宏以及数据类型.这部分的修改相对比较容易,具体见文献3的第十三章,在OS_CPU_C.C文件中有lO个函数需要用户用
C语言来编写OSTaskStklnit();OSTaskCreateHook();OSTaskDeLHook();OSTaskSwHook();OSTaskMleHook();