现需利用单片机串口产生一波特率(Modbus RTU协议)来驱动变频器动作,有以下几点问题求解?
资料:1、Modbus协议如下图一所示,由“超始位+8位地址+8位功能码+n*8位数据+16位CRC校验码+停止位”组成。
2、经查阅51内核的单片机其串口模式有0、1、2、3四种,其中1、2、3模式只能输出10与11位的数据,而0模式可作为移位输出,但其时钟为晶振的1/12。
3、三菱变频器所支持的Modbus协议速率为:4800、9600、19200、38400四种。
我现在所想是“根据变频器所支持的速率及Modbus协议的数据位,单片机的1、2、3种串口模式均满足不了要求。但如果使用单片机的模式0,则其输出速率要求改变晶振参数。”问题如下:
1、请问大家,如果真的要做Modbus协议是否只能用普通端口来模拟串口输出(自己做移位程序)?
2、对于Modbus协议的起始位与停止位,Modbus协议提到是做“3.5个无字符的时间”。哪如果我是自己端口模拟串口的话,哪个“开始位”与“停止位”时间是对端口付0还是付1?
(原文件名:3.jpg)
ourdev_662069XKZR7C.pdf(文件大小:6.92M) (原文件名:Modbus标准通信协议与软件编程.pdf)
-----------------------------------------------------------------------
谢谢,这个值得一看
一周热门 更多>