打印

关于PC rs232 串口数据传输的问题。请高手指教

[复制链接]
2829|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
justin12321|  楼主 | 2009-8-17 10:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我要做一个用于和PC进行数据传输的rs232接口模块,主要是用于将闪存里的数据通过串口输入PC中。闪存的控制以及rs232发送模块都是用FPGA来做,而PC上用LABVIEW来实现采集。我的问题是,我做的FPGA模块在什么时候开始发送数据啊?我想计算机应该会发送一个信号过来,告诉我可以发送了。是不是那个RTS信号啊。如果是这个信号,我又需不需要回复计算机,要开始发送了呢?看了一些关于rs232硬件握手的方式,都说的不统一,我也糊涂了。谁能告诉我,我这里应该怎样实现硬件握手啊。请各位高手多多指点指点啊,不胜感激!!

相关帖子

沙发
chunyang| | 2009-8-17 15:27 | 只看该作者
可以用“请求发送”实现,但最好用协议,引入一片MCU(或利用FPGA空余资源实现软MCU)增加的成本很有限,却能很方便的实现通讯协议。不过,楼主的应用采用FPGA来实现实在有点匪夷所思,楼主应该是学生吧,这么设计系统纯粹是为了FPGA而FPGA,实在缺乏“产品性”思想,反而自己给自己找麻烦。

使用特权

评论回复
板凳
justin12321|  楼主 | 2009-8-17 18:24 | 只看该作者
哦,谢谢,我还是学生,不过这个模块只是系统的一部分,整个系统是用FPGA来做的。关于硬件握手我有这样两种理解,不知道哪种正确,还是都不正确:1,当计算机发送RTS过来之后,我就可以直接发数据过去了,发送完了,没有硬件上的结束信号;2,当计算机发送RTS过来之后,我再使计算机端口的CTS信号有效,表示发送开始,发送完之后,无效CTS信号,表示停止发送。
我觉得第2种才实现了握手,有请求,也有回复。我在网上找遍了,也找不到明确的回答。请指点,万分感谢!

使用特权

评论回复
地板
chunyang| | 2009-8-17 20:24 | 只看该作者
“请求发送”是由终端发出的,主机通过“准许发送”信号告知终端,然后终端才发出数据,期间“请求——准许”循环由软件控制。数据发送完毕,请求信号就不再有。不过还是建议你乖乖的引入MCU吧,用MCU软核从你的描述所表现出的对技术/概念的掌握程度程度而言还差的太远。

使用特权

评论回复
5
justin12321|  楼主 | 2009-8-17 21:48 | 只看该作者
恩,谢谢。用MCU应该也要弄清楚硬件握手的流控制吧。其实用的信号就cts和rts两个。你的意思是发送端通过rts请求发送,允许后就可以发了。但我又在网上看到另一种握手,就是若计算机里的缓存容量没超过上线时,就置计算机端的rts有效,表示可以接受数据。看来这种是错误的了?
还有在LABVIEW程序设计时,是不是LABVIEW的程序对这些流控制信号进行判断和操作啊?还是计算机本身对这些流控制信号作出反映。如果是LABVIEW来控制这些信号的话,那么对于RST或者CTS信号的定义就可以完全由自己定了,根据自己的程序确定它们的含义,实现自己的握手方式。我对LABVIEW不是很熟,所以不是很清楚这个。
不知大虾可否指点指点,谢谢。。 4# chunyang

使用特权

评论回复
6
chunyang| | 2009-8-18 11:38 | 只看该作者
串口工作模式分同步和异步两类,通常用异步就可以了,此时“请求发送”、“允许发送”等辅助信号是不会用到的,而引入MCU可方便的采用适当的协议,对提高通讯可靠性和灵活性等很有必要。在PC侧,采用那种串口通讯方式也是由软件控制的,但从你的描述看,你还尚未理解基本串口工作原理,这方面只能看书解决,不要什么都指望网络,你得会寻找并鉴别相关信息才行。

使用特权

评论回复
7
justin12321|  楼主 | 2009-8-19 19:35 | 只看该作者
哦,谢谢了。。看来我还是得看看书。。 6# chunyang

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

15

帖子

0

粉丝