比如:一个上位机(pc)与 两个下位机(89c51)单片机进行通讯。波特率为 9600.
帧数据格式:起始位(1位)+地址(1位)+功能(1位)+数据位(14位)+校验位(2位)+停止位(1位)。
那么,当通过PC采用轮询法来读取3个单片机的数据状态时,每个单片机所用时间多少?
我的理解:
1000/9600=0.1042 ms 那么传送1帧数据: 1+1+1+14+2+1=20位 20*8*0.1042=16.67ms
但是:
MODbus中,那个3.5个字符的时间。到底指什么? 如果是起始位到停止位的数据时间,那么16.67ms已经超标。是不是意味着,这样传输数据不行?
MODbus中的定时设置究竟如何算的?定时多少合适?
如果是个主程序(除了传送,再加上数据处理,显示,按键扫描),那么一个单片机做一次,需要定时多长时间?
|