通信测试卡中HDLC协议控制器的设计与实现刘延飞,等 通信测试卡中HDLC协议控制器的设计与实现 Design and Implementation of HDLC Protocol Controller for Communication Test Card 纠延 李 缮 饧铁所 倪 毳 (第二炮兵工程大学专业基础实验中心,陕西西安710025) 摘要:针对当前实现HDLC协议控制器的一般方法中存在的一些弊端,提出了一种利用FPGA简化HDLC协议控制器的硬件处理 方法。利用VHDL语言,分别设计了发送模块和接收模块,并详细介绍了各个模块的工作原理和组成以及仿真结果。试验结果表明, FPGA简化了HDLC协议,模块编程简单且易于修改,具有良好的应用前景。 关键词:控制器通信测试FPGA VHDL HDLC协议 中图分类号:TN409 文献标志码:A Abstract:Aiming at the malpractice existing in common methods at present for HDLC protocol controller,the hardware processing method by adopting FPGA to realize and simplify the HDLC protocol controller is proposed.With VHDL language,the transmitting and receiving module is designed respectively.The working principles and compositions as well as the simulation results of each module are introduced in detail.The results show that FPGA simpliifes HDLC protocol,thus the programming for modules becomes simple and easy to modify;the method possesses excellent prospects. Keywords:Controller Communication test FPGA VHDL HDLC protocol 0 引言 通信,所以在数据传输过程中可以不加CRC校验 , 本文将介绍一种简化HDLC协议控制器的方法。 在航空航天领域中,大型地面测试设备测试数据 具有传输量大、实时性要求高的特点。为了解测试设 1 HDLC协议简介 备与上位机的通信状况,需采用一种面向比特级的同 HDLC协议是通信领域中应用最广泛的协议之 步通信协议,实现数据传输过程的完全透明。高级数 一,其面向比特的高级数据链路控制规程,具有差错检 据链路控制(high level data link control,HDLC)协议具 测功能强大、效率高和传输同步的特点 。在HDLC 有上述优点,同时,它能保证传递到下一层的数据在传 通信方式中,所有信息都是以帧的形式传送的。HDLC 输过程中能够被准确接收,且一旦接收端接收到数据, 帧格式如图1所示。 就能立即传输下一帧数据 。 HDLC的一般实现方法是采用专用集成电路 帧起始标志 接收站地址 状态控制字 信息段 帧校验 帧结束 0lll1ll10 8 bit/16 bit 8bit/16bit 8^bIt 16blt『32 bit Ol11l110 (application speciifc integrated circuit,ASIC)器件和软 件编程等。采用ASIC器件设计比较简单,但灵活性较 差;软件编程方法灵活,但占用处理器资源多、执行速 度慢、实时性不易预测。现场可编程门阵列(FPGA) 图1 HDLC帧格式 采用硬件描述语言处理信号,可以通过软件反复编程 Fig.1 Frame format of HDLC protocol 使用,能够兼顾速度和灵活性,还能并行处理多路信 1.1标志字 号,便于实时预测和仿真,所以在FPGA中实现HDLC 根据HDLC协议规定,所有信息传输必须以一个 协议的功能是一种较为合适的选择 。 标志字“01111110”开始,且以同一个标志字结束。由 根据课题具体要求,发送端和接收端的数据内容 开始标志到结束标志之间构成一个完整的信息单位, 是固化的,只需检测测试设备能否与上位机进行正常 称为一帧。接收方可以通过搜索“01111110”来探知 帧的开始和结束,从而建立帧同步。在帧与帧之间的 修改稿收到日期:2011—05—11。 空载期,可连续发送标志字来作填充。 第一作者刘延飞(1975一),男,1997年毕业于国防科技大学信息工 程专业,获硕士学位,副教授;主要从事机器人智能控制、光学导引头在 1.2“0”比特插入技术 线测试技术方面的研究。 HDLC帧的信息长度是可变的,可传送除标志字 《自动化仪表》第33卷第2期2012年2月 55 通信测试卡中HDLC协议控制器的设计与实现刘延飞,等 以外的任意二进制信息。为确保标志字独一无二,发 送方在发送信息时采用“0”比特插入技术,即发送方 在发送除标志字符外的所有信息时(包括校验位),只 要遇到连续的5个“1”,就自动插入一个“0”;反之,接 收方在接收数据时,只要遇到连续的5个“1”,就自动 将其后的“0”删掉。“0”比特插入和删除技术使得 HDLC具有良好的传输透明性,可传输任何比特代码。 1.3地址段及控制段 图2发送模块仿真结果 Fig.2 Simulation result for transmitting module 地址字段为8位,也可采用8的倍数进行扩展,用 当发送数据帧头“01111110”后,起始标志位start— 于标志接收该帧的栈地址。控制字段为8位或16位, 发送方的控制字段用来表示命令和响应的类别与功能。 lfag置高,开始发送接收地址和控制字等数据内容。 数据并串转换计数器counterl和添零计数器zero— counter开始计数,发送的数据依次存入移位寄存器 shitf—2 HDLC协议控制器的FPGA实现 基于FPGA实现的HDLC协议控制器主要包括发 送和接收两个模块 。 2.1发送模块的设计 reg。数据发送信号txd,按照预定格式向串行数 据序列hdlc_tx依次赋值,实现数据的正确发送。 2.2接收模块的设计 发送端先将待发送的并行数据进行并串转换,然 后由系统自动完成编码、“0”比特和标志字“7E”插入, 最后将处理后的数据序列传递到发送端口。根据前文 接收端首先接收同步串行数据,然后由系统自动 完成标志字的检测、去“0”,再将同步串行数据转换成 1位并行方式输出。整个系统收发端使用同一个全局 时钟。下面分别对接收模块各个部分进行介绍。 2.2.1帧头检测模块 本进程用来检测帧头“7E”是否出现,如果检测到 “7E”,则表明接收到一个完整的数据;反之,则继续接 收数据 。 2.2.2去…0’模块 所述,由于每一帧的数据内容固定,因此,可将CRC结 果视为固定值“E2、99”,直接将其添加到发送端数据 序列即可。 2.1.1发送模块工作原理 设计的代码主要由以下进程组成:①HDLC数据 发送状态机状态转移进程,完成HDLC数据发送状态 机各个状态对应的信号输出,包括标志信号和控制信 号;②移位寄存器进程,通过移位实现数据并串转换, 并按添零要求对串行数据序列做相应处理;③添零进 程,当遇到连续的5个“1”时,自动进行添零处理,最 后产生正确的、经过添零处理的HDLC数据序列。其 本进程用来检测接收的数据是否包含插入的…0’ 比特,当检测到插入的“0”比特后,对其进行删除,并 进行数据串并转换。 2.2.3接收控制模块 本进程用于接收过程的控制,主要包括通过检测 部分源代码如下。。 。 When idle=>shitf是否出现帧头来判断接收的数据是否为有效帧,以及 产生接收使能信号。其部分VHDL代码如下。 —reg(7 DOWNTO 0)<=frame— if(F|agDeteet=‘1’)then head;∥在空闲状态发送帧头head flag<=‘1’; When contlsent=>shitf—∥检测到帧头,进人数据接收状态 —reg(7 DOWNTO 0)<= FlagInit FrameStatus :=‘1’: ::‘0’: controll; head_∥发送地址字节的状态 flag<=‘0’; ∥发送地址字节 FlagCounter :=0; ∥标志位计数器 AboaedFrame <=‘0’: 在空闲状态,发送HDLC的帧头(7E);在地址发 送状态,发送地址字节内容(5A 4A);然后转入控制 字节发送状态,发送控制字节(54);进入HDLC帧尾 发送状态,将帧尾(7E)发送出去,发送完帧尾,转入到 ….. if(Fram。Stalu。:t1,、th。 if f al:tt, th。 abl。<: 1,: 空闲状态,等待新数据的到来。 2.1.2试验结果和分析 发送模块的试验仿真结果如图2所示。 56 C。 t。 ::0: FrameError<:・0,: ….. PROCESS AUTOMATION INSTRUMENTATION Vo1.33 No.2 February 2012 通信测试卡中HDLC协议控制器的设计与实现刘延飞,等 2.2.4试验结果和分析 整个接收模块的试验仿真结果如图3所示。 与传统的HDLC协议的实现方法相比,该控制器 更加简单可靠;且由于数据帧传输过程中没有采用标 准的CRC校验,使得数据传输速度更快。软件仿真和 代码调试证明,本控制器能够应用于通信测试卡的测 试,具有一定推广价值。 参考文献 [1]黄国强.HDLC协议的FPGA实现及其在通信系统的应用[J]. 五邑大学学报,2008(22):40—44. 圜 ‘l H- — ——螋l删 +1t 圜 I霉 。0Fr lgn 圈 rameError —— — ——————— —————————————————————毒~ 黼 I— ———+— ———— — ———— — — ——— — ———— ———— — =— — —l—一 图3接收模块仿真结果 Fig.3 Simulation result for receiving module [2]徐涛.基于PCI的HDLC协议处理器的设计与优化[D].南京: 东南大学,2005. 当接收的串行数据出现帧头“01l11110”时,帧有 效信号被拉高,开始进行串并转换,并将接收数据放入 到接收缓存中,实现数据的存储。 [3]刘岩俊,闫海霞.HDLC通讯协议中CRC的应用[J].电子测量 技术,2010(3):21—23. [4]李晓娟.基于FPGA的HDLC设计实现[J].现代电子技术, 2o07(6):35—37. 3 结束语 r [5]应三丛.基于FPGA的HDLC协议控制器[J].四川大学学报: 自然科学版,2008(40):116—120. 针对某型地面测试设备通信测试卡的技术要求, 文中提出了一种利用FPGA简化HDLC协议控制器的 设计方案,并利用Altera公司的EP2C70F67218芯片来 实现。 (上接第54页) [6]潘松,王国栋.VHDL实用教程[M].成都:电子科技大学出版 社,1999:158—169. [7]徐欣,于红旗,易凡,等.基于FPGA的嵌入式系统设计[M].北 京:机械工业出版社,2005:79—102. 可最大限度地避免返工,促进仪控系统设计、制造、安 供的解决方案。每个测试过程应撰写一份测试报告, 相关的测试过程也可以撰写一份合并的测试报告。 1.7测试问题和处理 装和调试进度;节约资源,降低整个工程的成本。 参考文献 [1]史觊,蒋明瑜,郑健超,等.核电站仪表与控制(I&C)系统数字 化关键技术研究现状[J].测控技术,2004,23(2):29—32. [2]郑明光,张劲舜,沈增耀,等.压水堆核电厂仪表控制与计算机 化的发展概况[J].核技术,2000,23(12):899—903. [3]林诚格,郁祖盛,欧阳予.非能动安全先进核电厂APIO00[M]. 北京:原子能出版社,2008:5—3O. 问题报告和处理对结束测试及对测试结果的确认 是十分重要的。因此,应提供关于问题报告和跟踪的 通用要求,通用要求应根据具体项目写入测试计划中。 当产品与规定的设计、特性、文件说明、规程不一致,项 目质量或活动不能令人满意或不确定时,认为该产品 不合格。测试中记录下与预期测试结果不一致的部 分,并且根据需要在状态审查会议中与设计和测试小 组进行讨论。这些不一致项会变成问题并由合适的解 决方案跟踪处理。 当相关问题记录进跟踪系统并且已确定问题负责 人员时,项目经理可以根据现有资源和相应数据来处 理问题。如果出现的问题妨碍了测试进行或之后的测 [4]李臻.APIO00和EPR仪控系统简介与对比[J].电力科学与工 程,2009,25(1O):74—78. [5]IEEE.1220—1998 IEEE standard for application and management of the systems engineering process[s].Institute of Electrical and Electronics Engineers,Inc,1998. [6]IEEE.829—1998 IEEE stndarad for software test documentation『S1. Institute of Electrical and Electronics Engineers,Inc,1998. [7]US NRC.RG1.170 Software test documentation for diitgal computer software used in safety system of nuclear power 01nt[s].us aNuclear Regulatory Commission,1997. 试阶段,则应尽快解决;仅在问题妨碍测试进行或之后 的测试阶段时才需要进行临时变更,临时进行变更必 须遵循项目配置管理计划。解决问题的具体计划应该 包含在项目13程中,回归测试证明问题已被解决并且 没有新的问题产生。这样完整的测试才算结束。 [8]US NRC.RG1.171 Software unit testing for diigtla computer software used in sfetay system of nuclear power plant[s].US Nuclear Regulatory Commission,1997. [9]ANSI/ASME.N45.2.6 Qualifications of inspection,examination, and testing personnel for the construction phase of nuclear power 2 结束语 在整个核电厂I&C系统的设计、制造、安装和调 试过程中进行相应的测试,可以尽早地发现问题或者 缺陷并改进,提高核电厂仪控系统的可靠性;同时,也 《自动化仪表》第33卷第2期2012年2月 plants[S].American National Standards Institute,1978. [10]Song Fei,Zhang Shuhui.Human factors engineering verification and vlaidation:a case study of a nuclear power plant[c]∥18th International Conference on Nuclear Engineering(ICONE18)May 17—21,2010,Xi’an,China,2010:715—721. 57