发明名称 一种多模式高速智能异步串口通信模块及实现方法
摘要 本发明公开了一种多模式高速智能异步串口通信模块的实现方法,其所述通信模块基于的硬件架构是CPCI总线模块,该模块硬件包括可编程逻辑单元、大容量存储单元、通用异步收发控制器、高速数字隔离器件和接口电平转换器件等。其优点是(1)可根据用户实际需要通过软件选择智能模式和非智能模式。(2)工作于智能模式时,可通过软件灵活设置各串口的数据帧格式。(3)工作于智能模式时,模块接收数据时将根据设定的数据帧格式自动判断数据帧头、数据长度、校验和、帧尾等信息。
申请公布号 CN102420877B 申请公布日期 2014.11.19
申请号 CN201110392553.2 申请日期 2011.12.01
申请人 中国船舶重工集团公司第七0九研究所 发明人 唐俊;龙小军;陶翼
分类号 H04L29/10(2006.01)I 主分类号 H04L29/10(2006.01)I
代理机构 武汉河山金堂专利事务所 42212 代理人 胡清堂
主权项 一种多模式高速智能异步串口通信模块的实现方法,其特征在:所述通信模块的硬件架构是基于CPCI总线的异步串口通信模块,该模块硬件包括可编程逻辑单元、大容量存储单元、通用异步收发控制器、高速数字隔离器件和接口电平转换器件;所述的可编程逻辑单元通过CPCI总线与CPU连接,并向CPU提交数据和接收CPU的下发数据;所述的大容量存储单元通过RAM接口与所述的可编程逻辑单元连接,进行接收数据的暂存处理;所述的通用异步收发控制器通过局部总线与所述的可编程逻辑单元连接,进行通信数据的收发处理;所述的高速数字隔离器件两端分别与所述的通用异步收发控制器和所述的接口电平转换器件连接,进行通信信号的传输;所述的接口电平转换器件一端与外设通过RS232/RS485/RS422接口连接,另一端与所述的高速数字隔离器件连接,进行通信信号的逻辑电平转换和传输;所述的可编程逻辑单元是核心组成部分,其内部集成了嵌入式微处理器及由Verilog硬件描述语言设计的各种功能模块,所述的Verilog硬件描述语言设计的各种功能模块包括:模式选择寄存器、接口选择寄存器、串口数据收发模块、数据帧接收识别模块、数据搬移模块和CPCI转局部总线模块;所述的一种多模式高速智能异步串口通信模块的实现方法包括设备初始化设置、智能模式下数据收发处理和非智能模式下数据收发处理;所述的设备初始化设置,包括以下内容: a.接口标准设置:RS232、RS422或RS485; b.串口工作模式设置:智能模式或非智能模式; c.若工作为所述的智能模式,则进行数据帧格式设置,包括:报文头、报文尾; d.串口参数设置:包括波特率、数据位、校验位、停止位;所述的智能模式相对于CPU来说为数据帧传输模式,其数据的接收流 程包括以下步骤: 步骤101:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤102; 步骤102:所述可编程逻辑单元内的串口数据收发模块定时查看所述通用异步收发控制器各串口的接收寄存器是否有数据,若有,则进入步骤103; 步骤103:所述可编程逻辑单元内的串口数据收发模块读出接收寄存器内的字节数据,并将该字节数据送往所述可编程逻辑单元内的数据帧接收识别模块进行识别,进入步骤104; 步骤104:所述可编程逻辑单元内的数据帧接收识别模块根据初始化设置的数据帧格式对收到的字节数据进行判别,若数据符合数据帧格式要求,则进入步骤105;若不符合,则进入步骤106,丢掉该字节数据并将之前收到的此帧其他数据从接收FIFO中清空,重新回到步骤102; 步骤105:将数据存入所述可编程逻辑单元内部相应串口的接收FIFO内,并进入步骤107; 步骤107:判断所述的FIFO内是否为完整的一帧数据,若是,则进入步骤108; 步骤108:将该帧数据存入所述的大容量存储单元内,进入步骤109; 步骤109:所述可编程逻辑单元内的数据搬移模块判断可编程逻辑单元内为该串口开设的双口RAM区是否处于可写状态且剩余存储空间是否大于数据帧的大小,若是,则进入步骤110;若判断为否,则数据继续存在大容量存储单元内; 步骤110:所述可编程逻辑单元内的数据搬移模块将数据从大容量存储单元内转移到双口RAM内并向CPU发出一个硬件中断请求,进入步骤111; 步骤111:CPU收到中断请求后,通过所述可编程逻辑单元内的CPCI转局部总线模块将此帧数据读入CPU内存;其数据的发送流程包括以下步骤: 步骤201:CPU将要发送的一帧数据通过所述可编程逻辑单元内的CPCI转局部总线模块写入某串口双口RAM区,并给所述可编程逻辑单元内的数 据搬移模块送出一个发送中断请求,进入步骤202; 步骤202:所述可编程逻辑单元内的数据搬移模块收到中断请求信号后将该帧数据从双口RAM内快速搬移到该串口发送FIFO区,进入步骤203; 步骤203:所述可编程逻辑单元内的串口数据收发模块查询所述通用异步收发控制器对应串口是否为允许发送状态,若是,则进入步骤204; 步骤204:所述可编程逻辑单元内的串口数据收发模块读出FIFO中一个字节数据,将其写入所述通用异步收发控制器发送寄存器,进入步骤205; 步骤205:所述通用异步收发控制器将数据转化为串行数据后经所述高速数字隔离器件和接口电平转换器件发送给外设,进入步骤206; 步骤206:重复步骤203~步骤205,直到该帧数据全部发送完;所述的非智能模式为常规的串口通信模式,即CPU直接与所述通用异步收发控制器以字节为单位交互数据,此时所述的可编程逻辑单元内部只有CPCI转局部总线模块工作,其余单元均不参加工作;其数据的接收流程包括以下步骤: 步骤301:远方设备将数据流发送到某个串口,所述的接口电平转换器将IEA232/IEA485/IEA422通信的电气信号转换为TTL信号,经过所述的高速数字隔离器传输到所述的通用异步收发控制器,进入步骤302; 步骤302:所述的通用异步收发控制器收到一字节数据后将其存入接收寄存器内并向CPU发出一个硬件中断请求,进入步骤303; 步骤303:CPU收到中断请求后通过所述可编程逻辑单元内的CPCI转局部总线模块读出该字节数据,进入步骤304; 步骤304:CPU判断数据是否符合报文格式要求,若符合,则进入步骤305;若不符合,则进入步骤306,丢掉该字节数据并将之前收到的此帧其他数据从内存中清空,并返回步骤303; 步骤305:CPU将该字节数据写入内存,进入步骤307; 步骤307:重复步骤301~步骤306,直到该帧数据接收完成;非智能模式下数据的发送流程包括以下步骤: 步骤401:CPU首先查看所述通用异步收发控制器相应串口是否处于允许发送状态,若允许发送,则进入步骤402; 步骤402:CPU将要发送的1个字节数据写入所述通用异步收发控制器发送寄存器,进入步骤403; 步骤403:所述通用异步收发控制器将数据转化为串行数据后经所述高速数字隔离器件和接口电平转换器件发送给外设,进入步骤404; 步骤404:重复步骤401~步骤403,直到该帧数据全部发送完。 
地址 430074 湖北省武汉市洪山区珞喻路718号