已阅读5页,还剩60页未读, 继续免费阅读
(通信与信息系统专业论文)基于pm7367的多路hdlc数据处理及应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机通信的发展,早期面向字符的链路控制规程就逐渐暴露出其局限性, h d l c 协议随之而生,但随着计算机通信的继续发展,专用的h d l c 通信控制器已经 不能满足数据业务的多用户、大容量的发展趋势,所以出现了多通道h d l c 通信控制 器,它采用时分复用的方式来实现多路通信,核心部分由一个收发独立且可分时处理 的h d l c 处理器、一组通道配置寄存器和一组通道状态存储器构成。多通道高速 h d l c 处理器为每一个通道每一段需要被处理的数据分配一段长度一定的时间片。 每个时间片结束时,当前通道最新的状态信息将被存入通道状态存储器中的相应存储 空间。当新的一段数据到达时,此段数据所属的通道在上一个时间片内被刷新的状态 信息将从通道状态存储器中读出并加载到状态机中,处理新一轮的数据,再将新的状 态信息写回通道状态存储器。 p m 7 3 6 7f r e e d m t m 3 2 p 3 2 是一个实现h d l c 处理的单片集成电路,它的p c i 总线 内存管理功能使它可以处理最多为3 2 路的双向通道。它具有如下特性:p m 7 3 6 7 支持 多达3 2 个信道化和非信道化链路,每个方向的总通道数最多为3 2 个,总的时钟速率为 6 4 m h z ;支持3 2 比特、3 3 m h z p c i 2 1 接口及升级接口的电气特性和功能特性。 本文首先详细介绍了h d l c 协议、p m 7 3 6 7 芯片、v x w o r k s 嵌入式操作系统,然 后基于p m 7 3 6 7 芯片和v x w o r k s 嵌入式操作系统研究多路h d l c 的驱动和测试程序, 并在设计了一种h d l c 通信e l f r l 接口模块并将p m 7 3 6 7 应用其中。 关键词:h d l c ;p m 7 3 6 7 ;v x w o r k s ;驱动;应用 武汉邮电科学研究院硕十论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m m u n i c a t i o n ,c h a r a c t e r - o r i e n t e dl i n kp r o c e d u r er e v e a l e d i t sl i m i t a t i o n sg r a d u a l l y ,s oh d l cp r o t o c o lw a sd e v e l o p e d b u t 、析t 1 1t h ed e v e l o p m e n to f c o m m u n i c a t i o nc o n t i n u e d ,t r a d i t i o n a lh d l cc o m m u n i c a t i o nc o n t r o l l e rc a l l tm e e tt h ed a t a d e v e l o p m e n tt r e n do fm u l t i u s e r a n dl a r g e - c a p a c i t y t h ea d v e n to ft h em u l t i c h a n n e l h d l cc o m m u n i c a t i o n sc o n t r o l l e rt a c k l e st h e p r o b l e m ,i t a c h i e v em u l t i - c h a n n e l c o m m u n i c a t i o n su s e st h ew a yo ft i m e d i v i s i o nm u l t i p l e x i n g ,t h ec o r eo ft h et r a n s c e i v e r c o n s i s t i n go fa l lh d l cp r o c e s s o rw h i c hc a nw o r ki n d e p e n d e n t l ya n dp r o c e s sb yt i m e ,a g r o u po fc h a n n e lc o n f i g u r a t i o nr e g i s t e r sa n dag r o u po fc h a n n e ls t a t u sm e m o r y t h e 1 l i 曲- s p e e dm u l t i - c h a n n e lh d l cp r o c e s s o ri sat i m e s l i c es t a t em a c h i n ew h i c hc a l lp r o c e s s e a c hi n d e p e n d e n tc h a n n e l s t h es t a t ev e c t o ra n dp r o v i s i o n i n gi n f o r m a t i o nf o re a c hc h a n n e l i ss t o r e di nac h a n n e ls t a t u sm e m o r yw h e nt h et i m e - s l i c ei se n d ,w h e n e v e rn e wc h a n n e l d a t aa r r i v e s ,t h ea p p r o p r i a t es t a t ev e c t o ri sr e a df r o mt h ec h a n n e ls t a t u sm e m o r y ,p r o c e s s e d a n dw r i t t e nb a c kt ot h ec h a n n e ls t a t u sm e m o r y t h ep m 7 3 6 7f r e e d m - 3 2 p 3 2f r a m ee n g i n ea n dd a t a l i n km a n a g e rd e v i c ei sa m o n o l i t h i ci n t e g r a t e dc i r c u i tt h a ti m p l e m e n t sh d l cp r o c e s s i n g ,a n dp c ib u sm e m o r y m a n a g e m e n tf u n c t i o n sf o ram a x i m u mo f 3 2b i d i r e c t i o n a lc h a n n e l s s u p p o r t sam i xo fu p t 03 2c h a n n e l i s e da n du n c h a n n e l i s e dl i n k s ;s u b je c tt ot h ec o n s t r a i n to fam a x i m u mo f3 2 c h a n n e l sa n dam a x i m u m a g g r e g a t el i n kc l o c kr a t eo f6 4m h z i ne a c hd i r e c t i o n d i r e c t l y s u p p o r t sa3 2 - b i t ,33m h z p c i2 1i n t e r f a c ef o rc o n f i g u r a t i o n t h i sa r t i c l ed e s c r i b e sh d l cp r o t o c o l ,p m 7 36 7 ,v x w o r k se m b e d d e do p e r a t i n g s y s t e ma tf i r s t ,a n dt h e nr e s e a r c hm u l t i c h a n n e lh d l cd r i v e ra n dt e s t i n gb a s eo np m 7 3 6 7 a n dv x w o r k s ,t h ee x a m p l eo ft h ee l t 1i n t e r f a c em o d u l ef o rh d l ci sa n a l y z et h e a p p l i c a t i o no fa s s o c i a t i o nr u l e k e yw o r d s :h d l c ;p m 7 3 6 7 ;v x w o r k s ;d r i v e r ;a p p l i c a t i o n 武汉邮l 乜科学研究院硕十论文 第1 章绪论 1 1 国内外多路h d l c 发展现状及趋势 在计算机通信的早期人们就已发现,对于经常产生误码的实际链路,只要加上合 适的控制规程,就可以使通信变为比较可靠的。那时a r p a n e t 和i b m 公司分别使 用了各自的控制规程,它们分别是:i m p i m p 协议和b s c 规程。这些规程都是数据 链路层的协议。上述的两种协议都是面向字符的。所谓面向字符就是说在链路上所传 送的数据必须是有规定字符集中的字符所组成。不仅如此,在链路上传送的控制信息 也必须由同一个字符集中的若干指定的控制字符构成。这种面向字符的链路控制规程 在计算机网络的发展过程中曾起了重要的作用。 但随着计算机通信的发展,这种面向字符的链路控制规程就逐渐暴露出其弱点。 因此需要设计出一种新的链路控制规程来代替旧的面向字符的链路规程。1 9 7 4 年, i b m 公司推出了著名的体系结构s n a ,在s n a 的数据链路层规程采用了面向比特的 规程s d l c ( s y n c h r o n o u sd a t al i n kc o n t r 0 1 ) 。后来i s o 把s d l c 修改后称为h d l c ( h i g h - l e v e ld a t al i n kc o n t r 0 1 ) ,译为高级数据链路控制,作为国际标准i s o3 3 0 9 1 1 。 我国的相应国家标准是g b7 4 9 6 2 1 。c c i t t 则将h d l c 再修改后称为链路接入规程 l a p ( l i n ka c c e s sp r o c e d u r e ) ,并作为x 2 5 建议书的一部分。不久,h d l c 的新版 本又把l a p 修改为l a p b ,“b ”表示平衡性( b a l a n c e d ) ,使之与h d l c 的后来版本 更加兼容【引。 面向比特的数据传送协议允许一次传送信息的位数没有限制,因而它适合于传送 大量的数据。而面向字符的数据传送,如r s 2 3 2 c 标准每帧传送一个字符,适用于 少量的慢速数据传送。随着人们对数据量需求的日益增高,基于位传送的数据通信将 越来越重要,因而h d l c 标准的应用也越来越广泛。然而随着数据业务的多用户、 大容量的发展趋势,单通道的h d l c 通信控制器已经不能满足需求,所以出现了多 通道h d l c 处理器。多路h d l c 的实现方式有两种:最简单的方法是把多个物理上 独立的h d l c 通道合成在一起,虽然这样做可以实现多通道,但是会消耗大量的硬 武汉邮电科学研究院硕十论文 件资源,从业界的已有芯片看,这种方法只适用于小于4 路通道的情况;另外一种实 现方式是把大部分控制逻辑以及每个通道的计算单元都只设计一套,采用每个通道的 场景保护切换方式来实现,这样硬件资源会大大减少。随着e 1 中继线的大量使用【4 】1 5 1 , 出现了可以同时处理最多3 1 个6 4 k 数据链路的,采用时分复用方式的h d l c 处理器, 并将其设计成标准的模块。这样做可以使芯片面积大大缩小,当需要处理多个e 1 通 道时,就采用多个相同的单元,将多个3 2 个e 1 通道h d l c 处理器进行堆叠的方法 以处理更多的数据通道。 1 2 多路h d l c 研究的目的和意义 h d l c 协议具有强的差错检验、可靠性高、高效、同步传输并具有极大的灵活性 等特点,而且数据链路层所采用的各种数据包的结构都与h d l c 的数据结构基本相 同,所以该h d l c 处理器可以广泛的应用于帧中继系统、p p p 协议数据包的处理【6 】、 i s d n 、x 2 5 数据网、骨干和边缘路由器等各种数据网环境之中。但原先每一个用户 都拥有一个独立的h d l c 处理器进行数据的处理,而且专用的h d l c 通信控制器常常 需要设置大量的控制寄存器才能正常工作,所以这种h d l c 处理器体积较大,难以在 体积有限的设备上使用。随着数据业务多用户、大容量的发展趋势,这种实现方式必 然造成大量硬件资源的占用。在这种情况下多路h d l c 数据处理的出现,使得h d l c 处理器体积大大缩小,可以在有限体积设备下使用,也可以节约大量硬件资源。 1 3 本论文的主要内容 本文基于p m 7 3 6 7f r e e d m t m 3 2 p 3 2 这个芯片和嵌入式操作系统v x w o r k s 实现 了多路h d l c 的驱动和测试,并设计了一种h d l c 通信e l f r l 接口模块并将p m 7 3 6 7 应用其中。主要完成以下工作: ( 1 ) 进行论证工作,同时阅读大量关于嵌入式系统方面和h d l c 方面的书籍和资 料: ( 2 ) 研究并掌握基于p m 7 3 6 7 的系统的开发方法,编写驱动和测试代码; ( 3 ) 设计一种h d l c 通信e l t 1 接口模块并将p m 7 3 6 7 应用其中。 2 武汉邮电科学研究院硕卜论文 第2 章h d l c 应用协议简介 h d l c 可适用于链路的两种基本配置,即非平衡配罱与平衡配置。 非平衡配置的特点是由一个主站控制整个链路的工作,主站发出的帧叫做命令。 受控的各站叫做次站或从站,次站发出的帧叫做响应。在多点链路中,主站和每一个 次站之间都有一个分开的逻辑链路。 平衡配置的特点是链路两端的两个站都是复合站。复合站同时具有主站和次站的 功能,因此每个复合站都可以发出命令和响应【7 】。 2 1h d l c 帧的基本结构 数据链路层的数据传送是以帧为单位的。一个帧的结构【8 1 具有固定的格式,如图 2 1 所示。从网络层交下来的分组,变成为数据链路层的数据。这就是图2 1 中的信 息字段。信息字段的长度没有具体规定。数据链路层在信息字段的头尾各加上2 4 b i t 的控制信息,这样就构成了一个完整的帧。 i 标志f 地h l a控s u c信息i校验码f c s标志f i 8 b h8 b i t8 b i ti t1 6 或3 2 b i t8 b i t i 检验区间 - 1 透明传藕区1 日j 7 图2 1h d l c 帧结构 还有一种只包含控制序列没有信息字段的特种帧。这种帧的格式如图2 2 所示: l 标志f地址a控制c校验码f c s标志f i 8 b i t 8 b i t8 b i t1 6 或3 2 b i t8 b i t l 图2 2 没有信息字段的h d l c 帧结构 武汉邮电科学研究院硕十论文 2 2h d l c 帧的组成部分 2 2 1 标志序列 数据链路层要解决帧同步的问题。所谓帧同步就是从收到的比特流中正确无误地 判断出一个帧从哪个比特开始以及到哪个比特结束。为此,h d l c 规定了在一个帧的 开头( 首部第一个字节) 和结尾( 尾部最后一个字节) 各放入一个特殊地标记,作为 一个帧的边界。这个标记就叫做标志字段f ( f l a g ) 。标志字段f 为6 个连续1 加上 两边各一个0 。在接收端,只要找到标志字段,就可以很容易地确定一个帧的地位置。 在两个标志字段之间的比特串中,如果碰巧出现了和标志字段f 一样的比特组 合,那么就会在处理h d l c 帧首部时误认为是找到了一个帧的边界。为了避免出现 这种错误,h d l c 采用零比特填充法使一帧中两个f 字段之间不会出现6 各连续1 。 零比特填充的具体做法是:在发送端,当一串比特流数据尚未加上标志字段时, 先用硬件扫描整个帧( 用软件也能实现,但要慢些) 。只要发现有5 个连续1 ,则立 即填入一个0 。因此经过这种零比特填充后的数据,就可以保证在数据中不会出现6 个连续1 。在接收二个帧时,先找到f 字段以去确定一个h d l c 帧的边界,接着再用 硬件对其中的比特流进行扫描。每当发现5 个连续l 时,就将这5 个连续1 后的一个 o 删除,以还原成原来的比特流,如图2 3 所示。这样就保证了再所传送的数据比特 流中,不管出现什么样的比特组合,也不至于引起对帧边界的判断错误【9 】。 数据中某一段比特组合恰好出 现和f 字段一样的情况 发送端在5 个连l 之后填入0 比特再发送出去 在接收端将5 个连1 之后的0 比特删除,恢复原样 i 1010 p111 1 1 10 :o01010 会被误认是f 字段 1010ol l l 1 10l0001o10 口 填入0 b i t l0l00l l l l 1010 00l01o 口 在此位置删除填入的0 b i t 图2 3 零比特的填充与删除 4 武汉邮i 乜科学研究院硕十论文 采用零比特填充法就可传送任意组合的比特流,或者说,就可实现数据链路层的 透明传输。在图2 1 两个f 字段之间注明的“透明传输区间就是这个意思。 当连续传输两个帧时,前一个帧的结束标志字段f 可以兼作后一帧的起始标志字 段。当暂时没有信息传送时,可以连续发送标志字段,使接收端可以一直和发送端保 持同步。 2 2 2 地址字段 地址地段a 也是8 个比特。在命令帧中,地址总是标识该命令所要发往的数据 站。在响应帧中,地址总是标识发出该响应的数据站。 全1 地址时广播方式,而全0 地址时无效地址。因此,有效的地址共有2 5 4 个。 这对一般的多点链路是足够的【l o 】。但考虑在某些情况下,例如使用分组无线电,用户 可能很多,所以地址字段就做成可扩展的。这时用地址字段的比特1 表示扩展比特, 其余7 个比特为地址比特。当某个地址字段的第1 比特为o 时,表示下一个地址字段 7 个比特也是地址比特。当此地址字段的第l 比特为1 时,即表示这已是最后一个地 址字段了。 2 2 3 控制字段 控制字段c 共8 b i t ,是最复杂的字段。h d l c 的许多重要功能都靠控制字段来实 现。根据其前面两个比特的取值,可将h d l c 帧划分为三大类,即信息帧、监督帧 和无编号帧,其简称分别是i ( i n f o r m a t i o n ) ,s ( s u p e r v i s o r y ) ,u ( u n n u m b e r e d ) 。 图2 4 是对应于这三种帧的控制字段以及控制字段中各比特的作用。下面介绍这三种 帧的特点【1 1 】【1 2 】。 比特序号l2345 678 信息l 帧10 n ( s ) p f n ( r ) 监督帧s10sp 澹 n ( r ) 无编号帧u l1mp fm 图2 4 控制字段的结构 武汉邮l l = l 科学研究院硕十论文 ( 1 ) 信息帧 若控制字段的第l 比特为0 ,则该帧为信息帧。比特2 4 为发送序号n ( s ) ,而 比特6 8 为接收序号n ( r ) 。n ( s ) 表示当前发送的信息帧的序号,而n ( r ) 表示本站所 期望收到的帧的发送序号( 注意:对方发送的信息帧中的发送序号是由对方确定并填 入的,而这里的n 则是由本站填入的) ,由于是全双工通信,所以通信的每一方都 各有一个n ( s ) 和n ( r ) ,因此通信的双方总共有两个n ( s ) 和n ( r ) 。因此,当讨论到 n ( s ) 和n ( r ) 时,一定要弄清这是在发送方还是在接受方填入的序号。 这里要强调的指出,n ( r ) 带有确认的意思。它表示序号为i n ( r ) - 1 ( r o o d8 ) 的帧以 及在这以前的各帧都已正确无误地收妥了。这里m o d8 的意思是:序号只有8 个数值, 当序号增加到7 时,若再加1 就又回到0 了。 顺便指出,在信息帧中设有接收序号n ( r ) 这一字段,就表示不必专门为收到的 信息帧发送确认帧。可以在本站有信息帧发送时,将确认信息放在其接收序号n ( r ) 中让本站发送信息帧使将确认信息带走。例如,在一连收到对方n ( s ) = 0 3 共4 个信 息帧后,可在即将发送的信息帧中将接收序号n ( r ) 置为4 ,表示3 号帧及其以前的各 帧均已正确收到,而期望接收的是发送序号n ( s ) = 4 的信息帧。采用这种捎带的方法 可以提高信道的利用率。 控制字段的第5 个比特是探询终止比特,简称p f 比特。主站发出的命令帧中 若将p 比特置为1 则表示要求对方立即发送响应。在对方确认的帧中若将f 比特置为 1 则表示要发送的数据已经发送完毕。 ( 2 ) 监督帧 若控制字段的第l 一2 比特为1 0 ,则对应的帧即为监督帧s 。监督帧共有四种,取 决于第3 4 比特的值( 见图2 3 中标有s 的二比特) 。表2 1 是这四种监督帧的名称和 功能。 如表2 1 中的四种监督帧,前三种用在连续a p , q 协议中,而最后一种只用于选 择重传a r q 协议。 所有的监督帧都不包含要传送的数据信息,因此它只有4 8 b i t 长。显然,监督帧 不需要有发送序号n ( s ) 。但监督帧中的接收序号n ( r ) 却是至关重要的。在前两种监 督帧中的n ( r ) 都具有同样的含义,因此这两种监督帧都相当于以前提到过的确认帧 6 武汉邮电科学研究院硕十论文 a c k 。r e j 则相当于以前提到过的否认帧n a k ,而在r e j 帧中的n ) 表示所否认的 帧号。不过这种否认帧还带有某种确认信息,即确认序号为n ( r ) 一l 及其以前的各帧 均已正确收到。 我们应当注意到,r r 帧和r n r 帧还具有流量控制的作用。r r 帧表示已做好接 收帧的准备,希望对方继续放送,而r n r 帧则表示希望对方停止发送。 表2 1 四种监督帧的名称和功能 第3 4 比特帧名 功能 r r ( r e c e i v er e a d y )准备接收下一帧 00 接收准备就绪 确认序号为n ( r ) 一1 及其以前的各帧 r n r ( r e c e i v en o tr e a d y ) 暂停接收下一帧 l0 接收未就绪确认序号为n ( 的- 1 及其以前的各帧 r e i ( r e j e c t )从n ( r ) 起的所有帧都被否认 0l 拒绝 确认序号为n ( r ) - l 及其以前的各帧 s r e i ( s e l e c t i v er e j e c t )只否认序号为n ( r ) 的帧 l1 选择拒绝 确认序号为n ( r ) 一1 及其以前的各帧 ( 3 ) 无编号帧 若控制字段的第1 2 比特都是1 时,这个帧就是无编号帧u 。无编号帧本身不带 编号,即无n ( s ) 和n ( r ) 字段,而是用5 b i t 来表示不同功能的无编号帧。虽然总共可 以有3 2 个不同组合,但实际上目前只定义了1 5 种无编号帧。无编号帧主要起控制作 用,可在需要时随时发出。 2 2 4 信息字段 信息可以识任意的比特序列,在大多数情况下,它具有某一种合适的字符结构, 例如八位位组,需要时,其位数不作规定,且与字符结构无关。 7 武汉邮电科学研究院硕+ 论文 2 2 5 帧检验序列字段 h d l c 规定了两种帧检验序列【1 3 1 :1 6 比特帧检验序列和3 2 比特帧检验序列。通 常使用1 6 比特帧检验序列,而3 2 比特帧检验序列则用在那些需要比1 6 比特帧检验 序列更高保护度的场合。所检验的范围是从地址字段的第1 个比特起,到信息字段的 最末1 个比特为止。图2 1 标志出了这个检验范围。 2 3 多通道h d l c 处理器介绍 多通道高速h d l c 处理器的实现采用时分复用的方式,核心部分由一个收发独 立且可分时处理的h d l c 处理器、一组通道配置寄存器和一组通道状态存储器构成, 其中通道状态存储器是实现时分复用的关键,每一个通道在该通道状态存储器都有一 块固定的存储空间,用以存储该通道的数据处理情况,即通道状态信息。多通道高速 h d l c 处理器为每一个通道每一段需要被处理的数据分配一段长度一定的时间片 ( 时间片的长度可根据数据的宽度成比例的变化) 。每个时间片结束时,当前通道最 新的状态信息( 接收方向包括:处理结束时状态机所处的状态、对该通道已经处理过 的数据的c r c 校验码以及已经处理的比特数,当前时间片内已处理完但尚未来得及被 输出的接收数据等;发送方向包括:处理结束时状态机所处的状态、对该通道已经处 理过的数据的c r c 校验码、在当前时间片内尚未来得及输出的传输数据等) 将被存入 通道状态存储器中的相应存储空间。当新的一段数据到达时,此段数据所属的通道在 上一个时间片内被刷新的状态信息将从通道状态存储器中读出并加载到状态机中,为 新一轮的数据处理做准备。 若主机( h o s t ) 发现某个通道的数据传输有误或长时间未接收到该通道的数据, 能且只能在该多通道h d l c 处理器的等待空闲状态查询该通道的状态信息。 8 武汉邮l 乜科学研究院硕十论文 3 1 芯片简介 第3 章p m 7 3 6 7 的功能结构 p m 7 3 6 7f r e e d m t m - 3 2 p 3 2 是一个实现h d l c 处理的单片集成电路,它的p c i t l 4 】 总线内存管理功能使它可以处理最多为3 2 路的双向通道。 对信道化链路,p m 7 3 6 7 会将3 2 个双向h d l c 通道分配给t 1 或e 1 链路内的3 2 个独立时隙。通道支持最多2 4 个t 1 链路的连续时隙,和最多3 1 个e 1 链路的连续 时隙。在t 1 或e 1 链路里分配给任何特定的通道的时隙不一定要是连续的。 对于非信道化链路,p m 7 3 6 7 在3 2 个独立同步的链路里处理3 2 个双向h d l c 通 道。链路可以用任意帧格式。只处理两个非信道化链路时,当s y s c l k 为2 5 m h z 时 每条链路速率可达4 5 m h z ,当s y s c l k 为3 3 m h z 时每条链路速率可达5 2 m h z 。当 盖 p m 7 3 6 7 处理达3 2 个链接时,所有链路累计时钟速率最高为6 4 m h z ,链路0 到链路 2 在s y s c l k 为2 5 m h z 时速率可达4 5 m h z ,s y s c l k 为3 3 m h z 时可速率达5 2 m h z , t 。、 链路3 到链路3 1 的时钟速率可达1 0 m h z 。 鼢 p m 7 3 6 7 支持多达3 2 个信道化和非信道化链路。每个方向的总通道数最多为3 2 个。总的时钟速率为6 4 m h z i s 】。 每 在接收方向,p m 7 3 6 7 执行通道分配以及分组的提取和验证。对于每个h d l c 通 道,p m 7 3 6 7 用标志字段作为分组边界并进行比特分离,标志字段支持共享起始和结 束标志以及标志之间的零。由此产生的分组数据放置在内部为8 k b y t e 的部分分组缓 冲r a m 内。部分分组缓冲器以f i f o 方式为每个通道工作。部分分组以d m a 操作 方式出内存,通过p c i 总线进入到主机内存。p m 7 3 6 7 为每个分组验证帧检验序列, 并确认分组是一个不可分割的若干字节的长度且在一个可编程的最小和最大长度范 围之内。接收分组状态在分组连接成个接收就绪队列前更新,然后p m 7 3 6 7 告诉 p c i 主机有接收就绪队列的分组,或者向p c i 总线申请中断。 另外,在接收方向,p m 7 3 6 7 支持透明操作模式。对于每个透明通道,p m 7 3 6 7 直接将接收到的字节逐字传输到主机内存。如果是透明通道是信道化链路,字节在接 收时隙调整。 9 武汉邮l 岜科学研究院硕十论文 在发送方向,p c i 主机提供了利用发送就绪队列的方式进行发送分组。对每个 h d l c 通道,p m 7 3 6 7 通过d m a 操作将部分分组通过p c i 总线并发送到部分分组缓 冲器。p m 7 3 6 7 从分组缓冲器读取部分分组,计算帧检验序列并插入到每个分组的末 端。比特填充在分配特定链路前完成。没有特定通道分组数据时标志序列会自动插入。 序列分组被两个标志( 起始标志和结束标志) 或一个标志( 起始和结束标志的组合标 志) 分隔开。p c i 总线延迟可能会导致一个或多个通道下溢,在这种情况下,分组中 断,主机发出警告,一个中止序列产生,接着是帧间时间填充字符( 标志或所有的字 节) ,直到出现一个来自p c i 主机的新分组,否则不会自动重传中断的分组。 另外,在发送方向,p m 7 3 6 7 支持透明操作模式。对于每个透明通道,p m 7 3 6 7 从主机内存直接插入发送字节。如果是透明通道是信道化链路,字节在发送时隙调整。 如果一个通道由于过度p c i 总线延迟而下溢,一个异常中断序列将产生,跟着是帧问 时间填充字符表明空闲通道,p m 7 3 6 7 从主机收到新的数据后数据恢复。 我们用p c i 总线接口来配置,控制和监视p m 7 3 6 7 。p m 7 3 6 7 是一个的功率c m o s 工艺设备。它是一块2 7 2 管脚p b g a ( p l a s t i cb a l lg r i da r r a y ) 封装的t t l 电平兼容输入 和输出板【1 6 1 。 3 2 功能描述 3 2 1 接收通道分配器 接收通道分配器( r c a s ) 可处理多达3 2 条串行链路。每条链路是独立的并都有 自己相关的时钟。对于每条链接,r c a s 会完成串行到并行的转换以形成数据字节。 数据字节以字节串行格式进行复用,以s y s c l k 速率交付给接收h d l c 处理器部分 分组缓冲器( d l ) 。如果有多个流已经积累了数据,多路复用会按照一个固定的 优先级来完成。这个优先级顺序是按照链路 | i o 为最高优先级,然后逐步降低直到最 低优先级链接撑3 1 。 链路包含t 1 或e 1 流的话那么这条链路是信道化链路。数据在每个时隙可独立 分配到不同的通道。r c a s 会查询链路和通道时隙关联的表。t 1 和e 1 帧是通过分析 链路时钟的间隙得到识别。对于非信道化链路,链路撑o 至l j # 2 的时钟频率最大为 i o 武汉邮l 也科学研究院硕十论文 5 2 m h z ,其他链路时钟频率最大为1 0 m h z 。在两条非信道化链路的情况下,最大的 链路速率是4 5 m h z ( s y s c l k 为2 5 m h z ) 或5 2 m h z ( s y s c l k 为3 3 m h z ) 。对于更 多非信道化链路的情况下,总瞬时链路速率最大为6 4 m h z 。由于非信道化链路旱时 隙不存在,r c a s 会查询链路数和通道相关联的表以确定数据是哪条链路上的。 每个通道可选择r c a s 提供的诊断环回功能,当一个通道处于诊断环回状态时, 该通道原接收链路的数据将被忽略,由该通道的发送数据取代。 ( 1 ) 线路接口 r c a s 有3 2 个相同的线路接1 :3 模块。每个线路接口包含一个位计数器,一个8 位移位寄存器和一个保持寄存器共同完成串行到并行的转换。每当保持寄存器更新, 就会有一个服务请求发送到优先编码器。当优先编码器确认这个请求,线路接口会将 数据放入保持寄存器。 为了支持信道化链路,每一个线路接口模块还包含一个时隙计数器和一个时钟监 测。时隙计数器在保持寄存器每次更新后递增。时钟监测是系统时钟( s y s c l k ) 速 率递增的计数器并在接收时钟( r c l k n ) 的上升沿清除。当计数器达到阈值时检测 帧比特( t 1 ) 或帧字节( e 1 ) ,比特和时隙计数器初始化,下一个位是最高有效位。 对于非信道化链路,时隙计数器和时钟监测保持置0 。 ( 2 ) 优先编码器 优先编码器监控线路接口请求,并与s y s c l k 时间域同步。请求在固定的优先 级表下得到响应,最高优先级为g o 0 的线路接1 :3 ,最低优先级为g d 3 1 的线路接口, 同时从g o m 来的请求将在g o n 前得到响应( m 悬置态 s e m t a k e 0 m s g q r e c e i v e 0 就绪态 延迟态 t a s k d e l a y 0 就绪态 休眠态 t a s k s u s p e n d o 悬置态 就绪态 s e m g i v e o m s g q s e n d o 悬置态一一 休眠态 t a s k s u s p e n d o 延迟态 就绪态 e x p i r e dd e l a y o 延迟态 休眠态 t a s k s u s p e n d o 休眠态 就绪态 t a s k r e s u m e o t a s k a c t i v a t e o 休眠态一一 悬置态 t a s k r e s u m e 0 休眠态一一 延迟态 t a s k r e s u m e 0 ( 3 ) 任务调度策略 多任务调度须采用一种调度算法来分配c p u 给就绪态任务。w i n d 内核采用基于 优先级的抢占式调度法作为它的缺省策略,同时它也提供了轮转调度法。 武汉邮i 乜科学研究院硕十论文 基于优先级的抢占式调度,它具有很多优点。这种调度方法为每个任务指定不同 的优先级。没有处于悬置或休眠态的最高优先级任务将一直运行下去。当更高优先级 的任务由就绪态进入运行时,系统内核立即保存当前任务的上下文,切换到更高优先 级的任务。 多任务调度须采用一种调度算法来分配c p u 给就绪态任务。w i n d 内核采用基于 优先级的抢占式调度法作为它的缺省策略,同时它也提供了轮转调度法。基于优先级 的抢占式调度,它具有很多优点。这种调度方法为每个任务指定不同的优先级。没有 处于悬置或休眠态的最高优先级任务将一直运行下去。当更高优先级的任务由就绪态 进入运行时,系统内核立即保存当前任务的上下文,切换到更高优先级的任务。 w i n d 内核划分优先级为2 5 6 级( 0 - 2 5 5 ) 。优先级o 为最高优先级,优先级2 5 5 为最低。当任务被创建时,系统根据给定值分配任务优先级。然而,优先级也可以是 动态的,它们能在系统运行时被用户使用系统调用t a s k p r i o r i t y s e t 0 来加以改变,但不 能在运行时被操作系统所改变。 轮转调度法分配给处于就绪态的每个同优先级的任务一个相同的执行时间片。时 间片的长度可由系统调用k e m e l t i m e s l i c e 0 通过输入参数值来指定。很明显,每个任 务都有一运行时间计数器,任务运行时每一时间滴答加1 。一个任务用完时间片之后, 就进行任务切换,停止执行当前运行的任务,将它放入队列尾部,对运行时间计数器 置零,并开始执行就绪队列中的下一个任务。当运行任务被更高优先级的任务抢占时, 此任务的运行时间计数器被保存,直到该任务下次运行时。 ( 4 ) 抢占禁止 w i n d 内核可通过调用t a s k l o c k 0 和t a s k u n l o c k 0 来使调度器起作用和失效。当一 个任务调用t a s k l o c k 0 使调度器失效,任务运行时没有基于优先级的抢占发生。然而, 如果任务被阻塞或是悬置时,调度器从就绪队列中取出最高优先级的任务运行。当设 置抢占禁止的任务解除阻塞,再次开始运行时,抢占又被禁止。这种抢占禁止防止任 务的切换,但对中断处理不起作用。 ( 5 ) 任务管理 v x w o r k s 内核的任务管理提供了动态创建、删除和控制任务的功能,具体实现通 过表4 2 所示的一些常用系统调用。 2 8 武汉邮l 【l 科学研究院硕十论文 表4 2 系统调用 任务管理的系统调刚功能描述 t a s k s p a w n o 创建( 产生并激活) 新任务 t a s k l n i t 0 初始化一个新任务 t a s k a c t i v a t e 0 激活一个已初始化的任务 t a s k s u s p e n d 0 挂起一个任务 t a s k r e s u m e o 恢复一个任务 t a s k r e s t a r t 0 重启一个任务 t a s k d e l a y 0 延迟一个任务 4 3 2 通信、同步和互斥机制 v x w o r k s 支持各种任务间通信机制,提供了多样的任务间通信方式【2 8 1 1 2 9 1 ,主要 有如下几种:共享内存,主要是数据的共享;信号量,用于基本的互斥和任务同步; 消息队列和管道,单c p u 的消息传送;s o c k e t 和远程过程调用,用于网络间任务消 息传送;二进制信号,用于异常处理。 在多处理器之间的任务也可采用共享内存对象来实现任务间通信,只是在系统配 置上有所不同。 ( 1 ) 共享存储区 任务间通信的最简单的方法是采用共享存储区,也即相关的各个任务分享属于它 们的地址空间的同一内存区域。因为所有任务都存在于单一的线性地址空间,任务间 共享数据。全局变量、线性队列、环形队列、链表、指针都可被运行在不同上下文的 代码所指向。 ( 2 ) 互斥 当某一地址空间用于数据交换时,为了避免冲突,对于内存的锁定是非常重要的。 两个或多个任务读写某些共享数据时,最后的结果取决于任务运行的精确时序,有可 能得到错误值,这样必须以某种手段确保当一个任务在使用一个共享变量或文件时, 其他任务不能做同样的操作。主要有关中断、抢占禁止和用信号量锁定资源等方法。 2 9 武汉邮电科学研究院硕十论文 一般来说,关中断是最有效的解决互斥的方法。但这对于实时应用来说,它阻止系统 对外部事件的响应,无法满足实时性的要求。同样,中断延迟也是不能接受。有些实 时应用一般不适用抢先禁止,大多采用信号量来解决互斥问题。 ( 3 ) 信号量 v x w o r k s 信号量提供最快速的任务间通信机制,它主要用于解决任务间的互斥和 同步。针对不同类型的问题,有以下三种信号量:二进制信号量使用最快捷、最广泛, 主要用于同步或互斥;互斥信号量主要用于优先级继承、安全删除和回溯;计数器信 号量。 : 一v x w o r k s 还提供p o s i x 信号量和多处理器上信号量的应用。 w i n d 信号量对于各种类型的信号量的控制提供了统一规范化的接口,当创建函 数时要特别指明信号量类型。v x w o r k s 为w i n d 信号量提供的基本系统调用如表4 3 所示。 表4 3 信号量的系统调用 信号量的系统调用功能描述 s e m b c r e a t e o 创建( 产生并激活) 一个二进制信号量 s e m m c r e a t e o 创建( 产生并激活) 一个互斥信号量 s e m c c r e a t e o 创建( 产生并激活) 一个计数信号量 s e m d e l e t e o 中止并自由信号量 s e m t a k e o获得信号量 s e m g i v e o 给出信号量 s e m f l u s h o 解锁所有正等待某一信号量的任务 ( 4 ) 消息队列 现实的实时应用由一系列互相独立又协同工作的任务组成。信号量为任务间同步 和联锁提供了高效方法。单处理器中任务间消息的传送采用消息消息队列。消息机制 使用一个被各有关进程共享的消息队列,任务之间经由这个消息队列发送和接收消 息。 3 0 武汉邮电科学研究院硕十论文 v x w o r k s 系统为w i n d 消息队列的管理提供的基本系统调用如表4 4 所示。 表4 4 消息队列的系统调用 消息队列的系统调用功能描述 m s g q c r e a t e 0 创建( 产生并激活) 消息队列 m s g q d e l e t e 0 中止并自由消息队列 m s g q s e n d 0 向消息队列发送消息 m s g q r e c e i v e o 向消息队列接受消息 ( 5 ) 信号和管道 一 信号异步地改变了一个任务的工作流,也是一种重要的同步机制。任何任务和中 断程序都能向特定的任务发出信号,收到信号的任务立刻挂起它正在执行的线程,转 而在下一时间调度运行特定任务信号处理程序。w i n d 内核支持两种信号界面:u n i x b s d 形式的s i g n a l 和兼容p o s i x 标准的s i g n a l 。在许多方面,信号类似于硬件中断。 v x w o r k s 系统像其他经典操作系统一样,提供了一组特定信号,共3 1 个。 管道用v x w o r k s 的i o 系统提供一种灵活的消息传送机制,它是受驱动p i p e d r v ( v x w o r k s 所提供) 管理的虚拟i o 设备。任务能调用标准的i o 函数打开、读出, 写入管道。当任务试图从一个空的管道中读取数据,或向一个满的管道中写入数据时, 任务被阻塞。和消息队列类似,i s r 能向管道中写入信息,但不能从中读取。象i o 设备一样,管道有一个消息队列所没有的优势调用s e l e c t 0 ,任务等待一系列i o 设备上的数据。 4 3 3 中断机制 实时系统中断硬件处理是至关重要的,因为它是以中断方式通知系统外部事件的 发生,为了快速响
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 平行四边形的判定课件2025-2026学年人教版八年级数学下册
- 1.1.1有机化合物的分类 课件 高二下学期化学人教版选择性必修3
- 2026年知识产权专业知识和实务(中级)通关检测卷(含答案详解)
- 2026年幼儿园教学说课
- 2026年幼儿园贝贝换牙
- 2026年无字天书幼儿园
- 2025福建福州市规划设计研究院集团有限公司招聘笔试参考题库附带答案详解
- 2025福建漳州市凌波酒店管理集团有限公司招聘69人笔试参考题库附带答案详解
- 2025福建南平武夷高新技术产业控股集团有限公司招聘20人笔试参考题库附带答案详解
- 2025湖南长沙融发集团招聘8人笔试参考题库附带答案详解
- 《居家安宁疗护服务规范(征求意见稿)》编制说明
- 高中化学与生物跨学科融合:化学键视角下的营养素相互作用教学设计
- (完整版)2026年党建基础知识应知应会试题及答案
- 基于1+X证书制度构建“岗课赛证”融通模式的典型案例
- 2023年年度全国注册土木工程师水利水电工程执业资格考试水工结构专业案例试卷上午
- 大一下学期高等数学期中考试试卷及答案
- GB/T 27725-2011热塑性塑料蝶阀
- GB/T 1957-2006光滑极限量规技术条件
- GA 884-2018公安单警装备催泪喷射器
- 农业行政处罚程序和文书制作课件
- 输电线路改造工程验收交底
评论
0/150
提交评论