RS232转485有发送没有接收数据不到数据

异步串行数据的一般格式是:起始位+数据位+停止位其中起始位1 位,数据位可以是5、6、7、8位停止位可以是1、1.5、2位。

起始位是一个值为0的位所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位所以对于正逻辑的TTL电平,停止位是高电平线路路空闲或者数据传输结束,对于正逻辑的TTL電平线路总是1。对于负逻辑(如RS-232电平)则相反

例如,对于16进制数据55aah当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和圖2(RS-232电平)所示 (先传第一个字节55,再传第二个字节aa每个字节都是从低位向高位逐位传输)。

图1 TTl串行数据帧格式

图2 RS232电平串行数据帧格式

二、根据波形图计算波特率

如图3是图1在示波器中的显示示意其中灰色线是示波器的时间分度线,此时假设是200us/格

图3 波特率计算示意图

如果仩图中的时间轴是100us/格,同样可以计算出波特率应是19200bit/s

当通讯不正常,又能观察到波形时就可根据上述方法,从波形图计算一下波特率是否正确

RS-485是一种半双工的串行通讯方式(RS-422为全双工),485电平芯片所以要正确有发送没有接收数据和发送数据必需保证控制信号和数据的哃步,否则要么发送数据丢失要么有发送没有接收数据数据可能丢失。

图4 RS485正确的发送数据时序

在图4中发送控制信号的宽度基本与数据信号的宽度一致,所以能保证发送数据的正确和发送后及时转为有发送没有接收数据图5 和图6 分别是控制信号太短和控制信号太长的情况。

图5 RS-485控制信号太短的时序

图6 RS-485控制信号太短的时序

在图5中由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中由于控制信号关闭过迟,使485芯片在发送数据后不能及时转到有发送没有接收数据状态,此时总线若有数据过来则本单元将不能正确有发送没有接收数据。

总结:只要掌握上述波形分析方法任何异步串行数据的有发送没有接收数据和发送问题,基本都可以得到解决

我是用电脑usb连接rs232然后232两根AB线接到485模块然后485模块的di和ri连上华大芯片板子的txd,rxd的引脚上,485的re和de连到一起re随便接到了芯片上的一个引脚上,然后给芯片板子上电485的vcc和GND分别连接到芯片板子上的vcc和GND上,然后用SSCOM串口工具发送数据却不能有发送没有接收数据到返回来的数据,求大神解答对了,我的芯片没刷程序能收到并返回我发送的数据吗

我要回帖

更多关于 有发送没有接收数据 的文章

 

随机推荐