hero751 发表于 2010-11-11 16:57:22

Modbus调试,我快疯了,兄弟们帮我看看是怎么回事吧

用串口调试助手
发送数据:
14 03 00 02 00 03 CE A6
程序收到数据是正确的

程序回应数据:
14 03 06 00 56 78 9A 6B 91

示波器观察到的波形:
10 00101000 10 11000000 10 01100000 10 00000000 10 01101010 10 10001110 10 01011001 。。。。。。

单片机串口寄存器设置是8位数据位 1个停止位 无校验位

串口调试助手发送波特率19200
设置为8位数据位 1个停止位 无校验位的时候
接收到:94 80 10 C8 05 C2 01 DA ED

设置为7位数据位 1个停止位 无校验位的时候
接收到:14 03 06 00 16 00 38 00 5A 2B 7F

我都郁闷了哪位兄弟帮我分析一下啊

hero751 发表于 2010-11-11 16:59:32

示波器看到的波形和程序发送的数据是对应的
但是串口调试助手收到的数据,就有问题了 日了

shotstar 发表于 2010-11-11 17:53:05

不太可能 是不是 那里设置错了 或是 没有有效供地。

shotstar 发表于 2010-11-11 17:53:46

以前出现串口线 地线不通 也会出现这种数据乱的情况

hero751 发表于 2010-11-11 19:53:46

那我得回去检查一下,应该不会吧 我是通过一个RS232-RS485转换器接的接了A、B、GND、5V
而且这个电路,在别人的产品上我也见过一模一样的啊

hero751 发表于 2010-11-12 11:55:44

地线没有问题。。
快崩溃了

zhao_pc0305 发表于 2010-11-12 12:01:30

换一个别的牌子的转换器试试,最好是有源的,工业级的

个人感觉是转换器的收发转换有延时造成的,或者软件上人为的延时3~5ms后再发送数据试试

hero751 发表于 2010-11-12 13:16:04

回复【6楼】zhao_pc0305
-----------------------------------------------------------------------

好的 我这就试
转换器我有两个 是同一个牌子的 先加一个延时试试吧

cool33777612 发表于 2010-11-12 13:56:12

我做modbus时,波特率是9600的,见过很多modbus通信都是9600的。
另外,modbus就是一串口通信,没难度啊。重要是数据 帧与帧之间的时间T控制:1.5char<T<3.5char

sunke9 发表于 2010-11-12 13:59:02

停止位2位试试

hero751 发表于 2010-11-15 10:31:16

回复【8楼】cool33777612
-----------------------------------------------------------------------

我也觉得没难度啊
SPI、USART我都用过,都好用的
就是和电脑通讯这块 就是弄不好了日了

hero751 发表于 2010-11-15 10:32:27

回复【9楼】sunke9小可歌
-----------------------------------------------------------------------

依然不好用

我现在只用单片机给电脑发送数据,不接受数据 还他娘的不好用 郁闷了

hero751 发表于 2010-11-17 09:13:32

本来以为可能是485接口转换器的原因
换了一个别的牌子的还是不好用

现在只能怀疑波特率偏差了
电脑端的估计问题不大,我单片机用的是内部RC震荡,8M
不知道是不是这个震荡不准导致的
郁闷了

ba_wang_mao 发表于 2010-11-17 09:18:18

用内部RC震荡,8M ,必须注意:
         确保得到的波特率的误差不要超过3%,否则通讯可能有问题。

   实验时,最好还是使用11.0592MHZ的外部晶体振荡器吧!

xiaobendan 发表于 2010-11-17 10:29:19

内振不可靠,还是外振吧

lh026 发表于 2010-11-17 11:18:13

首先排除串口调试助手的设置问题,比如发送接收设置的不匹配;再就考虑换个串口通讯软件试试,我碰到过同一个终端,不同软件接收数据不同的现象;最后再考虑硬件问题

eefans 发表于 2010-11-17 12:17:25

用逻辑分析仪看看波形吧,232,485都可以解码看到字节内容,这样好查一些。
http://cache.amobbs.com/bbs_upload782111/files_34/ourdev_598564GRKLBJ.jpg
(原文件名:adpter22.jpg)

kerrwang1982 发表于 2010-11-17 12:38:08

用11。0592的外振没有出现数据出错的现象。

hero751 发表于 2010-11-17 16:38:37

恩谢谢这几位兄弟

我手头只有3.6864M的晶振

换上去了

立竿见影啊,,

眼泪哗哗的 终于好使了~~~~~~~~~~~

hero751 发表于 2010-11-17 16:40:26

其实开始的时候也怀疑过晶振的问题
后来就问了下单位一个比较老的工程师
他言之凿凿的说没问题,所以我也就没换晶振
看来老工程师也有失误的时候啊

这个经验这辈子都忘不了啊

Syth 发表于 2012-9-24 21:57:41

mark 串口晶振,逻辑分析仪,MODBUS

mique 发表于 2013-1-2 13:26:57

学习一下

oszp1688com 发表于 2013-1-2 15:59:50

fish198868 发表于 2013-3-13 13:29:42

学习了!!!先mark

liujing8862770 发表于 2013-7-23 12:21:07

mark一下。。。经验贴!
页: [1]
查看完整版本: Modbus调试,我快疯了,兄弟们帮我看看是怎么回事吧