CN112732511B - 一种基于hdlc协议高性能高速同步422仿真器板卡 - Google Patents

一种基于hdlc协议高性能高速同步422仿真器板卡 Download PDF

Info

Publication number
CN112732511B
CN112732511B CN202110051272.4A CN202110051272A CN112732511B CN 112732511 B CN112732511 B CN 112732511B CN 202110051272 A CN202110051272 A CN 202110051272A CN 112732511 B CN112732511 B CN 112732511B
Authority
CN
China
Prior art keywords
data
hdlc
board card
function
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110051272.4A
Other languages
English (en)
Other versions
CN112732511A (zh
Inventor
汪静
倪启明
常贵阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Leilong Technology Development Co ltd
Original Assignee
Shanghai Leilong Technology Development Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Leilong Technology Development Co ltd filed Critical Shanghai Leilong Technology Development Co ltd
Priority to CN202110051272.4A priority Critical patent/CN112732511B/zh
Publication of CN112732511A publication Critical patent/CN112732511A/zh
Application granted granted Critical
Publication of CN112732511B publication Critical patent/CN112732511B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及仿真器的技术领域,特别是涉及一种基于HDLC协议高性能高速同步422仿真器板卡,由HDLC协议模块、UART协议模块、收发接口电路、PXI桥接总线模块、HDLC功能模块和CRC校验模块组成。

Description

一种基于HDLC协议高性能高速同步422仿真器板卡
技术领域
本发明涉及仿真器的技术领域,特别是涉及一种基于HDLC协议高性能高速同步422仿真器板卡。
背景技术
当前,HDLC的ASIC芯片有Motorola公司的MC92460、ST公司的MK5025、Zarlink公司的MT8952B等。这些集成电路使用简易,功能针对性强,性能可靠,适合应用于特定用途的大批量产品中。但由于HDLC标准的文本较多,ASIC芯片出于专用性的目的难以通用于不同版本,缺乏应用灵活性。例如CCITT、ANSI、ISO/IEC等都有各种版本的HDLC标准,有的芯片公司还有自己的标准,对HDLC的CRC(Cyclical Redundancy Check,循环冗余码校验)序列生成多项式等有不同的规定。况且,专用于HDLC的ASIC芯片其片内数据存储器容量有限,通常只有不多字节的FIFO(先进先出存储器)可用。对于某些应用来说,当需要扩大数据缓存的容量时,只能对ASIC芯片再外接存储器或其它电路,ASIC的简单易用性就被抵销掉了。HDLC的软件编程方法功能灵活,通过修改程序就可以适用于不同的HDLC应用。但程序运行占用处理器资源多,执行速度慢,对信号的时延和同步性不易预测。对于多路信号的HDLC应用,处理器的资源占用率与处理路数成正比,所以软件HDLC一般只能用于个别路数的低速信号处理。
FPGA(Field Programmable Gate Array,现场可编程门阵列)采用硬件技术处理信号,又可以通过软件反复编程使用,能够兼顾速度和灵活性,并能并行处理多路信号,实时性能能够预测和仿真。FPGA芯片虽成本略微高于ASIC芯片,但具有货源畅通、可多次编程使用等优点。目前FPGA单片所含的逻辑门和片上存储器的容量越做越大,百万门级的可编程逻辑芯片已成为寻常产品。在中小批量通信产品的设计生产中,用FPGA实现HDLC功能是一种值得采用的方法。正是有鉴于此,Innocor、Xilinx等公司推出了能在FPGA中实现HDLC功能的IPCore(Intellectual Property Core,知识产权核),但这些IPCore需要付费购买许可(License)才能使用,且在应用中受到各种限制。
发明内容
为解决上述技术问题,本发明提供一种基于HDLC协议高性能高速同步422仿真器板卡。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,由HDLC协议模块、UART协议模块、收发接口电路、PXI桥接总线模块、HDLC功能模块和CRC校验模块组成;
HDLC协议模块:
发送模块:产生本路HDLC数据发送时钟;锁存写入的发送数据并按指定时序启动发送;在发送数据段前加上"7E"起始标志;对发送数据逐位做CRC计算并将计算结果附在发送数据之后;对包括CRC计算值在内的数据进行"插零"操作并附上"7E"结束标志把结果输出;
接收模块:产生与本路HDLC接收数据时钟同步的FPGA工作时钟;在接收的数据流中检测有无"7E"标志;当检测到数据流中有"1F"信号时,对数据进行"删零"操作;对经"删零"后的数据进行CRC校验;把接收到的数据存入FPGA内部RAM中;当接收到结束标志后,检查CRC校验值是否正确;
采集模块:对总线上的数据进行实时采集,并将数据锁存到FPGA内部RAM中,由上位机进行读取;
UART协议模块:
UART数据流的一个字符中的每一位意义如下:
■起始位:先发出一个逻辑“0”的信号,表示传输字符的开始;
■数据位:紧跟起始位之后,数据位的个数是4或5或6或7或8,构成一个字符,采用ASCII码,从最低位开始传送,靠时钟来定位;
■奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性;
停止位:它是一个字符数据的结束标志,是1位或1.5位或2位的高电平,空闲位:处于逻辑“1”状态,表示当前线路上没有数据的传送,波特率:是衡量数据传输速率的指针,表示为每秒钟传送的二进制位数(bit数);
收发接口电路:
由两个高速半双工收发器ISL3259E组成;
PXI桥接总线模块:
采用PXI9054芯片;
HDLC功能模块:
HDLC规定采用“零比特填充法”使一帧中两个字段之间不会出现6个连续1;
CRC校验模块:
由16个带使能端的D触发器组成,按照x16+x12+x5+1的生成多项式进行16位CRC计算。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,所述HDLC规定采用“零比特填充法”使一帧中两个字段之间不会出现6个连续1具体做法如下:发送数据时,先进行帧数据扫描,只要发现有连续的5个1,则立即插入一个0,以此保证数据中不会出现连续6个1;接收数据时,先找到3E字段以确定帧的边界,接着对其后的比特流进行扫描,每发现5个连续1就将其后的0删除,以此保证所传比特流中不出现帧标志,直到帧尾标志出现,从而实现HDLC在链路层的“透明传输”,保证发送端可以发送任意组合的比特流信息,而接收端都能准确无误地接收到。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,所述板卡结构尺寸符合PXI板卡规范,占用一个PXI机箱槽位。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,所述CRC校验模块:
a.如果要改变CRC的位数,改变D触发器的数量;
b.如果要改变CRC生成多项式,将多项式中非零系数项对应的D触发器的输出与d1信号"异或"后送至下一个D触发器的输入;
c.通过给D触发器的PRN端或CLRN端置"0",改变CRC计算的初始值。
与现有技术相比本发明的有益效果为:由本发明所述的板卡制取的同步422仿真器采用FPGA实现HDLC协议和UART协议,具有8通道422总线收发功能,每通道可工作在同步422模块或异步422模式下,每通道可独立配置成发送通道或接收通道;所有通道皆具备总线数据采集功能,同步422仿真器采用PXI总线接口,实现高速数据传输;同步422仿真器同时预留有一路RS232调试接口,调试接口可输出各通道的数据收发状态,可以作为判断故障的依据。
附图说明
图1是HDLC协议模块结构示意图;
图2是UART协议模块结构示意图;
图3是收发接口结构示意图;
图4是HDLC模块总体框图;
图5是发送控制状态机;
图6是接收控制状态机;
图7是FPGA实现CRC原理图;
图8是Windriver开发框架图;
图9是PXI板卡驱动执行流程图;
图10是DEMO软件流程图;
图11是同步422仿真器原理图;
图12是FPGA核心模块采用FPGA实现HDLC协议和UART协议图;
图13是FPGA配置模块图;
图14是PXI桥接总线模块图;
图15是采集模块图;
图16是发送模块和接收模块图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,由HDLC协议模块、UART协议模块、收发接口电路、PXI桥接总线模块、HDLC功能模块和CRC校验模块组成,如图12-图16所示;
HDLC协议模块,如图1所示:
发送模块:产生本路HDLC数据发送时钟;锁存写入的发送数据并按指定时序启动发送;在发送数据段前加上"7E"起始标志;对发送数据逐位做CRC计算并将计算结果附在发送数据之后;对包括CRC计算值在内的数据进行"插零"操作并附上"7E"结束标志把结果输出;
接收模块:产生与本路HDLC接收数据时钟同步的FPGA工作时钟;在接收的数据流中检测有无"7E"标志;当检测到数据流中有"1F"信号时,对数据进行"删零"操作;对经"删零"后的数据进行CRC校验;把接收到的数据存入FPGA内部RAM中;当接收到结束标志后,检查CRC校验值是否正确;
采集模块:对总线上的数据进行实时采集,并将数据锁存到FPGA内部RAM中,由上位机进行读取;
UART协议模块,如图2所示:
UART(UniversalAsynchronousReceiver/Transmitter)即通用异步收发传输器,工作于数据链路层(协议层之一),包含了RS-232、RS-422、RS-485串口通信和红外(IrDA)等等,UART协议作为一种低速通信协议,广泛应用于通信领域等各种场合,UART基本可分为并口通信及串口通信两种,异步串口通信协议,工作原理是将传输数据的每个字符以串行方式一位接一位的传输;
UART数据流的一个字符中的每一位意义如下:
■起始位:先发出一个逻辑“0”的信号,表示传输字符的开始;
■数据位:紧跟起始位之后,数据位的个数可以是4、5、6、7、8等,构成一个字符,通常采用ASCII码,从最低位开始传送,靠时钟来定位;
■奇偶校验位:数据位加上这一位后(跟在数据位尾部),使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性;
停止位:它是一个字符数据的结束标志,可以是1位、1.5位、2位的高电平(逻辑“1”),空闲位:处于逻辑“1”状态,表示当前线路上没有数据的传送,波特率:是衡量数据传输速率的指针,表示为每秒钟传送的二进制位数(bit数);
收发接口电路,如图3所示:
收发接口中RO具有两个功能,一是作为总线接收接口,二是作为数据采集输入;时钟信号具有双向切换能力,可适应内部时钟和外部时钟两种工作方式;
由两个高速半双工收发器ISL3259E组成;ISL3259E性能如下:
■IEC61000 ESD Protection on RS-485 I/O Pins:±15kV
■Class 3 HBM ESD Level on all Other Pins:>9kV
■Large Differential VOUT:2.8V into 54Ω
■Better Noise Immunity,or Drive up to 6 Terminations
■Very High Data Rate:up to 100Mbps
■11/13ns(Max)Tx/Rx Propagation Delays;1.5ns(Max)Skew
■1/5Unit Load Allows up to 160Devices on the Bus
■Full Fail-Safe(Open,Shorted,Terminated/Undriven)Receiver
■High Rx IOL to Drive Opto-Couplers for Isolated Applications
■Hot Plug-Tx and Rx Outputs Remain Three-State During Power-Up
■Low Quiescent Supply Current:4mA
■Low Current Shutdown Mode:1μA
■-7V to+12V Common Mode Input Voltage Range
■Three-State Rx and Tx Outputs
■Operates from a Single+5V Supply
Current Limiting and Thermal Shutdown for Driver Overload Protection;
PXI桥接总线模块:
采用PXI9054芯片;PXI9054是由美国PLX公司生产的先进的PXI I/O加速器,采用了先进的PLX数据流水线结构技术,是32位、33MHz的PXI总线主I/O加速器;符合PXI本地总线规范2.2版,突发传输速率达到132MB/s,本地总线支持复用/非复用的32位地址/数据;有M、C、J三种模式;针对不同的处理器及局总线特性可选,尽量减少中间逻辑;具有可选的串行E2PROM接口,本地总线时钟可和PXI时钟异步;PC9054内部有6种可编程的FIFO,以实现零等待突发传输及本地总线和PXI总线之间的异步操作;支持主模式、从模式、DMA传输方式,因其强大的功能可应用于适配卡和嵌入式系统中;
HDLC功能模块,如图4所示:
HDLC规定采用“零比特填充法”使一帧中两个字段之间不会出现6个连续1;
CRC校验模块,其电路图如图7所示:
由16个带使能端的D触发器组成,按照x16+x12+x5+1的生成多项式进行16位CRC计算。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,所述“HDLC规定采用“零比特填充法”使一帧中两个字段之间不会出现6个连续1”具体做法如下:发送数据时,先进行帧数据扫描,只要发现有连续的5个1,则立即插入一个0,以此保证数据中不会出现连续6个1;接收数据时,先找到3E字段以确定帧的边界,接着对其后的比特流进行扫描,每发现5个连续1就将其后的0删除,以此保证所传比特流中不出现帧标志,直到帧尾标志出现,从而实现HDLC在链路层的“透明传输”,保证发送端可以发送任意组合的比特流信息,而接收端都能准确无误地接收到;
发送控制状态机和接收控制状态机分别如图5、图6所示;发送数据时,发送状态机首先判断写FIFO是否有数据,若有数据,则插入帧头,依次读取FIFO数据,完成插“0”操作和插帧尾操作,并按照从低到高的顺序发送数据,直至写FIFO为空;接收数据时,首先搜索帧头,为了防止接收到连续两个标志字而把后一个标志字误认为是数据,设置搜索数据状态(Data_find),若不是标志字,则作为数据进行去“0”操作,完成串并转换和帧尾检测,并将接收到的数据以32bit为单位,逐次写入读FIFO中;当一帧传输结束,采用中断信号通知上位机及时读取数据;一旦检测到丢弃序列(0x7F),则结束对此帧数据的处理,并清空读FIFO里的数据,同时上报PC机错误信息,请求发送方重新发送数据。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,所述板卡结构尺寸符合PXI板卡规范,占用一个PXI机箱槽位。
本发明的一种基于HDLC协议高性能高速同步422仿真器板卡,所述CRC校验模块:
d.如果要改变CRC的位数,改变D触发器的数量;
e.如果要改变CRC生成多项式,将多项式中非零系数项对应的D触发器的输出与d1信号"异或"后送至下一个D触发器的输入;
f.通过给D触发器的PRN端或CLRN端置"0",改变CRC计算的初始值。
上述板卡由以下驱动软件进行驱动执行:
驱动软件:使用WindDriver来开发winxp及win7的驱动程序:
WinDriver的体系架构分为两种模式:用户模式和核心模式。对硬件进行操作时,开发者调用用户模式的库函数,用户模式的库函数再调用核心模式完成对硬件的最终访问;其与硬件模板、用户驱动程序、用户应用程序之间的关系即体系结构如图8所示;
在本发明中使用WINDriver开发基于PXI9054的同步422板卡驱动程序,当插卡设计好插入PXI插槽或上电后,PXI总线配置机构会自动根据PXI设备即该卡的要求实现配置;
总线支持内存读写,I/O端口读写、中断机制和DMA功能,在该卡的驱动程序中,需要处理PXI设备的内存、端口的读写、中断处理和DMA数据传输,实现PXI设备的功能,因此,该卡的功能驱动程序是标准的WDM设备驱动程序,开发的执行流程如图9所示;
WDOpen():打开面向WinDriver内核模式的句柄。该句柄将被所有的WinDriverAPIs所用,因而也将第一个被调用。
WDVersion():获取当前WinDriver内核模式运行的版本信息。
WDPXIScanCards():检测插在PXI总线上符合输入标准(制造商ID或板卡ID)的PXI设备,返回所检测到的设备的编号和所在位置(包括总线号、插槽号和相应的功能号)。
WDPXIGetCardInfo():获取PXI设备的资源信息(包括存储区范围、I/O空间范围、中断号等)。
WDPXIConfigDump():向/从所选的PXI卡的PXI配置空间进行读/写。
WDCardRegister():负责选定设备,并对该设备的项目注册和资源分配:映射设备的物理空间,使之能够被核心模式的进程和用户模式的应用程序所访问;检测I/O和内存资源是否注册过;将有关中断请求号和中断类型(边缘触发或电平触发)存储到WinDriver自定义的数据结构中。
驱动程序接口函数按ANSICC标准编写,以动态链接库DLL形式提供给用户:
适用编程开发工具:
Visual C++;
Visual Basic;
C++Builder;
LabVIEW;
CVI;
板卡的驱动函数库设计需要频繁地对物理地址进行读写操作,如果板卡的使用者对板卡的硬件组成及工作原理不是非常熟悉,则难以熟练地使用该板卡;在现在使用广泛的操作系统Windows XP/Windows 7下,用户没有直接操作物理地址的权限,如果要直接操作系统的物理地址,则有可能造成系统的崩溃;因此,将板卡工作中的每个独立过程以函数的形式封装成一个函数库,将接口函数(API)提供给用户可以减少用户开发应用程序的周期,提高程序的可靠性,还能让不了解板卡硬件组成原理的用户更方便的使用该板卡;
驱动函数功能:
a)设备打开(HDLC_Open)
函数原型:DLL BOOL__stdcall HDLC_Open(HANDLE*phSYNC422,BYTECardId);
函数功能:找板卡、分配板卡资源
参数说明:phSYNC422:板卡的句柄
CardId:板卡编号
返回值:可找到板卡且板止资源分配成功,返回值为真;否则为假。
b)设备关闭(HDLC_Close)
函数原型:DLL BOOL__stdcall HDLC_Close(HANDLE*phSYNC422);
函数功能:关闭板卡,释放板卡资源
参数说明:phSYNC422:板卡的句柄
返回值:若板卡关闭成功,返回值为真;否则为假。
c)通道同步/异步配置函数(HDLC_SetSync)
函数原型:DLL BOOL__stdcall HDLC_SetSync(HANDLE*phSYNC422,BYTE ch,BYTEsync,BYTE isInteral);
函数功能:配置板卡同步/异步模式,以及内部同步时钟/外部同部时钟
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
sync:等于1时同步,等于0时异步
isInteral:等于1为内部时钟,等于0为外部时钟
返回值:板卡配置成功,返回值为真,否则为假。
d)通道发送/接收配置函数(HDLC_ChConfig)
函数原型:DLL BOOL__stdcall HDLC_ChConfig(HANDLE*phSYNC422,BYTE ch,BYTE isRcv);
函数功能:配置板卡通道收发
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
isRcv:等于1为接收,等于0为发送
返回值:板卡通道配置成功,返回值为真,否则为假。
e)接口速率配置函数(HDLC_BaudRateConfig)
函数原型:DLL BOOL__stdcall HDLC_BaudRateConfig(HANDLE*phSYNC422,BYTEch WORD baudRate);
函数功能:配置板卡波特率
参数说明:phSYNC422:板卡的句柄
ch:目标通道号,等于-1时设置所有通道
baudRate:设置波特率
返回值:板卡配置成功,返回值为真,否则为假;
f)发送数据函数(HDLC_Send)
函数原型:DLL WORD__stdcall HDLC_Send(HANDLE*phSYNC422,BYTE ch,BYTE*data,WORD length);
函数功能:数据发送
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
data:发送数据指针
length:发送数据长度
返回值:为实际发送的数据长度。
g)接收数据函数HDLC_Receive
函数原型:DLL WORD__stdcall HDLC_Receive(HANDLE*phSYNC422,BYTE ch,BYTE*data,WORD length);
函数功能:数据接收
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
data:接收数据指针
length:接收数据长度
返回值:为实际接收的数据长度。
串口调试软件:
具备全功能的通道调试工具;
串口调试软件功能如下:
1)接收从串口进来的数据并在窗口显示.显示流畅,可以保持接收大量数据不死机.
2)所接收到的数据数据显示方式可以选择为字符方式或者HEX方式
3)中文显示无乱码,且不影响速度
4)串口波特率可以选择为110bps-10Mbps.
5)可以即时显示存在的串口号,串口号也会在列表中出现.
6)可以选择“5、6、7、8”四种数据长度.
7)可以选择为“1、1.5、2”三种停止位.(1.5停止位需要硬件支持)
8)可以自由选择校验方式.
9)可以自由选择流控方式.(某些计算机不能选择硬流控)
10)串口设置和字符串操作等设置在程序关闭时自动保存,打开时自动载入.
11)可以在接收窗口按键即发送该键值.
12)可以在字符串输入框输入您想发送的字符串,并发送.
13)可以在字符串输入框输入您想发送的HEX数据串,数据的值从00到FF,没有任何限制.
14)可以定时重复发送数据,并可以设置发送时间间隔.
15)可以在发送字符串时选择发送新行,即自动加上回车换行.
16)可以显示当前串口的CTS、DSR、RLSL(CD)信号线的状态.
17)可以自由控制当前串口的DTR、RTS信号线的输出状态.
18)可以打开一个文本文件或者一个二进制文件预览其内容,查看方式可以是文本或者HEX方式.
19)可以打开一个文本文件或者一个二进制文件并以当前波特率发送到串口.
20)可以保存串口接收到的内容到文件,文件名取自当前时间,保存在当前目录.
21)可以即时显示发送的字节数和接收到的字节数,按清除窗口将会清零.
22)带有功能强大的扩展功能:多条字符串发送预先定义,并自动保存.
23)可以定义最多32条预备发送的字符串,每条字符串可以定义为HEX数据串或者字符串方式.在每一条数据的左边打勾就表示这是一条hex数据串.
24)点击字符串右边的标号即可以发送这条定义好的字符串.
25)可以设置为循环发送你定义过的多条字符串,并且可以设置发送时间间隔.
26)可以同时打开多次软件,进行不同的串口的调试.
27)发送字符串时选择'发送新行',可以加发回车换行.
DEMO软件流程图,如图10所示。
如图11所示,由上述板卡制取的同步422仿真器采用FPGA实现HDLC协议和UART协议,具有8通道422总线收发功能,每通道可工作在同步422模块或异步422模式下,每通道可独立配置成发送通道或接收通道;所有通道皆具备总线数据采集功能,同步422仿真器采用PXI总线接口,实现高速数据传输;同步422仿真器同时预留有一路RS232调试接口,调试接口可输出各通道的数据收发状态,可以作为判断故障的依据。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。

