[发明专利]基于状态机和片内总线的CPCI串口板及其工作方法有效
| 申请号: | 201410226013.0 | 申请日: | 2014-05-26 |
| 公开(公告)号: | CN104021102B | 公开(公告)日: | 2017-05-24 |
| 发明(设计)人: | 韩怀宇;袁凤;肖巨军;王锋;周东朋;艾重阳 | 申请(专利权)人: | 北京佳讯飞鸿电气股份有限公司 |
| 主分类号: | G06F13/40 | 分类号: | G06F13/40;G06F13/38 |
| 代理公司: | 北京众合诚成知识产权代理有限公司11246 | 代理人: | 朱琨 |
| 地址: | 100095 北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 状态机 总线 cpci 串口 及其 工作 方法 | ||
1.一种基于FPGA状态机和WB片内总线的CPCI异步串口板,其特征在于,主要包括:PCI9052总线控制器、双口SDRAM、FPGA芯片、CPCI总线连接器、SCSI连接器;
其中,FPGA芯片内包括:WB片内总线、8个异步收发器、双口SDRAM总线粘连逻辑、LOCAL总线寄存器区、地址译码逻辑、串口接收滤波逻辑、WB总线处理逻辑,即FPGA状态机;双口SDRAM总线粘连逻辑分为双口SDRAM与LOCAL总线粘连逻辑、双口SDRAM与WB总线粘连逻辑;LOCAL总线寄存器区分为LOCAL总线配置寄存区、LOCAL总线状态寄存区;地址译码逻辑分为LOCAL总线地址译码逻辑、WB总线地址译码逻辑;
CPCI总线通过CPCI总线连接器和PCI9052总线控制器连接,PCI9052总线控制器通过PCI9052LOCAL总线和FPGA芯片中的LOCAL总线地址译码逻辑、LOCAL总线配置寄存区、LOCAL总线状态寄存区、双口SDRAM与LOCAL总线粘连逻辑连接;
WB总线地址译码逻辑、WB总线处理逻辑通过WB总线和8个异步收发器、双口SDRAM与WB总线粘连逻辑相连,8个异步收发器通过串口接收滤波逻辑和FPGA芯片外的SCSI连接器相连,SCSI连接器通过串行总线和8个串口相连;异步收发器中断信号与片内WB总线处理逻辑相连,以便告知WB总线处理逻辑某异步收发器要求处理异步串口交易;
所述双口SDRAM的存储空间分为两部分,即上位机可写访问的一级缓冲区和WB总线处理逻辑可写访问的二级缓冲区,一级或二级缓冲区均分成了16个子区,每路异步串口对应着一级缓冲区内的一对发送子区和接收子区,以及二级缓冲区内的一对发送子区和接收子区;上位机可读写访问一级缓冲区的所有发送子区,但只能读访问一级缓冲区的所有接收子区;WB总线处理逻辑除只能读访问一级缓冲区的所有发送子区外,可读写一级缓冲区内所有接收子区和二级缓冲区内所有发送和接收子区。
2.根据权利要求1所述异步串口板,其特征在于,所述PCI9052总线控制器为ASIC器件,实现了PCI总线到9052LOCAL总线协议适配;LOCAL总线配置为8位数据线,1个2K字节的RAM空间,1个IO空间,1个高电平有效的中断源,支持DMA模式。
3.根据权利要求1所述异步串口板,其特征在于,所述双口SDRAM采用IDT7132芯片,除电源引脚外,均与FPGA用户IO相连,在FPGA内设置了粘连逻辑,以便上位机通过LOCAL总线、WB总线处理逻辑通过WB总线进行访问。
4.根据权利要求1所述异步串口板,其特征在于,所述FPGA芯片为1个或2个XC2S200-5PQ208芯片,每个均可实现一个独立的片上系统,提供8个或16个全双工串口通路。
5.根据权利要求1所述异步串口板,其特征在于,所述WB总线处理逻辑按照LOCAL总线配置寄存器区,配置各异步收发器的工作模式,通过监视双口SDRAM一级和二级缓冲区的“信号灯”标识和通用异步收发器的中断信号,确定是否需要启动任务。
6.根据权利要求1所述异步串口板的工作方法,其特征在于,主要包括上位机和WB总线处理逻辑处理异步串口发送数据的方法和WB总线处理逻辑处理异步收发器接收和发送数据的方法,前者优先于后者,即覆盖二级缓冲区的中断请求优先于通用异步收发器的串口交易中断请求,不是同一数据区可并行处理;
所述上位机和WB总线处理逻辑处理异步串口发送数据的方法主要包括:
步骤1、上位机查询FPGA访问双口SDRAM一级缓冲区标志,判断WB总线处理逻辑是否正在访问一级缓冲区,若为真,则继续查询等待;否则置位上位机访问双口SDRAM一级缓冲区标志,设置更新发送区ID寄存器和发送帧长度寄存器,覆盖一级缓冲区的相应子区,复位上位机访问双口SDRAM一级缓冲区标志,产生更新二级缓冲区的中断请求;
步骤2、WB总线处理逻辑响应中断,查询上位机访问双口SDRAM一级缓冲区标志,判断上位机是否正在访问一级缓冲区,若为真,则继续查询等待;否则置位FPGA访问双口SDRAM一级缓冲区标志,参考更新发送区ID寄存器的内容,读访问一级缓冲区的相应发送子区,并存入二级缓冲区的相应发送子区,完毕后复位FPGA访问双口SDRAM一级缓冲区标志;
所述WB总线处理逻辑处理异步收发器接收和发送数据的方法主要包括:
步骤1、如果某异步收发器存在接收发送任务,即串口交易中断请求存在,WB总线处理逻辑读访问该异步收发器的中断状态寄存器,如果要求接收数据,读访问接收数据寄存器,并将接收到的数据存入二级缓冲区对应子区;
步骤2、每接收一个字节后,在接收字节超时门限寄存器设置的时间内未出现新的接收数据中断,则认为已收到完整数据帧,随后根据所接收数据帧的内容,判断数据帧是否存在错误,以及何种错误,并标识在对应的接收帧诊断结果寄存器和接收帧长度寄存器,并设置以二级缓冲区某子区覆盖一级缓冲区某子区的中断请求;
步骤3、如果上位机未访问双口SDRAM一级缓冲区,则响应上述中断,执行某子区的“数据搬家”,任务结束后,清除相应中断;如果上位机正在访问双口SDRAM一级缓冲区,等待适宜的时机再“搬家”;
步骤4、经过发送延迟时间寄存器的预置时间,设置发送中断请求,WB总线处理逻辑从二级缓冲区某子区读取发送数据,写入该异步收发器的发送数据寄存器中,每发送一个字节,异步收发器均会再请求中断,WB总线处理逻辑循环相应,直至发送的字节数等于对应的发送帧长度寄存器预设内容,发送完毕,清除相应中断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京佳讯飞鸿电气股份有限公司,未经北京佳讯飞鸿电气股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410226013.0/1.html,转载请声明来源钻瓜专利网。





