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

文档序号:9754393阅读:来源:国知局
CK0三个控制字符,控制字符组 {SYN、SYN、ACK1}包括SYN、SYN和ACK1三个控制字符,控制字符组{SYN、SYN、NAK}包括SYN、 SYN和NAK三个控制字符;
[0026] 步骤3-3,读取发送缓存模块FIFO存储器数据,判断是否为帧起始数据字符段a,如 果不是帧起始数据,则将该数据丢弃;如果是帧起始数据,继续读取下一个数据,如果下一 个数据包括头部信息字符b,则发送输出控制字符组{SYN、SYN、S0H},控制字符组{SYN、SYN、 S0H}包括SYN、SYN和S0H三个控制字符,然后开始发送头部数据信息,接着继续读出头部信 息数据并在发送时钟驱动下发送,同时对头部信息数据进行CRC差错校验计算,直到读到包 括正文字符c的正文数据信息,进入步骤3-4;
[0027]步骤3-4,如果从数据发送缓存模块FIFO存储器中读出的数据为标记为正文的数 据,则在发送完头部信息后紧接着发送控制字符组{DLE、STX},控制字符组{DLE、STX}包括 DLE和STX两个控制字符,并进行CRC校验计算;然后发送依次读出的正文数据,并将正文数 据进行CRC校验计算,当读出正文数据中存在DLE字符时则多发送一个附加的DLE字符,附加 的DLE字符不参与CRC校验计算;如果读出的数据包括字符段d,则表示一帧数据帧读出结 束,接着依次发出控制字符组{DLE、ETX}和控制字符CRC校验计算得到的结果,一帧数据帧 发送完毕,进入步骤3-5;控制字符组{DLE、ETX}包括DLE和ETX两个控制字符;
[0028] 步骤3-5,等待接收通道模块在接收到确认控制帧后发出的指示信号,并启动超时 定时,如果在超时定时时间内接收确认信息指示信号或者发生超时事件,返回执行步骤3-1;
[0029] 其中使用的控制字符功能如下表所示:
[0030]
[0031]
[0033] 所述接收通道模块,用于接收同步串行数据,进行同步检测、转义检测、控制字检 测、数据检测、校验检测与控制帧类型检测,将获得的有效数据发送至数据接收缓存模块, 并发出相应指示信号;接收通道模块脱离复位状态后,按照以下步骤进行工作:
[0034] 步骤4-1,在接收时钟(接收时钟是接收通道模块的一根信号线)驱动下,不断搜索 检测同步字符SYN,如果搜索到单个或两个以上SYN字符,表示接收到同步字符,执行步骤4-2;
[0035]步骤4-2,在接收时钟驱动下,如果同步字符SYN后的第一个非SYN字符为S0H字符, 则表示后续将接收数据帧的头部信息,接收通道模块向数据接收缓存FIFO存储器写入字符 段a表示新的一帧数据帧开始,然后执行步骤4-3;如果同步字符SYN后接收的第一个和第二 个非SYN字符为控制字符组{DLE、STX},控制字符组{DLE、STX}包括DLE和STX两个控制字符, 则表示后续将接收透明文本区域的字符,(透明文本的含义是,在正文数据区域的任意比特 数据能够被当作正常数据传输,而不会与控制字符相混淆。实现手段:透明文本是通过字符 填充过程实现的,通过数据链路转义(DLE)字符定义透明文本区域以及在透明文本区域内 的DLE字符之前添加一个附加的DLE字符。定义透明文本区域,就是在正文数据开始的STX字 符前添加一个DLE字符,并且在正文数据结束的ETX或ETB前也添加一个DLE字符。第一个DLE 字符通知透明文本区域开始,在透明文本区域可能存在与控制字符相同的数据,并要求忽 略控制符。)接收通道模块向数据接收缓存FIFO存储器写入字符段a,表示新的一帧数据帧 开始,执行步骤4-4;如果同步字符SYN后接收的第一个非SYN字符为控制字符,则表示该数 据帧为控制帧,执行步骤4-6;
[0036] 步骤4-3,在接收时钟驱动下,接收通道模块通过串并转换按位接收头部信息字 符,并在头部信息字符添加头部信息字符b,然后写入数据接收缓存FIFO存储器,同时将接 收到的字符进行CRC校验计算;当检测接收到控制字符组{DLE、STX}时,表示后续将接收到 透明文本区域的正文数据,控制字符组{DLE、STX}包括DLE和STX两个控制字符,控制字符组 {DLE、STX}不被写入数据接收缓存FIFO存储器,只进行CRC校验计算;
[0037] 步骤4-4,在接收时钟驱动下,接收通道模块通过串并转换按位接收透明文本区域 的正文数据,如果接收到非DLE字符时,即为有效的正文数据,如果接收到一个DLE后紧接着 接收到一个控制字符DLE,则其中一个DLE字符为附加的填充字符,并将该填充字符删除,将 有效正文字符C添加正文数据标记后,写入数据接收缓存FIFO存储器中,并对有效正文数据 字符进行CRC校验计算;当接收到控制字符组{DLE、ETX}或控制字符组{DLE、ETB}时,表示透 明文本区域结束,即数据帧正文数据结束,后续跟随的两个字节字符即为BCC差错校验字 符;控制字符组{DLE、ETX}包括DLE和ETX两个控制字符,控制字符组{DLE、ETB}包括DLE和 ETB两个控制字符;
[0038] 步骤4-5,在接收时钟驱动下接收控制字符组{DLE、ETX}或控制字符组{DLE、ETB} 后续的两个BCC差错校验字符,并将这两个差错校验字符与接收过程中计算得到的CRC校验 值进行对比,二者一致则表示数据帧接收正确,接收通道模块向数据接收缓存FIFO存储器 写入字符段d,表示一帧数据帧接收完毕,且差错校验正确;否则表示数据接收错误,接收通 道模块向数据接收缓存FIFO存储器写入字符段e,表示一帧数据帧接收完毕,但是差错校验 错误,外部处理器丢弃该数据帧。接收通道模块发送数据帧接收完毕指示信号和数据帧正 确性的指示信号,返回执行步骤4-1;
[0039] 步骤4-6,在接收时钟驱动下,接收到控制帧的控制字符,根据接收到控制字符输 出对应指示信号,然后返回步骤4-1。
[0040] 所述波特率生成模块,用于在处理器接口模块相关寄存器的控制下,实现收发时 钟的内外时钟源选择、内部波特率选择与波特率产生等。波特率生成模块根据处理器接口 模块控制寄存器的相关控制位,实现收发时钟的内外时钟源选择,根据波特率选择寄存器 的控制位,确定对高频时钟源的分频系数,通过对高频时钟源的分频处理,获得相应的波特 率发送接收内部时钟;外部处理器通过向波特率选择寄存器写入相应的波特率选择数值, 在所列举的典型波特率中进行选择,并将选择结果通知波特率生成模块产生相应的波特率 时钟。
[0041] 有益效果:本发明采用硬件描述语言在FPGA上完成二进制同步通信协议控制器各 模块的设计与实现,能够实现控制器在不同FPGA系列芯片间的无修改移植,摆脱了对商用 ASIC专用芯片的依赖,降低了因商用ASIC芯片停产带来的研发风险,同时在FPGA中能够根 据需求对二进制同步通信的通道进行灵活扩展,提高了系统设计的灵活性和设计效率,具 有良好的实际应用价值。
【附图说明】
[0042] 图1为二进制同步通信协议典型数据帧格式;
[0043] 图2为二进制同步通信协议典型控制帧格式;
[0044]图3为二进制同步通信协议控制器总体结构示意图;
[0045]图4为采用本发明设计的某通信协议处理板卡组成示意图。
【具体实施方式】
[0046]下面结合表格与附图,对本发明具体实施例进行详细说明,但是本发明的保护范 围不局限于所述实施例。
[0047] 表1为二进制同步通信协议典型控制字符。
[0048] 表1二进制同步通信协议的典型控制字符
[0049]
[0051 ]二进制同步通信协议的确认帧必须是ACK0和ACK1交替使用。
[0052] 二进制同步通信协议传输的数据不应只包括纯文本信息(由字母表中的字符组成 的字或者图),而是应该能够传输所有二进制序列。如果传输过程中在非控制字符的字段出 现与控制字符相同的8比特二进制序列时,接收方将会将这些二进制序列视为控制字符,从 而破坏整个报文的意义,引起数据信息混乱。为了避免这种信息混乱的发生,二进制同步通 信协议规定了以字节填充的方式来保证数据透明传输,以数据链路转义(DLE)字符定义透 明文本区域,并
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1