Claims (4)

1.一种基于HDLC协议高性能高速同步422仿真器板卡,其特征在于,由HDLC协议模块、UART协议模块、收发接口电路、PXI桥接总线模块、HDLC功能模块和CRC校验模块组成;
HDLC协议模块:
发送模块:产生本路HDLC数据发送时钟;锁存写入的发送数据并按指定时序启动发送;在发送数据段前加上"7E"起始标志;对发送数据逐位做CRC计算并将计算结果附在发送数据之后;对包括CRC计算值在内的数据进行"插零"操作并附上"7E"结束标志把结果输出;
接收模块:产生与本路HDLC接收数据时钟同步的FPGA工作时钟;在接收的数据流中检测有无"7E"标志;当检测到数据流中有"1F"信号时,对数据进行"删零"操作;对经"删零"后的数据进行CRC校验;把接收到的数据存入FPGA内部RAM中;当接收到结束标志后,检查CRC校验值是否正确;
采集模块:对总线上的数据进行实时采集,并将数据锁存到FPGA内部RAM中,由上位机进行读取;
UART协议模块:
UART数据流的一个字符中的每一位意义如下:
■起始位:先发出一个逻辑“0”的信号,表示传输字符的开始;
■数据位:紧跟起始位之后,数据位的个数是4或5或6或7或8,构成一个字符,采用ASCII码,从最低位开始传送,靠时钟来定位;
■奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性;
停止位:它是一个字符数据的结束标志,是1位或1.5位或2位的高电平,空闲位:处于逻辑“1”状态,表示当前线路上没有数据的传送,波特率:是衡量数据传输速率的指针,表示为每秒钟传送的二进制位数(bit数);
收发接口电路:
由两个高速半双工收发器ISL3259E组成;
PXI桥接总线模块:
采用PXI9054芯片;
HDLC功能模块:
HDLC规定采用“零比特填充法”使一帧中两个字段之间不会出现6个连续1;
CRC校验模块:
由16个带使能端的D触发器组成,按照x16+x12+x5+1的生成多项式进行16位CRC计算;
将板卡工作中的每个独立过程以函数的形式封装成一个函数库,将接口函数(API)提供给用户可以减少用户开发应用程序的周期,提高程序的可靠性,还能让不了解板卡硬件组成原理的用户更方便的使用该板卡;
驱动函数功能:
a)设备打开(HDLC_Open)
函数原型:DLL BOOL__stdcall HDLC_Open(HANDLE*phSYNC422,BYTE CardId);
函数功能:找板卡、分配板卡资源
参数说明:phSYNC422:板卡的句柄
CardId:板卡编号
返回值:可找到板卡且板止资源分配成功,返回值为真;否则为假;
b)设备关闭(HDLC_Close)
函数原型:DLL BOOL__stdcall HDLC_Close(HANDLE*phSYNC422);
函数功能:关闭板卡,释放板卡资源
参数说明:phSYNC422:板卡的句柄
返回值:若板卡关闭成功,返回值为真;否则为假;
c)通道同步/异步配置函数(HDLC_SetSync)
函数原型:DLL BOOL__stdcall HDLC_SetSync(HANDLE*phSYNC422,BYTE ch,BYTEsync,BYTE isInteral);
函数功能:配置板卡同步/异步模式,以及内部同步时钟/外部同部时钟
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
sync:等于1时同步,等于0时异步
isInteral:等于1为内部时钟,等于0为外部时钟
返回值:板卡配置成功,返回值为真,否则为假;
d)通道发送/接收配置函数(HDLC_ChConfig)
函数原型:DLL BOOL__stdcall HDLC_ChConfig(HANDLE*phSYNC422,BYTE ch,BYTEisRcv);
函数功能:配置板卡通道收发
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
isRcv:等于1为接收,等于0为发送
返回值:板卡通道配置成功,返回值为真,否则为假;
e)接口速率配置函数(HDLC_BaudRateConfig)
函数原型:DLL BOOL__stdcall HDLC_BaudRateConfig(HANDLE*phSYNC422,BYTE chWORD baudRate);
函数功能:配置板卡波特率
参数说明:phSYNC422:板卡的句柄
ch:目标通道号,等于-1时设置所有通道
baudRate:设置波特率
返回值:板卡配置成功,返回值为真,否则为假;
f)发送数据函数(HDLC_Send)
函数原型:DLL WORD__stdcall HDLC_Send(HANDLE*phSYNC422,BYTE ch,BYTE*data,WORD length);
函数功能:数据发送
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
data:发送数据指针
length:发送数据长度
返回值:为实际发送的数据长度;
g)接收数据函数HDLC_Receive
函数原型:DLL WORD__stdcall HDLC_Receive(HANDLE*phSYNC422,BYTE ch,BYTE*data,WORD length);
函数功能:数据接收
参数说明:phSYNC422:板卡的句柄
ch:目标通道号
data:接收数据指针
length:接收数据长度
返回值:为实际接收的数据长度。
2.如权利要求1所述的一种基于HDLC协议高性能高速同步422仿真器板卡,其特征在于,所述HDLC规定采用“零比特填充法”使一帧中两个字段之间不会出现6个连续1具体做法如下:发送数据时,先进行帧数据扫描,只要发现有连续的5个1,则立即插入一个0,以此保证数据中不会出现连续6个1;接收数据时,先找到3E字段以确定帧的边界,接着对其后的比特流进行扫描,每发现5个连续1就将其后的0删除,以此保证所传比特流中不出现帧标志,直到帧尾标志出现,从而实现HDLC在链路层的“透明传输”,保证发送端可以发送任意组合的比特流信息,而接收端都能准确无误地接收到。
3.如权利要求1所述的一种基于HDLC协议高性能高速同步422仿真器板卡,其特征在于,所述板卡结构尺寸符合PXI板卡规范,占用一个PXI机箱槽位。
4.如权利要求1所述的一种基于HDLC协议高性能高速同步422仿真器板卡,其特征在于,所述CRC校验模块:
a.如果要改变CRC的位数,改变D触发器的数量;
b.如果要改变CRC生成多项式,将多项式中非零系数项对应的D触发器的输出与d1信号"异或"后送至下一个D触发器的输入;
c.通过给D触发器的PRN端或CLRN端置"0",改变CRC计算的初始值。
CN202110051272.4A 2021-01-14 2021-01-14 一种基于hdlc协议高性能高速同步422仿真器板卡 Active CN112732511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110051272.4A CN112732511B (zh) 2021-01-14 2021-01-14 一种基于hdlc协议高性能高速同步422仿真器板卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110051272.4A CN112732511B (zh) 2021-01-14 2021-01-14 一种基于hdlc协议高性能高速同步422仿真器板卡

