一种基于fpga的二进制同步通信协议控制器的制造方法

文档序号:9754393阅读:704来源:国知局
一种基于fpga的二进制同步通信协议控制器的制造方法
【技术领域】
[0001 ] 本发明属于数据通信领域,具体涉及一种基于FPGA(Field - Programmable Gate Array,现场可编程门阵列)的二进制同步通信(Binary Synchronous Communication,简称 BSC)协议控制器。
【背景技术】
[0002] 虽然随着信息系统向网络化的不断发展,接入信息系统的各型装备和设备也在朝 着网络化方向发展,但是为了保护已有的投资,兼容前期建设的系统,有的信息系统装备不 仅配置高速主用的网络通信接口,还保留着低速备用的串行数据通信接口。这些低速备用 串行通信接口支持的典型通信协议包括面向字符同步通信协议和面向比特的同步通信协 议,其中面向字符同步通信协议的典型代表是IBM公司提出的二进制同步通信协议。二进制 同步通信协议是一种面向字符的数据链路层协议,支持该协议的控制器芯片主要有Zilog 公司推出的以Z85C30为代表的串行通信控制器芯片和HITACHI公司推出的以HD64570为代 表的串行通信适配器芯片。由于这些半导体公司业务转型升级,支持二进制同步通信协议 的控制器芯片面临停产的风险,为了避免这一风险,需要寻找一种不受限制的可替代商用 ASIC专用控制器芯片的可编程实现方式,基于FPGA进行设计与实现恰好能满足这一要求。 FPGA芯片是一种完全可编程逻辑器件,具备良好的灵活性和可定制性,特别适合用户定制 和应用各种功能的IP核,使用FPGA实现的二进制同步通信协议控制器具有良好的可移植 性,可在不同FPGA芯片上自由实现,不仅可以免除因 BSC串行通信控制器芯片停产的风险, 还能根据应用需求灵活进行功能扩展与裁剪,具备良好的商用价值和研究意义。
[0003] 《利用通用微处理器实现同步通信数据收发的装置》是与本发明最接近的现有技 术,该发明的技术实现使用通用微处理器(如单片机、DSP等)的输入输出引脚与同步串行通 信接口(如BSC、HDLC),采用通用微处理器软件方法实现不同规程(如BSC、HDLC)同步串行通 信数据的发送、接收。该发明技术在通用微处理器上使用软件编程方法实现,与处理器指令 集和性能紧密相关,跨处理器平台移植不方便,且难以实现多通道实现。

【发明内容】

