[发明专利]基于HDLC协议的通讯模块及数据实时转发存储控制方法无效
申请号: | 200810209518.0 | 申请日: | 2008-11-25 |
公开(公告)号: | CN101415027A | 公开(公告)日: | 2009-04-22 |
发明(设计)人: | 彭宇;刘大同;潘大为;王少军;田全乐 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 哈尔滨市松花江专利商标事务所 | 代理人: | 张果瑞 |
地址: | 150001黑龙江*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 hdlc 协议 通讯 模块 数据 实时 转发 存储 控制 方法 | ||
1.基于HDLC协议的通讯模块,其特征在于它包括以下单元:
主控制器(1),用于将来自任意一个外部同步接口(2)的数据存储并根据中断信号将存 储的数据发送给相应的内部总线接口(3),还用于将来自内部总线接口(3)的数据存储并根 据中断信号将存储的数据发送给任意一个外部同步接口(2);还用于将来自任意一个外部同 步接口(2)的数据发送给另一个任意的外部同步接口(2),并同时将发送的数据存储或不存 储;
多个外部同步接口(2),用于将来自主控制器(1)的数据发送给相应的外部设备(4),还 用于将来自外部设备(4)的数据发送给主控制器(1);
内部总线接口(3),用于将来自主控制器(1)的数据发送到总线(5)上,将用于将来自总 线(5)的数据发送给主控制器(1);
主控制器(1)采用可编程逻辑器件,通过VHDL或其它可编程逻辑设计工具编写使其具 有三个或三个以上通信口,两个或两个以上同步485通信口和一个PCI接口;既有普通的 数据收发功能,又具有实时转发功能,将一个端口接收的数据无变换或有变换的通过另一 个端口实时转发,在转发的过程中根据用户控制命令对数据有选择的存储和替换,具体的 功能如下所示:
①、作为一个独立的通讯模块使用,通讯协议满足HDLC协议规范;模块具有两个独立 的收发通道,每个通道的收发地址可调,用户同时设定多个接收地址,在接收过程中只要 其中一个地址满足用户设定值模块便开始接收数据,同时将接收到的数据存储到FPGA内部 扩展的存储空间中,在每一帧数据接收完成之后模块产生中断,通过PCI接口传递给计算 机,用户在中断程序中实现对接收数据的读取操作,中断程序的具体功能由用户编写实现; 发送地址可调,用户设定每次发送数据时接收设备的地址,模块会在发送数据开始之前发 送地址信息与接收设备进行匹配,通知指定的接收设备准备接收数据,FPGA内部同样为发 送数据扩展了一个存储空间,在发送开始之前用户将需要发送的数据先写入到存储空间, 写完之后启动发送即可完成数据的连续发送,直至发送存储空间数据全部发完;收发过程 均进行CRC校验,在接收数据的过程中会对数据的CRC判断结果给出标志,用户通过读取 CRC标志信息判断接收数据的正确与否,实现对数据的取舍;用户在读取CRC标志信息之 后需要对标志信息进行复位,方便对下一次接收数据的判断;在该功能状态下模块的两个 通讯口同时工作,彼此之间没有干扰;
②、具有无变化转发功能,作为转发卡使用,将A口接收到的来自任意一个外部同步 接口(2)的数据通过B口无变换的实时转发给另一个外部同步接口(2),所述的A口和B口 是主控制器(1)的两个端口,用于数据的存储和转发;用户事先设定保存命令,默认状态下 保存命令为State_Save,在转发的过程中模块会判断地址字节之后的数据是否为用户设定 的保存命令,如满足用户设置的保存命令则将转发过程中保存命令之后的一定长度的数据 进行保存,保存至FPGA内部扩展的RAM中,存储结束会产生中断信号,通过PCI接口传递 至计算机,用户在中断程序中实现对保存数据的处理,具体的处理过程由用户编程实现; 存储到RAM中的数据会根据每次转发过程中是否有数据存储实时更新,在更新数据的过程 中不允许用户读取RAM中的数据,以保证提供的数据为最新的有效数据,避免出现数据部 分更新部分未更新的现象,导致错误;RAM中数据刷新通过采用二级存储方式实现,模块 在转发过程中保存的数据首先保存至一个数组中,在模块判断没有新的数据保存进来,同 时用户不需要读取保存数据时,模块自动将数组中的数据存储至RAM中,完成一次数据的 刷新;刷新过程在一组有效数据存储完成之后30ns开始,如果在数据存储完成的同时用户 正在读取上一帧存储的有效数据,则模块会等待用户完成读取操作后进行刷新,刷新过程 中模块不会响应用户读取数据的命令;在转发的过程中,接收数据的端口在接收到一帧数 据之后会给出CRC校验标志,以便判断接收到数据有无误码,方便计算机对数据的舍取, 当数据向另一端口转发时,模块不会重新进行CRC校验,只是把接收到的CRC校验码进行 无变换转发,实现两个端口之间的无变换转发;
③、实现数据的替换并转发功能,同时将转发数据按照用户要求进行存储;替换转发 只有将A口接收到的来自外部同步接口(2)的数据通过B口发送给另一个外部同步接口(2) 时具有该功能;在替换执行之前,用户需要事先向模块写入替换数据,FPGA内部扩展了48 字节的RAM用于存储用户设定的替换数据,为保证替换数据的实时性,用户随时更改替换 数据,模块会将用户更改的替换数据实时刷新至RAM中,该过程的实现同样采用二级存储 的方式实现,用户首先将替换数据写入模块中的扩展RAM中,在用户写入完成同时没有进 行替换操作的时候,模块自动将数据刷新至一个预先设定的数组之中,刷新过程中不响应 替换命令,以保证替换数据的实时有效性,刷新的时间很短,而且处于模块正在接收CRC 校验码的同时,因此不会存在新的替换操作进行的可能;用户设定被替换数据的位置和长 度,目前是将替换命令之后的48个字节数据分为四组,每组12个字节,用户设定每次替 换哪一组或哪几组,在默认情况下是不替换,实现无变换转发;在转发的过程中,如满足 替换命令,模块会自动存储替换命令之后的50字节的原始被替换数据信息至FPGA内部的 RAM空间,存储完成之后产生中断,用户在中断程序中对存储数据进行操作,中断程序由 用户根据实际需求编写;用户还事先设置替换命令,替换命令根据用户要求为16位和8位 两种,默认状态是8位,命令码为0x00,替换命令的长度和内容用户任意设定;A口在地 址匹配成功之后,首先判断用户设定的替换命令的长度是一个字节还是两个字节,根据用 户设定的长度判断地址字节之后的一个或两个数据字节是否为用户设定的替换命令,满足 替换命令之后,判断用户设定的替换数据的位置和长度,将替换命令之后被替换数据按照 用户要求用设定数据替换,并对替换完成的新的数组进行CRC校验,生成新的CRC校验码, 保证转发数据的可校验性;B口接收的数据将会向A口无变换的实时转发,其实现方法与 ②完全相同;
当存在多个端口时,在任意端口之间转发,为每一个端口设置一个方向寄存器,方向 寄存器中的数据代表着转发端口的号码,设置八个端口,方向寄存器中的1-8数据就分别 代表了转发端口的号码,当方向寄存器中的数据为1的时候,就代表由接收的数据的端口 向1端口转发,转发和替换的过程与前面所述相同,当然在方向寄存器中不能出现与接收 数据端口号相同的数据,因为同一个端口不能同时收发使用,当端口的数目变多时,同样 只需要改变方向寄存器的长度,使其能够表示最大的端口号码;在使用的过程中需要事先 确定转发方向以及转发端口的号码,然后写入方向寄存器,板卡工作过程中通过判断方向 寄存器中的端口号码从而决定转发方向。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810209518.0/1.html,转载请声明来源钻瓜专利网。