Publications (2)

Publication Number Publication Date
CN112732511A CN112732511A (zh) 2021-04-30
CN112732511B true CN112732511B (zh) 2022-10-25

Family

ID=75593184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110051272.4A Active CN112732511B (zh) 2021-01-14 2021-01-14 一种基于hdlc协议高性能高速同步422仿真器板卡

Country Status (1)

Country Link
CN (1) CN112732511B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114615104B (zh) * 2022-03-14 2023-11-28 鹍骐科技(北京)股份有限公司 一种基于国产化fpga实现的智能串口通讯方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101223700A (zh) * 2005-07-13 2008-07-16 密克罗奇普技术公司 用于配置循环冗余校验(crc)产生电路以对数据流执行crc的方法和设备
CN101510780A (zh) * 2009-03-31 2009-08-19 炬力集成电路设计有限公司 一种循环冗余校验码生成装置及其构建、生成校验码的方法
WO2010074872A1 (en) * 2008-12-23 2010-07-01 Transwitch Corporation System-on-a-chip and multi-chip systems supporting advanced telecommunications and other data processing applications
CN106940687A (zh) * 2017-04-06 2017-07-11 上海航天测控通信研究所 一种低成本高性能空间用计算机

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007096712A1 (en) * 2006-02-20 2007-08-30 Freescale Semiconductor, Inc. A method and device for exchanging data using a virtual fifo data structure
US8458364B2 (en) * 2006-08-02 2013-06-04 Freescale Semiconductor, Inc. Method for receiving and processing frames and a device having frame receiving and processing capabilities
DE102017211860B3 (de) * 2017-07-11 2018-09-20 Volkswagen Aktiengesellschaft Verfahren zur Übertragung von Daten über einen seriellen Kommunikationsbus, entsprechend ausgelegte Busschnittstelle sowie entsprechend ausgelegtes Computerprogramm

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101223700A (zh) * 2005-07-13 2008-07-16 密克罗奇普技术公司 用于配置循环冗余校验(crc)产生电路以对数据流执行crc的方法和设备
WO2010074872A1 (en) * 2008-12-23 2010-07-01 Transwitch Corporation System-on-a-chip and multi-chip systems supporting advanced telecommunications and other data processing applications
CN101510780A (zh) * 2009-03-31 2009-08-19 炬力集成电路设计有限公司 一种循环冗余校验码生成装置及其构建、生成校验码的方法
CN106940687A (zh) * 2017-04-06 2017-07-11 上海航天测控通信研究所 一种低成本高性能空间用计算机

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"STM32F4xx利用DMA实现异步多串口高速通信设计";孙景龙等;《科技技术创新》;20130930(第27期);第36页 *
"WinDriver在开发基于PLX9056芯片的";王磊等;《现代电子技术》;20060930(第18期);全文 *
"一种基于SOPC的HDLC实现方法";陈远知;《全国第一届嵌入式技术联合学术会议论文集》;20060908;第274-277页 *
"任意长度生成多项式的 CRC设计与实现";石立新等;《科技咨询导报》;20070831(第24期);第31-32页 *
"基于PCI总线的HDLC通信卡的设计与实现";邓凤军等;《电子技术应用》;20120831(第8期);第30-32、36页 *

