一种基于PC104与FPGA通讯的方法与流程

文档序号:17185614发布日期:2019-03-22 21:19阅读:337来源:国知局
一种基于PC104与FPGA通讯的方法与流程

本发明涉及导航技术领域,尤其涉及一种基于pc104与fpga通讯的方法。



背景技术:

在导航领域中,导航设备与系统其它各级设备之间通讯数据的有效性和准确性至关重要。目前的导航设备与系统其他各级设备之间通常是直接通过需要采用多个数据转换单元,然后再配合pc104进行数据传输与交换,但是目前,在数据传输与交换过程中,数据传输稳定性较差,很容易在长时间数据传输过程中容易造成数据传输慢,严重的更造成数据丢失的情况,从而大大降低了数据传输的有效性,大大影响了导航系统的精确度。



技术实现要素:

针对现有技术存在的上述不足,本发明的目的在于解决数据在长时间传输中丢失严重的问题,提供一种基于pc104与fpga通讯的方法,能够避免数据在长时间传输中丢失,从而实现数据的有效传输,有利于提高导航系统的精确度。

为了解决上述技术问题,本发明采用的技术方案是这样的:一种基于pc104与fpga通讯的方法,其特征在于:包括如下步骤:

1)通过fpga建立串口通讯模块、第一控制模块、第二控制模块、滤波模块以及第一fifo数据缓存模块和第二fifo数据缓存模块;所述串口通讯模块包括接收模块和发送模块,其中,所述接收模块的数据发送端与第一控制模块的数据接收端相连;第一控制模块的数据发送端经第一fifo数据缓存模块后与第二控制模块的数据接收端相连,其(第一控制模块的)中断信号发送端与pc104的中断信号接收端相连;第二控制模块的数据收发端口与pc104的数据收发端口相连,同时,pc104的信号发送端经滤波模块后与第二控制模块信号接收端相连;该第二控制模块的数据发送端经第二fifo数据缓存模块后与发送模块相连;

2)在第一控制模块中建立数组及数据判断规则,第一控制模块根据该数据判断规则对接收模块发送的数据进行判断;若数据满足要求,则将数据依次放入数组,当数组中存满20字节后,拉高fifo写使能;

3)启动第一fifo数据缓存模块,第一控制模块每拉高一次fifo写使能,便往第一fifo数据缓存模块中送一个字节的数据,当送完20字节数据后,第一控制模块向pc104发送一个中断信号;

4)pc104接收到中断信号后,通过滤波模块向第二控制模块发送读使能信号;第二控制模块控制读使能被有序拉低,其中,该读使能每拉低一次则从第一fifp数据缓存模块中读取一个字节的数据,直至20字节数据被读走,并通过数据收发端口发送给pc104;

5)当pc104向第二控制模块发送数据时,先将数据发送至第二控制模块,第二控制模块再将数据发送至第二fifo数据缓存模块,通过第二fifo数据缓存模块将数据发送至串口通讯模块的发送模块。

进一步地,步骤2)中,数组中每存满20字节后,第一控制模块自动控制拉高fifo写使能。

进一步地,步骤5)中,第二控制模块依次向第二fifo数据缓存模块发送数据,第二fifo数据缓存模块每缓存一个数据就向发送模块发送一个数据。

进一步地,所述第二控制模块与pc104之间的数据收发端口为inout[7:0]型。

进一步地,所述滤波模块能够清除低于300ns的杂波。

与现有技术相比,本发明具有如下优点:

1、硬件平台搭建简单,控制过程简明、清楚,从而能够提高通讯效率。

2、提高了数据通信的准确性和时效性,减小了数据传输丢失率。

附图说明

图1为本发明的硬件连接图。

图2为本发明的信号流程图。

其中,pc104int表示中断信号、pc104-mr表示pc104读使能信号、pc104-mw表示pc104写使能信号。

具体实施方式

下面将结合附图及实施例对本发明作进一步说明。

实施例:参见图1、图2,一种基于pc104与fpga通讯的方法,包括如下步骤:

1)通过fpga建立串口通讯模块、第一控制模块、第二控制模块、滤波模块以及第一fifo数据缓存模块和第二fifo数据缓存模块。所述串口通讯模块包括接收模块和发送模块,其中,所述接收模块的数据发送端与第一控制模块的数据接收端相连。第一控制模块的数据发送端经第一fifo数据缓存模块后与第二控制模块的数据接收端相连,其(第一控制模块的)信号发送端与pc104的信号接收端相连。第二控制模块的数据收发端口与pc104的数据收发端口相连,同时,pc104的信号发送端经滤波模块后与第二控制模块信号接收端相连;该第二控制模块的数据发送端经第二fifo数据缓存模块后与发送模块相连。其中,所述第二控制模块与pc104之间的数据收发端口为inout[7:0]型;这样能够更好地实现第二控制模块与pc104的双向通讯。

工作过程中,串口通讯模块将接收到的外部(分设备)串行数据转换成并行数据发送给pc104,并接收pc104并行数据串行发送给分设备,利用中断及读写选通信号作为判断信号和使能信号进行通信。通过fifo数据缓存模块,防止数据丢失,提高数据传输有效性。通过滤波模块,滤掉pc104读写杂波,提高模块工作可靠性及稳定性。

2)在第一控制模块中建立数组及数据判断规则,第一控制模块根据该数据判断规则对接收模块发送的数据进行判断;若数据满足要求,则将数据依次放入数组,当数组中存满20字节后,拉高fifo写使能。其中,所述判断规则为用户根据实际需要设计的规则。其中,数组中每存满20字节后,第一控制模块自动控制拉高fifo写使能;由于第一控制模块中需要对接收到的数据进行判断,因此,数组中存满20字节所需要的时间通常会大于第二控制模块将第一fifo环槽模块中数据全部读取所需要的时间;因此,通过第一控制模块自动控制向第一fifo模块写入的时间(即数组存满20字节后),能够大大提高数据传递的效率。

3)启动第一fifo数据缓存模块,第一控制模块每拉高一次fifo写使能,便往第一fifo数据缓存模块中送一个字节的数据,当送完20字节数据后,第一控制模块向pc104发送一个中断信号。

4)pc104接收到中断信号后,通过滤波模块向第二控制模块发送读使能信号;第二控制模块控制读使能被有序拉低,其中,该读使能每拉低一次则从第一fifp数据缓存模块中读取一个字节的数据,直至20字节数据被读走,并通过数据收发端口发送给pc104,从而保证了数据不丢失。其中,所述滤波模块能够清除低于300ns的杂波;从而能够得到有效的pc104读信号。具体实施时,根据整个系统的工作时钟频率计算出计数值counter的大小,由计数值控制何时将fifo的读使能拉高,使pc104能顺利读入数据,从而达到滤掉无效的pc104读信号的目的。

5)当pc104向第二控制模块发送数据时,先将数据发送至第二控制模块,同时,pc104(通过滤波模块)向第二控制模块发出写使能信号,第二控制模块再将数据发送至(写入)第二fifo数据缓存模块,通过第二fifo数据缓存模块将数据发送至串口通讯模块的发送模块。其中,第二控制模块依次向第二fifo数据缓存模块发送数据,第二fifo数据缓存模块每缓存一个数据就向发送模块发送一个数据;这样,能够快速实现数据的传递。

本发明硬件平台搭建简单,控制过程简明、清楚,从而能够提高通讯效率;同时,通过本技术方案能够大大提高分设备与上位机(计算机或其他外部设备等)之间数据通信的准确性和时效性,减小了数据传输丢失率。

最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1