(信号与信息处理专业论文)基于c5471的嵌入式操作系统的硬件平台设计.pdf_第1页
(信号与信息处理专业论文)基于c5471的嵌入式操作系统的硬件平台设计.pdf_第2页
(信号与信息处理专业论文)基于c5471的嵌入式操作系统的硬件平台设计.pdf_第3页
(信号与信息处理专业论文)基于c5471的嵌入式操作系统的硬件平台设计.pdf_第4页
(信号与信息处理专业论文)基于c5471的嵌入式操作系统的硬件平台设计.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(信号与信息处理专业论文)基于c5471的嵌入式操作系统的硬件平台设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子科技大学硕士论文 摘要 t m s 3 2 0 v c 5 4 7 1 是t i 公司推出的一种新型结构的芯片。其最大的 特点就是双核结构:块a r m 7 核和一块t m s 3 2 0 v c 5 4 xd s p 核集成在 块芯片内。 a r m 7 可以支持如今流行的诸多实时嵌入式操作系统( r t o s ) ,而 c 5 4 xd s p 是现在用的非常广泛的数字信号处理芯片。这两者结合在一 起有很可观的应用前景。 笔者开发了一个基于c 5 4 7 1 的嵌入式操作系统的硬件平台。此平台 的主要目的就是实现c 5 4 7 1 提供的一些重要的功能模块,如:网络模块, s p i 接口,u a r t 接口,a p i 接口等等。实现硬件功能的代码都被封装成 函数,供以后加载在此平台上的嵌入式操作系统调用。 而本论文则主要阐述了实现这些功能的方案及相应程序的编写思 路,同时也结合笔者在调试此硬件平台过程中遇到的一些情况对a r m 7 的特点与使用注意点作了一些说明。 关键词:c 5 4 7 1 ,双核结构,嵌入式操作系统,a r m 7 电子科技大学硕士论文 a b s t r a c t t h i st h e s i sf o c r i s e so nt h eu s i n go ft m s 3 2 0 v c 5 4 7 1 ,w h i c hi s an e w t y p ep r o d u c to ft h et e x a si n s t r u m e n t s t h ec 5 4 7 1i s f a i r l yd i f f e r e n tf r o m c o m m o nd s p c h i p sf o ri t sd u a lc o r ea r c h i t e c t u r ew i t ho n ea r m 7 c o r ea n d o n ec 5 4 xd s pc o r ei n t e g r a t e di nas i n g l ec h i p t h ea r m 7c o r eh a st h ea d v a n t a g eo fs u p p o r t i n gm o s te m b e d d e dr e a l t i m eo p e r a t i o ns y s t e m s ( r t o s ) i nm a r k e t s ,a n dt h ec 5 4 xd s pi s g o o da t p r o e e s s i n gd i g i t a ls i g n a li nh i g hs p e e d t h ec 5 4 7 1i sm a d et oc o l l e c tb o t h t h ea r m 7 sa n dc 5 4 xd s p sg o o dq u a l i t i e s ah a r d w a r e p l a t f o r m ,w h i c h i sb a s e do nt h e c 5 4 7 1 ,h a s b e e n d e v e l o p e d t h ed e t a i la r c h i t e c t u r eo f t h ep l a t f o r ma sw e l la st h es o l u t i o n so f i m p l e m e n t so f t h o s ef u n c t i o n so fc 5 4 7 1s u c ha sl a n m o d u l e ,s p im o d u l e , i sd i s c u s s e di ns e q u e n c ei nt h i st h e s i s a d d i t i o n a l l y ,t h ea r m 7 sf e a t u r ea n d s o m ea p p l i c a t i o nn o t e sw i t hs o u r c ec o d e sa r ea l s oo f f e r e di nt h i st h e s i s k e yw o r d s :c 5 4 7 1 ,d u a lc o r e ,r t o s ,a r m 7 i j 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名:塾霾 i ! i i i :期;年厂月f 。i ! i 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:鍪宣 # i i i 日期: 电子科技大学:顷士论文 1 1 课题背景 第一章绪论 德州仪器公司( t i ) 推出了两款新型高集成系统级d s p 器件 t m s 3 2 0 c 5 4 7 0 和t m s 3 2 0 c 5 4 7 1 。这两款器件将市面上流行的可编程 t m s 3 2 0 c 5 0 0 0d s p 与a r m 7 t h u m b 精简指令集( r l s c ) 处理器结合在 一起,并且可支持现在市场上流行的多神嵌入式操作系统。 t m s 3 2 0 c 5 4 7 0 和t m s 3 2 0 c 5 4 7 l 是业界首款集成了d s p 和r i s c 处理器的系统级单芯片。两种处理器的结合只需利用d s p 原有的性能资 源,即可实现低成本的r i s c 系统性能,从而使设计人员不必再采用昂 贵的r i s c 架构来满足应用的需求。与采用分立d s p 和r i s c 的嵌入 式解决方案相比,系统级集成能够显著节省板级空间、功耗和成本。通 过应用这两款产品,设计人员能够将功耗降低约3 0 ,尺寸缩减4 0 , 同时使总体成本降低4 0 。 这些技术的结合会缩短实时应用产品的上市时间,其中包括文本语 音转换、无线数据通信、语音识别、网络安全及工业控制等方面的产品。 比如在文本语音转换系统中,d s p 专门用于文本到语音的合成,而r i s c 处理器则执行语言处理功能:而在客户机网络应用中,d s p 执行实时信 号处理功能,而r i s c 处理器则负责系统控制。 目前,朗讯已经在其最新开发的汽车信息系统中采用了文本语音转 换方案。在未来的智能家居及办公大厦中,类似的应用将会层出不穷。 这无疑为开发网络连接、语音识别及转换等相关应用的o e m 厂商带来 市场机会。 值得关注的是,德州仪器在推出c 5 4 7 0 和c 5 4 7 1 的同时,与l i n u x 厂商r i d g e r u n 合作并帮助该公司推出了支持这两款器件的嵌入式r i s c 操作系统d s p l i n u x 。此外,a t i 公司的n u c l e u sp l u s 和风河公司的 v x w o r k s 实时操作系统( r t o s ) 的支持版本也于2 0 0 2 年发布。 电子科技大学硕士论文 c 5 4 7 0 和c 5 4 7 1d s p 瞄准了前景广阔的嵌入式应用产品市场。这 两款d s p 的系统级集成提供了丰富的外设,以及对l i n u x 、v x w o r k s 和 n u c l e u s 操作系统支持,从而可缩短嵌入式和连接应用产品的上市时间。 2 0 0 2 年全球嵌入式操作系统仍保持了飞速发展的态势,其中嵌入式 l i n u x 、v x w o r k s 和w i n c e 占据主导地位。以嵌入式l i n u x 为例,2 0 0 0 年全球嵌入式l i n u x 操作系统、软件、开发工具及相关服务的交付量为 2 8 千万美元,2 0 0 1 年为5 5 千万美元,2 0 0 2 年达9 千万美元,到2 0 0 5 年则将达3 0 7 千万美元。c 5 4 7 l 可支持2 0 0 2 年市场上5 0 左右的嵌入 式操作系统,由此可知t i 对嵌入式市场的期望。 此外,c 5 4 7 0 和c 5 4 7 ld s p 还为1 0 1 0 0 m b i t s 以太网、家庭电话 线路网络联盟( h p n a ) 、蓝牙和8 0 2 1 l b 无线局域网等提供了丰富的通 信外设和集成的通信堆栈。因此,对于寻求低成本解决方案的有线及无 线网络通信厂商来说,c 5 4 7 0 和c 5 4 7 1 将带来极大的商业机会。 1 2 本课题的意义 本课题的主要目的就是完成个以c 5 4 7 1 芯片为核心的嵌入式操作 系统的硬件平台。前面说到,c 5 4 7 1 提供了很多功能强大的接口。笔者 想把这些接口和与之匹配的些芯片连接起来,从而正确实现这些功能, 如:从以太网上收发数据的功能、与a d 连接起来实现语音处理的功能、 u a r t 口的功能等。 c 5 4 7 1 的双核结构,与常用的d s p 或单片机的结构区别很大,也就 决定了它的用法也有许多与众不同的地方。本文的个重点就是摸索对 这种新型结构芯片的使用方法。同时笔者完成的这个硬件平台为以后要 加载的嵌入式操作系统提供了实时的调试环境。 1 。3 本文的主要内容 本文的主要内容安排如下: 第一章介绍c 5 4 7 1 的应用前景,和本课题的目的。 电子科技大学硕士论文 第二章从总体上介绍这个硬件平台的结构以及各个功能模块。 第三章介绍如何使c 5 4 7 1 中的网络模块实现8 0 2 3 协议规定的功能。 先讲了8 0 2 3 协议的一些基本概念,接着从c 5 4 7 l 的网络模块的硬件结 构,阐述如何使这个功能模块实现8 0 2 3 协议所要求的m a c 层的功能。 第四章给出了用c 5 4 7 1 中a r m 部分的s p l 串口初始化一块a d 的方 案。此a d 虽然由a r m 部分初始化,而它与c 5 4 7 1 交换数据的接口却 是d s p 部分的。 第五章说明了a r m 部分在使用时该注意的一些地方。因为a r m 芯 片结构与笔者教研室平时常用的d s p 芯片差别较大,很多用法也不尽相 同。有很多特点是笔者在调试此芯片的过程中发现的,所以详细的写了 出来以供后人参考。 第六章给出了通过a r m 来装载d s p 程序的方案,同时还给出了让 a r m 和d s p 相互调用的方案。前面说过,a r m 与d s p 这两个核结构差 异很大,两者所用的代码完全不同。整个的结构上看,d s p 相当于a r m 所控制的外围设备,需要a r m 来完成启动d s p 、把d s p 的程序装载到 d s p 存储区间、让d s p 运行起来等工作。还有,a r m 与d s p 的工作频 率也不一样。一般来说,d s p 的工作频率远高于a r m ,所以两者在进行 数据交换时要注意适当的配置。 第七章是本文的结论,指出本课题使用的调试工具,调试的结果咀 及有待改进的地方。 电子科技大学硕士论文 第二章系统结构设计 2 1 系统欲实现的基本功能 本系统欲实现的基本功能是:1 ,可以在计算机网络上收发数据:2 , 能使语音信号进行正确的a d 和d i a 转换;3 ,为了便于与普通p c 机 交换数据,本系统还要实现u a r t 串口的功能。 2 2 t m s 3 2 0 v c 5 4 7 1 功能接口简介 v c 5 4 7 1 集成了一个t m s 3 2 0 c 5 4 xd s p 芯片和一个a r m 7 t d m i 芯片。 d s p 片上外围设备有: 两个高速双工的多通道缓冲串口,便于d s p 直接与外围数模 转换器件进行数据交换。 一个a p ( a r m p o r t i n t e r f a c e ) 接口,使a r m 和d s p 能高速 的进行信息交换。 一个可编程的等待状态产生器,使d s p 可以在扩展总线上插 入至多1 4 个机器周期的等待状态,便于d s p 与速度慢的设备 无缝连接。 扩展存储界面e m i f ( e x t e r n a lm e m o r yi n t e r f a c e ) 。 a r m 芯片上的外设有: 一个符合8 0 2 3 以太网协议的1 0 1 0 0 m 媒体访问控制器 ( m a c ) 。 串行外围接口( s p i ) 。 3 6 个通用i o 口。 一个可以对内外设备的中断进行优先级和使能控制的中断管 理器。 a r mc p u 和内部r a m ,外部f l a s h 及s r a m 之间的控制接口。 电子科技大学硕士论文 d s p s r a m ( 。p u o n a l ) r l s c r 黼o m l a n a r m c p u 和s d r a m 之间的控制接口。 时钟控制模块,为其他设备提供时钟,激活d s p ,m c u 和其 他设备。 u a r t 接口。 ic u t r - l 卜一一n q y d n d | fl m e b s p 0i - e 5 4 x d s p - i g p i o i d 0 0m i p 8 ) 一 lm e b s p l 卜 - - i s p i i i - - - - - t i m e r 卜ll j 2 c i m e m i f - i f m n 盘b i 1 1 替嚣篡” 拈- i u a r t l d m a 卜i- 1u a r r i r d ai 涨ha 蓦 - il t , , n s n 3 f 2 ) l - it l m w - w di 啪r 10 i l 丽l 1 i铡(vc5471)咽l j t a g l 6 k - b ,f t eb u ill 删 ;描l i i 图2 1v c 5 4 7 1 的结构图 2 3 系统板的主要结构 8 砖k e y p a d l e d s 撒 l c dd s p l a y 系统板正是利用v c 5 4 7 l 提供的诸多接口来实现所需要的功能。其 主要结构如图2 2 所示: 其中,c p l d 的主要作用是:1 为d s p 片外存储器地址译码:2 为 v c 5 4 7 1 以及其他设备提供r e s e t 信号;3 将振荡器输出的时钟信号分 频,咀满足不同设备对时钟频率的要求。 t n e t e 2 1 0 l 是一个实现以太网物理层的芯片,可以与v c 5 4 7 1 上的 m a c 接口很好的结合起来,构成网络模块的硬件平台。 m a x 2 3 2 e 是一个电平转换芯片。v c 5 4 7 1 上的u a r t 接口的信号都 是3 3 v 的,与通用p c 机上的信号电压不一致。m a x 2 3 2 的作用就是实 电子科技大学硕士论文 现两者之间的电平转换。 a i c 部分由个带放大器的数模转换器和其外围电路组成。 明。 图2 2 系统模块图 各功能模块的具体结构与实现方法将在后面几章中逐一的详细说 电子科技大学硕士论文 第三章网络模块的设计 3 1 以太局域网背景知识 3 1 1e t h e r n e t 的简史 e t h e r n e t 是x e r o x 、d i g i t a le q u i p m e n t 和i n t e l 三家公司开发的局 域网组网规范,并于8 0 年代初首次出版,称为d i x i 0 。1 9 8 2 年修改后 的版本为d i x 2 0 。这三家公司将此规范提交给i e e e ( 电子电气工程师协 会) 8 0 2 委员会,经过i e e e 成员的修改并通过,变成了i e e e 的正式标准, 并编号为i e e e 8 0 2 3 。e t h e r n e t 和i e e e 8 0 2 3 虽然有很多规定不同,但 术语e t h e r n e t 通常认为与8 0 2 3 是兼容的。i e e e 将8 0 2 3 标准提交国 际标准化组织( i s o ) 第一联合技术委员会( j t c i ) ,再次经过修订变成了国 际标准i s 0 8 8 0 2 3 。 3 1 2le e e 8 0 2 3 与i8 0 参考模型 i s o 组织将网络按其功能划分为7 个功能层,每层都完成一个特定功 能。i e e e 8 0 2 3 也是按体系结构方法来组织的,它强调将系统划分为两 大部分,严格地对应于i s o 开放系统互连模式的最低两层:数据链路层 和物理层。而i e e e 8 0 2 3 又将数据链路层分割为两个子层:m a c ( m e d i a a c c e s sc o n t r 0 1 ) 层和l l c ( l o g i c a ll i n kc o n t r 0 1 ) 层,从而使l a n 体系结构能适应多种传输媒体。换言之,在l l c 层不变的条件下,只需 改变m a c 层,便可适应不同的媒体和访问方法。在体系结构模式中,各 层通过精确定义的接口相互作用,同时提供服务规范中所规定的服务。 m a c 层和l l c 层之间的接口具有发送和接收帧的功能,并提供每个操作 的状态信息,供给更高一层进行差错恢复。m a c 层和物理层之间的接口, 包括成帧和冲突控制的信号,实现在两层之间对串行比特流的流量控制 电子科技大学硕士论文 和定时等待功能。 i s o 参考模型与i e e e s 0 2 3 对应关系如图3 1 所示: i 陡d 岂冉冉c 蛳曩 l 村冒 s c 鼬m 肋 k k 嘲s 。h 删撩u 付e 舳 , u c 一啪l b l u i 取o m f l 嗤 , , 魄冀岭黔辨辨 , 。f 。m , 一c - 漱;溅晶;渊f 。 , , ,黜 ii 刚饵屺毗时l o 村l jf t e c o n a l v 0 i o n开e 礴冀c 毫l 疗o h 如蕈酯茸 “b 陬 o 精b t o m b h u j - 瑚:h - 自疗t 啪盯| f 嚣 蛾 砌- 姻i 霜 q 学黼目盯枷住鹦弈雠 枷i 蟒目d 执饨 瑚盯酣嘲粥_ 潞 1 蜊一d 日 甜r “e a m 捕0 墨咤h 扫轴r 愀 雠芒 u - h 羞,t j 赫a r p , t :t 4 t 甜r u # , i o o o 如 p t 鼻- 甜b 亡 l u 雌r 盎l g t o t t u o p 搠v 韵皇 l o w e 轴南k 南r e 扣 p - 魄t _ n 值龇i i l l 鞠崔n 黼难扪 m j w 硼 盘 l 屯榔扫勘雠 ,_ 胁- 翱刊睿i 凸 l 甜匐臼棚o e 岍 图3 1i s o 模型与8 0 2 3 的关系 3 1 38 0 2 3 的物理层联接 局域网中各网络设各大多是通过双绞线互相连在一起。两对双绞线用 水晶头接在r j 4 5 上,分别用来传输数据和接收数据。这就要求在没有外 部参考时钟的情况下,接收方要能明确的定位比特的开始与结束。曼切 斯特编码( m a n c h e s t e re n c o d i n g ) 就是实现该功能的种方法。使用曼 切斯特编码,每个比特周期被分成两个相同的时间段。发送“1 ”时,该 周期内前半段电压为高,后半段为低;发送0时则相反,先低后高。 这种方案保证在每一比特周期的中部总有跳变,便于发送方与接收方的 同步。曼切斯特编码如图3 2 所示: 电子科技大学硕士论文 n r z n r z 时钟轸 图3 2 曼切斯特编码 3 1 48 0 2 3 的m a c 层 8 0 2 3 的m a c 层采用的是c s m a c d ( c a r r i e rs e n s em u l t i p l ea c c e s s w i t hc o l l i s i o nd e t e c t i o n ) 介质访问控制扔议。c s m a c d 意思为带冲突检 测的载波侦听多路访问。也就是说,在发送之前,站点会侦听信道的状 态,如果没有其他站点在发送,它就会发送。在发送时站点会检测冲突, 一旦检测到冲突就尽快停止发送。m a c 还要完成数据封装,成帧,编址, 差错检测等功能,如图3 3 所示: 图中的小写字母a n 是指m a c 所要做的操作,具体含义是, a 帧发送 1 1 从m a c 的上层收到数据,再把数据组成帧 2 ) 为物理层提供串行比特流,发送到网线上 b 帧接收 1 ) 从物理层上接收比特数据流 2 ) 把广播数据或只发给本站的数据送给m a c 的上层 电子科技大学硕士论文 数倍 3 ) 把不是发给本站的数据丢弃 c 在半殁工模式下,如果物理层忙,就把发送的比特流延迟 d 在输出帧上加上f c s ( 帧校验序列) ,并验证帧是否为8 b i t 的整 e 对输入帧进行f c s 检测,并检测是否为8 b i t 的整数倍 图3 3m a c 层功能简图 f 延迟帧发送,使帧与帧之间有时隙 卫在半双工模式下,检测到冲突就停止发送 h 在半双工模式下,在冲突发生后,组织重发 i 在半双工模式下,发送阻塞信息,在网上产生强制冲突 j 丢弃小于最小帧长的帧 k 为所有的帧加前导码、起始界定符、目的地址、源地址、长度、 f c s ,对不够最小帧长的帧还要加填充字段 l 把收到的帧的前导码、起始界定符、目的地址、源地址、长度、 f c s ,和填充字段都去掉 1 4 电子科技大学硕士论文 m 在速度高于1 0 0 m b s 的半双工状态下,如果头帧的长度小于时间 片( 5 1 2 b ) ,则加扩展比特 n 在速度高于1 0 0 m b s 的半双工状态下,从接收帧中去掉扩展比特。 m a c 层完整的帧结构如图3 4 所示: l 百可导幽血百替点a 息点长崖 l l c 数据 辘冗惋j 佥验 定界符地址地址指示符序列 l7 字节1 字节6 宇节6 字节2 字节 4 6 15 0 1 3 宇节 ( 不定)4 宇节 1。,。一 m a c 巾贞 图3 4m a c 层的帧结构 处于m a c 帧开始处的字段为前导码字段,由7 个字节组成,其功能 是使接收器建立比特同步。其编码形式为多个“1 ”或0 交替构成的 二进制序列,最后一比特为0。在这种编码形式下,经过曼彻斯特编 码后为个周期性方波。 帧首定界符( s f d ) 是m a c 帧的第2 个字段,其编码形式为 “1 0 1 0 1 0 1 1 ”序列,长度刚好为一个字节。该字段的功能是指示一帧的 开始。 终点地址字段( d a ) 为第3 个字段,长度为6 个字节。该字段用来指 出帧要发住的工作站。 源点地址( s a ) 处于终点地址字段之后,其长度也为6 个字节。该字段 功能是指示发送该帧的工作站地址。 长度指示符字段为第5 个字段,其长度为2 个字节,用来指示紧随 其后的逻辑链路控制( l l c ) 数据字节的长度,长度单位为字节数。 l l c 数据字段是帧要载携的用户数据,该数据由l l c 子层提供或接 收。 填充( p a d ) 字段紧接在l l c 之后,用来对l l c 数据进行填加,以满 足最小帧长度。也就是说,除去前导码和帧首界定符,m a c 帧最小应该 有5 1 2 比特。最小帧长是为了满足最坏情况下的碰撞检测而定的。顺便 指出,帧的长度除了有最小要求外,也有最长限制,这是由于发送站和 接收站的缓冲器容量总有一定的限度。同时,如果一个工作站发送的帧 太长,将妨碍其它站对媒体的使用。一帧最长为1 5 18 8 比特。 电子科技大学硕士论文 帧检验序列( f c s ) 处于帧的最后,其长度为3 2 比特,用于检验帧在 传输过程中有无差错。 地址字段包括两部分,处于前面的地址字段为终点地址,处于后面的 为源点地址。源点地址字段中第1 比特恒为“0 ”,这种规定从终点地址的 规定中便可获悉。终点地址字段有较多的规定,原因是一个帧有可能发 给某一工作站,也可能发送给一组工作站,还有可能发送给所有工作站。 通常将后两种情况分别称为组播和广播。终点地址字段的格式如图3 5 所示。当该字段第一比特为“o ”时,表示帧要发送给某一工作站,即所谓 单站地址。当该字段第一比特为“1 ”时,表示帧发送给一组工作站,即所 谓组地址。全“l ”的组地址表示广播地址。 i g = 0 单站地址i g = i 组地址u l = 0 全局地址u l = 1 局部地址 图3 5 地址位的意义 局部地址是由网络管理员指定的,在这个局域网外没有任何意义。 全局地址是由i e e e 指定的,以保证世界上没有两个地址相同的站点。 电子科技大学硕士论文 3 2 物理层功能的实现 t i 公司的芯片t n e t e 2 1 0 1 可以提供很好的物理层的实现,其功能 如图3 7 所示: r x d 0 r 兰0 , h h 口2 h 嚏x h 0 柏 u 枨o v n 田傩r 槲r c l k c o l 啊r 扭,o 轴霸a 州 弱2 蟠钉啦 h t h 啊t 耀r 哺t c l k 图3 7t n e t e 2 1 0 1 的功能结构 由图3 7 中可以看到,t n e t e 可以实现对网线上的信号进行判断、 调整、以及编解码等功能。同时,它提供m r x d ,m t x d 等信号线与 v c 5 4 7 1 上网络模块的接口直接联接。 t n e t e 提供了一组配置管脚,通过对这些管脚进行电压上拉或下 拉,可以很方便的对t n e t e 的功能进行配置。同时,t n e t e 中还有1 1 个1 6 位的内置寄存器,也可以通过设置这些寄存器实现对t n e t e 进行 配置。对这些寄存器的读写,是a r m 通过s p i 来实现的,数据的传送 要符合一定的格式。读写格式分别如图3 8 和图3 9 所示: 电子科技大学硕士论文 i :兰! ! ! 唑:l 尘:! 凹:查l 盟:型1 2 :i ! 翌! ! :i 竺! 兰l ! = ! ! = :空 i ! i : f l 0 1 l 1 0i a l r 限r r l 1 0 l d d d i x ) d d d d d d o d d l 图3 8 读格式 li 基! ! :! :! :l1 2 :竺骂! 型:l 盟:型虫竺l 塑:! :竺登:l ! = :兰:型 l ! ! : l i 0 1 i 4 0 i m ai r r r r r i 1 0 id o d d d o i 图3 9 写格式 传输线的默认电平是逻辑1 。也就是说,没有数据传输时,线上为 高电平。0 l 的起始符会使传输线上发生1 到0 再到1 的跳变,表征传输 将要开始。紧接着的是操作符,表示要进行读或者是写的操作。可能会 有多个t n e t e ,由同一个s p i 来配置。t n e t e 上通过对四个管脚的上 拉或下拉为本t n e t e 设置一个地址,p h y 地址就是指这个。两位 t u r n a r o u n d 用来分隔地址信号与数据信号,它们使传输线空闲两个时钟 周期,以免地址信号与数据信号冲突。 3 3m a c 层的实现 v c 5 4 7 l 的网络模块( e i m ) 可以实现8 0 2 3 协议的m a c 层的功能。 它一端与前面的物理层的接口连接,从网线上获得数据。收到的数据包 经过处理后,放在v c 5 4 7 l 的一块称为p a c k e tm e m o r y 的片内存储空间。 这块空间e l m 和a r m 处理器都可以访问。 c p u m t e mb u s i | l t 目r f a 图3 1 0e i m 结构图 1 8 电子科技大学硕士论文 其中,e n e t 0 模块是e i m 的核心部分,它以硬件实现前面所说的 8 0 2 3 协议m a c 层所要求的功能。以太状态机( e s m ) 这个模块则主要 负责在协调p a c k e tm e m o r y 中的数据的传输。 f i f o 和p a c k e tm e m o r y 之间的数据传输,通过一种称之为描述符链 ( d e s c r i p t o rr i n g ) 的软件结构来实现。每个描述符( d e s c r i p t o r ) 有8 个b y t e ,包含了某个要传输的数据包的状态信息和指向那个数据包的指 针。多个描述符组成的队列就是描述符链。f i f o 和p a c k e tm e m o r y 之间 有两个描述符链,分别针对发送和接收操作。d m a 控制器和e s m 都对 描述符进行操作。 每个描述符有8 个b y t e ,即4 个w o r d 。发送描述符的第一个w o r d 的 内容如表3 1 所示: 表3 1 发送描述符的第一个字的格式 b i tn e l 8 1 eh o s tr wf u n c t l m 1 1 5o w np j w o w 晴瞎晰b o - e n 日1 。h o s i : a 懈i i ! i l ! a l 黪i i p n 。d e s c l _ i 阳r h a st ob eo w n e d 姊e n e 工 l, 1 4w r _ p 1 3_ fj f 1 2l i f 1 1 8r e t r y 7i n t r e wd e s c r 眭日c h a i nw r a p 0 = g o t ol h en e x ts e q u e n t i a l ld e s c r i p t o re n t r y 1 = g o t of i r s td e s c r i p t o ra sd e f i n e di nc o n f i o u r 8 1 t l o nr e g i s t e r w j r 黼培i 觯髓嚣舯觏i 靼1 - _ = :_ u 一| j 嘲嘞女冀删n 嘲_ i 糍型雕i l ! :j s 弹蛳j 却n t 目1 脯t f i 商哪e 6 礴哥:n e w j i a n 樟:v j= 。= wl c l a t - i n f r a m e : w h e ne a tl o1i n d i 曲sl h a l t h i ed e s c r i d o rc o n t a i n st h el e s tb y t e s o f8 1n e w f r a m e r r e 埘r c 。卿f s l a t u s : o 争铜旧莉i 嘲m e s 1 一s i t - 鞴l 商i a l s wi n t e rr u p te n 8 1 b l g 1 = g e n e r a t e 8 1 n t x i r q i n t e r r l j p t a f t e r b y t e s 8 1 f d 8 1 t eh a v e b e e n t r 8 1 n s m l t 【e d ( t x ) o re n do fap a a c k e tl er e c e d e d 0 = d i s a b l ei n t e f r t 1 d t s h o u 蚓8 1 1 w a y ss e tl o1 b 曲s w u sr 第二个w o r d 的内容如表3 2 所示 1 9 、端嘞簦豁 一黼一 电子科技大学硕士论文 表3 2 发送描述符的第二个字的格式 f a d c r cw 1 3 1 一 e n a b l ep o d d j r 瞄断f r a m e s 6 4b 蚋蟠a n d 停n e 嘲e c r c f o r f 慨1 粕 6 4 缸帅鹄硼曲k 口e 怕d o n 埘c 十w 帕d 懈l 。n l n 智8 惰 m l t i e c l f r e n * 4 蛐k lo n b i f f i f 一 ,一p a d o r c o - n o d 妃r c 1 扣0b y t e sw d 酬船b 帅e c c x m t 一一。一。! 盘竺! 罂坠婪盘翌兰婴:盥三监型生。一一一。 第三个和第四个w o r d 合起来组成一个3 2 位的地址,就是此描述符所 指向的数据包的地址。 接收描述符的结构与发送描述符大体相似,只是第一个和第二个 w o r d 的内容有些不同。现将这两个w o r d 列出,如表3 3 所示: 表3 3 接收描述符的前两个字的结构: 1 5 0 坩n 阳w 豳辄萄靳j l j :b i 1 6 o 。t 隧曹。,- 神饼蹿棰删 湖e 捌鼢h 讥d 嘲n 嘲r h a s 缸o w n e d b y e n e t , 鲁? 丹f 1 2u f f 峙一 7i n t r e r c r w 8 t a t u 3r d e d 咖r 曲囊i n w r a p 0 。g o t o l h e 舱砒毒e 掣蛳l o e s e d p 抬r a n 仃y 1 。神1 0 帆t 撕嘞 o r a $ d 对h e d 啪n r 幻u m u o 几r a g h d e r 潲譬罄赣酶;海每酶酾衄赫晦前i 女遮瞒砌岬m 。 l o s h n f n n l l 怕: w h 舯尊鼬1 口1 l n d l c 甜鹳 h 甜t h 坶嫩r j p 时m a l 黼m 0 船科蝴错吖日憎州慨m i n 州瑚e b i e : 1 。g e n e r a t e e o r x _ i r q t l t a f , , u p l a l t e r b y t e s o f d a t 目h a v e b e e n r e t i r e d f r 均 o te n do f a0 神抽瞳姆r e c e i v e d 0 一d 拍b b l n 悖m 眦 s h o u l d | l w 岬s e t l 0 1 , f 灌砒缸 e :m 船搴 5 :讥j 州 2 0 电子科技大学硕士论文 鞠tn 1 5 h 1 i 一 1 0 _ o丑叮e s 掰s 目州 嚣舞秣辫戮粼嚣鬻黜鬻器器蔷亭蔷鬻 h 硝n 卿鲫枷辅m 喜霸d 。埘f h 静静鳓t 【| t t 劬捌嘲辫协西u m 柏垴毒 s 越姆 l 俺h 0 8 l m u 葶i b 毒曩丁n u 喇p 怕。f 嘲b y t e s e n e t 0 主要有5 个模块:一个f i f o ,一个m a c ,寄存器控制界面 d m a 控制器,和一个状态统计块。 图3 1 1e n e t 的功能模块 从接收的角度来看,m a c 在检测到r x d v ( 接收数据有效) 有效后, 开始接收r x d 0 3 上的信号。首先收到前导码和帧头符,确认这些信号 有效后,表示数据包的传输开始。前导码和帧头符在使用完后就被去掉, 不再和后面的数据一起传下去。同时,m a c 还要进行c r c 检测、地址 匹配检测和最小帧长的检测。不够最小帧长或地址不匹配的包将被抛弃, 不会进入f i f o 中。随着有效数据进入f i f o 的,还有m a c 在对数据进 行检测时所产生的状态信息。当f i f o 中至少有6 4 b y t e 的数据或收到一 个数据包的结尾,d m a 就会启动。d m a 会寻找接收描述符,先读取o w n 域的信息。如果发现描述符不为它所有,就会每隔一个时钟周期查次 所有权,直到e s m 把描述符的所有权交给e n e t 或是出现溢出错误。 f i f o 的状态信息如s o f ( s t a r to f f r a m e ) ,e o f ( e n do f f r a m e ) 和b y t e 电子科技大学硕士论文 数等,会被d m a 控制器填写到接收描述符的f i f ,l i f 和b y t e 域里。 在描述符中的i n t r e 如果被使能的话,d m a 控制器在每结束一个描述 符时,会产生一个中断信号。描述符中的s t a t u s 域的7 位用来指示在 收数据时出现的错误,可供e s m 和a r m 处理器读取。当f i f o 装满时, m a c 会停止从m i i ( m e d i a i n d e p e n d e n ti n t e r f a c e ) 口接收数据,不会试图 把数据再往f i f 0 里装。但m a c 也不会对m i i 反馈,减慢发往这边的帧 的速度,这样就会产生溢出错误。有时候e s m 一直占有描述符的使用权, 使e n e t 不能把溢出位置位,这时s y s e r r i r q 中断会产生,通知处 理器来处理这个错误。 从发送的角度来看,如果描述符中的队d c r c e n 使能的话,e n e t 会自动为大于等于6 0 b y t e 的数据加上4 b y t e 的c r c ;对小于6 0 b y t e 和大 于等于1 4 b y t e 的数据,除了加上c r c 外,还会加填充数据使此帧满足 最小帧长的要求。长度小于1 4 b y t e 的帧和在p a d c r c e n 非使能时长度 少于6 4 b y t e 的帧被认为是废帧,不会从p a c k e tm e m o r y 中读出。当出现 废帧时,其描述符使用权会交还给e s m ,同时还会产生中断,告诉a r m 处理器有错误产生。同样的,发送描述符中也有7 位s t a t u s ,将要被 m a c 发送的数据放在f i f o 中,在发送过程中出现的错误会报道在发送 描述符中。还值得一提的是r e t r y 的意义,m a c 在发送数据时,如果 发生了正常冲突,m a c 会自动重发;如果发送了15 次后还是没能发出 去,m a c 就会放弃发送此帧,把出错信息写在s t a t u s 中。如果在1 5 次内发送出去了,重发的次数就会记录在r e t r y 中。 数据通过描述符的方式在f i f o 与p a c k e tm e m o r y 之间传输。a r m 处理器对p a c k e tm e m o r y 读写数据也通过描述符来进行。也就是说,应 该有四个描述符链,分别是: 1 负责从e n e t 0 收数据,称为e n e t 0r x 链 2 负责把数据发往e n e t 0 ,称为e n e t 0t x 链 3 负责从a r m 收数据,称为c p ur x 链 4 负责把数据发给a r m ,称为c p ut x 链 e s m 相当于一个中转处,连接e n e t 0 和a r m 这两个端口。e s m 的主要作用是把r x 链所指向的数据包传给t x 链。这种数据包的传递 电子科技大学硕士论文 不是通过数据复制来完成的,而是通过复制指针来完成。也就是说,放 在p a c k e tm e m o r y 里的数据包不发生搬移,而是把t x 链描述符中的地 址指针复制到r x 链的描述符指针域中。前面所介绍的两种描述符就是 e n e t 0r x 链和e n e t 0t x 链中的描述符。另外的c p ur x 链和c p ut x 链中的描述符格式与前面两种大致相同,也是由4 个16 比特的字组成, 后两个字存放指向p a c k e tm e m o r y 某数据区的指针。前两个字的详细格 式列出分别如表3 4 和表3 5 所示: 表3 4c p u t x 描述符的前两个字: b i in a m eh o s tr wf u n c t i o n o ;c f ) ;i :,。1 = :1 - 1 0 s t 3 0w r a p 2 9f i f 2 8l i f 2 7 - - 2 4 2 3i n t r e 2 2 1 1 一 w d e s c r i p t o rc h a i nw r a p 0 = g o t ot h en e x ts e q u e n t i a ld e $ c l i d l o le n t r y 1 = o o t o6 鸭t d e s c r i p t o rb 8 d e , n e d i nc o n f l g u r a t i o nr e 酉寸创 rjf i r s t - i m f r j i n e : ,一; ! w 淹n i 毹话明n d 磁曰懂s 恤乱t h 晤d e s 6 h p t o rc o n t a i n st h ef ir s tb y t e o f a 。嘞j r 目舳7 rl 0 s t j n - f 怕m e : w h e n s e t t 0 1h d i c a t e s t h a t t h i s d e s c r i p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论