Also Published As

Publication number Publication date
CN112732511A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
US5619722A (en) Addressable communication port expander
EP1764703B1 (en) A system for providing access to multiple data buffers of a data retaining and processing device
EP0378426B1 (en) Data transfer using bus address lines
US4792896A (en) Storage controller emulator providing transparent resource sharing in a computer system
US3979732A (en) Asynchronous status interlock circuit for interface adaptor
JPH06509199A (ja) コンピュータ・ワークステーション拡張シャシー
WO1998011693A2 (en) Low power serial protocol translator for use in multi-circuit board electronic systems
CN111045964B (zh) 一种基于pcie接口高速传输方法、存储介质及终端
CN108268414B (zh) 基于spi模式的sd卡驱动器及其控制方法
US7225288B2 (en) Extended host controller test mode support for use with full-speed USB devices
EP0831496B1 (en) A method and system for testing memory
CN112732511B (zh) 一种基于hdlc协议高性能高速同步422仿真器板卡
US7437616B2 (en) Dual CPU on-chip-debug low-gate-count architecture with real-time-data tracing
US6470404B1 (en) Asynchronous communication device
US11169947B2 (en) Data transmission system capable of transmitting a great amount of data
CN106649187B (zh) 一种芯片自动化外设协议选择的方法
CN115794701A (zh) 一种dma功能虚拟串口的bmc芯片及方法
JP4630514B2 (ja) メモリ組込自己試験を備えた外部メモリを運用するための方法および装置
CN100462952C (zh) 接口可配置的通用串行总线控制器
CN114660383A (zh) 一种通用载荷管理器地检测试板卡
US6598111B1 (en) Backplane physical layer controller
US5764907A (en) Computer to microcomputer interface
KR950012357B1 (ko) 엠에스엑스(msx) 컴퓨터용 네트웍 통신장치
Bertacchi et al. Semicustom design of an IEEE 1394-compliant reusable IC core
KR100531729B1 (ko) 피씨 병렬포트를 이용한 주변기기와의 인터페이스 장치 및그 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant