CN104021102B - 基于状态机和片内总线的cpci串口板及其工作方法 - Google Patents

基于状态机和片内总线的cpci串口板及其工作方法 Download PDF

Info

Publication number
CN104021102B
CN104021102B CN201410226013.0A CN201410226013A CN104021102B CN 104021102 B CN104021102 B CN 104021102B CN 201410226013 A CN201410226013 A CN 201410226013A CN 104021102 B CN104021102 B CN 104021102B
Authority
CN
China
Prior art keywords
bus
buses
logic
serial port
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410226013.0A
Other languages
English (en)
Other versions
CN104021102A (zh
Inventor
韩怀宇
袁凤
肖巨军
王�锋
周东朋
艾重阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jiaxun Feihong Electrical Co Ltd
Original Assignee
Beijing Jiaxun Feihong Electrical Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jiaxun Feihong Electrical Co Ltd filed Critical Beijing Jiaxun Feihong Electrical Co Ltd
Priority to CN201410226013.0A priority Critical patent/CN104021102B/zh
Publication of CN104021102A publication Critical patent/CN104021102A/zh
Application granted granted Critical
Publication of CN104021102B publication Critical patent/CN104021102B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明属于计算机通讯领域,尤其涉及一种基于FPGA状态机和WB片内总线的CPCI串口板及其工作方法,采用一主多从的片内总线运行模式,包括了处理单元、8或16通路异步收发器、双口SDRAM粘连逻辑、地址译码器、配置状态寄存器区、串口接收信号滤波逻辑等电路;异步收发器软核支持WB片内总线,与NS16550A器件兼容;板卡串口具备扩展能力;串口通讯速率大于2Mbps,且有6个字节数据缓冲区;通讯收发帧之间的延迟时间有256档可设,最小10us,最大2.56ms,误差小于0.1us;上位机能对各串口独立配置、全面监控,实现了由FPGA状态机执行多路串口数据收发、处理和存储流程、突出了时序性能。

Description

基于状态机和片内总线的CPCI串口板及其工作方法
技术领域
本发明属于计算机通讯技术领域,尤其涉及一种基于FPGA状态机和WB片内总线的CPCI串口板及其工作方法。
背景技术
计算机通讯适配器是计算机与外部设备的信息通讯桥梁,具有双向通讯、数据缓冲、参数可设置等功能,主要用于对外部设备的数据通讯、状态监控、实验测试和维修维护等。CompactPCI(Compact Peripheral Component Interconnect,紧凑型外设部件互连标准,以下简称CPCI)异步串口板安装在计算机CPCI扩展槽内,板卡上有CPCI总线控制器模块、多路异步串口模块、数据处理单元和数据缓冲区,可实现计算机CPCI总线与外围多路设备串行总线之间的异步串口。
可以按照异步串口电路的实现方式分类,目前各种CPCI异步串口板一般采用以下方法实现:
1、使用嵌入式处理器作数据处理单元
采用独立的嵌入式处理器作为数据处理单元,要么使用嵌入式处理器自身的2到3个异步串口,要么使用粘连到FPGA片内总线的异步收发逻辑或异步收发器件,由DSP处理器统一处理和存储串行数据。此方法的关键点是采用高性能数字信号处理器(DSP)和一主多从式总线结构。
2、使用FPGA芯片集成收发逻辑和处理逻辑
采用FPGA芯片集成了若干独立的收发逻辑和处理逻辑,其中每个收发逻辑实现了一路串行数据的接受、发送和并串转换,每个处理逻辑实现了一路串行数据的读取、处理和存储,整个FPGA芯片实现了若干独立的CPCI总线与异步串口之间的数据处理和交换通道。此方法的关键点是在FPGA内实现了若干独立的数据通道,每个均采用各自的收发逻辑和处理逻辑,在处理逻辑内实现了相关通道的通讯协议。
对于上述第一种设计方法,采用单片机或嵌入式处理器作为处理单元,通过访问通用异步收发器,来接受或者发送数据,数据存储器为一片双口SDRAM,利用信号灯控制协议,CPCI总线上位机和板卡处理单元轮换访问数据,板卡处理单元直接接收和应答数据。通常情况下,串口应答有响应时间的要求,而用嵌入式处理器读取、处理和存储数据,速度慢,特别是无法满足高速、多路、实时接收和应答串口数据的要求,一般从串口数据帧接收完毕开始,到串行数据帧开始发送为止,这段串口应答延迟时间至少1ms级,而且应答延迟时间无法精确控制。另外上位机和单片机都可对双口SDRAM进行写访问,而且必须满足串口应答时间限制,串口在发送过程中上位机对数据存储器的写操作将导致串口发送数据帧不完整的问题。
对于上述第二种设计方法,如果收发逻辑选用带访问端口的通用异步串行收发器或UART软核,每个处理逻辑就是一个可访问外部端口的总线状态机,则每个串口通路均是一个主逻辑和一个从逻辑构成的独立总线系统,整个FPGA将包括若干独立总线系统。每个总线系统还需要访问外部数据存储器,并建立防止访问冲突机制,同时要为CPCI总线上位机提供查询和设置端口。可见这种方案构造的片上系统结构复杂,规模很大,难以把握。如果收发逻辑选用简单的无访问端口的串并转换逻辑,与通用异步串行收发器相比,功能不足,如不支持CPCI总线的通讯模式设置、工作状态查询、通讯错误类型查询、处理器中断报警和波特率设置等。
发明内容
针对目前CPCI异步串口板存在的应答延迟时间长,FPGA资源浪费,片上系统结构复杂,扩展性差、功能不足、兼容性差的问题,本发明提出的一种基于FPGA状态机和WB总线的CPCI异步串口板及其工作方法。
本发明提出的基于FPGA状态机和WB片内总线的异步串口板主要包括: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总线处理逻辑某异步收发器要求处理异步串口交易。
所述PCI9052总线控制器为ASIC器件,实现了PCI总线到9052LOCAL总线协议适配;LOCAL总线配置为8位数据线,1个2K字节的RAM空间,1个IO空间,1个高电平有效的中断源,支持DMA模式。
所述双口SDRAM采用IDT7132芯片,除电源引脚外,均与FPGA用户IO相连,在FPGA内设置了粘连逻辑,以便上位机通过LOCAL总线、WB总线处理逻辑通过WB总线进行访问。
所述双口SDRAM的存储空间分为两部分,即上位机可写访问的一级缓冲区和WB总线处理逻辑可写访问的二级缓冲区,一级或二级缓冲区均分成了16个子区,每路异步串口对应着一级缓冲区内的一对发送子区和接收子区,以及二级缓冲区内的一对发送子区和接收子区;上位机可读写访问一级缓冲区的所有发送子区,但只能读访问一级缓冲区的所有接收子区;WB总线处理逻辑除只能读访问一级缓冲区的所有发送子区外,可读写一级缓冲区内所有接收子区和二级缓冲区内所有发送和接收子区。
所述FPGA芯片为1个或2个XC2S200-5PQ208芯片,每个均可实现一个独立的片上系统,提供8个或16个全双工串口通路。
所述WB总线处理逻辑按照LOCAL总线配置寄存器区,配置各异步收发器的工作模式,通过监视双口SDRAM一级和二级缓冲区的“信号灯”标识和通用异步收发器的中断信号,确定是否需要启动任务。
本发明提出的基于FPGA状态机和WB片内总线的CPCI异步串口板的工作方法,主要包括上位机和WB总线处理逻辑处理异步串口发送数据的方法,WB总线处理逻辑处理异步收发器接收和发送数据的方法,前者优先于后者,即覆盖二级缓冲区的中断请求优先于异步收发器的串口交易中断请求,不是同一数据区可并行处理。
所述上位机和WB总线处理逻辑处理异步串口发送数据的工作方法,主要包括:
步骤1、如果上位机请求更新一级缓冲区的某子区,即覆盖二级缓冲区中断请求存在,上位机查询“FPGA访问双口SDRAM一级缓冲区标志”,判断WB总线处理逻辑是否正在访问一级缓冲区,若为真,则继续查询等待;否则置位“上位机访问双口SDRAM一级缓冲区标志”,设置“更新发送区ID寄存器”和“发送帧长度寄存器”,覆盖一级缓冲区的相应子区,完毕后复位“上位机访问双口SDRAM一级缓冲区标志”,产生更新二级缓冲区的中断请求;
步骤2、WB总线处理逻辑响应中断,查询“上位机访问双口SDRAM一级缓冲区标志”,判断上位机是否正在访问一级缓冲区,若为真,则继续查询等待;否则置位“FPGA访问双口SDRAM一级缓冲区标志”,参考“更新发送区ID寄存器”的内容,读访问一级缓冲区的相应发送子区,并存入二级缓冲区的相应发送子区,完毕后复位“FPGA访问双口SDRAM一级缓冲区标志”。
所述WB总线处理逻辑处理异步收发器接收和发送数据的工作方法,主要包括:
步骤1、如果某异步收发器存在接收发送任务,即串口交易中断请求存在,WB总线处理逻辑读访问该异步收发器的“中断状态寄存器”,如果要求接收数据,读访问接收“数据寄存器”,并将接收到的数据存入二级缓冲区对应子区;
步骤2、每接收一个字节后,在“接收字节超时门限寄存器”设置的时间内未出现新的接收数据中断,则认为已收到完整数据帧。根据所接收数据帧的内容,判断数据帧是否存在错误,以及何种错误,并标识在对应的“接收帧诊断结果寄存器”和“接收帧长度寄存器”,并设置以二级缓冲区某子区覆盖一级缓冲区某子区的中断请求;
步骤3、如果上位机未访问双口SDRAM一级缓冲区,则WB总线处理逻辑响应上述中断,执行二级至一级某子区的“数据搬家”,任务结束后,清相应中断;如果上位机正在访问双口SDRAM一级缓冲区,等待适宜的时机再“搬家”;
步骤4、经过“应答延迟时间寄存器”的预置时间,设置发送中断请求,WB总线处理逻辑从二级缓冲区某子区读取发送数据,写入该异步收发器的“发送数据寄存器”中,每发送一个字节,异步收发器均会再请求中断,WB总线处理逻辑循环相应,直至发送的字节数等于对应的“发送帧长度寄存器”预设内容,发送完毕,清相应中断。
发明的有益效果是在板卡高度为3英寸的CPCI异步串口板卡上实现了8或16通路独立通讯,每路串口通讯最高速率不低于2Mbps,每路串口通道有16个字节发送缓冲区和16个字节接收缓冲区;通讯收发帧之间的延迟时间有256档可设置,最小10us,最大2.56ms,误差小于0.1us;各异步串口实现了完备的全双工异步串口功能,硬件功能与通用异步收发器NS16C550兼容,各异步串口的软件接口也与通用异步收发器NS16C550兼容。上位机能够对各异步串口独立灵活配置、全面监控工作状态,如配置各异步串口通讯模式、数据帧格式、修改发送数据帧长度、默认或改写发送数据帧、查询工作状态,读取接收数据帧和接收数据帧错误诊断等。利用FPGA的配置能力及WB片内总线的兼容性和扩展性,即使在板卡工艺已确定的情况下,完全能够保证板卡串口的扩展能力。
附图说明
图1为基于FPGA状态机和WB片内总线的CPCI异步串口板系统架构图;
图2为上位机和WB总线处理逻辑处理异步串口发送数据的流程图;
图3为WB总线处理逻辑处理异步收发器接收和发送数据的流程图。
具体实施方式
本发明放弃以嵌入式处理器与程序作为处理单元的传统方法,充分发挥大规模逻辑电路的高速并行处理、配置和扩展灵活的特点,实现通讯功能。在FPGA芯片上实现一个基于FPGA状态机和WB片内总线的系统,采用一主多从的片内总线运行模式,在片上集成了处理单元、8或16通路异步收发器、双口SDRAM粘连逻辑、地址译码器、配置状态寄存器区、串口接收信号滤波逻辑等电路。其中处理单元作为片内总线的唯一主逻辑,可访问多个从逻辑;异步收发器软核支持WB片内总线,与NS16550A器件兼容。利用FPGA的配置能力及WB片内总线的兼容性和扩展性,即使在板卡工艺已确定的情况下,完全能够保证板卡串口的扩展能力。下面结合附图和实施例对本发明所提出的方法做进一步的说明。
本发明提出的一种基于FPGA状态机和WB总线的CPCI异步串口板,其系统架构如图1所示,主要包括:PCI9052总线控制器、双口SDRAM、FPGA芯片、CPCI总线连接器、SCSI(SmallComputer System Interface,小型计算机系统接口)连接器。
其中,FPGA芯片内包括:WB片内总线、8个异步收发器、双口SDRAM总线粘连逻辑、LOCAL(本地)总线寄存器区、地址译码逻辑、串口接收滤波逻辑、WB总线处理逻辑;双口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总线处理逻辑某异步收发器要求处理异步串口交易。
其中,PCI9052总线控制器为ASIC(Application Specific Integrated Circuit,专用集成电路)器件,实现了PCI总线到9052LOCAL(本地)总线协议适配。9052PCI总线控制器的LOCAL总线接口配置为8位数据线,1个2K字节的RAM空间,1个IO空间,1个高电平有效的中断源,支持DMA(Direct Memory Access,存储器直接访问)模式。
双口SDRAM采用IDT7132芯片,上位机写入的数据需要存储起来,以便等待正确时机通过异步串口发送。设计中采用ASIC器件,高速的1k×8bit的双口SDRAM IDT7132,读写周期均为20ns,除电源引脚外,均与FPGA用户IO相连,在FPGA内设置了粘连逻辑,以便上位机通过LOCAL总线、WB总线处理逻辑通过WB总线进行访问。为了避免上位机正在更新某数据区,而与该数据区对应的异步串口要求发送该数据区的情况,在设计中将双口SDRAM的存储空间分为两部分,即上位机可写访问的一级缓冲区和WB总线处理逻辑可写访问的二级缓冲区。一级或二级缓冲区均分成了16个子区,每路异步串口对应着一级缓冲区内的一对发送子区和接收子区,以及二级缓冲区内的一对发送子区和接收子区。上位机可读写访问一级缓冲区的所有发送子区,但只能读访问一级缓冲区的所有接收子区;WB总线处理逻辑除只能读访问一级缓冲区的所有发送子区外,可读写其它所有一级和二级子区。
FPGA芯片
板卡支持2个XC2S200-5PQ208芯片,每个均可实现一个独立的片上系统,提供8个全双工串口通路,通常情况下使用一片,必要时可使用两片,提供16个全双工串口通路。FPGA芯片为智能板核心器件,支持200MHz时钟IO口上升和下降速度均达到5ns。
①WB片内总线
基于可移植IP(Internet Protocol,互联网协议)的WB片内总线是一种应用普遍的、具有灵活性的设计方法。通过创造出IP之间的相同接口以鼓励设计复用,改善系统的可移植性和可靠性,并加快产品开发周期。
②异步收发器
异步收发器是一个与16C550兼容的IP软核,每个可实现一路全双工异步串口通讯。此核来源于opencores(开放内核)组织,是一种源代码公开的IP软核,支持WB总线,为WB总线的从逻辑。每个异步收发器初始配置为8位数据线,11位地址线,8位FIFO(First InputFirst Output的缩写,先入先出队列)宽度,16字节FIFO深度。异步收发器的WB总线接口与片内WB总线相连,异步收发器的收发接口与FPGA外串口驱动器件相连,中断信号与片内WB总线处理逻辑相连,以便告知WB总线处理逻辑某异步收发器要求处理异步串口交易。
③双口SDRAM总线粘连逻辑
片内有两个独立的双口SDRAM总线粘连逻辑,即双口SDRAM与WB总线粘连逻辑,双口SDRAM与LOCAL总线粘连逻辑,分别实现了双口SDRAM与WB总线和LOCAL总线的逻辑连接。
④LOCAL总线寄存器区
为了方便上位机对各异步串口独立灵活配置、全面监控工作状态,必须设置可供上位机访问的若干配置寄存器和状态寄存器,而且LOCAL总线寄存器区逻辑是上位机与片内WB总线处理逻辑之间的通讯桥梁。包括发送延迟时间寄存器、接收字节超时门限寄存器、更新发送区ID寄存器、上位机访问双口SDRAM一级缓冲区标志寄存器、FPGA访问双口SDRAM一级缓冲区标志寄存器、接收字节超时门限寄存器、发送帧更新方式寄存器、发送帧长度寄存器、接收帧长度寄存器,接收帧诊断结果寄存器等。
⑤地址译码逻辑
片内有两个独立的地址译码逻辑,即LOCAL总线地址译码逻辑和WB总线地址译码逻辑。分别根据LOCAL总线地址和WB总线地址,片选相应的从逻辑。
⑥串口接收滤波逻辑
片内有8个独立的串口接收滤波逻辑,每个对应一路异步收发器的接收端。串口接收滤波逻辑由两个单稳态触发器逻辑构成,可滤除正负跳变的宽度小于1us的毛刺。
⑦WB总线处理逻辑
按照LOCAL总线配置寄存器区,配置各异步收发器的工作模式。通过监视双口SDRAM一级和二级缓冲区的“信号灯”标识和通用异步收发器的中断信号,确定是否需要启动任务。
本发明提出的基于WB片内总线的CPCI异步串口板的工作方法,包括上位机和WB总线处理逻辑处理异步串口发送数据的方法和WB总线处理逻辑处理异步收发器接收和发送数据的方法,前者优先于后者,即覆盖二级缓冲区的中断请求优先于通用异步收发器的串口交易中断请求,不是同一数据区可并行处理。
当上位机更新某异步串口的发送数据时,上位机和WB总线处理逻辑处理流程如图2所示,主要包括:
步骤1、如果上位机请求更新一级缓冲区的某子区,即覆盖二级缓冲区中断请求存在,上位机查询“FPGA访问双口SDRAM一级缓冲区标志”,判断WB总线处理逻辑是否正在访问一级缓冲区,若为真,则继续查询等待;否则置位“上位机访问双口SDRAM一级缓冲区标志”,设置“更新发送区ID寄存器”和“发送帧长度寄存器”,覆盖一级缓冲区的相应子区,完毕后复位“上位机访问双口SDRAM一级缓冲区标志”,产生更新二级缓冲区的中断请求;
步骤2、WB总线处理逻辑响应中断,查询“上位机访问双口SDRAM一级缓冲区标志”,判断上位机是否正在访问一级缓冲区,若为真,则继续查询等待;否则置位“FPGA访问双口SDRAM一级缓冲区标志”,参考“更新发送区ID寄存器”的内容,读访问一级缓冲区的相应发送子区,并存入二级缓冲区的相应发送子区,完毕后复位“FPGA访问双口SDRAM一级缓冲区标志”。
在WB总线处理逻辑更新二级缓冲区期间,暂不响应异步串口交易中断。由于FPGA的IO口切换速度为可达到5ns,所以FPGA读写访问7132的周期也就是7132的读写访问周期,即20ns左右,即使WB总线处理逻辑在更新二级缓存时,串口恰好要求传送100个字节的数据,发送只延迟20*100*2=4000ns,即4us,满足小于10us的设计要求。
当异步收发器接收和发送数据时,WB总线处理逻辑处理流程如图3所示,主要包括:
步骤1、如果某异步收发器存在接收发送任务,即串口交易中断请求存在,WB总线处理逻辑读访问该异步收发器的“中断状态寄存器”,如果要求接收数据,读访问接收“数据寄存器”,并将接收到的数据存入二级缓冲区对应子区;
步骤2、每接收一个字节后,在“接收字节超时门限寄存器”设置的时间内未出现新的接收数据中断,则认为已收到完整数据帧。根据所接收数据帧的内容,判断数据帧是否存在错误,以及何种错误,并标识在对应的“接收帧诊断结果寄存器”和“接收帧长度寄存器”,并设置以二级缓冲区某子区覆盖一级缓冲区某子区的中断请求;
步骤3、如果上位机未访问双口SDRAM一级缓冲区,则WB总线处理逻辑响应上述中断,执行二级至一级某子区的“数据搬家”,任务结束后,清相应中断;如果上位机正在访问双口SDRAM一级缓冲区,等待适宜的时机再“搬家”;
步骤4、经过“应答延迟时间寄存器”的预置时间,设置发送中断请求,WB总线处理逻辑从二级缓冲区某子区读取发送数据,写入该异步收发器的“发送数据寄存器”中,每发送一个字节,异步收发器均会再请求中断,WB总线处理逻辑循环相应,直至发送的字节数等于对应的“发送帧长度寄存器”预设内容,发送完毕,清相应中断。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (6)

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总线处理逻辑循环相应,直至发送的字节数等于对应的发送帧长度寄存器预设内容,发送完毕,清除相应中断。
CN201410226013.0A 2014-05-26 2014-05-26 基于状态机和片内总线的cpci串口板及其工作方法 Expired - Fee Related CN104021102B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410226013.0A CN104021102B (zh) 2014-05-26 2014-05-26 基于状态机和片内总线的cpci串口板及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410226013.0A CN104021102B (zh) 2014-05-26 2014-05-26 基于状态机和片内总线的cpci串口板及其工作方法

Publications (2)

Publication Number Publication Date
CN104021102A CN104021102A (zh) 2014-09-03
CN104021102B true CN104021102B (zh) 2017-05-24

Family

ID=51437863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410226013.0A Expired - Fee Related CN104021102B (zh) 2014-05-26 2014-05-26 基于状态机和片内总线的cpci串口板及其工作方法

Country Status (1)

Country Link
CN (1) CN104021102B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857685A (zh) * 2018-12-06 2019-06-07 积成电子股份有限公司 一种mpu与fpga扩展多串口的实现方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104698923B (zh) * 2015-02-05 2017-11-21 中车青岛四方车辆研究所有限公司 动车组辅助控制系统
CN106201759B (zh) * 2016-07-14 2023-08-01 浙江众合科技股份有限公司 一种防止fpga寄存器粘连的检测系统及方法
CN106776410A (zh) * 2016-12-07 2017-05-31 深圳市科陆物联信息技术有限公司 一种具有串口的手持终端
CN106843080B (zh) * 2017-03-29 2019-05-14 杰创智能科技股份有限公司 一种fpga并行阵列模块及其计算方法
CN109828943B (zh) * 2019-01-16 2023-07-14 北京左江科技股份有限公司 一种低速率通信网络的提高串口传输速率处理系统及方法
CN109840233B (zh) * 2019-01-25 2020-10-27 上海创景信息科技有限公司 基于fpga的60x总线桥接系统、方法及介质
CN110046113B (zh) * 2019-05-06 2024-02-09 华峰测控技术(天津)有限责任公司 一种基于fpga的sdram控制系统及控制方法
CN110471880B (zh) * 2019-07-19 2021-01-12 哈尔滨工业大学 一种基于FPGA支持Label号筛选的ARINC429总线模块及其数据传输方法
CN111352887B (zh) * 2019-11-19 2023-10-17 中国航空工业集团公司西安航空计算技术研究所 一种pci总线到可配置帧长度串行总线适配和传输方法
CN111444123B (zh) 2020-03-28 2021-01-15 珠海市一微半导体有限公司 基于硬件加速的spi接口的自动读取控制系统及方法
CN112087358B (zh) * 2020-09-09 2022-04-05 天津津航计算技术研究所 基于cpci的多通道can总线通信通用模块的实现方法
CN112346386B (zh) * 2020-11-11 2021-09-21 中国南方电网有限责任公司超高压输电公司广州局 基于fsm和多任务的直流输电换流阀监测系统主控单元实现方法
CN113986794A (zh) * 2021-11-10 2022-01-28 上海鹰觉科技有限公司 基于fpga异步串口交换方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2775683Y (zh) * 2005-03-21 2006-04-26 中国海洋石油总公司 地震勘探数据采集记录系统光纤接口板
CN101799678A (zh) * 2009-12-30 2010-08-11 北京宇航系统工程研究所 一种三路异步串口数据实时同步发送系统
CN103412833A (zh) * 2013-08-30 2013-11-27 哈尔滨工业大学 VxWorks操作系统下CPCI总线扫描ADC功能模块驱动设备及其控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2775683Y (zh) * 2005-03-21 2006-04-26 中国海洋石油总公司 地震勘探数据采集记录系统光纤接口板
CN101799678A (zh) * 2009-12-30 2010-08-11 北京宇航系统工程研究所 一种三路异步串口数据实时同步发送系统
CN103412833A (zh) * 2013-08-30 2013-11-27 哈尔滨工业大学 VxWorks操作系统下CPCI总线扫描ADC功能模块驱动设备及其控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA 的SDRAM读写双口控制器设计;周望玮 等;《电子器件》;20060426;第29卷(第2期);第582-583页,图1b *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857685A (zh) * 2018-12-06 2019-06-07 积成电子股份有限公司 一种mpu与fpga扩展多串口的实现方法
CN109857685B (zh) * 2018-12-06 2021-04-09 积成电子股份有限公司 一种mpu与fpga扩展多串口的实现方法

Also Published As

Publication number Publication date
CN104021102A (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
CN104021102B (zh) 基于状态机和片内总线的cpci串口板及其工作方法
KR101034494B1 (ko) 개방형 코어 프로토콜을 기반으로 하는 버스 시스템
CN100471156C (zh) 数据总线桥接器及其工作方法
US7822907B2 (en) Methods and apparatuses for serial bus sideband communications
CN100483373C (zh) Pvdm(分组语音数据模块)通用总线协议
JP3838278B2 (ja) コンピュータ・システムの2つのバス間のブリッジ回路
US10521392B2 (en) Slave master-write/read datagram payload extension
CN105573951B (zh) 一种针对数据流传输的ahb总线接口系统
CN102495920B (zh) 一种FPGA用基于PCIe的集成化逻辑分析模块
CN109710548A (zh) 一种dma控制数据传输方法、系统及设备
WO2016123885A1 (zh) Cpci总线和isa总线的协议转换器和转换方法
CN108255776B (zh) 一种兼容apb总线的i3c主设备、主从系统及通信方法
CN102023953A (zh) 具有多路i2c总线的系统的控制方法
CN106469127B (zh) 一种数据访问装置及方法
CN106959935A (zh) 一种兼容i2c通信与ipmb通信的方法
CN105117319A (zh) 基于fpga实现对多路mdio设备实时监控的方法
CN107562672A (zh) 一种提高矢量网络分析仪数据传输速率的系统及方法
CN108255754A (zh) 一种兼容i2c的i3c主设备、i3c主从设备通信系统及方法
CN110635985A (zh) 一种FlexRay-CPCIe通信模块
CN104714918A (zh) 主机环境下高速fc总线数据接收及缓冲方法
CN100450069C (zh) 实现第一部件与第二部件之间通信的系统及部件
CN100517283C (zh) 先进高性能系统总线连接装置及先进高性能系统总线装置
CN109407574A (zh) 一种多总线可选择输出控制装置及其方法
CN104346310B (zh) 一种高性能i2c从机数据交换电路及方法
CN114866497A (zh) 一种全局异步站内同步的PCIe交换电路和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170524

Termination date: 20200526

CF01 Termination of patent right due to non-payment of annual fee