[0004] 发明目的:本发明的目的是提供一种在FPGA中实现二进制同步通信控制器的方 法,应用该发明,不仅能够实现二进制同步通信功能,同时能够省去专用ASIC芯片,降低因 ASIC芯片停产给设备研发带来的技术风险与投资风险,另一方面提高二进制同步通信控制 器可移植性和使用灵活性。
[0005] 技术方案:为实现上述目的,本发明所述的二进制同步通信协议控制器,其组成部 分包括与外部处理器连接的处理器接口模块、数据发送缓存模块、数据接收缓存模块、发送 通道模块、接收通道模块和波特率生成模块;
[0006] 所述数据发送缓存模块、数据接收缓存模块和波特率生成模块分别连接所述处理 器接口模块;
[0007] 所述发送通道模块连接数据发送缓存模块,接收通道模块连接数据接收缓存模 块,发送通道模块和接收通道模块之间进行状态指示交互。
[0008] 所述的二进制同步通信协议控制器采用硬件描述语言在FPGA中实现。
[0009] 其中,所述处理器接口模块提供外部处理器对控制器进行访问控制的寄存器接 口,包括寄存器空间、地址总线、数据总线、控制总线,实现外部处理器对寄存器读写的编程 控制、收发数据交互。控制总线信号包括读信号RD(READ)、写信号WR(WRITE)、片选信号CS (CHIP SELECT)和中断信号INT(INTERRUPT);外部处理器通过地址总线、数据总线、片选信 号CS和读信号RD读取内部寄存器的值,通过地址总线、数据总线、片选信号CS和写信号WR向 内部寄存器写入相应的数值;中断信号INT用于通知外部处理器二进制同步通信协议控制 器已发生中断事件;
[0010]外部处理器通过向控制寄存器写入相应的控制命令数值,控制发送通道模块和接 收通道模块是处于复位状态或者正常工作状态、控制发送和接收时钟是来自于外部时钟线 路还是内部波特率生成模块(发送时钟是发送通道模块的一根信号线,接收时钟是接收通 道模块的一根信号线),控制中断事件的使能与禁止;当控制寄存器中任意中断事件被使能 后,一旦发生相应的中断事件,控制器将触发INT中断脉冲信号,通知外部处理器已发生了 中断事件,并且中断状态寄存器对应的中断事件状态位置1,外部处理器通过读取中断状态 寄存器数值判断中断事件的类型,并采取相应的读写操作;读取中断状态寄存器的操作将 使中断状态寄存器清零。
[0011] 所述的数据发送缓存模块,用于缓存发送数据的先入先出(First In First Out, 简称FIFO)存储器,实现处理器接口模块对发送数据的按顺序写入和发送通道模块对发送 数据的按顺序读出。所述数据发送缓存模块是通过FPGA内部存储逻辑单元构建的FIFO存储 器,数据位宽为16比特,存储深度可配置。
[0012] 当外部处理器发送一帧数据帧时,首先获取发送数据发送缓存模块中发送缓冲区 的状态信息,当发送缓冲区允许写入发送数据时,外部处理器按以下步骤写入数据:
[0013] 步骤1-1,向发送缓冲区数据寄存器写入字符段a,字符段a表示一帧数据帧开始;
[0014] 步骤1-2,所发送数据存在头部信息时,向发送缓冲区数据寄存器写入头部信息数 据,头部信息数据内包括头部信息字符b;
[0015] 步骤1-3,向发送缓冲区数据寄存器写入包括正文字符c的正文数据信息;
[0016] 步骤1-4,向发送缓冲区数据寄存器写入字符段d,字符段d表示一帧数据帧结束。
[0017] 所述数据接收缓存模块,用于缓存接收数据的先入先出(First In First Out,简 称FIFO)存储器,实现接收通道模块对接收数据的按顺序写入和处理器接口模块对接收数 据的按顺序读出。所述数据接收缓存模块是通过FPGA内部存储逻辑单元构建的FIFO存储 器,数据位宽为16比特,存储深度可配置。
[0018] 当外部处理器读取一帧数据帧时,首先获取数据接收缓存模块中接收缓冲区的状 态信息,当接收缓冲区允许数据读出时,外部处理器按照以下步骤读取一帧数据帧:
[0019] 步骤2-1,读取接收缓冲区数据寄存器,如果读出数据包括字符段a,表示一帧数据 帧开始即帧起始数据,继续读取后续数据;
[0020] 步骤2-2,读取接收缓冲区数据寄存器,如果读出数据包括头部信息字符b,表示读 取的是头部信息数据;
[0021] 步骤2-3,读取接收缓冲区数据寄存器,如果读出数据包括正文字符c,表示读取的 是正文数据信息;
[0022] 步骤2-4,读取接收缓冲区数据寄存器,如果读出数据包括字符段d,表示已读取一 帧完整的数据帧,且数据帧校验正确,外部处理器将该数据帧视为有效数据帧;如果读出数 据包括字符段e,表示已读取一帧完整的数据帧,但是数据帧校验错误,外部处理器将该数 据帧视为无效数据帧,并丢弃该数据帧。
[0023] 所述发送通道模块,用于读取数据发送缓存模块中的数据,按照BSC二进制同步通 信协议数据帧格式进行组帧、转义、校验计算以及按时序发送数据,发出状态指示信号,并 根据接收通道模块的指示信号选择发送控制帧;发送通道模块脱离复位状态后,按照以下 步骤进行工作:
[0024] 步骤3-1,根据接收通道模块的指示信号标记判断是否已接收到未确认的一帧数 据帧,如果已接收到未确认的一帧数据帧,进入步骤3-2;如果未接收到数据帧,但是数据发 送缓存FIFO存储器中有数据需要发送,进入步骤3-3;否则继续停留在步骤3-1进行检测判 断;
[0025] 步骤3-2,根据接收到数据帧正确性的指示信号和奇帧计数或者偶帧计数,选择发 送控制字符组{SYN、SYN、ACK0}、控制字符组{SYN、SYN、ACK1}或控制字符组{SYN、SYN、NAK}, 返回步骤3-1;控制字符组{SYN、SYN、ACK0}包括SYN、SYN和A
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1