专利名称:一种基于fpga的sdlc协议总线通讯测试装置的制作方法
技术领域:
本实用新型涉及通信检测技术领域,具体地说是一种基于FPGA的SDLC协议总线通讯测试装置。
背景技术:
目前,在多点通信系统中,如武器系统、工业集散分布系统和商业POS收款机的联网中一般都采用串行通信,RS-485是一种平衡传输方式的串行接口标准,其特点·是抗干扰能力强,传输速率高,传送距离远。采用双绞线时,它允许的最大传输速率为lOMbit/s,其传送距离为15m,RS-485允许平衡电缆上最多连接32个发送器/接收器对,已在许多方面得到了广泛应用。串行通信常采用的一种协议为同步数据链路控制规程SDLC,这种协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,由于该传输格式中不是以字符而是以二进制位为最小传输单位,故称为“面向比特”的协议。SDLC协议规定,所有信息传输必须以一种标志符开始,且以同一种标志符结束,这个标志符是“01111110”,称为标志域(Flag),从开始标志到结束标志之间构成一个完整的信息单位,称为一巾贞(Frame),所有的信息都是以巾贞的形式传输的,而标志字符提供了每一帧的边界,接收端可以通过搜索“01111110”来确定帧的开始和结束,以此建立帧同步。基于SDLC协议的RS-485串行总线通信是一种比较常见的实现主系统与各个分系统信息交换的通信形式,一般情况下,对这种通信接口的要求主要是高传输率、低误码率、低延迟时间和高可靠性。目前,误码测试已经开发出若干误码检测仪,信号延迟可以由示波器监测,但由于其成本高、体积大,操作复杂,不利于系统集成应用,尤其在对待测单元进行功能测试、老练、温度循环、高低温、随机振动、噪声和运输等试验过程必须将大量测试设备随产品中转,安装操作十分不便。
实用新型内容本实用新型的目的是针对现有技术的不足而设计的一种基于FPGA的SDLC协议总线通讯测试装置,采用FPGA算法测试频率可变的SDLC协议通信的误码率和延迟时间,测试效率高,操作方便,便于系统集成化,具有很强的通用性、灵活性和实用性,并可根据要求自行更改设计内容,满足专用场合的测试。本实用新型的目的是这样实现的一种基于FPGA的SDLC协议总线通讯测试装置,其特点是该测试装置由FPGA测试模块、差分驱动器、差分接收器、连接器、计算机、晶体振荡器和存储器组成,计算机、晶体振荡器和存储器分别接入FPGA测试模块,FPGA测试模块输出与差分驱动器输入连接,差分驱动器输出与连接器一输入端连接,连接器一输出端与差分接收器输入连接,差分接收器输出与FPGA测试模块输入连接,连接器另一输出端与连接器另一输入端设有自检支路连接;计算机向FPGA测试模块发送测试数据,FPGA测试模块将输入数据组成同步数据链路控制序列后输入差分驱动器,差分驱动器将序列信号转为差分信号后接入连接器,连接器将差分信号输出的同时通过自检支路与被测产品的自检信号和测试信号一起接入连接器后输入差分接收器,差分接收器将差分信号转为逻辑信号后接入FPGA测试模块进行协议解码,解码后的数据输入计算机,由计算机通过比对发送数据、自检数据和测试数据计算被测产品的误码率和延迟时间;所述晶体振荡器为FPGA测试模块提供时钟源,存储器为FPGA测试模块提供加载程序。所述FPGA测试模块为设有时钟单元、地址锁存器、地址译码器、控制寄存器、通讯模块和延迟时间测试模块的现场可编程门阵列或可编程逻辑器。所述FPGA测试模块或设随机数模块,由随机数模块代替计算机向FPGA测试模块发送测试数据,并由FPGA测试模块对发出的信号、接收的自检信号和测试信号直接进行逐位比对,计算出误码率后再输入计算机。本实用新型与现有技术相比具有以下有益效果 (一)、体积小、成本低,有利于系统集成化,便于和相关功能测试整合成一套测试系统;(二)、可直接在计算机控制端操作,测试方便,不需误码仪和示波器以及复杂的测试线路搭建;(三)、具有很强的通用性、灵活性和实用性,可根据要求自行更改设计内容,满足专用场合的测试。
图I为本实用新型结构示意图;图2为本实用新型实施例图;图3为实施例工作示意图;图4为FPGA测试模块结构示意图;图5为钟管理模块结构示意图;图6为通讯模块结构示意图;图7为发送模块结构示意图;图8为接收模块结构示意图;图9为延迟时间测试模块工作示意图。
具体实施方式
参阅附图1,本实用新型由FPGA测试模块I、差分驱动器2、差分接收器3、连接器
4、计算机5、晶体振荡器6和存储器7组成,计算机5、晶体振荡器6和存储器7分别接入FPGA测试模块I ;FPGA测试模块I输出端与差分驱动器2输入端连接,差分驱动器2输出与连接器4 一输入端连接,连接器4 一输出端与差分接收器3输入连接,差分接收器3输出与FPGA测试模块I输入连接,连接器4另一输出端与连接器4另一输入端设有自检支路9连接;计算机5向FPGA测试模块I发送测试数据和测试指令,晶体振荡器6为FPGA测试模块I提供时钟源,存储器7为FPGA测试模块I提供加载程序;由计算机5将随机生成的测试数据输入FPGA测试模块1,FPGA测试模块I将输入数据组成同步数据链路控制序列后输入差分驱动器2,差分驱动器2将序列信号转为差分信号后接入连接器4,由连接器4输出差分信号,被测产品的自检信号和测试信号由连接器4接入差分接收器3,差分接收器3将差分信号转为逻辑信号后输入FPGA测试模块I进行协议解码,解码后的数据输入计算机5,由计算机5通过比对发送数据、自检数据和测试数据计算被测产品的误码率和延迟时间。上述FPGA测试模块I或设有随机数模块,由随机数模块代替计算机5向FPGA测试模块I发送测试数据,并由FPGA测试模块I对发出的信号、接收的自检信号和测试信号直接进行逐位比对,计算出误码率后再输入计算机5。以下将通过具体的实施例对本实用新型做进一步的阐述实施例I参阅附图2,将本实用新型的连接器4连接产品的被测模块8,FPGA测试模块I用于信号误码率和延迟时间的测试;存储器7为FPGA测试模块I提供加载程序;晶体振荡器6,为FPGA测试模块I提供时钟源;差分驱动器2用于将FPGA测试模块I输出的SDLC信号转化为差分信号输出;差分接收器3用于将输入的差分信号转化为逻辑信号送FPGA测试模块I处理;计算机5用于向FPGA测试模块I发送测试指令和数据,并从FPGA测试模块I接收数据,进行数据处理。本实用新型是这样进行总线通讯测试参阅附图3,FPGA测试模块I将同步时钟和数据输出接至差分驱动器2的逻辑电平输入端,通过差分驱动器2转换得到的差分时钟和数据通过连接器4接入被测模块8的时钟和数据输入端;同时,连接器4也将转换得到的差分时钟和数据通过自检支路9由连接器4接入差分接收器3,差分接收器3将差分时钟和数据转为逻辑电平信号接入FPGA测试模块I进行自检测试;被测模块8的信号输出端将返回的输入时钟和数据通过连接器4接入差分接收器3,由差分接收器3将差分时钟和数据转为逻辑电平信号接入FPGA测试模块1,FPGA测试模块I将输入的逻辑电平信号进行SDLC协议解码,解码后的数据输入计算机5,由计算机5通过比对发送数据、自检数据和测试数据计算被测产品的误码率和延迟时间。这样上位机可同时对输出时钟数据、自检时钟数据和输入时钟数据进行对比测试验证,可以有效防止由于系统干扰引起误码率误判,提高测试的可靠性。FPGA测试模块I通过实时比较输出和输入信号的上升沿或下降沿延迟,并转换为触发电平,控制内部高速计数器进行计数,计数器总是记录一组测试中的最大值,在读取完计数值后进行清零,通过计数值和计数周期即可计算出信号延迟时间。参阅附图4,FPGA测试模块I采用层次化设计,顶层由时钟单元11、地址锁存器12、地址译码器13、控制寄存器14、通讯模块15和延迟时间测试模块16构成,总线地址信号经控制信号锁存到地址锁存器12,并通过地址译码器13译码,选通各个子模块工作,在读写使能的控制下,从各子模块写入指令或读出数据,控制寄存器14包含对全局状态的控制位,如全局复位、工作状态灯等。参阅附图5,时钟管理模块11为使用FPGA自带的数字时钟管理单元(DCM),由数字频率合成器(DFS) 21、延迟锁相环(DLL) 22和第一计数器23组成,时钟管理模块11为FPGA测试模块I提供工作时钟,同时为SDLC通讯测试提供频率可变时钟;DCM接收晶体振荡器6的32MHz时钟输入,通过数字频率合成器(DFS) 21的七倍频生成224MHz高频时钟,用于延迟时间计数频率;通过延迟锁相环(DLL)22的四分频生成8MHz时钟,用于FPGA正常工作频率,8MHz时钟经第一计数器23再次分频后可变为IMHf 8MHz时钟,用于频率可变的SDLC通讯测试。参阅附图6,通讯测试模块14由发送模块31、自检接收模块32和测试接收模块33组成,通讯测试模块14用于RS485总线误码测试,自检接收模块32用于自检回路的接收测试,测试接收模块33用于被测产品信号的接收测试;地址译码器12选通发送模块31、自检接收模块32或SDLC测试接收模块33进行数据操作,控制寄存器13主要设置SDLC工作频率和控制发送模块31、自检接收模块32、测试接收模块33。参阅附图7,发送模块31由发送状态机40、FIF0读状态机42、第一FIFO存储器43、7E标志状态机44、7E标志发送器45、多路选择器46、第一移位寄存器47、移位状态机48和第一检测状态机49组成。当接收到外部总线启动发送命令后,发送状态机40首先进入帧开始发送状态,通过7E标志状态机44、7E标志发送器45发送开始标志四个“01111110”,多路选择器46将7E标志发送器45接通至输出信号;i7E标志发送器45发完四个“01111110”后,发送状态机40进入数据发送状态;移位状态机48开始协调FIFO读状态机42将FIFO数据读至第一移位寄存器47进行移位输出;多路选择器46将串行数据接通至输出信号;·第一检测状态机49在数据发送状态对移位状态机48进行监测,当发现输出连续五个“I”后,立即通知移位状态机48控制输出数据插“O”;当FIFO数据发送完后,发送状态机40进入帧结束发送状态,7E标志发送器45发送结束标志4个“01111110”,多路选择器46将7E标志发送器45接通至输出信号,当一个发送周期结束后,发送模块31重新回到空闲状态,多路选择器46则处于高阻状态。参阅附图8,自检接收模块32和自检测试模块33为功能结构完全相同的接收模块,接收模块由第二计数器52、第三计数器53、接收状态机54、第二检测状态机55、第二FIFO存储器56、第二移位寄存器57、第三移位寄存器58组成,第三移位寄存器58在外部时钟的作用下接收外部串行信号,接收状态机54监测第三移位寄存器58,当接收到四个“01111110”帧开始标志后,接收状态机54转入数据接收,当再次出现连续四个“01111110”帧结束标志后,接收状态机54回到空闲态。第三计数器53对第三移位寄存器58接到的比特数进行计数,当接收状态机54接收到第一个“01111110”时,计数复位,并在每计满一个字节后,判断是否为“01111110”标志,保证四个7E标志的连续性,在接收数据时,当发现输入连续五个“I”后的“O”时,第三计数器53停止一个时钟;第二检测状态机55在数据接收状态对即将送入第二移位寄存器57的位,即第三移位寄存器58的进行监测,当发现连续五个“I”后的“O”时,通知第二移位寄存器57、第二计数器52和第三计数器53 ;当处于数据接收状态时,第二移位寄存器57在外部时钟的作用下,接收第三移位寄存器58串行数据,在遇到五个“I”后的“O”时,停止移位丢弃“O”信号;第二计数器52对第二移位寄存器57接收的比特数进行计数,当收到删“O”信号时,第二计数器52停止I个时钟。第二FIFO存储器56接收第二移位寄存器57的数据,当第二计数器52计满I个字节后就输出一个读时钟,将第二移位寄存器57的数据读入到“FIFO”中。参阅附图9,延迟时间测试模块16由4组延迟计数子模块组成,分别用于时钟延迟、数据延迟、时钟自检延迟和数据自检延迟,延迟计数子模块由异或门、临时计数器、上升沿计数器和下降沿计数器构成,输出信号和从连接器4返回的自检信号或从被测模块8返回的输入信号经过异或门进行比较,当输出和输入信号出现延迟时,异或门输出为“I”(延迟脉冲);临时计数器由DCM提供224MHz时钟,其使能端接异或门输出的延迟脉冲信号,当延迟脉冲信号为“I”时,启动计数,当延迟消失时,停止计数。此时的计数值即为当前信号的延迟值,经周期换算后可得延迟时间。延迟脉冲消失后将判断输出信号电平,若为高电平,则计数为上升沿延迟,否则为下降沿延迟,临时计数器将与上升沿计数器或下降沿计数器进行比较,总是将较大值更新到上升沿计数器或下降沿计数器中。上述实施例只给出一组SDLC协议测试通道,本实用新型可以包括差分输出、自检和输入时钟数据的多组信号的通信测试,便于自行更改设计内容和其它测试功能集成化构建测试系统平台,以更好满足专用场合的测试。上述的测试数据可以由在FPGA内建立随机数生成模块来代替计算机5随机数下发给FPGA测试模块I,接收到的自检信号和测试信号,可由FPGA测试模块I直接进行逐位比对,计算出误码率,再传给计算机5 ;计算机5为符合IBM PC标准或嵌入式系统的具有程序控制和交互功能的智能系统;所述FPGA生成的SDLC协议序列,只对帧中的信息进行逐位比对,并不关心其中的帧校验域,因此未给出校验帧生成模块,可加入校验帧生成模块,生成完全符合SDLC协议的帧序列;所述FPGA生成32字节的SDLC协议序列,也可为其它字节 长度的SDLC协议序列;所述FPGA输入时钟为32MHz,也可为其它频率,通过倍频到224MHz,也可倍频到其它频率,分频后的SDLC时钟为f 8MHz,也可分频为其它频率。以上只是对本实用新型作进一步的说明,并非用以限制本专利,凡为本实用新型等效实施,均应包含于本专利的权利要求范围之内。
权利要求1.一种基于FPGA的SDLC协议总线通讯测试装置,其特征在于该测试装置由FPGA测试模块(I)、差分驱动器(2)、差分接收器(3)、连接器(4)、计算机(5)、晶体振荡器(6)和存储器(7 )组成,计算机(5 )、晶体振荡器(6 )和存储器(7 )分别接入FPGA测试模块(I),FPGA测试模块(I)输出与差分驱动器(2)输入连接,差分驱动器(2)输出与连接器(4) 一输入端连接,连接器(4) 一输出端与差分接收器(3)输入连接,差分接收器(3)输出与FPGA测试模块(I)输入连接,连接器(4)另一输出端与连接器(4)另一输入端设有自检支路(9 )连接;计算机(5 )向FPGA测试模块(I)发送测试数据,FPGA测试模块(I)将输入数据组成同步数据链路控制序列后输入差分驱动器(2),差分驱动器(2)将序列信号转为差分信号后接入连接器(4),连接器(4)将差分信号输出的同时通过自检支路(9)与被测产品的自检信号和测试信号一起接入连接器(4)后输入差分接收器(3),差分接收器(3)将差分信号转为逻辑信号后接入FPGA测试模块(I)进行协议解码,解码后的数据输入计算机(5 ),由计算机(5 )通过比对发送数据、自检数据和测试数据计算被测产品的误码率和延迟时间;所述晶体振荡器(6)为FPGA测试模块(I)提供时钟源,存储器(7)为FPGA测试模块(I)提供加载程序。
2.根据权利要求I所述基于FPGA的SDLC协议总线通讯测试装置,其特征在于所述FPGA测试模块(I)为设有时钟单元(11 )、地址锁存器(12 )、地址译码器(13 )、控制寄存器(14)、通讯模块(15)和延迟时间测试模块(16)的现场可编程门阵列或可编程逻辑器。
专利摘要本实用新型公开了一种基于FPGA的SDLC协议总线通讯测试装置,其特点是该测试装置由FPGA测试模块、差分驱动器、差分接收器、连接器、计算机、晶体振荡器和存储器组成,计算机将测试数据输入FPGA测试模块后组成SDLC序列输入差分驱动器,差分驱动器转化为差分信号后输入连接器,连接器将自检和被测产品的测试信号输入差分接收器,差分接收器转化为逻辑信号后输入FPGA测试模块进行SDLC协议解码,由计算机计算被测产品的误码率和延迟时间。本实用新型与现有技术相比具有测试效率高,操作方便,便于系统集成化,可根据要求自行更改设计内容,满足专用场合的测试。
文档编号H04L12/26GK202696632SQ201220103808
公开日2013年1月23日 申请日期2012年3月20日 优先权日2012年3月20日
发明者郝斌魁, 孔令涛 申请人:上海航天科工电器研究院有限公司